diff --git a/cache_forge/solidity-files-cache.json b/cache_forge/solidity-files-cache.json new file mode 100644 index 0000000..65b6f3b --- /dev/null +++ b/cache_forge/solidity-files-cache.json @@ -0,0 +1 @@ +{"_format":"ethers-rs-sol-cache-3","paths":{"artifacts":"out","build_infos":"out/build-info","sources":"contracts","tests":"test","scripts":"script","libraries":["lib","node_modules"]},"files":{"lib/forge-std/src/Base.sol":{"lastModificationDate":1720174377227,"contentHash":"ee13c050b1914464f1d3f90cde90204b","sourceName":"lib/forge-std/src/Base.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":["lib/forge-std/src/StdStorage.sol","lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"CommonBase":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"Base.sol/CommonBase.json"},"ScriptBase":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"Base.sol/ScriptBase.json"},"TestBase":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"Base.sol/TestBase.json"}}},"lib/forge-std/src/Script.sol":{"lastModificationDate":1720174377227,"contentHash":"ba325c778a7da8a21c2136aa32763c14","sourceName":"lib/forge-std/src/Script.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":["lib/forge-std/src/Base.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol","lib/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"Script":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"Script.sol/Script.json"}}},"lib/forge-std/src/StdChains.sol":{"lastModificationDate":1720174377228,"contentHash":"134a39a51ebf6702e9537d9b72fc4812","sourceName":"lib/forge-std/src/StdChains.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdChains":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"StdChains.sol/StdChains.json"}}},"lib/forge-std/src/StdCheats.sol":{"lastModificationDate":1720174377228,"contentHash":"7922ae0087a21ee3cdb97137be18c06c","sourceName":"lib/forge-std/src/StdCheats.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":["lib/forge-std/src/StdStorage.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdCheats":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"StdCheats.sol/StdCheats.json"},"StdCheatsSafe":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"StdCheats.sol/StdCheatsSafe.json"}}},"lib/forge-std/src/StdJson.sol":{"lastModificationDate":1720174377228,"contentHash":"3339192c616789604138e2d8206c0702","sourceName":"lib/forge-std/src/StdJson.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.0, <0.9.0","artifacts":{"stdJson":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"StdJson.sol/stdJson.json"}}},"lib/forge-std/src/StdMath.sol":{"lastModificationDate":1720174377228,"contentHash":"9da8f453eba6bb98f3d75bc6822bfb29","sourceName":"lib/forge-std/src/StdMath.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"stdMath":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"StdMath.sol/stdMath.json"}}},"lib/forge-std/src/StdStorage.sol":{"lastModificationDate":1720174377228,"contentHash":"5955d11c6b4a5e64839b4419e0fe71c4","sourceName":"lib/forge-std/src/StdStorage.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"stdStorage":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"StdStorage.sol/stdStorage.json"},"stdStorageSafe":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"StdStorage.sol/stdStorageSafe.json"}}},"lib/forge-std/src/StdStyle.sol":{"lastModificationDate":1720174377229,"contentHash":"6281165a12aa639705c691fccefd855e","sourceName":"lib/forge-std/src/StdStyle.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.4.22, <0.9.0","artifacts":{"StdStyle":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"StdStyle.sol/StdStyle.json"}}},"lib/forge-std/src/StdUtils.sol":{"lastModificationDate":1720174377229,"contentHash":"b50717f17f251a2a96a5884c90add7bf","sourceName":"lib/forge-std/src/StdUtils.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":["lib/forge-std/src/Vm.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdUtils":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"StdUtils.sol/StdUtils.json"}}},"lib/forge-std/src/Vm.sol":{"lastModificationDate":1720174377229,"contentHash":"0cec895a9594635c0b4bf346e9d7b03a","sourceName":"lib/forge-std/src/Vm.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"Vm":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"Vm.sol/Vm.json"},"VmSafe":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"Vm.sol/VmSafe.json"}}},"lib/forge-std/src/console.sol":{"lastModificationDate":1720174377230,"contentHash":"19bc22856c14b56e4e55ab19c7a27c87","sourceName":"lib/forge-std/src/console.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":[],"versionRequirement":">=0.4.22, <0.9.0","artifacts":{"console":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"console.sol/console.json"}}},"lib/forge-std/src/console2.sol":{"lastModificationDate":1720174377230,"contentHash":"f65ad21034b111e70fb5342d5771efcd","sourceName":"lib/forge-std/src/console2.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":["lib/forge-std/src/console.sol"],"versionRequirement":">=0.4.22, <0.9.0","artifacts":{}},"lib/forge-std/src/interfaces/IERC165.sol":{"lastModificationDate":1720174377230,"contentHash":"90fe5e2e3ed432d6f3b408e7c9e8a739","sourceName":"lib/forge-std/src/interfaces/IERC165.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":[],"versionRequirement":">=0.6.2","artifacts":{"IERC165":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"IERC165.sol/IERC165.json"}}},"lib/forge-std/src/interfaces/IERC20.sol":{"lastModificationDate":1720174377230,"contentHash":"8099161d518e5862a76750349d58e801","sourceName":"lib/forge-std/src/interfaces/IERC20.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":[],"versionRequirement":">=0.6.2","artifacts":{"IERC20":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"IERC20.sol/IERC20.json"}}},"lib/forge-std/src/interfaces/IERC721.sol":{"lastModificationDate":1720174377230,"contentHash":"efc26e7f9a2f76b68088c8760ceae2dc","sourceName":"lib/forge-std/src/interfaces/IERC721.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":["lib/forge-std/src/interfaces/IERC165.sol"],"versionRequirement":">=0.6.2","artifacts":{"IERC721":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"IERC721.sol/IERC721.json"},"IERC721Enumerable":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"IERC721.sol/IERC721Enumerable.json"},"IERC721Metadata":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"IERC721.sol/IERC721Metadata.json"},"IERC721TokenReceiver":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"IERC721.sol/IERC721TokenReceiver.json"}}},"lib/forge-std/src/interfaces/IMulticall3.sol":{"lastModificationDate":1720174377230,"contentHash":"7b131ca1ca32ef6378b7b9ad5488b901","sourceName":"lib/forge-std/src/interfaces/IMulticall3.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"IMulticall3":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"IMulticall3.sol/IMulticall3.json"}}},"lib/forge-std/src/mocks/MockERC20.sol":{"lastModificationDate":1720174377231,"contentHash":"8e14d63e81e1d54dbc2d44df38ae9dec","sourceName":"lib/forge-std/src/mocks/MockERC20.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":["lib/forge-std/src/interfaces/IERC20.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"MockERC20":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"MockERC20.sol/MockERC20.json"}}},"lib/forge-std/src/mocks/MockERC721.sol":{"lastModificationDate":1720174377231,"contentHash":"e91cd9dba7f88f03710c56a347d89d1e","sourceName":"lib/forge-std/src/mocks/MockERC721.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":["lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC721.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"MockERC721":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"MockERC721.sol/MockERC721.json"}}},"lib/forge-std/src/safeconsole.sol":{"lastModificationDate":1720174377231,"contentHash":"ac3b1bf5a444db5db3656021830258a8","sourceName":"lib/forge-std/src/safeconsole.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"safeconsole":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"safeconsole.sol/safeconsole.json"}}},"scripts/test.sol":{"lastModificationDate":1720425515718,"contentHash":"82f09e3d0815d3dacdcf710fbd0b3544","sourceName":"scripts/test.sol","solcConfig":{"settings":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}}},"imports":["lib/forge-std/src/Base.sol","lib/forge-std/src/Script.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol","lib/forge-std/src/safeconsole.sol"],"versionRequirement":"^0.8.0","artifacts":{"FoundryScript":{"0.8.24+commit.e11b9ed9.Darwin.appleclang":"test.sol/FoundryScript.json"}}}}} \ No newline at end of file diff --git a/contracts/erc4626/Vault.sol b/contracts/erc4626/Vault.sol index 5b3cf96..7f705c7 100644 --- a/contracts/erc4626/Vault.sol +++ b/contracts/erc4626/Vault.sol @@ -46,21 +46,31 @@ contract HederaVault is IERC4626, FeeConfiguration, TokenBalancer, Ownable, Reen // Reward info by user mapping(address => RewardsInfo) public tokensRewardInfo; + // User Deposit struct + struct UserDeposit { + uint256 amount; + uint256 timestamp; + mapping(address => uint256) claimedRewards; + } + // User Info struct struct UserInfo { uint256 sharesAmount; - uint256 lastLockedTime; - mapping(address => uint256) lastClaimedAmountT; bool exist; - uint256 rewardStart; - uint256 rewardEnd; - uint256 accumulatedReward; + UserDeposit[] deposits; } - // Rewards Info struct + // Reward Info struct struct RewardsInfo { - uint256 amount; - bool exist; + uint256 vestingPeriod; + RewardPeriod[] rewardPeriods; + } + + // Reward Period struct + struct RewardPeriod { + uint256 startTime; + uint256 endTime; + uint256 rewardPerShare; } /** @@ -107,7 +117,7 @@ contract HederaVault is IERC4626, FeeConfiguration, TokenBalancer, Ownable, Reen __TokenBalancer_init(_pyth, _saucerSwap, _rewardTokens, allocationPercentage, _priceIds); asset = _underlying; - _rewardTokens = rewardTokens; + rewardTokens = _rewardTokens; _createTokenWithContractAsOwner(_name, _symbol, _underlying); } @@ -259,29 +269,36 @@ contract HederaVault is IERC4626, FeeConfiguration, TokenBalancer, Ownable, Reen /** * @dev Updates user state after deposit and mint calls. * - * @param _amount The amount of shares. + * This function updates the user's contribution information after they deposit tokens into the vault. + * If it's the user's first deposit, it associates the reward tokens with the user. + * + * @param _amount The amount of tokens deposited. */ function afterDeposit(uint256 _amount) internal { + // Ensure the amount is not zero + require(_amount != 0, "Vault: Amount can't be zero"); + + // Check if the user is making their first deposit if (!userContribution[msg.sender].exist) { + // For the first deposit, associate all reward tokens with the user uint256 rewardTokensSize = rewardTokens.length; - for (uint256 i; i < rewardTokensSize; i++) { + for (uint256 i = 0; i < rewardTokensSize; i++) { address token = rewardTokens[i]; - userContribution[msg.sender].lastClaimedAmountT[token] = tokensRewardInfo[token].amount; IHRC(token).associate(); } + + // Initialize the user's contribution with the deposited amount userContribution[msg.sender].sharesAmount = _amount; userContribution[msg.sender].exist = true; - userContribution[msg.sender].lastLockedTime = block.timestamp; - userContribution[msg.sender].rewardStart = block.timestamp; - // We can change vesting to neccessary time period - userContribution[msg.sender].rewardEnd = block.timestamp + 30 days; - assetTotalSupply += _amount; } else { - claimAllReward(0); + // For subsequent deposits, add the deposited amount to the user's shares userContribution[msg.sender].sharesAmount += _amount; - userContribution[msg.sender].lastLockedTime = block.timestamp; - assetTotalSupply += _amount; } + + // Create a new deposit entry for the user + UserDeposit storage newDeposit = userContribution[msg.sender].deposits.push(); + newDeposit.amount = _amount; + newDeposit.timestamp = block.timestamp; } /*/////////////////////////////////////////////////////////////// @@ -416,102 +433,192 @@ contract HederaVault is IERC4626, FeeConfiguration, TokenBalancer, Ownable, Reen //////////////////////////////////////////////////////////////*/ /** - * @dev Adds reward to the Vault. + * @dev Adds reward to the Vault with a specified vesting period. + * + * This function is called by an authorized user to add rewards to the vault. It associates + * the reward token with the contract, updates the reward periods, and transfers the reward tokens + * to the vault. * * @param _token The reward token address. * @param _amount The amount of reward token to add. + * @param _vestingPeriod The vesting period for the reward token. */ - function addReward(address _token, uint256 _amount) external payable onlyRole(VAULT_REWARD_CONTROLLER_ROLE) { + function addReward( + address _token, + uint256 _amount, + uint256 _vestingPeriod + ) external payable onlyRole(VAULT_REWARD_CONTROLLER_ROLE) { + // Ensure the token address is not zero, which would be invalid require(_token != address(0), "Vault: Token address can't be zero"); + + // Ensure the amount is not zero, which would be invalid require(_amount != 0, "Vault: Amount can't be zero"); + + // Ensure that there are tokens staked in the vault require(assetTotalSupply != 0, "Vault: No token staked yet"); - require(_token != address(asset) && _token != share, "Vault: Reward and Staking tokens cannot be same"); - if (rewardTokens.length == 10) revert MaxRewardTokensAmount(); + // Ensure the vesting period is not zero, which would be invalid + require(_vestingPeriod != 0, "Vault: Vesting period can't be zero"); + + // Ensure the reward token is not the same as the staking token or the share token + require(_token != address(asset) && _token != share, "Vault: Reward and Staking tokens cannot be same"); - uint256 perShareRewards = _amount.mulDivDown(1, assetTotalSupply); + // Retrieve the reward info for the specified token RewardsInfo storage rewardInfo = tokensRewardInfo[_token]; - if (!rewardInfo.exist) { + + // Get the current time for reward period calculations + uint256 currentTime = block.timestamp; + + // Check if the token is already in the reward tokens list + bool tokenExists = false; + uint256 rewardTokensSize = rewardTokens.length; + for (uint256 i = 0; i < rewardTokensSize; i++) { + if (rewardTokens[i] == _token) { + tokenExists = true; + break; + } + } + + // If the token is not already in the reward tokens list, add it + if (!tokenExists) { rewardTokens.push(_token); - rewardInfo.exist = true; - rewardInfo.amount = perShareRewards; + + // Set the vesting period for the new reward token + rewardInfo.vestingPeriod = _vestingPeriod; + + // Associate the reward token with the vault SafeHTS.safeAssociateToken(_token, address(this)); - ERC20(_token).safeTransferFrom(msg.sender, address(this), _amount); - } else { - tokensRewardInfo[_token].amount += perShareRewards; - ERC20(_token).safeTransferFrom(msg.sender, address(this), _amount); } + + // Add a new reward period for the token + _addRewardPeriod(_token, _amount, currentTime); + + // Transfer the reward tokens from the sender to the vault + ERC20(_token).safeTransferFrom(msg.sender, address(this), _amount); + + // Emit an event indicating that the reward has been added emit RewardAdded(_token, _amount); } /** * @dev Claims all pending reward tokens for the caller. * + * This function allows a user to claim all their pending rewards for all reward tokens + * starting from a specified position in the reward token list. It calculates the total + * unlocked rewards for each token and transfers them to the caller. + * * @param _startPosition The starting index in the reward token list from which to begin claiming rewards. * @return The index of the start position after the last claimed reward and the total number of reward tokens. */ function claimAllReward(uint256 _startPosition) public payable returns (uint256, uint256) { + // Get the total number of reward tokens available in the vault uint256 rewardTokensSize = rewardTokens.length; - address _token = feeConfig.token; - uint256 currentTime = block.timestamp; + // Loop through the reward tokens starting from the specified position for (uint256 i = _startPosition; i < rewardTokensSize && i < _startPosition + 10; i++) { - uint256 reward; + // Get the current reward token address address token = rewardTokens[i]; - reward = (tokensRewardInfo[token].amount - userContribution[msg.sender].lastClaimedAmountT[token]) - .mulDivDown(1, userContribution[msg.sender].sharesAmount); - - (uint256 unlockedReward, uint256 remainingReward) = calculateUnlockedReward( - reward, - userContribution[msg.sender].rewardStart, - userContribution[msg.sender].rewardEnd, - currentTime - ); - - userContribution[msg.sender].accumulatedReward += unlockedReward; - - userContribution[msg.sender].lastClaimedAmountT[token] = tokensRewardInfo[token].amount; - SafeHTS.safeTransferToken( - token, - address(this), - msg.sender, - int64(uint64(userContribution[msg.sender].accumulatedReward)) - ); - userContribution[msg.sender].accumulatedReward = 0; - - if (_token != address(0)) _deductFee(userContribution[msg.sender].accumulatedReward); + // Calculate the total unlocked reward for the caller for this token + uint256 totalUnlockedReward = getUserReward(token, msg.sender); + + // If there are no rewards to claim, skip to the next token + if (totalUnlockedReward == 0) { + continue; + } + + // Transfer the unlocked reward tokens from the vault to the caller + SafeHTS.safeTransferToken(token, address(this), msg.sender, int64(uint64(totalUnlockedReward))); } + + // Return the start position after the last claimed reward and the total number of reward tokens return (_startPosition, rewardTokensSize); } /** - * @dev Returns rewards for a user with fee considering. + * @dev Returns user reward of a specific token. + * + * This function calculates the total unlocked reward for a given user and token. + * It considers all the deposits made by the user and computes the unlocked rewards + * based on the reward periods. * * @param _user The user address. - * @param _rewardToken The reward address. - * @return unclaimedAmount The calculated rewards. + * @param _token The reward token address. + * @return unclaimedAmount The total amount of unclaimed rewards. */ - function getUserReward(address _user, address _rewardToken) public view returns (uint256 unclaimedAmount) { + function getUserReward(address _user, address _token) public view returns (uint256 unclaimedAmount) { + // Ensure the user address is not zero, which would be invalid require(_user != address(0), "Vault: User address can't be zero"); - require(_rewardToken != address(0), "Vault: Reward token address can't be zero"); - RewardsInfo storage _rewardInfo = tokensRewardInfo[_rewardToken]; - uint256 perShareAmount = _rewardInfo.amount; - UserInfo storage cInfo = userContribution[_user]; - uint256 userStakingTokenTotal = cInfo.sharesAmount; - uint256 perShareClaimedAmount = cInfo.lastClaimedAmountT[_rewardToken]; - uint256 perShareUnclaimedAmount = perShareAmount - perShareClaimedAmount; - uint256 reward = perShareUnclaimedAmount.mulDivDown(1, userStakingTokenTotal); + // Ensure the token address is not zero, which would be invalid + require(_token != address(0), "Vault: Token address can't be zero"); + + // Retrieve the user's info including their deposits + UserInfo storage userInfo = userContribution[_user]; + // Retrieve the reward info for the specified token + RewardsInfo storage rewardInfo = tokensRewardInfo[_token]; + + // Get the current time for reward calculations uint256 currentTime = block.timestamp; - (uint256 unlockedReward, ) = calculateUnlockedReward(reward, cInfo.rewardStart, cInfo.rewardEnd, currentTime); - unclaimedAmount = unlockedReward; + // Initialize total reward to zero + uint256 totalReward = 0; + + // Get the number of deposits the user has made + uint256 userDepositsLength = userInfo.deposits.length; + + // Get the number of reward periods for the token + uint256 rewardPeriodsLength = rewardInfo.rewardPeriods.length; + + // Loop through each deposit the user has made + for (uint256 i = 0; i < userDepositsLength; i++) { + // Get the specific deposit information + UserDeposit storage depositStr = userInfo.deposits[i]; + + // Initialize unlocked reward for this deposit to zero + uint256 unlockedReward = 0; + + // Calculate the end time for the vesting period of this deposit + uint256 vestingEndTime = depositStr.timestamp + rewardInfo.vestingPeriod; + + // Loop through each reward period for the token + for (uint256 j = 0; j < rewardPeriodsLength; j++) { + // Get the specific reward period information + RewardPeriod storage period = rewardInfo.rewardPeriods[j]; + + // Skip this period if it starts after the vesting period ends + if (period.startTime > vestingEndTime) { + continue; + } + + // Calculate the elapsed time for the current period + uint256 timeElapsed; + if (currentTime > vestingEndTime) { + // If the current time is past the vesting end time, calculate time up to the vesting end time + timeElapsed = vestingEndTime - period.startTime; + } else { + // Otherwise, calculate time up to the current time + timeElapsed = currentTime - period.startTime; + } + + // If the reward period has ended, adjust the elapsed time accordingly + if (period.endTime != 0 && currentTime > period.endTime) { + timeElapsed = period.endTime - period.startTime; + } + + // Calculate the unlocked reward for this period and add it to the total unlocked reward + unlockedReward += (depositStr.amount * period.rewardPerShare * timeElapsed) / rewardInfo.vestingPeriod; + } - if (feeConfig.feePercentage > 0) { - uint256 currentFee = _calculateFee(unclaimedAmount, feeConfig.feePercentage); - unclaimedAmount -= currentFee; + // Subtract any previously claimed rewards for this deposit + unlockedReward -= depositStr.claimedRewards[_token]; + + // Add the unlocked reward for this deposit to the total reward + totalReward += unlockedReward; } + + // Return the total unclaimed reward for the user + return totalReward; } /** @@ -531,31 +638,39 @@ contract HederaVault is IERC4626, FeeConfiguration, TokenBalancer, Ownable, Reen } /** - * @dev Calculates the unlocked reward amount. - * - * @param _reward The reward amount. - * @param _rewardStart The reward start time. - * @param _rewardEnd The reward end time. - * @param _currentTime The current time. - * @return unlockedReward The unlocked reward amount. - * @return remainingReward The remaining reward amount. + * @dev Adds a new reward period for a given token. + * + * This function sets up a new reward period, ensuring that the previous period ends at the current time. + * + * @param _token The reward token address. + * @param _amount The amount of reward token to add. + * @param _currentTime The current block timestamp. */ - function calculateUnlockedReward( - uint256 _reward, - uint256 _rewardStart, - uint256 _rewardEnd, - uint256 _currentTime - ) internal pure returns (uint256 unlockedReward, uint256 remainingReward) { - if (_currentTime <= _rewardStart) { - return (0, _reward); - } else if (_currentTime >= _rewardEnd) { - return (_reward, 0); - } else { - uint256 timeElapsed = _currentTime - _rewardStart; - uint256 totalVestingTime = _rewardEnd - _rewardStart; - unlockedReward = _reward.mulDivDown(timeElapsed, totalVestingTime); - remainingReward = _reward - unlockedReward; + function _addRewardPeriod(address _token, uint256 _amount, uint256 _currentTime) internal { + // Ensure the token address is not zero (an invalid address) + require(_token != address(0), "Vault: Token address can't be zero"); + // Ensure the amount is not zero + require(_amount != 0, "Vault: Amount can't be zero"); + // Ensure the current time is not zero + require(_currentTime != 0, "Vault: Current time can't be zero"); + + // Retrieve the rewards information for the specified token + RewardsInfo storage rewardInfo = tokensRewardInfo[_token]; + // Get the number of existing reward periods for this token + uint256 rewardPeriodsLength = rewardInfo.rewardPeriods.length; + + // If there are existing reward periods, update the end time of the last period + if (rewardPeriodsLength > 0) { + rewardInfo.rewardPeriods[rewardPeriodsLength - 1].endTime = _currentTime; } + + // Calculate the reward per share for the new period + uint256 rewardPerShare = _amount / assetTotalSupply; + + // Add a new reward period starting at the current time with the calculated reward per share + rewardInfo.rewardPeriods.push( + RewardPeriod({startTime: _currentTime, endTime: 0, rewardPerShare: rewardPerShare}) + ); } } diff --git a/contracts/erc4626/mocks/MockOracle.sol b/contracts/erc4626/mocks/MockOracle.sol index 16e63f3..a69dfd4 100644 --- a/contracts/erc4626/mocks/MockOracle.sol +++ b/contracts/erc4626/mocks/MockOracle.sol @@ -3,10 +3,13 @@ pragma solidity 0.8.24; import {IPyth} from "@pythnetwork/pyth-sdk-solidity/IPyth.sol"; import {PythStructs} from "@pythnetwork/pyth-sdk-solidity/PythStructs.sol"; +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; -contract MockPyth is IPyth { +contract MockOracle is IPyth, Ownable { mapping(bytes32 => PythStructs.Price) public prices; + constructor() Ownable(msg.sender) {} + // Function to set mock prices function setPrice(bytes32 id, int64 price, uint64 conf, int32 expo, uint publishTime) public { prices[id] = PythStructs.Price({price: price, conf: conf, expo: expo, publishTime: publishTime}); diff --git a/foundry.toml b/foundry.toml new file mode 100644 index 0000000..4f3bf9f --- /dev/null +++ b/foundry.toml @@ -0,0 +1,6 @@ +[profile.default] +src = 'contracts' +out = 'out' +libs = ['node_modules', 'lib'] +test = 'test' +cache_path = 'cache_forge' \ No newline at end of file diff --git a/out/AbstractModule.sol/AbstractModule.json b/out/AbstractModule.sol/AbstractModule.json new file mode 100644 index 0000000..2f5ab82 --- /dev/null +++ b/out/AbstractModule.sol/AbstractModule.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"bindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canComplianceBind","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComplianceBound","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPlugAndPlay","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"moduleBurnAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleCheck","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleMintAction","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleTransferAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"unbindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComplianceBound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ComplianceUnbound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"bindCompliance(address)":"4a932544","canComplianceBind(address)":"bcc21053","isComplianceBound(address)":"4cf4d295","isPlugAndPlay()":"e6f5e807","moduleBurnAction(address,uint256)":"372491a2","moduleCheck(address,address,uint256,address)":"013b7ce4","moduleMintAction(address,uint256)":"f104a8c9","moduleTransferAction(address,address,uint256)":"2cb7e1ec","name()":"06fdde03","unbindCompliance(address)":"0694a5fb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceUnbound\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"bindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"canComplianceBind\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"isComplianceBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPlugAndPlay\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleBurnAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"moduleCheck\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleMintAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleTransferAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"unbindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"bindCompliance(address)\":{\"details\":\"See {IModule-bindCompliance}.\"},\"canComplianceBind(address)\":{\"details\":\"checks whether compliance is suitable to bind to the module.\",\"params\":{\"_compliance\":\"address of the compliance contract\"}},\"isComplianceBound(address)\":{\"details\":\"See {IModule-isComplianceBound}.\"},\"isPlugAndPlay()\":{\"details\":\"getter for module plug & play status\"},\"moduleBurnAction(address,uint256)\":{\"details\":\"action performed on the module during a burn action this function is used to update variables of the module upon burning if it is required if the module does not require state updates in case of burn, this function remains empty This function can be called ONLY by the compliance contract itself (_compliance) This function can be called only on a compliance contract that is bound to the module\",\"params\":{\"_from\":\"address on which tokens are burnt\",\"_value\":\"amount of tokens burnt\"}},\"moduleCheck(address,address,uint256,address)\":{\"details\":\"compliance check on the module for a specific transaction on a specific compliance contract this function is used to check if the transfer is allowed by the module This function can be called only on a compliance contract that is bound to the module\",\"params\":{\"_compliance\":\"address of the compliance contract concerned by the transfer action the function returns TRUE if the module allows the transfer, FALSE otherwise\",\"_from\":\"address of the transfer sender\",\"_to\":\"address of the transfer receiver\",\"_value\":\"amount of tokens sent\"}},\"moduleMintAction(address,uint256)\":{\"details\":\"action performed on the module during a mint action this function is used to update variables of the module upon minting if it is required if the module does not require state updates in case of mint, this function remains empty This function can be called ONLY by the compliance contract itself (_compliance) This function can be called only on a compliance contract that is bound to the module\",\"params\":{\"_to\":\"address used for minting\",\"_value\":\"amount of tokens minted\"}},\"moduleTransferAction(address,address,uint256)\":{\"details\":\"action performed on the module during a transfer action this function is used to update variables of the module upon transfer if it is required if the module does not require state updates in case of transfer, this function remains empty This function can be called ONLY by the compliance contract itself (_compliance) This function can be called only on a compliance contract that is bound to the module\",\"params\":{\"_from\":\"address of the transfer sender\",\"_to\":\"address of the transfer receiver\",\"_value\":\"amount of tokens sent\"}},\"name()\":{\"details\":\"getter for the name of the module\",\"returns\":{\"_name\":\"the name of the module\"}},\"unbindCompliance(address)\":{\"details\":\"See {IModule-unbindCompliance}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ComplianceBound(address)\":{\"notice\":\"this event is emitted when the compliance contract is bound to the module. the event is emitted by the bindCompliance function `_compliance` is the address of the compliance contract being bound\"},\"ComplianceUnbound(address)\":{\"notice\":\"this event is emitted when the compliance contract is unbound from the module. the event is emitted by the unbindCompliance function `_compliance` is the address of the compliance contract being unbound\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/modular/modules/AbstractModule.sol\":\"AbstractModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/modules/AbstractModule.sol\":{\"keccak256\":\"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8\",\"dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu\"]},\"contracts/erc3643/compliance/modular/modules/IModule.sol\":{\"keccak256\":\"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c\",\"dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindCompliance"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"canComplianceBind","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPlugAndPlay","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleBurnAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"moduleCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleMintAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleTransferAction"},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindCompliance"}],"devdoc":{"kind":"dev","methods":{"bindCompliance(address)":{"details":"See {IModule-bindCompliance}."},"canComplianceBind(address)":{"details":"checks whether compliance is suitable to bind to the module.","params":{"_compliance":"address of the compliance contract"}},"isComplianceBound(address)":{"details":"See {IModule-isComplianceBound}."},"isPlugAndPlay()":{"details":"getter for module plug & play status"},"moduleBurnAction(address,uint256)":{"details":"action performed on the module during a burn action this function is used to update variables of the module upon burning if it is required if the module does not require state updates in case of burn, this function remains empty This function can be called ONLY by the compliance contract itself (_compliance) This function can be called only on a compliance contract that is bound to the module","params":{"_from":"address on which tokens are burnt","_value":"amount of tokens burnt"}},"moduleCheck(address,address,uint256,address)":{"details":"compliance check on the module for a specific transaction on a specific compliance contract this function is used to check if the transfer is allowed by the module This function can be called only on a compliance contract that is bound to the module","params":{"_compliance":"address of the compliance contract concerned by the transfer action the function returns TRUE if the module allows the transfer, FALSE otherwise","_from":"address of the transfer sender","_to":"address of the transfer receiver","_value":"amount of tokens sent"}},"moduleMintAction(address,uint256)":{"details":"action performed on the module during a mint action this function is used to update variables of the module upon minting if it is required if the module does not require state updates in case of mint, this function remains empty This function can be called ONLY by the compliance contract itself (_compliance) This function can be called only on a compliance contract that is bound to the module","params":{"_to":"address used for minting","_value":"amount of tokens minted"}},"moduleTransferAction(address,address,uint256)":{"details":"action performed on the module during a transfer action this function is used to update variables of the module upon transfer if it is required if the module does not require state updates in case of transfer, this function remains empty This function can be called ONLY by the compliance contract itself (_compliance) This function can be called only on a compliance contract that is bound to the module","params":{"_from":"address of the transfer sender","_to":"address of the transfer receiver","_value":"amount of tokens sent"}},"name()":{"details":"getter for the name of the module","returns":{"_name":"the name of the module"}},"unbindCompliance(address)":{"details":"See {IModule-unbindCompliance}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/modular/modules/AbstractModule.sol":"AbstractModule"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/modules/AbstractModule.sol":{"keccak256":"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3","urls":["bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8","dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/IModule.sol":{"keccak256":"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02","urls":["bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c","dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk"],"license":"GPL-3.0"}},"version":1},"id":44} \ No newline at end of file diff --git a/out/AbstractProxy.sol/AbstractProxy.json b/out/AbstractProxy.sol/AbstractProxy.json new file mode 100644 index 0000000..6e5ff3c --- /dev/null +++ b/out/AbstractProxy.sol/AbstractProxy.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"getImplementationAuthority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setImplementationAuthority","inputs":[{"name":"_newImplementationAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ImplementationAuthoritySet","inputs":[{"name":"_implementationAuthority","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getImplementationAuthority()":"2d5f1187","setImplementationAuthority(address)":"92dd9d65"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_implementationAuthority\",\"type\":\"address\"}],\"name\":\"ImplementationAuthoritySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getImplementationAuthority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newImplementationAuthority\",\"type\":\"address\"}],\"name\":\"setImplementationAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"getImplementationAuthority()\":{\"details\":\"See {IProxy-getImplementationAuthority}.\"},\"setImplementationAuthority(address)\":{\"details\":\"See {IProxy-setImplementationAuthority}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ImplementationAuthoritySet(address)\":{\"notice\":\"events\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/proxy/AbstractProxy.sol\":\"AbstractProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/proxy/AbstractProxy.sol\":{\"keccak256\":\"0x25dca1861c6dd72695b0b509da29cfb0fcce7c1ac1df0a0266f444596affc3f4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://221fb9fd02e0db96ff0ce584de79edefeb3b66a820c4dfab788147c0d32743fc\",\"dweb:/ipfs/QmcTatYqxSryAPkrqpvy3A9eFNoa13WjE48jitjBYwB7wq\"]},\"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol\":{\"keccak256\":\"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa\",\"dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc\"]},\"contracts/erc3643/proxy/interface/IProxy.sol\":{\"keccak256\":\"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65\",\"dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"_implementationAuthority","type":"address","indexed":true}],"type":"event","name":"ImplementationAuthoritySet","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"getImplementationAuthority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_newImplementationAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setImplementationAuthority"}],"devdoc":{"kind":"dev","methods":{"getImplementationAuthority()":{"details":"See {IProxy-getImplementationAuthority}."},"setImplementationAuthority(address)":{"details":"See {IProxy-setImplementationAuthority}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/proxy/AbstractProxy.sol":"AbstractProxy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/proxy/AbstractProxy.sol":{"keccak256":"0x25dca1861c6dd72695b0b509da29cfb0fcce7c1ac1df0a0266f444596affc3f4","urls":["bzz-raw://221fb9fd02e0db96ff0ce584de79edefeb3b66a820c4dfab788147c0d32743fc","dweb:/ipfs/QmcTatYqxSryAPkrqpvy3A9eFNoa13WjE48jitjBYwB7wq"],"license":"GPL-3.0"},"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol":{"keccak256":"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5","urls":["bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa","dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc"],"license":"GPL-3.0"},"contracts/erc3643/proxy/interface/IProxy.sol":{"keccak256":"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536","urls":["bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65","dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"}},"version":1},"id":63} \ No newline at end of file diff --git a/out/AccessControl.sol/AccessControl.json b/out/AccessControl.sol/AccessControl.json new file mode 100644 index 0000000..d26a16a --- /dev/null +++ b/out/AccessControl.sol/AccessControl.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/access/AccessControl.sol":"AccessControl"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":139} \ No newline at end of file diff --git a/out/Address.sol/Address.json b/out/Address.sol/Address.json new file mode 100644 index 0000000..0662030 --- /dev/null +++ b/out/Address.sol/Address.json @@ -0,0 +1 @@ +{"abi":[{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122086d05705c721146f89ddfa8f99c4428cf5f6d1aabbe13940ebbb8e034ba4172864736f6c63430008180033","sourceMap":"195:6066:151:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;195:6066:151;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122086d05705c721146f89ddfa8f99c4428cf5f6d1aabbe13940ebbb8e034ba4172864736f6c63430008180033","sourceMap":"195:6066:151:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/Address.sol":"Address"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"}},"version":1},"id":151} \ No newline at end of file diff --git a/out/AgentManager.sol/AgentManager.json b/out/AgentManager.sol/AgentManager.json new file mode 100644 index 0000000..8b5e912 --- /dev/null +++ b/out/AgentManager.sol/AgentManager.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_token","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"addAgentAdmin","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addComplianceAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addFreezer","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addRecoveryAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addSupplyModifier","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTransferManager","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addWhiteListManager","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callBatchBurn","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callBatchForcedTransfer","inputs":[{"name":"_fromList","type":"address[]","internalType":"address[]"},{"name":"_toList","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callBatchFreezePartialTokens","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callBatchMint","inputs":[{"name":"_toList","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callBatchSetAddressFrozen","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_freeze","type":"bool[]","internalType":"bool[]"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callBatchUnfreezePartialTokens","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callBurn","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callDeleteIdentity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callForcedTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callFreezePartialTokens","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callMint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callPause","inputs":[{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callRecoveryAddress","inputs":[{"name":"_lostWallet","type":"address","internalType":"address"},{"name":"_newWallet","type":"address","internalType":"address"},{"name":"_onchainID","type":"address","internalType":"address"},{"name":"_managerOnchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callRegisterIdentity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"},{"name":"_country","type":"uint16","internalType":"uint16"},{"name":"_managerOnchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callSetAddressFrozen","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_freeze","type":"bool","internalType":"bool"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callUnfreezePartialTokens","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callUnpause","inputs":[{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callUpdateCountry","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_country","type":"uint16","internalType":"uint16"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callUpdateIdentity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_identity","type":"address","internalType":"contract IIdentity"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgentAdmin","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComplianceAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isFreezer","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isRecoveryAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSupplyModifier","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTransferManager","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWhiteListManager","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgentAdmin","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeComplianceAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeFreezer","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeRecoveryAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeSupplyModifier","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTransferManager","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeWhiteListManager","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IToken"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"},{"name":"_role","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"RoleRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"},{"name":"_role","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162003016380380620030168339810160408190526200003491620000dd565b33806200005b57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b62000066816200008d565b50600880546001600160a01b0319166001600160a01b03929092169190911790556200010f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215620000f057600080fd5b81516001600160a01b03811681146200010857600080fd5b9392505050565b612ef7806200011f6000396000f3fe608060405234801561001057600080fd5b50600436106102745760003560e01c8063715018a611610151578063b673266a116100c3578063cdf1b69311610087578063cdf1b69314610569578063d5451e521461057c578063e86c64311461058f578063f1e92173146105a2578063f2fde38b146105b5578063fc0c546a146105c857600080fd5b8063b673266a1461050a578063bd92fcfe1461051d578063bea0790a14610530578063c6006c9a14610543578063c8777b501461055657600080fd5b80638da5cb5b116101155780638da5cb5b1461048657806394452821146104ab578063965e61ea146104be57806396df6f27146104d1578063a6a7d4e2146104e4578063aca277e1146104f757600080fd5b8063715018a6146104325780637489453d1461043a5780637ad78a461461044d5780637d684ff714610460578063860a2bcf1461047357600080fd5b806339cc8d90116101ea5780634599fb7b116101ae5780634599fb7b146103c05780634aff432c146103d3578063526606c9146103e657806365d07b2e146103f95780636b8c82b51461040c5780636c65fd6a1461041f57600080fd5b806339cc8d901461036157806339ed7a40146103745780633cdf8000146103875780633dc1c1761461039a57806341e6aa5d146103ad57600080fd5b80632001c3501161023c5780632001c350146102ef5780632228a6cf1461030257806324fdc360146103155780632acd200014610328578063393694a71461033b5780633966904d1461034e57600080fd5b80630102acff14610279578063042a36061461028e5780630878c410146102b657806314f2d276146102c957806315d8ca62146102dc575b600080fd5b61028c6102873660046127a7565b6105db565b005b6102a161029c3660046127e9565b610712565b60405190151581526020015b60405180910390f35b61028c6102c4366004612859565b610725565b61028c6102d73660046127e9565b610856565b61028c6102ea3660046127e9565b610902565b6102a16102fd3660046127e9565b6109a1565b61028c6103103660046128f4565b6109ae565b61028c6103233660046127e9565b610b21565b61028c6103363660046127e9565b610c4e565b61028c6103493660046127a7565b610ce6565b61028c61035c3660046127e9565b610de1565b61028c61036f3660046127e9565b610e82565b61028c6103823660046127a7565b610f94565b61028c6103953660046127e9565b61108f565b61028c6103a8366004612859565b61112f565b61028c6103bb3660046127a7565b611227565b6102a16103ce3660046127e9565b611322565b61028c6103e13660046127e9565b61132f565b61028c6103f43660046127e9565b6113d0565b61028c6104073660046127e9565b611468565b61028c61041a366004612859565b611503565b6102a161042d3660046127e9565b6115fb565b61028c611608565b61028c6104483660046127e9565b61161c565b6102a161045b3660046127e9565b6116ba565b61028c61046e366004612859565b6116c7565b61028c6104813660046127e9565b6117bf565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016102ad565b61028c6104b9366004612859565b61185e565b61028c6104cc3660046127e9565b611956565b61028c6104df366004612940565b6119f6565b61028c6104f2366004612970565b611af2565b61028c6105053660046129cc565b611c70565b61028c610518366004612a05565b611e0a565b6102a161052b3660046127e9565b611f41565b61028c61053e366004612ab3565b611f4e565b61028c6105513660046127e9565b6120fc565b61028c6105643660046127e9565b61219c565b61028c6105773660046127e9565b61223a565b61028c61058a366004612af2565b6122d5565b6102a161059d3660046127e9565b612446565b61028c6105b0366004612b22565b612453565b61028c6105c33660046127e9565b612556565b600854610493906001600160a01b031681565b6105e481610712565b80156106815750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa15801561065d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106819190612b6a565b6106a65760405162461bcd60e51b815260040161069d90612b87565b60405180910390fd5b6008546040516340c10f1960e01b81526001600160a01b03858116600483015260248201859052909116906340c10f19906044015b600060405180830381600087803b1580156106f557600080fd5b505af1158015610709573d6000803e3d6000fd5b50505050505050565b600061071f600183612594565b92915050565b61072e816115fb565b80156107cb5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa1580156107a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cb9190612b6a565b6107e75760405162461bcd60e51b815260040161069d90612bca565b600854604051634710362d60e01b81526001600160a01b0390911690634710362d9061081d908890889088908890600401612c7c565b600060405180830381600087803b15801561083757600080fd5b505af115801561084b573d6000803e3d6000fd5b505050505050505050565b336108696000546001600160a01b031690565b6001600160a01b03161480610882575061088233611322565b61089e5760405162461bcd60e51b815260040161069d90612cae565b6108a9600382612617565b604080518082018252600f81526e2a3930b739b332b926b0b730b3b2b960891b602082015290516001600160a01b03831690600080516020612ea2833981519152906108f6908490612ce5565b60405180910390a25050565b336109156000546001600160a01b031690565b6001600160a01b0316148061092e575061092e33611322565b61094a5760405162461bcd60e51b815260040161069d90612cae565b610955600182612617565b604080518082018252600e81526d29bab838363ca6b7b234b334b2b960911b602082015290516001600160a01b03831690600080516020612ea2833981519152906108f6908490612ce5565b600061071f600583612594565b6109b781611f41565b8015610a545750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015610a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a549190612b6a565b610a705760405162461bcd60e51b815260040161069d90612d34565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae79190612d79565b604051633b239a7f60e01b81526001600160a01b03858116600483015261ffff851660248301529190911690633b239a7f906044016106db565b610b2a816115fb565b8015610bc75750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015610ba3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc79190612b6a565b610be35760405162461bcd60e51b815260040161069d90612bca565b600860009054906101000a90046001600160a01b03166001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c3357600080fd5b505af1158015610c47573d6000803e3d6000fd5b5050505050565b33610c616000546001600160a01b031690565b6001600160a01b03161480610c7a5750610c7a33611322565b610c965760405162461bcd60e51b815260040161069d90612cae565b610ca1600282612693565b6040805180820182526007815266233932b2bd32b960c91b602082015290516001600160a01b03831690600080516020612e82833981519152906108f6908490612ce5565b610cef816115fb565b8015610d8c5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015610d68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8c9190612b6a565b610da85760405162461bcd60e51b815260040161069d90612bca565b600854604051631fe56f7d60e01b81526001600160a01b0385811660048301526024820185905290911690631fe56f7d906044016106db565b33610df46000546001600160a01b031690565b6001600160a01b03161480610e0d5750610e0d33611322565b610e295760405162461bcd60e51b815260040161069d90612cae565b610e34600682612617565b604080518082018252601081526f2bb434ba32a634b9ba26b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020612ea2833981519152906108f6908490612ce5565b610e8b816115fb565b8015610f285750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015610f04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f289190612b6a565b610f445760405162461bcd60e51b815260040161069d90612bca565b600860009054906101000a90046001600160a01b03166001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c3357600080fd5b610f9d816115fb565b801561103a5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611016573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103a9190612b6a565b6110565760405162461bcd60e51b815260040161069d90612bca565b60085460405163125c4a3360e01b81526001600160a01b038581166004830152602482018590529091169063125c4a33906044016106db565b336110a26000546001600160a01b031690565b6001600160a01b031614806110bb57506110bb33611322565b6110d75760405162461bcd60e51b815260040161069d90612cae565b6110e2600582612617565b604080518082018252600f81526e10dbdb5c1b1a585b98d95059d95b9d608a1b602082015290516001600160a01b03831690600080516020612ea2833981519152906108f6908490612ce5565b61113881610712565b80156111d55750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa1580156111b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d59190612b6a565b6111f15760405162461bcd60e51b815260040161069d90612b87565b600854604051636857310760e01b81526001600160a01b039091169063685731079061081d908890889088908890600401612c7c565b61123081610712565b80156112cd5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa1580156112a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cd9190612b6a565b6112e95760405162461bcd60e51b815260040161069d90612b87565b600854604051632770a7eb60e21b81526001600160a01b0385811660048301526024820185905290911690639dc29fac906044016106db565b600061071f600783612594565b336113426000546001600160a01b031690565b6001600160a01b0316148061135b575061135b33611322565b6113775760405162461bcd60e51b815260040161069d90612cae565b611382600682612693565b604080518082018252601081526f2bb434ba32a634b9ba26b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020612e82833981519152906108f6908490612ce5565b336113e36000546001600160a01b031690565b6001600160a01b031614806113fc57506113fc33611322565b6114185760405162461bcd60e51b815260040161069d90612cae565b611423600282612617565b6040805180820182526007815266233932b2bd32b960c91b602082015290516001600160a01b03831690600080516020612ea2833981519152906108f6908490612ce5565b3361147b6000546001600160a01b031690565b6001600160a01b03161480611494575061149433611322565b6114b05760405162461bcd60e51b815260040161069d90612cae565b6114bb600782612693565b604080518082018252600a81526920b3b2b73a20b236b4b760b11b602082015290516001600160a01b03831690600080516020612e82833981519152906108f6908490612ce5565b61150c816115fb565b80156115a95750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611585573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a99190612b6a565b6115c55760405162461bcd60e51b815260040161069d90612bca565b600854604051631a7af37960e01b81526001600160a01b0390911690631a7af3799061081d908890889088908890600401612d96565b600061071f600283612594565b611610612715565b61161a6000612742565b565b3361162f6000546001600160a01b031690565b6001600160a01b03161480611648575061164833611322565b6116645760405162461bcd60e51b815260040161069d90612cae565b61166f600482612617565b604080518082018252600d81526c149958dbdd995c9e5059d95b9d609a1b602082015290516001600160a01b03831690600080516020612ea2833981519152906108f6908490612ce5565b600061071f600483612594565b6116d0816115fb565b801561176d5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176d9190612b6a565b6117895760405162461bcd60e51b815260040161069d90612bca565b600854604051631f8fcbf560e31b81526001600160a01b039091169063fc7e5fa89061081d908890889088908890600401612c7c565b336117d26000546001600160a01b031690565b6001600160a01b031614806117eb57506117eb33611322565b6118075760405162461bcd60e51b815260040161069d90612cae565b611812600182612693565b604080518082018252600e81526d29bab838363ca6b7b234b334b2b960911b602082015290516001600160a01b03831690600080516020612e82833981519152906108f6908490612ce5565b61186781610712565b80156119045750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa1580156118e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119049190612b6a565b6119205760405162461bcd60e51b815260040161069d90612b87565b600854604051634a6cc67760e01b81526001600160a01b0390911690634a6cc6779061081d908890889088908890600401612c7c565b336119696000546001600160a01b031690565b6001600160a01b03161480611982575061198233611322565b61199e5760405162461bcd60e51b815260040161069d90612cae565b6119a9600382612693565b604080518082018252600f81526e2a3930b739b332b926b0b730b3b2b960891b602082015290516001600160a01b03831690600080516020612e82833981519152906108f6908490612ce5565b6119ff816115fb565b8015611a9c5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611a78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9c9190612b6a565b611ab85760405162461bcd60e51b815260040161069d90612bca565b60085460405163c69c09cf60e01b81526001600160a01b03858116600483015284151560248301529091169063c69c09cf906044016106db565b611afb816116ba565b8015611b985750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611b74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b989190612b6a565b611bef5760405162461bcd60e51b815260206004820152602260248201527f526f6c653a2053656e646572206973204e4f54205265636f76657279204167656044820152611b9d60f21b606482015260840161069d565b600854604051634942ca4560e11b81526001600160a01b0386811660048301528581166024830152848116604483015290911690639285948a906064015b6020604051808303816000875af1158015611c4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c479190612b6a565b611c7981611f41565b8015611d165750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611cf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d169190612b6a565b611d325760405162461bcd60e51b815260040161069d90612d34565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da99190612d79565b60405163a8d29d1d60e01b81526001600160a01b038481166004830152919091169063a8d29d1d90602401600060405180830381600087803b158015611dee57600080fd5b505af1158015611e02573d6000803e3d6000fd5b505050505050565b611e1381612446565b8015611eb05750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611e8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb09190612b6a565b611ecc5760405162461bcd60e51b815260040161069d90612df4565b6008546040516310a91eaf60e21b81526001600160a01b03909116906342a47abc90611f06908a908a908a908a908a908a90600401612e38565b600060405180830381600087803b158015611f2057600080fd5b505af1158015611f34573d6000803e3d6000fd5b5050505050505050505050565b600061071f600683612594565b611f5781611f41565b8015611ff45750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611fd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff49190612b6a565b6120105760405162461bcd60e51b815260040161069d90612d34565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120879190612d79565b60405163022a501f60e51b81526001600160a01b038681166004830152858116602483015261ffff85166044830152919091169063454a03e090606401600060405180830381600087803b1580156120de57600080fd5b505af11580156120f2573d6000803e3d6000fd5b5050505050505050565b3361210f6000546001600160a01b031690565b6001600160a01b03161480612128575061212833611322565b6121445760405162461bcd60e51b815260040161069d90612cae565b61214f600582612693565b604080518082018252600f81526e10dbdb5c1b1a585b98d95059d95b9d608a1b602082015290516001600160a01b03831690600080516020612e82833981519152906108f6908490612ce5565b336121af6000546001600160a01b031690565b6001600160a01b031614806121c857506121c833611322565b6121e45760405162461bcd60e51b815260040161069d90612cae565b6121ef600482612693565b604080518082018252600d81526c149958dbdd995c9e5059d95b9d609a1b602082015290516001600160a01b03831690600080516020612e82833981519152906108f6908490612ce5565b3361224d6000546001600160a01b031690565b6001600160a01b03161480612266575061226633611322565b6122825760405162461bcd60e51b815260040161069d90612cae565b61228d600782612617565b604080518082018252600a81526920b3b2b73a20b236b4b760b11b602082015290516001600160a01b03831690600080516020612ea2833981519152906108f6908490612ce5565b6122de81611f41565b801561237b5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015612357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237b9190612b6a565b6123975760405162461bcd60e51b815260040161069d90612d34565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240e9190612d79565b604051638e098ca160e01b81526001600160a01b03858116600483015284811660248301529190911690638e098ca1906044016106db565b600061071f600383612594565b61245c81612446565b80156124f95750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa1580156124d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f99190612b6a565b6125155760405162461bcd60e51b815260040161069d90612df4565b600854604051639fc1d0e760e01b81526001600160a01b03868116600483015285811660248301526044820185905290911690639fc1d0e790606401611c2d565b61255e612715565b6001600160a01b03811661258857604051631e4fbdf760e01b81526000600482015260240161069d565b61259181612742565b50565b60006001600160a01b0382166125f75760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840161069d565b506001600160a01b03166000908152602091909152604090205460ff1690565b6126218282612594565b1561266e5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640161069d565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61269d8282612594565b6126f35760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b606482015260840161069d565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6000546001600160a01b0316331461161a5760405163118cdaa760e01b815233600482015260240161069d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461259157600080fd5b6000806000606084860312156127bc57600080fd5b83356127c781612792565b92506020840135915060408401356127de81612792565b809150509250925092565b6000602082840312156127fb57600080fd5b813561280681612792565b9392505050565b60008083601f84011261281f57600080fd5b50813567ffffffffffffffff81111561283757600080fd5b6020830191508360208260051b850101111561285257600080fd5b9250929050565b60008060008060006060868803121561287157600080fd5b853567ffffffffffffffff8082111561288957600080fd5b61289589838a0161280d565b909750955060208801359150808211156128ae57600080fd5b506128bb8882890161280d565b90945092505060408601356128cf81612792565b809150509295509295909350565b803561ffff811681146128ef57600080fd5b919050565b60008060006060848603121561290957600080fd5b833561291481612792565b9250612922602085016128dd565b915060408401356127de81612792565b801515811461259157600080fd5b60008060006060848603121561295557600080fd5b833561296081612792565b9250602084013561292281612932565b6000806000806080858703121561298657600080fd5b843561299181612792565b935060208501356129a181612792565b925060408501356129b181612792565b915060608501356129c181612792565b939692955090935050565b600080604083850312156129df57600080fd5b82356129ea81612792565b915060208301356129fa81612792565b809150509250929050565b60008060008060008060006080888a031215612a2057600080fd5b873567ffffffffffffffff80821115612a3857600080fd5b612a448b838c0161280d565b909950975060208a0135915080821115612a5d57600080fd5b612a698b838c0161280d565b909750955060408a0135915080821115612a8257600080fd5b50612a8f8a828b0161280d565b9094509250506060880135612aa381612792565b8091505092959891949750929550565b60008060008060808587031215612ac957600080fd5b8435612ad481612792565b93506020850135612ae481612792565b92506129b1604086016128dd565b600080600060608486031215612b0757600080fd5b8335612b1281612792565b9250602084013561292281612792565b60008060008060808587031215612b3857600080fd5b8435612b4381612792565b93506020850135612b5381612792565b92506040850135915060608501356129c181612792565b600060208284031215612b7c57600080fd5b815161280681612932565b60208082526023908201527f526f6c653a2053656e646572206973204e4f5420537570706c79204d6f64696660408201526234b2b960e91b606082015260800190565b6020808252601b908201527f526f6c653a2053656e646572206973204e4f5420467265657a65720000000000604082015260600190565b8183526000602080850194508260005b85811015612c3f578135612c2481612792565b6001600160a01b031687529582019590820190600101612c11565b509495945050505050565b81835260006001600160fb1b03831115612c6357600080fd5b8260051b80836020870137939093016020019392505050565b604081526000612c90604083018688612c01565b8281036020840152612ca3818587612c4a565b979650505050505050565b60208082526019908201527f526f6c653a2053656e646572206973204e4f542041646d696e00000000000000604082015260600190565b60006020808352835180602085015260005b81811015612d1357858101830151858201604001528201612cf7565b506000604082860101526040601f19601f8301168501019250505092915050565b60208082526025908201527f526f6c653a2053656e646572206973204e4f542057686974654c697374204d616040820152643730b3b2b960d91b606082015260800190565b600060208284031215612d8b57600080fd5b815161280681612792565b604081526000612daa604083018688612c01565b8281036020848101919091528482528591810160005b86811015612de7578335612dd381612932565b151582529282019290820190600101612dc0565b5098975050505050505050565b60208082526024908201527f526f6c653a2053656e646572206973204e4f54205472616e73666572204d616e60408201526330b3b2b960e11b606082015260800190565b606081526000612e4c60608301888a612c01565b8281036020840152612e5f818789612c01565b90508281036040840152612e74818587612c4a565b999850505050505050505056fed211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803abfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489a264697066735822122086b540201eeb8c186f23bf297cd0ff30e053eb0ab1e6222785619193b5d359ea64736f6c63430008180033","sourceMap":"4024:17189:90:-:0;;;4153:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4614:10:91;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;455:51:165;428:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;4191:5:90;:22;;-1:-1:-1;;;;;;4191:22:90;-1:-1:-1;;;;;4191:22:90;;;;;;;;;;4024:17189;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:290:165:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:165;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:165:o;309:203::-;4024:17189:90;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106102745760003560e01c8063715018a611610151578063b673266a116100c3578063cdf1b69311610087578063cdf1b69314610569578063d5451e521461057c578063e86c64311461058f578063f1e92173146105a2578063f2fde38b146105b5578063fc0c546a146105c857600080fd5b8063b673266a1461050a578063bd92fcfe1461051d578063bea0790a14610530578063c6006c9a14610543578063c8777b501461055657600080fd5b80638da5cb5b116101155780638da5cb5b1461048657806394452821146104ab578063965e61ea146104be57806396df6f27146104d1578063a6a7d4e2146104e4578063aca277e1146104f757600080fd5b8063715018a6146104325780637489453d1461043a5780637ad78a461461044d5780637d684ff714610460578063860a2bcf1461047357600080fd5b806339cc8d90116101ea5780634599fb7b116101ae5780634599fb7b146103c05780634aff432c146103d3578063526606c9146103e657806365d07b2e146103f95780636b8c82b51461040c5780636c65fd6a1461041f57600080fd5b806339cc8d901461036157806339ed7a40146103745780633cdf8000146103875780633dc1c1761461039a57806341e6aa5d146103ad57600080fd5b80632001c3501161023c5780632001c350146102ef5780632228a6cf1461030257806324fdc360146103155780632acd200014610328578063393694a71461033b5780633966904d1461034e57600080fd5b80630102acff14610279578063042a36061461028e5780630878c410146102b657806314f2d276146102c957806315d8ca62146102dc575b600080fd5b61028c6102873660046127a7565b6105db565b005b6102a161029c3660046127e9565b610712565b60405190151581526020015b60405180910390f35b61028c6102c4366004612859565b610725565b61028c6102d73660046127e9565b610856565b61028c6102ea3660046127e9565b610902565b6102a16102fd3660046127e9565b6109a1565b61028c6103103660046128f4565b6109ae565b61028c6103233660046127e9565b610b21565b61028c6103363660046127e9565b610c4e565b61028c6103493660046127a7565b610ce6565b61028c61035c3660046127e9565b610de1565b61028c61036f3660046127e9565b610e82565b61028c6103823660046127a7565b610f94565b61028c6103953660046127e9565b61108f565b61028c6103a8366004612859565b61112f565b61028c6103bb3660046127a7565b611227565b6102a16103ce3660046127e9565b611322565b61028c6103e13660046127e9565b61132f565b61028c6103f43660046127e9565b6113d0565b61028c6104073660046127e9565b611468565b61028c61041a366004612859565b611503565b6102a161042d3660046127e9565b6115fb565b61028c611608565b61028c6104483660046127e9565b61161c565b6102a161045b3660046127e9565b6116ba565b61028c61046e366004612859565b6116c7565b61028c6104813660046127e9565b6117bf565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016102ad565b61028c6104b9366004612859565b61185e565b61028c6104cc3660046127e9565b611956565b61028c6104df366004612940565b6119f6565b61028c6104f2366004612970565b611af2565b61028c6105053660046129cc565b611c70565b61028c610518366004612a05565b611e0a565b6102a161052b3660046127e9565b611f41565b61028c61053e366004612ab3565b611f4e565b61028c6105513660046127e9565b6120fc565b61028c6105643660046127e9565b61219c565b61028c6105773660046127e9565b61223a565b61028c61058a366004612af2565b6122d5565b6102a161059d3660046127e9565b612446565b61028c6105b0366004612b22565b612453565b61028c6105c33660046127e9565b612556565b600854610493906001600160a01b031681565b6105e481610712565b80156106815750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa15801561065d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106819190612b6a565b6106a65760405162461bcd60e51b815260040161069d90612b87565b60405180910390fd5b6008546040516340c10f1960e01b81526001600160a01b03858116600483015260248201859052909116906340c10f19906044015b600060405180830381600087803b1580156106f557600080fd5b505af1158015610709573d6000803e3d6000fd5b50505050505050565b600061071f600183612594565b92915050565b61072e816115fb565b80156107cb5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa1580156107a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cb9190612b6a565b6107e75760405162461bcd60e51b815260040161069d90612bca565b600854604051634710362d60e01b81526001600160a01b0390911690634710362d9061081d908890889088908890600401612c7c565b600060405180830381600087803b15801561083757600080fd5b505af115801561084b573d6000803e3d6000fd5b505050505050505050565b336108696000546001600160a01b031690565b6001600160a01b03161480610882575061088233611322565b61089e5760405162461bcd60e51b815260040161069d90612cae565b6108a9600382612617565b604080518082018252600f81526e2a3930b739b332b926b0b730b3b2b960891b602082015290516001600160a01b03831690600080516020612ea2833981519152906108f6908490612ce5565b60405180910390a25050565b336109156000546001600160a01b031690565b6001600160a01b0316148061092e575061092e33611322565b61094a5760405162461bcd60e51b815260040161069d90612cae565b610955600182612617565b604080518082018252600e81526d29bab838363ca6b7b234b334b2b960911b602082015290516001600160a01b03831690600080516020612ea2833981519152906108f6908490612ce5565b600061071f600583612594565b6109b781611f41565b8015610a545750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015610a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a549190612b6a565b610a705760405162461bcd60e51b815260040161069d90612d34565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae79190612d79565b604051633b239a7f60e01b81526001600160a01b03858116600483015261ffff851660248301529190911690633b239a7f906044016106db565b610b2a816115fb565b8015610bc75750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015610ba3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc79190612b6a565b610be35760405162461bcd60e51b815260040161069d90612bca565b600860009054906101000a90046001600160a01b03166001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c3357600080fd5b505af1158015610c47573d6000803e3d6000fd5b5050505050565b33610c616000546001600160a01b031690565b6001600160a01b03161480610c7a5750610c7a33611322565b610c965760405162461bcd60e51b815260040161069d90612cae565b610ca1600282612693565b6040805180820182526007815266233932b2bd32b960c91b602082015290516001600160a01b03831690600080516020612e82833981519152906108f6908490612ce5565b610cef816115fb565b8015610d8c5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015610d68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8c9190612b6a565b610da85760405162461bcd60e51b815260040161069d90612bca565b600854604051631fe56f7d60e01b81526001600160a01b0385811660048301526024820185905290911690631fe56f7d906044016106db565b33610df46000546001600160a01b031690565b6001600160a01b03161480610e0d5750610e0d33611322565b610e295760405162461bcd60e51b815260040161069d90612cae565b610e34600682612617565b604080518082018252601081526f2bb434ba32a634b9ba26b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020612ea2833981519152906108f6908490612ce5565b610e8b816115fb565b8015610f285750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015610f04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f289190612b6a565b610f445760405162461bcd60e51b815260040161069d90612bca565b600860009054906101000a90046001600160a01b03166001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c3357600080fd5b610f9d816115fb565b801561103a5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611016573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103a9190612b6a565b6110565760405162461bcd60e51b815260040161069d90612bca565b60085460405163125c4a3360e01b81526001600160a01b038581166004830152602482018590529091169063125c4a33906044016106db565b336110a26000546001600160a01b031690565b6001600160a01b031614806110bb57506110bb33611322565b6110d75760405162461bcd60e51b815260040161069d90612cae565b6110e2600582612617565b604080518082018252600f81526e10dbdb5c1b1a585b98d95059d95b9d608a1b602082015290516001600160a01b03831690600080516020612ea2833981519152906108f6908490612ce5565b61113881610712565b80156111d55750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa1580156111b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d59190612b6a565b6111f15760405162461bcd60e51b815260040161069d90612b87565b600854604051636857310760e01b81526001600160a01b039091169063685731079061081d908890889088908890600401612c7c565b61123081610712565b80156112cd5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa1580156112a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cd9190612b6a565b6112e95760405162461bcd60e51b815260040161069d90612b87565b600854604051632770a7eb60e21b81526001600160a01b0385811660048301526024820185905290911690639dc29fac906044016106db565b600061071f600783612594565b336113426000546001600160a01b031690565b6001600160a01b0316148061135b575061135b33611322565b6113775760405162461bcd60e51b815260040161069d90612cae565b611382600682612693565b604080518082018252601081526f2bb434ba32a634b9ba26b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020612e82833981519152906108f6908490612ce5565b336113e36000546001600160a01b031690565b6001600160a01b031614806113fc57506113fc33611322565b6114185760405162461bcd60e51b815260040161069d90612cae565b611423600282612617565b6040805180820182526007815266233932b2bd32b960c91b602082015290516001600160a01b03831690600080516020612ea2833981519152906108f6908490612ce5565b3361147b6000546001600160a01b031690565b6001600160a01b03161480611494575061149433611322565b6114b05760405162461bcd60e51b815260040161069d90612cae565b6114bb600782612693565b604080518082018252600a81526920b3b2b73a20b236b4b760b11b602082015290516001600160a01b03831690600080516020612e82833981519152906108f6908490612ce5565b61150c816115fb565b80156115a95750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611585573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a99190612b6a565b6115c55760405162461bcd60e51b815260040161069d90612bca565b600854604051631a7af37960e01b81526001600160a01b0390911690631a7af3799061081d908890889088908890600401612d96565b600061071f600283612594565b611610612715565b61161a6000612742565b565b3361162f6000546001600160a01b031690565b6001600160a01b03161480611648575061164833611322565b6116645760405162461bcd60e51b815260040161069d90612cae565b61166f600482612617565b604080518082018252600d81526c149958dbdd995c9e5059d95b9d609a1b602082015290516001600160a01b03831690600080516020612ea2833981519152906108f6908490612ce5565b600061071f600483612594565b6116d0816115fb565b801561176d5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176d9190612b6a565b6117895760405162461bcd60e51b815260040161069d90612bca565b600854604051631f8fcbf560e31b81526001600160a01b039091169063fc7e5fa89061081d908890889088908890600401612c7c565b336117d26000546001600160a01b031690565b6001600160a01b031614806117eb57506117eb33611322565b6118075760405162461bcd60e51b815260040161069d90612cae565b611812600182612693565b604080518082018252600e81526d29bab838363ca6b7b234b334b2b960911b602082015290516001600160a01b03831690600080516020612e82833981519152906108f6908490612ce5565b61186781610712565b80156119045750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa1580156118e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119049190612b6a565b6119205760405162461bcd60e51b815260040161069d90612b87565b600854604051634a6cc67760e01b81526001600160a01b0390911690634a6cc6779061081d908890889088908890600401612c7c565b336119696000546001600160a01b031690565b6001600160a01b03161480611982575061198233611322565b61199e5760405162461bcd60e51b815260040161069d90612cae565b6119a9600382612693565b604080518082018252600f81526e2a3930b739b332b926b0b730b3b2b960891b602082015290516001600160a01b03831690600080516020612e82833981519152906108f6908490612ce5565b6119ff816115fb565b8015611a9c5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611a78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9c9190612b6a565b611ab85760405162461bcd60e51b815260040161069d90612bca565b60085460405163c69c09cf60e01b81526001600160a01b03858116600483015284151560248301529091169063c69c09cf906044016106db565b611afb816116ba565b8015611b985750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611b74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b989190612b6a565b611bef5760405162461bcd60e51b815260206004820152602260248201527f526f6c653a2053656e646572206973204e4f54205265636f76657279204167656044820152611b9d60f21b606482015260840161069d565b600854604051634942ca4560e11b81526001600160a01b0386811660048301528581166024830152848116604483015290911690639285948a906064015b6020604051808303816000875af1158015611c4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c479190612b6a565b611c7981611f41565b8015611d165750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611cf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d169190612b6a565b611d325760405162461bcd60e51b815260040161069d90612d34565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da99190612d79565b60405163a8d29d1d60e01b81526001600160a01b038481166004830152919091169063a8d29d1d90602401600060405180830381600087803b158015611dee57600080fd5b505af1158015611e02573d6000803e3d6000fd5b505050505050565b611e1381612446565b8015611eb05750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611e8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb09190612b6a565b611ecc5760405162461bcd60e51b815260040161069d90612df4565b6008546040516310a91eaf60e21b81526001600160a01b03909116906342a47abc90611f06908a908a908a908a908a908a90600401612e38565b600060405180830381600087803b158015611f2057600080fd5b505af1158015611f34573d6000803e3d6000fd5b5050505050505050505050565b600061071f600683612594565b611f5781611f41565b8015611ff45750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611fd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff49190612b6a565b6120105760405162461bcd60e51b815260040161069d90612d34565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120879190612d79565b60405163022a501f60e51b81526001600160a01b038681166004830152858116602483015261ffff85166044830152919091169063454a03e090606401600060405180830381600087803b1580156120de57600080fd5b505af11580156120f2573d6000803e3d6000fd5b5050505050505050565b3361210f6000546001600160a01b031690565b6001600160a01b03161480612128575061212833611322565b6121445760405162461bcd60e51b815260040161069d90612cae565b61214f600582612693565b604080518082018252600f81526e10dbdb5c1b1a585b98d95059d95b9d608a1b602082015290516001600160a01b03831690600080516020612e82833981519152906108f6908490612ce5565b336121af6000546001600160a01b031690565b6001600160a01b031614806121c857506121c833611322565b6121e45760405162461bcd60e51b815260040161069d90612cae565b6121ef600482612693565b604080518082018252600d81526c149958dbdd995c9e5059d95b9d609a1b602082015290516001600160a01b03831690600080516020612e82833981519152906108f6908490612ce5565b3361224d6000546001600160a01b031690565b6001600160a01b03161480612266575061226633611322565b6122825760405162461bcd60e51b815260040161069d90612cae565b61228d600782612617565b604080518082018252600a81526920b3b2b73a20b236b4b760b11b602082015290516001600160a01b03831690600080516020612ea2833981519152906108f6908490612ce5565b6122de81611f41565b801561237b5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015612357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237b9190612b6a565b6123975760405162461bcd60e51b815260040161069d90612d34565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240e9190612d79565b604051638e098ca160e01b81526001600160a01b03858116600483015284811660248301529190911690638e098ca1906044016106db565b600061071f600383612594565b61245c81612446565b80156124f95750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa1580156124d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f99190612b6a565b6125155760405162461bcd60e51b815260040161069d90612df4565b600854604051639fc1d0e760e01b81526001600160a01b03868116600483015285811660248301526044820185905290911690639fc1d0e790606401611c2d565b61255e612715565b6001600160a01b03811661258857604051631e4fbdf760e01b81526000600482015260240161069d565b61259181612742565b50565b60006001600160a01b0382166125f75760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840161069d565b506001600160a01b03166000908152602091909152604090205460ff1690565b6126218282612594565b1561266e5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640161069d565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61269d8282612594565b6126f35760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b606482015260840161069d565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6000546001600160a01b0316331461161a5760405163118cdaa760e01b815233600482015260240161069d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461259157600080fd5b6000806000606084860312156127bc57600080fd5b83356127c781612792565b92506020840135915060408401356127de81612792565b809150509250925092565b6000602082840312156127fb57600080fd5b813561280681612792565b9392505050565b60008083601f84011261281f57600080fd5b50813567ffffffffffffffff81111561283757600080fd5b6020830191508360208260051b850101111561285257600080fd5b9250929050565b60008060008060006060868803121561287157600080fd5b853567ffffffffffffffff8082111561288957600080fd5b61289589838a0161280d565b909750955060208801359150808211156128ae57600080fd5b506128bb8882890161280d565b90945092505060408601356128cf81612792565b809150509295509295909350565b803561ffff811681146128ef57600080fd5b919050565b60008060006060848603121561290957600080fd5b833561291481612792565b9250612922602085016128dd565b915060408401356127de81612792565b801515811461259157600080fd5b60008060006060848603121561295557600080fd5b833561296081612792565b9250602084013561292281612932565b6000806000806080858703121561298657600080fd5b843561299181612792565b935060208501356129a181612792565b925060408501356129b181612792565b915060608501356129c181612792565b939692955090935050565b600080604083850312156129df57600080fd5b82356129ea81612792565b915060208301356129fa81612792565b809150509250929050565b60008060008060008060006080888a031215612a2057600080fd5b873567ffffffffffffffff80821115612a3857600080fd5b612a448b838c0161280d565b909950975060208a0135915080821115612a5d57600080fd5b612a698b838c0161280d565b909750955060408a0135915080821115612a8257600080fd5b50612a8f8a828b0161280d565b9094509250506060880135612aa381612792565b8091505092959891949750929550565b60008060008060808587031215612ac957600080fd5b8435612ad481612792565b93506020850135612ae481612792565b92506129b1604086016128dd565b600080600060608486031215612b0757600080fd5b8335612b1281612792565b9250602084013561292281612792565b60008060008060808587031215612b3857600080fd5b8435612b4381612792565b93506020850135612b5381612792565b92506040850135915060608501356129c181612792565b600060208284031215612b7c57600080fd5b815161280681612932565b60208082526023908201527f526f6c653a2053656e646572206973204e4f5420537570706c79204d6f64696660408201526234b2b960e91b606082015260800190565b6020808252601b908201527f526f6c653a2053656e646572206973204e4f5420467265657a65720000000000604082015260600190565b8183526000602080850194508260005b85811015612c3f578135612c2481612792565b6001600160a01b031687529582019590820190600101612c11565b509495945050505050565b81835260006001600160fb1b03831115612c6357600080fd5b8260051b80836020870137939093016020019392505050565b604081526000612c90604083018688612c01565b8281036020840152612ca3818587612c4a565b979650505050505050565b60208082526019908201527f526f6c653a2053656e646572206973204e4f542041646d696e00000000000000604082015260600190565b60006020808352835180602085015260005b81811015612d1357858101830151858201604001528201612cf7565b506000604082860101526040601f19601f8301168501019250505092915050565b60208082526025908201527f526f6c653a2053656e646572206973204e4f542057686974654c697374204d616040820152643730b3b2b960d91b606082015260800190565b600060208284031215612d8b57600080fd5b815161280681612792565b604081526000612daa604083018688612c01565b8281036020848101919091528482528591810160005b86811015612de7578335612dd381612932565b151582529282019290820190600101612dc0565b5098975050505050505050565b60208082526024908201527f526f6c653a2053656e646572206973204e4f54205472616e73666572204d616e60408201526330b3b2b960e11b606082015260800190565b606081526000612e4c60608301888a612c01565b8281036020840152612e5f818789612c01565b90508281036040840152612e74818587612c4a565b999850505050505050505056fed211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803abfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489a264697066735822122086b540201eeb8c186f23bf297cd0ff30e053eb0ab1e6222785619193b5d359ea64736f6c63430008180033","sourceMap":"4024:17189:90:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8032:357;;;;;;:::i;:::-;;:::i;:::-;;8246:121:91;;;;;;:::i;:::-;;:::i;:::-;;;1047:14:165;;1040:22;1022:41;;1010:2;995:18;8246:121:91;;;;;;;;15988:424:90;;;;;;:::i;:::-;;:::i;5851:197:91:-;;;;;;:::i;:::-;;:::i;5077:194::-;;;;;;:::i;:::-;;:::i;7750:123::-;;;;;;:::i;:::-;;:::i;19902:418:90:-;;;;;;:::i;:::-;;:::i;6559:264::-;;;;;;:::i;:::-;;:::i;5664:181:91:-;;;;;;:::i;:::-;;:::i;15094:386:90:-;;;;;;:::i;:::-;;:::i;7081:200:91:-;;;;;;:::i;:::-;;:::i;7293:268:90:-;;;;;;:::i;:::-;;:::i;13290:382::-;;;;;;:::i;:::-;;:::i;6667:197:91:-;;;;;;:::i;:::-;;:::i;8870:399:90:-;;;;;;:::i;:::-;;:::i;9740:393::-;;;;;;:::i;:::-;;:::i;7501:112:91:-;;;;;;:::i;:::-;;:::i;7287:208::-;;;;;;:::i;:::-;;:::i;5485:173::-;;;;;;:::i;:::-;;:::i;4882:189::-;;;;;;:::i;:::-;;:::i;12387:409:90:-;;;;;;:::i;:::-;;:::i;8133:107:91:-;;;;;;:::i;:::-;;:::i;2293:101:141:-;;;:::i;6265:191:91:-;;;;;;:::i;:::-;;:::i;7879:119::-;;;;;;:::i;:::-;;:::i;14176:420:90:-;;;;;;:::i;:::-;;:::i;5277:202:91:-;;;;;;:::i;:::-;;:::i;1638:85:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;1638:85;;;-1:-1:-1;;;;;4390:32:165;;;4372:51;;4360:2;4345:18;1638:85:141;4226:203:165;10614:414:90;;;;;;:::i;:::-;;:::i;6054:205:91:-;;;;;;:::i;:::-;;:::i;11516:373:90:-;;;;;;:::i;:::-;;:::i;16924:461::-;;;;;;:::i;:::-;;:::i;20848:363::-;;;;;;:::i;:::-;;:::i;5623:470::-;;;;;;:::i;:::-;;:::i;7619:125:91:-;;;;;;:::i;:::-;;:::i;17936:487:90:-;;;;;;:::i;:::-;;:::i;6870:205:91:-;;;;;;:::i;:::-;;:::i;6462:199::-;;;;;;:::i;:::-;;:::i;4695:181::-;;;;;;:::i;:::-;;:::i;18951:425:90:-;;;;;;:::i;:::-;;:::i;8004:123:91:-;;;;;;:::i;:::-;;:::i;4712:409:90:-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;4127:19:90:-;;;;;-1:-1:-1;;;;;4127:19:90;;;8032:357;8172:37;8197:10;8172:16;:37::i;:::-;:115;;;;-1:-1:-1;8260:22:90;;;8271:10;8260:22;;;4372:51:165;-1:-1:-1;;;;;8225:24:90;;;;;4345:18:165;8260:22:90;;;-1:-1:-1;;8260:22:90;;;;;;;;;;8250:33;;8260:22;8250:33;;;;-1:-1:-1;;;;;;8225:62:90;;;;;;;;;;9704:25:165;8285:1:90;9745:18:165;;;9738:34;9677:18;;8225:62:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8151:197;;;;-1:-1:-1;;;8151:197:90;;;;;;;:::i;:::-;;;;;;;;;8358:5;;:24;;-1:-1:-1;;;8358:24:90;;-1:-1:-1;;;;;10629:32:165;;;8358:24:90;;;10611:51:165;10678:18;;;10671:34;;;8358:5:90;;;;:10;;10584:18:165;;8358:24:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8032:357;;;:::o;8246:121:91:-;8309:4;8332:28;:16;8353:6;8332:20;:28::i;:::-;8325:35;8246:121;-1:-1:-1;;8246:121:91:o;15988:424:90:-;16184:30;16202:10;16184:9;:30::i;:::-;:108;;;;-1:-1:-1;16265:22:90;;;16276:10;16265:22;;;4372:51:165;-1:-1:-1;;;;;16230:24:90;;;;;4345:18:165;16265:22:90;;;-1:-1:-1;;16265:22:90;;;;;;;;;;16255:33;;16265:22;16255:33;;;;-1:-1:-1;;;;;;16230:62:90;;;;;;;;;;9704:25:165;16290:1:90;9745:18:165;;;9738:34;9677:18;;16230:62:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16163:174;;;;-1:-1:-1;;;16163:174:90;;;;;;;:::i;:::-;16347:5;;:58;;-1:-1:-1;;;16347:58:90;;-1:-1:-1;;;;;16347:5:90;;;;:32;;:58;;16380:14;;;;16396:8;;;;16347:58;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15988:424;;;;;:::o;5851:197:91:-;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;5924:29:::1;:17;5946:6:::0;5924:21:::1;:29::i;:::-;5963:39;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5963:39:91::1;::::0;::::1;::::0;6017:24;;-1:-1:-1;;;;;6017:24:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;6017:24:91;::::1;::::0;5963:39;;6017:24:::1;:::i;:::-;;;;;;;;5914:134;5851:197:::0;:::o;5077:194::-;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;5149:28:::1;:16;5170:6:::0;5149:20:::1;:28::i;:::-;5187:38;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5187:38:91::1;::::0;::::1;::::0;5240:24;;-1:-1:-1;;;;;5240:24:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;5240:24:91;::::1;::::0;5187:38;;5240:24:::1;:::i;7750:123::-:0;7814:4;7837:29;:17;7859:6;7837:21;:29::i;19902:418:90:-;20060:39;20087:10;20060:18;:39::i;:::-;:117;;;;-1:-1:-1;20150:22:90;;;20161:10;20150:22;;;4372:51:165;-1:-1:-1;;;;;20115:24:90;;;;;4345:18:165;20150:22:90;;;-1:-1:-1;;20150:22:90;;;;;;;;;;20140:33;;20150:22;20140:33;;;;-1:-1:-1;;;;;;20115:62:90;;;;;;;;;;9704:25:165;20175:1:90;9745:18:165;;;9738:34;9677:18;;20115:62:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20039:202;;;;-1:-1:-1;;;20039:202:90;;;;;;;:::i;:::-;20251:5;;;;;;;;;-1:-1:-1;;;;;20251:5:90;-1:-1:-1;;;;;20251:22:90;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:62;;-1:-1:-1;;;20251:62:90;;-1:-1:-1;;;;;14227:32:165;;;20251:62:90;;;14209:51:165;14308:6;14296:19;;14276:18;;;14269:47;20251:38:90;;;;;;;14182:18:165;;20251:62:90;14037:285:165;6559:264:90;6640:30;6658:10;6640:9;:30::i;:::-;:108;;;;-1:-1:-1;6721:22:90;;;6732:10;6721:22;;;4372:51:165;-1:-1:-1;;;;;6686:24:90;;;;;4345:18:165;6721:22:90;;;-1:-1:-1;;6721:22:90;;;;;;;;;;6711:33;;6721:22;6711:33;;;;-1:-1:-1;;;;;;6686:62:90;;;;;;;;;;9704:25:165;6746:1:90;9745:18:165;;;9738:34;9677:18;;6686:62:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6619:174;;;;-1:-1:-1;;;6619:174:90;;;;;;;:::i;:::-;6803:5;;;;;;;;;-1:-1:-1;;;;;6803:5:90;-1:-1:-1;;;;;6803:11:90;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6559:264;:::o;5664:181:91:-;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;5732:24:::1;:9;5749:6:::0;5732:16:::1;:24::i;:::-;5766:31;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5766:31:91::1;::::0;::::1;::::0;5812:26;;-1:-1:-1;;;;;5812:26:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;5812:26:91;::::1;::::0;5766:31;;5812:26:::1;:::i;15094:386:90:-:0;15260:30;15278:10;15260:9;:30::i;:::-;:108;;;;-1:-1:-1;15341:22:90;;;15352:10;15341:22;;;4372:51:165;-1:-1:-1;;;;;15306:24:90;;;;;4345:18:165;15341:22:90;;;-1:-1:-1;;15341:22:90;;;;;;;;;;15331:33;;15341:22;15331:33;;;;-1:-1:-1;;;;;;15306:62:90;;;;;;;;;;9704:25:165;15366:1:90;9745:18:165;;;9738:34;9677:18;;15306:62:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15239:174;;;;-1:-1:-1;;;15239:174:90;;;;;;;:::i;:::-;15423:5;;:50;;-1:-1:-1;;;15423:50:90;;-1:-1:-1;;;;;10629:32:165;;;15423:50:90;;;10611:51:165;10678:18;;;10671:34;;;15423:5:90;;;;:27;;10584:18:165;;15423:50:90;10437:274:165;7081:200:91;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;7155:30:::1;:18;7178:6:::0;7155:22:::1;:30::i;:::-;7195:40;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;7195:40:91::1;::::0;::::1;::::0;7250:24;;-1:-1:-1;;;;;7250:24:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;7250:24:91;::::1;::::0;7195:40;;7250:24:::1;:::i;7293:268:90:-:0;7376:30;7394:10;7376:9;:30::i;:::-;:108;;;;-1:-1:-1;7457:22:90;;;7468:10;7457:22;;;4372:51:165;-1:-1:-1;;;;;7422:24:90;;;;;4345:18:165;7457:22:90;;;-1:-1:-1;;7457:22:90;;;;;;;;;;7447:33;;7457:22;7447:33;;;;-1:-1:-1;;;;;;7422:62:90;;;;;;;;;;9704:25:165;7482:1:90;9745:18:165;;;9738:34;9677:18;;7422:62:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7355:174;;;;-1:-1:-1;;;7355:174:90;;;;;;;:::i;:::-;7539:5;;;;;;;;;-1:-1:-1;;;;;7539:5:90;-1:-1:-1;;;;;7539:13:90;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13290:382;13454:30;13472:10;13454:9;:30::i;:::-;:108;;;;-1:-1:-1;13535:22:90;;;13546:10;13535:22;;;4372:51:165;-1:-1:-1;;;;;13500:24:90;;;;;4345:18:165;13535:22:90;;;-1:-1:-1;;13535:22:90;;;;;;;;;;13525:33;;13535:22;13525:33;;;;-1:-1:-1;;;;;;13500:62:90;;;;;;;;;;9704:25:165;13560:1:90;9745:18:165;;;9738:34;9677:18;;13500:62:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13433:174;;;;-1:-1:-1;;;13433:174:90;;;;;;;:::i;:::-;13617:5;;:48;;-1:-1:-1;;;13617:48:90;;-1:-1:-1;;;;;10629:32:165;;;13617:48:90;;;10611:51:165;10678:18;;;10671:34;;;13617:5:90;;;;:25;;10584:18:165;;13617:48:90;10437:274:165;6667:197:91;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;6740:29:::1;:17;6762:6:::0;6740:21:::1;:29::i;:::-;6779:39;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6779:39:91::1;::::0;::::1;::::0;6833:24;;-1:-1:-1;;;;;6833:24:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;6833:24:91;::::1;::::0;6779:39;;6833:24:::1;:::i;8870:399:90:-:0;9042:37;9067:10;9042:16;:37::i;:::-;:115;;;;-1:-1:-1;9130:22:90;;;9141:10;9130:22;;;4372:51:165;-1:-1:-1;;;;;9095:24:90;;;;;4345:18:165;9130:22:90;;;-1:-1:-1;;9130:22:90;;;;;;;;;;9120:33;;9130:22;9120:33;;;;-1:-1:-1;;;;;;9095:62:90;;;;;;;;;;9704:25:165;9155:1:90;9745:18:165;;;9738:34;9677:18;;9095:62:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9021:197;;;;-1:-1:-1;;;9021:197:90;;;;;;;:::i;:::-;9228:5;;:34;;-1:-1:-1;;;9228:34:90;;-1:-1:-1;;;;;9228:5:90;;;;:15;;:34;;9244:7;;;;9253:8;;;;9228:34;;;:::i;9740:393::-;9889:54;9931:10;9889:16;:54::i;:::-;:132;;;;-1:-1:-1;9994:22:90;;;10005:10;9994:22;;;4372:51:165;-1:-1:-1;;;;;9959:24:90;;;;;4345:18:165;9994:22:90;;;-1:-1:-1;;9994:22:90;;;;;;;;;;9984:33;;9994:22;9984:33;;;;-1:-1:-1;;;;;;9959:62:90;;;;;;;;;;9704:25:165;10019:1:90;9745:18:165;;;9738:34;9677:18;;9959:62:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9868:215;;;;-1:-1:-1;;;9868:215:90;;;;;;;:::i;:::-;10093:5;;:33;;-1:-1:-1;;;10093:33:90;;-1:-1:-1;;;;;10629:32:165;;;10093:33:90;;;10611:51:165;10678:18;;;10671:34;;;10093:5:90;;;;:10;;10584:18:165;;10093:33:90;10437:274:165;7501:112:91;7560:4;7583:23;:11;7599:6;7583:15;:23::i;7287:208::-;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;7364:33:::1;:18;7390:6:::0;7364:25:::1;:33::i;:::-;7407:40;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;7407:40:91::1;::::0;::::1;::::0;7462:26;;-1:-1:-1;;;;;7462:26:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;7462:26:91;::::1;::::0;7407:40;;7462:26:::1;:::i;5485:173::-:0;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;5550:21:::1;:9;5564:6:::0;5550:13:::1;:21::i;:::-;5581:31;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5581:31:91::1;::::0;::::1;::::0;5627:24;;-1:-1:-1;;;;;5627:24:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;5627:24:91;::::1;::::0;5581:31;;5627:24:::1;:::i;4882:189::-:0;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;4953:26:::1;:11;4972:6:::0;4953:18:::1;:26::i;:::-;4989:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;4989:34:91::1;::::0;::::1;::::0;5038:26;;-1:-1:-1;;;;;5038:26:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;5038:26:91;::::1;::::0;4989:34;;5038:26:::1;:::i;12387:409:90:-:0;12574:30;12592:10;12574:9;:30::i;:::-;:108;;;;-1:-1:-1;12655:22:90;;;12666:10;12655:22;;;4372:51:165;-1:-1:-1;;;;;12620:24:90;;;;;4345:18:165;12655:22:90;;;-1:-1:-1;;12655:22:90;;;;;;;;;;12645:33;;12655:22;12645:33;;;;-1:-1:-1;;;;;;12620:62:90;;;;;;;;;;9704:25:165;12680:1:90;9745:18:165;;;9738:34;9677:18;;12620:62:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12553:174;;;;-1:-1:-1;;;12553:174:90;;;;;;;:::i;:::-;12737:5;;:52;;-1:-1:-1;;;12737:52:90;;-1:-1:-1;;;;;12737:5:90;;;;:27;;:52;;12765:14;;;;12781:7;;;;12737:52;;;:::i;8133:107:91:-;8189:4;8212:21;:9;8226:6;8212:13;:21::i;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;6265:191:91:-;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;6336:27:::1;:15;6356:6:::0;6336:19:::1;:27::i;:::-;6373:37;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6373:37:91::1;::::0;::::1;::::0;6425:24;;-1:-1:-1;;;;;6425:24:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;6425:24:91;::::1;::::0;6373:37;;6425:24:::1;:::i;7879:119::-:0;7941:4;7964:27;:15;7984:6;7964:19;:27::i;14176:420:90:-;14370:30;14388:10;14370:9;:30::i;:::-;:108;;;;-1:-1:-1;14451:22:90;;;14462:10;14451:22;;;4372:51:165;-1:-1:-1;;;;;14416:24:90;;;;;4345:18:165;14451:22:90;;;-1:-1:-1;;14451:22:90;;;;;;;;;;14441:33;;14451:22;14441:33;;;;-1:-1:-1;;;;;;14416:62:90;;;;;;;;;;9704:25:165;14476:1:90;9745:18:165;;;9738:34;9677:18;;14416:62:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14349:174;;;;-1:-1:-1;;;14349:174:90;;;;;;;:::i;:::-;14533:5;;:56;;-1:-1:-1;;;14533:56:90;;-1:-1:-1;;;;;14533:5:90;;;;:30;;:56;;14564:14;;;;14580:8;;;;14533:56;;;:::i;5277:202:91:-;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;5352:31:::1;:16;5376:6:::0;5352:23:::1;:31::i;:::-;5393:38;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5393:38:91::1;::::0;::::1;::::0;5446:26;;-1:-1:-1;;;;;5446:26:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;5446:26:91;::::1;::::0;5393:38;;5446:26:::1;:::i;10614:414:90:-:0;10793:37;10818:10;10793:16;:37::i;:::-;:115;;;;-1:-1:-1;10881:22:90;;;10892:10;10881:22;;;4372:51:165;-1:-1:-1;;;;;10846:24:90;;;;;4345:18:165;10881:22:90;;;-1:-1:-1;;10881:22:90;;;;;;;;;;10871:33;;10881:22;10871:33;;;;-1:-1:-1;;;;;;10846:62:90;;;;;;;;;;9704:25:165;10906:1:90;9745:18:165;;;9738:34;9677:18;;10846:62:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10772:198;;;;-1:-1:-1;;;10772:198:90;;;;;;;:::i;:::-;10980:5;;:41;;-1:-1:-1;;;10980:41:90;;-1:-1:-1;;;;;10980:5:90;;;;:15;;:41;;10996:14;;;;11012:8;;;;10980:41;;;:::i;6054:205:91:-;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;6130:32:::1;:17;6155:6:::0;6130:24:::1;:32::i;:::-;6172:39;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6172:39:91::1;::::0;::::1;::::0;6226:26;;-1:-1:-1;;;;;6226:26:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;6226:26:91;::::1;::::0;6172:39;;6226:26:::1;:::i;11516:373:90:-:0;11674:30;11692:10;11674:9;:30::i;:::-;:108;;;;-1:-1:-1;11755:22:90;;;11766:10;11755:22;;;4372:51:165;-1:-1:-1;;;;;11720:24:90;;;;;4345:18:165;11755:22:90;;;-1:-1:-1;;11755:22:90;;;;;;;;;;11745:33;;11755:22;11745:33;;;;-1:-1:-1;;;;;;11720:62:90;;;;;;;;;;9704:25:165;11780:1:90;9745:18:165;;;9738:34;9677:18;;11720:62:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11653:174;;;;-1:-1:-1;;;11653:174:90;;;;;;;:::i;:::-;11837:5;;:45;;-1:-1:-1;;;11837:45:90;;-1:-1:-1;;;;;15403:32:165;;;11837:45:90;;;15385:51:165;15479:14;;15472:22;15452:18;;;15445:50;11837:5:90;;;;:22;;15358:18:165;;11837:45:90;15217:284:165;16924:461:90;17121:43;17145:17;17121:15;:43::i;:::-;:128;;;;-1:-1:-1;17222:22:90;;;17233:10;17222:22;;;4372:51:165;-1:-1:-1;;;;;17180:31:90;;;;;4345:18:165;17222:22:90;;;-1:-1:-1;;17222:22:90;;;;;;;;;;17212:33;;17222:22;17212:33;;;;-1:-1:-1;;;;;;17180:69:90;;;;;;;;;;9704:25:165;17247:1:90;9745:18:165;;;9738:34;9677:18;;17180:69:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17100:210;;;;-1:-1:-1;;;17100:210:90;;15708:2:165;17100:210:90;;;15690:21:165;15747:2;15727:18;;;15720:30;15786:34;15766:18;;;15759:62;-1:-1:-1;;;15837:18:165;;;15830:32;15879:19;;17100:210:90;15506:398:165;17100:210:90;17320:5;;:58;;-1:-1:-1;;;17320:58:90;;-1:-1:-1;;;;;16167:15:165;;;17320:58:90;;;16149:34:165;16219:15;;;16199:18;;;16192:43;16271:15;;;16251:18;;;16244:43;17320:5:90;;;;:21;;16084:18:165;;17320:58:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;20848:363::-;20960:39;20987:10;20960:18;:39::i;:::-;:117;;;;-1:-1:-1;21050:22:90;;;21061:10;21050:22;;;4372:51:165;-1:-1:-1;;;;;21015:24:90;;;;;4345:18:165;21050:22:90;;;-1:-1:-1;;21050:22:90;;;;;;;;;;21040:33;;21050:22;21040:33;;;;-1:-1:-1;;;;;;21015:62:90;;;;;;;;;;9704:25:165;21075:1:90;9745:18:165;;;9738:34;9677:18;;21015:62:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20939:202;;;;-1:-1:-1;;;20939:202:90;;;;;;;:::i;:::-;21151:5;;;;;;;;;-1:-1:-1;;;;;21151:5:90;-1:-1:-1;;;;;21151:22:90;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;-1:-1:-1;;;21151:53:90;;-1:-1:-1;;;;;4390:32:165;;;21151:53:90;;;4372:51:165;21151:39:90;;;;;;;4345:18:165;;21151:53:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20848:363;;:::o;5623:470::-;5843:38;5869:10;5843:17;:38::i;:::-;:116;;;;-1:-1:-1;5932:22:90;;;5943:10;5932:22;;;4372:51:165;-1:-1:-1;;;;;5897:24:90;;;;;4345:18:165;5932:22:90;;;-1:-1:-1;;5932:22:90;;;;;;;;;;5922:33;;5932:22;5922:33;;;;-1:-1:-1;;;;;;5897:62:90;;;;;;;;;;9704:25:165;5957:1:90;9745:18:165;;;9738:34;9677:18;;5897:62:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5822:199;;;;-1:-1:-1;;;5822:199:90;;;;;;;:::i;:::-;6031:5;;:55;;-1:-1:-1;;;6031:55:90;;-1:-1:-1;;;;;6031:5:90;;;;:25;;:55;;6057:9;;;;6068:7;;;;6077:8;;;;6031:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5623:470;;;;;;;:::o;7619:125:91:-;7684:4;7707:30;:18;7730:6;7707:22;:30::i;17936:487:90:-;18134:46;18161:17;18134:18;:46::i;:::-;:131;;;;-1:-1:-1;18238:22:90;;;18249:10;18238:22;;;4372:51:165;-1:-1:-1;;;;;18196:31:90;;;;;4345:18:165;18238:22:90;;;-1:-1:-1;;18238:22:90;;;;;;;;;;18228:33;;18238:22;18228:33;;;;-1:-1:-1;;;;;;18196:69:90;;;;;;;;;;9704:25:165;18263:1:90;9745:18:165;;;9738:34;9677:18;;18196:69:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18113:216;;;;-1:-1:-1;;;18113:216:90;;;;;;;:::i;:::-;18339:5;;;;;;;;;-1:-1:-1;;;;;18339:5:90;-1:-1:-1;;;;;18339:22:90;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;-1:-1:-1;;;18339:77:90;;-1:-1:-1;;;;;17733:15:165;;;18339:77:90;;;17715:34:165;17785:15;;;17765:18;;;17758:43;17849:6;17837:19;;17817:18;;;17810:47;18339:41:90;;;;;;;17650:18:165;;18339:77:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17936:487;;;;:::o;6870:205:91:-;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;6946:32:::1;:17;6971:6:::0;6946:24:::1;:32::i;:::-;6988:39;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6988:39:91::1;::::0;::::1;::::0;7042:26;;-1:-1:-1;;;;;7042:26:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;7042:26:91;::::1;::::0;6988:39;;7042:26:::1;:::i;6462:199::-:0;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;6536:30:::1;:15;6559:6:::0;6536:22:::1;:30::i;:::-;6576:37;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6576:37:91::1;::::0;::::1;::::0;6628:26;;-1:-1:-1;;;;;6628:26:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;6628:26:91;::::1;::::0;6576:37;;6628:26:::1;:::i;4695:181::-:0;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;4763:23:::1;:11;4779:6:::0;4763:15:::1;:23::i;:::-;4796:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;4796:34:91::1;::::0;::::1;::::0;4845:24;;-1:-1:-1;;;;;4845:24:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;4845:24:91;::::1;::::0;4796:34;;4845:24:::1;:::i;18951:425:90:-:0;19114:39;19141:10;19114:18;:39::i;:::-;:117;;;;-1:-1:-1;19204:22:90;;;19215:10;19204:22;;;4372:51:165;-1:-1:-1;;;;;19169:24:90;;;;;4345:18:165;19204:22:90;;;-1:-1:-1;;19204:22:90;;;;;;;;;;19194:33;;19204:22;19194:33;;;;-1:-1:-1;;;;;;19169:62:90;;;;;;;;;;9704:25:165;19229:1:90;9745:18:165;;;9738:34;9677:18;;19169:62:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19093:202;;;;-1:-1:-1;;;19093:202:90;;;;;;;:::i;:::-;19305:5;;;;;;;;;-1:-1:-1;;;;;19305:5:90;-1:-1:-1;;;;;19305:22:90;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:64;;-1:-1:-1;;;19305:64:90;;-1:-1:-1;;;;;18117:15:165;;;19305:64:90;;;18099:34:165;18169:15;;;18149:18;;;18142:43;19305:39:90;;;;;;;18034:18:165;;19305:64:90;17868:323:165;8004:123:91;8068:4;8091:29;:17;8113:6;8091:21;:29::i;4712:409:90:-;4885:38;4911:10;4885:17;:38::i;:::-;:116;;;;-1:-1:-1;4974:22:90;;;4985:10;4974:22;;;4372:51:165;-1:-1:-1;;;;;4939:24:90;;;;;4345:18:165;4974:22:90;;;-1:-1:-1;;4974:22:90;;;;;;;;;;4964:33;;4974:22;4964:33;;;;-1:-1:-1;;;;;;4939:62:90;;;;;;;;;;9704:25:165;4999:1:90;9745:18:165;;;9738:34;9677:18;;4939:62:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4864:199;;;;-1:-1:-1;;;4864:199:90;;;;;;;:::i;:::-;5073:5;;:41;;-1:-1:-1;;;5073:41:90;;-1:-1:-1;;;;;18454:15:165;;;5073:41:90;;;18436:34:165;18506:15;;;18486:18;;;18479:43;18538:18;;;18531:34;;;5073:5:90;;;;:20;;18371:18:165;;5073:41:90;18196:375:165;2543:215:141;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;4372:51:165::0;4345:18;;2672:31:141::1;4226:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;4596:200:89:-;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;18778:2:165;4684:68:89;;;18760:21:165;18817:2;18797:18;;;18790:30;18856:34;18836:18;;;18829:62;-1:-1:-1;;;18907:18:165;;;18900:32;18949:19;;4684:68:89;18576:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;4077:175::-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;19181:2:165;4145:63:89;;;19163:21:165;19220:2;19200:18;;;19193:30;19259:33;19239:18;;;19232:61;19310:18;;4145:63:89;18979:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;4327:180::-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;19541:2:165;4398:64:89;;;19523:21:165;19580:2;19560:18;;;19553:30;19619:34;19599:18;;;19592:62;-1:-1:-1;;;19670:18:165;;;19663:31;19711:19;;4398:64:89;19339:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;1796:162:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;4372:51:165;4345:18;;1901:40:141;4226:203:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;150:475;246:6;254;262;315:2;303:9;294:7;290:23;286:32;283:52;;;331:1;328;321:12;283:52;370:9;357:23;389:31;414:5;389:31;:::i;:::-;439:5;-1:-1:-1;491:2:165;476:18;;463:32;;-1:-1:-1;547:2:165;532:18;;519:32;560:33;519:32;560:33;:::i;:::-;612:7;602:17;;;150:475;;;;;:::o;630:247::-;689:6;742:2;730:9;721:7;717:23;713:32;710:52;;;758:1;755;748:12;710:52;797:9;784:23;816:31;841:5;816:31;:::i;:::-;866:5;630:247;-1:-1:-1;;;630:247:165:o;1074:367::-;1137:8;1147:6;1201:3;1194:4;1186:6;1182:17;1178:27;1168:55;;1219:1;1216;1209:12;1168:55;-1:-1:-1;1242:20:165;;1285:18;1274:30;;1271:50;;;1317:1;1314;1307:12;1271:50;1354:4;1346:6;1342:17;1330:29;;1414:3;1407:4;1397:6;1394:1;1390:14;1382:6;1378:27;1374:38;1371:47;1368:67;;;1431:1;1428;1421:12;1368:67;1074:367;;;;;:::o;1446:927::-;1596:6;1604;1612;1620;1628;1681:2;1669:9;1660:7;1656:23;1652:32;1649:52;;;1697:1;1694;1687:12;1649:52;1737:9;1724:23;1766:18;1807:2;1799:6;1796:14;1793:34;;;1823:1;1820;1813:12;1793:34;1862:70;1924:7;1915:6;1904:9;1900:22;1862:70;:::i;:::-;1951:8;;-1:-1:-1;1836:96:165;-1:-1:-1;2039:2:165;2024:18;;2011:32;;-1:-1:-1;2055:16:165;;;2052:36;;;2084:1;2081;2074:12;2052:36;;2123:72;2187:7;2176:8;2165:9;2161:24;2123:72;:::i;:::-;2214:8;;-1:-1:-1;2097:98:165;-1:-1:-1;;2299:2:165;2284:18;;2271:32;2312:31;2271:32;2312:31;:::i;:::-;2362:5;2352:15;;;1446:927;;;;;;;;:::o;2378:159::-;2445:20;;2505:6;2494:18;;2484:29;;2474:57;;2527:1;2524;2517:12;2474:57;2378:159;;;:::o;2542:479::-;2637:6;2645;2653;2706:2;2694:9;2685:7;2681:23;2677:32;2674:52;;;2722:1;2719;2712:12;2674:52;2761:9;2748:23;2780:31;2805:5;2780:31;:::i;:::-;2830:5;-1:-1:-1;2854:37:165;2887:2;2872:18;;2854:37;:::i;:::-;2844:47;;2943:2;2932:9;2928:18;2915:32;2956:33;2981:7;2956:33;:::i;4434:118::-;4520:5;4513:13;4506:21;4499:5;4496:32;4486:60;;4542:1;4539;4532:12;4557:542;4650:6;4658;4666;4719:2;4707:9;4698:7;4694:23;4690:32;4687:52;;;4735:1;4732;4725:12;4687:52;4774:9;4761:23;4793:31;4818:5;4793:31;:::i;:::-;4843:5;-1:-1:-1;4900:2:165;4885:18;;4872:32;4913:30;4872:32;4913:30;:::i;5104:690::-;5209:6;5217;5225;5233;5286:3;5274:9;5265:7;5261:23;5257:33;5254:53;;;5303:1;5300;5293:12;5254:53;5342:9;5329:23;5361:31;5386:5;5361:31;:::i;:::-;5411:5;-1:-1:-1;5468:2:165;5453:18;;5440:32;5481:33;5440:32;5481:33;:::i;:::-;5533:7;-1:-1:-1;5592:2:165;5577:18;;5564:32;5605:33;5564:32;5605:33;:::i;:::-;5657:7;-1:-1:-1;5716:2:165;5701:18;;5688:32;5729:33;5688:32;5729:33;:::i;:::-;5104:690;;;;-1:-1:-1;5104:690:165;;-1:-1:-1;;5104:690:165:o;5799:407::-;5886:6;5894;5947:2;5935:9;5926:7;5922:23;5918:32;5915:52;;;5963:1;5960;5953:12;5915:52;6002:9;5989:23;6021:31;6046:5;6021:31;:::i;:::-;6071:5;-1:-1:-1;6128:2:165;6113:18;;6100:32;6141:33;6100:32;6141:33;:::i;:::-;6193:7;6183:17;;;5799:407;;;;;:::o;6211:1243::-;6397:6;6405;6413;6421;6429;6437;6445;6498:3;6486:9;6477:7;6473:23;6469:33;6466:53;;;6515:1;6512;6505:12;6466:53;6555:9;6542:23;6584:18;6625:2;6617:6;6614:14;6611:34;;;6641:1;6638;6631:12;6611:34;6680:70;6742:7;6733:6;6722:9;6718:22;6680:70;:::i;:::-;6769:8;;-1:-1:-1;6654:96:165;-1:-1:-1;6857:2:165;6842:18;;6829:32;;-1:-1:-1;6873:16:165;;;6870:36;;;6902:1;6899;6892:12;6870:36;6941:72;7005:7;6994:8;6983:9;6979:24;6941:72;:::i;:::-;7032:8;;-1:-1:-1;6915:98:165;-1:-1:-1;7120:2:165;7105:18;;7092:32;;-1:-1:-1;7136:16:165;;;7133:36;;;7165:1;7162;7155:12;7133:36;;7204:72;7268:7;7257:8;7246:9;7242:24;7204:72;:::i;:::-;7295:8;;-1:-1:-1;7178:98:165;-1:-1:-1;;7380:2:165;7365:18;;7352:32;7393:31;7352:32;7393:31;:::i;:::-;7443:5;7433:15;;;6211:1243;;;;;;;;;;:::o;7459:640::-;7582:6;7590;7598;7606;7659:3;7647:9;7638:7;7634:23;7630:33;7627:53;;;7676:1;7673;7666:12;7627:53;7715:9;7702:23;7734:31;7759:5;7734:31;:::i;:::-;7784:5;-1:-1:-1;7841:2:165;7826:18;;7813:32;7854:33;7813:32;7854:33;:::i;:::-;7906:7;-1:-1:-1;7932:37:165;7965:2;7950:18;;7932:37;:::i;8104:567::-;8219:6;8227;8235;8288:2;8276:9;8267:7;8263:23;8259:32;8256:52;;;8304:1;8301;8294:12;8256:52;8343:9;8330:23;8362:31;8387:5;8362:31;:::i;:::-;8412:5;-1:-1:-1;8469:2:165;8454:18;;8441:32;8482:33;8441:32;8482:33;:::i;8676:617::-;8781:6;8789;8797;8805;8858:3;8846:9;8837:7;8833:23;8829:33;8826:53;;;8875:1;8872;8865:12;8826:53;8914:9;8901:23;8933:31;8958:5;8933:31;:::i;:::-;8983:5;-1:-1:-1;9040:2:165;9025:18;;9012:32;9053:33;9012:32;9053:33;:::i;:::-;9105:7;-1:-1:-1;9159:2:165;9144:18;;9131:32;;-1:-1:-1;9215:2:165;9200:18;;9187:32;9228:33;9187:32;9228:33;:::i;9783:245::-;9850:6;9903:2;9891:9;9882:7;9878:23;9874:32;9871:52;;;9919:1;9916;9909:12;9871:52;9951:9;9945:16;9970:28;9992:5;9970:28;:::i;10033:399::-;10235:2;10217:21;;;10274:2;10254:18;;;10247:30;10313:34;10308:2;10293:18;;10286:62;-1:-1:-1;;;10379:2:165;10364:18;;10357:33;10422:3;10407:19;;10033:399::o;10716:351::-;10918:2;10900:21;;;10957:2;10937:18;;;10930:30;10996:29;10991:2;10976:18;;10969:57;11058:2;11043:18;;10716:351::o;11072:524::-;11172:6;11167:3;11160:19;11142:3;11198:4;11227;11222:3;11218:14;11211:21;;11255:5;11278:1;11288:283;11302:6;11299:1;11296:13;11288:283;;;11379:6;11366:20;11399:33;11424:7;11399:33;:::i;:::-;-1:-1:-1;;;;;11457:33:165;11445:46;;11511:12;;;;11546:15;;;;11487:1;11317:9;11288:283;;;-1:-1:-1;11587:3:165;;11072:524;-1:-1:-1;;;;;11072:524:165:o;11601:311::-;11689:19;;;11671:3;-1:-1:-1;;;;;11720:31:165;;11717:51;;;11764:1;11761;11754:12;11717:51;11800:6;11797:1;11793:14;11852:8;11845:5;11838:4;11833:3;11829:14;11816:45;11881:18;;;;11901:4;11877:29;;11601:311;-1:-1:-1;;;11601:311:165:o;11917:519::-;12194:2;12183:9;12176:21;12157:4;12220:73;12289:2;12278:9;12274:18;12266:6;12258;12220:73;:::i;:::-;12341:9;12333:6;12329:22;12324:2;12313:9;12309:18;12302:50;12369:61;12423:6;12415;12407;12369:61;:::i;:::-;12361:69;11917:519;-1:-1:-1;;;;;;;11917:519:165:o;12441:349::-;12643:2;12625:21;;;12682:2;12662:18;;;12655:30;12721:27;12716:2;12701:18;;12694:55;12781:2;12766:18;;12441:349::o;12795:548::-;12907:4;12936:2;12965;12954:9;12947:21;12997:6;12991:13;13040:6;13035:2;13024:9;13020:18;13013:34;13065:1;13075:140;13089:6;13086:1;13083:13;13075:140;;;13184:14;;;13180:23;;13174:30;13150:17;;;13169:2;13146:26;13139:66;13104:10;;13075:140;;;13079:3;13264:1;13259:2;13250:6;13239:9;13235:22;13231:31;13224:42;13334:2;13327;13323:7;13318:2;13310:6;13306:15;13302:29;13291:9;13287:45;13283:54;13275:62;;;;12795:548;;;;:::o;13348:401::-;13550:2;13532:21;;;13589:2;13569:18;;;13562:30;13628:34;13623:2;13608:18;;13601:62;-1:-1:-1;;;13694:2:165;13679:18;;13672:35;13739:3;13724:19;;13348:401::o;13754:278::-;13851:6;13904:2;13892:9;13883:7;13879:23;13875:32;13872:52;;;13920:1;13917;13910:12;13872:52;13952:9;13946:16;13971:31;13996:5;13971:31;:::i;14327:885::-;14598:2;14587:9;14580:21;14561:4;14624:73;14693:2;14682:9;14678:18;14670:6;14662;14624:73;:::i;:::-;14754:22;;;14716:2;14734:18;;;14727:50;;;;14812:22;;;14888:6;;14850:15;;14912:1;14922:264;14936:6;14933:1;14930:13;14922:264;;;15011:6;14998:20;15031:28;15053:5;15031:28;:::i;:::-;15091:13;15084:21;15072:34;;15161:15;;;;15126:12;;;;14958:1;14951:9;14922:264;;;-1:-1:-1;15203:3:165;14327:885;-1:-1:-1;;;;;;;;14327:885:165:o;16298:400::-;16500:2;16482:21;;;16539:2;16519:18;;;16512:30;16578:34;16573:2;16558:18;;16551:62;-1:-1:-1;;;16644:2:165;16629:18;;16622:34;16688:3;16673:19;;16298:400::o;16703:750::-;17068:2;17057:9;17050:21;17031:4;17094:73;17163:2;17152:9;17148:18;17140:6;17132;17094:73;:::i;:::-;17215:9;17207:6;17203:22;17198:2;17187:9;17183:18;17176:50;17249:61;17303:6;17295;17287;17249:61;:::i;:::-;17235:75;;17358:9;17350:6;17346:22;17341:2;17330:9;17326:18;17319:50;17386:61;17440:6;17432;17424;17386:61;:::i;:::-;17378:69;16703:750;-1:-1:-1;;;;;;;;;16703:750:165:o","linkReferences":{}},"methodIdentifiers":{"addAgentAdmin(address)":"cdf1b693","addComplianceAgent(address)":"3cdf8000","addFreezer(address)":"526606c9","addRecoveryAgent(address)":"7489453d","addSupplyModifier(address)":"15d8ca62","addTransferManager(address)":"14f2d276","addWhiteListManager(address)":"3966904d","callBatchBurn(address[],uint256[],address)":"94452821","callBatchForcedTransfer(address[],address[],uint256[],address)":"b673266a","callBatchFreezePartialTokens(address[],uint256[],address)":"7d684ff7","callBatchMint(address[],uint256[],address)":"3dc1c176","callBatchSetAddressFrozen(address[],bool[],address)":"6b8c82b5","callBatchUnfreezePartialTokens(address[],uint256[],address)":"0878c410","callBurn(address,uint256,address)":"41e6aa5d","callDeleteIdentity(address,address)":"aca277e1","callForcedTransfer(address,address,uint256,address)":"f1e92173","callFreezePartialTokens(address,uint256,address)":"39ed7a40","callMint(address,uint256,address)":"0102acff","callPause(address)":"24fdc360","callRecoveryAddress(address,address,address,address)":"a6a7d4e2","callRegisterIdentity(address,address,uint16,address)":"bea0790a","callSetAddressFrozen(address,bool,address)":"96df6f27","callUnfreezePartialTokens(address,uint256,address)":"393694a7","callUnpause(address)":"39cc8d90","callUpdateCountry(address,uint16,address)":"2228a6cf","callUpdateIdentity(address,address,address)":"d5451e52","isAgentAdmin(address)":"4599fb7b","isComplianceAgent(address)":"2001c350","isFreezer(address)":"6c65fd6a","isRecoveryAgent(address)":"7ad78a46","isSupplyModifier(address)":"042a3606","isTransferManager(address)":"e86c6431","isWhiteListManager(address)":"bd92fcfe","owner()":"8da5cb5b","removeAgentAdmin(address)":"65d07b2e","removeComplianceAgent(address)":"c6006c9a","removeFreezer(address)":"2acd2000","removeRecoveryAgent(address)":"c8777b50","removeSupplyModifier(address)":"860a2bcf","removeTransferManager(address)":"965e61ea","removeWhiteListManager(address)":"4aff432c","renounceOwnership()":"715018a6","token()":"fc0c546a","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_role\",\"type\":\"string\"}],\"name\":\"RoleAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_role\",\"type\":\"string\"}],\"name\":\"RoleRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgentAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addComplianceAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addFreezer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addRecoveryAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addSupplyModifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addTransferManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addWhiteListManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callBatchBurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_fromList\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_toList\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callBatchForcedTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callBatchFreezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_toList\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callBatchMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"_freeze\",\"type\":\"bool[]\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callBatchSetAddressFrozen\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callBatchUnfreezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callBurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callDeleteIdentity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callForcedTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callFreezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lostWallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newWallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_onchainID\",\"type\":\"address\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_managerOnchainID\",\"type\":\"address\"}],\"name\":\"callRecoveryAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_managerOnchainID\",\"type\":\"address\"}],\"name\":\"callRegisterIdentity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_freeze\",\"type\":\"bool\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callSetAddressFrozen\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callUnfreezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callUnpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callUpdateCountry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_identity\",\"type\":\"address\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callUpdateIdentity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgentAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isComplianceAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isFreezer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isRecoveryAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isSupplyModifier\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isTransferManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isWhiteListManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgentAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeComplianceAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeFreezer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeRecoveryAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeSupplyModifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeTransferManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeWhiteListManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"contract IToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addAgentAdmin(address)\":{\"details\":\"AgentAdmin Role _agentAdmin\"},\"callBatchBurn(address[],uint256[],address)\":{\"details\":\"calls the `batchBurn` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-batchBurn}. Requires that `_onchainID` is set as SupplyModifier on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callBatchForcedTransfer(address[],address[],uint256[],address)\":{\"details\":\"calls the `batchForcedTransfer` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-batchForcedTransfer}. Requires that `_onchainID` is set as TransferManager on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callBatchFreezePartialTokens(address[],uint256[],address)\":{\"details\":\"calls the `batchFreezePartialTokens` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-batchFreezePartialTokens}. Requires that `_onchainID` is set as Freezer on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callBatchMint(address[],uint256[],address)\":{\"details\":\"calls the `batchMint` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-batchMint}. Requires that `_onchainID` is set as SupplyModifier on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callBatchSetAddressFrozen(address[],bool[],address)\":{\"details\":\"calls the `batchSetAddressFrozen` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-batchSetAddressFrozen}. Requires that `_onchainID` is set as Freezer on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callBatchUnfreezePartialTokens(address[],uint256[],address)\":{\"details\":\"calls the `batchUnfreezePartialTokens` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-batchUnfreezePartialTokens}. Requires that `_onchainID` is set as Freezer on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callBurn(address,uint256,address)\":{\"details\":\"calls the `burn` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-burn}. Requires that `_onchainID` is set as SupplyModifier on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callDeleteIdentity(address,address)\":{\"details\":\"calls the `deleteIdentity` function on the Identity Registry contract AgentManager has to be set as agent on the Identity Registry smart contract to process this function See {IIdentityRegistry-deleteIdentity}. Requires that `_onchainID` is set as WhiteListManager on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callForcedTransfer(address,address,uint256,address)\":{\"details\":\"calls the `forcedTransfer` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-forcedTransfer}. Requires that `_onchainID` is set as TransferManager on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callFreezePartialTokens(address,uint256,address)\":{\"details\":\"calls the `freezePartialTokens` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-freezePartialTokens}. Requires that `_onchainID` is set as Freezer on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callMint(address,uint256,address)\":{\"details\":\"calls the `mint` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-mint}. Requires that `_onchainID` is set as SupplyModifier on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callPause(address)\":{\"details\":\"calls the `pause` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-pause}. Requires that `_onchainID` is set as Freezer on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callRecoveryAddress(address,address,address,address)\":{\"details\":\"calls the `recoveryAddress` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-recoveryAddress}. Requires that `_managerOnchainID` is set as RecoveryAgent on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_managerOnchainID`\",\"params\":{\"_managerOnchainID\":\"the onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callRegisterIdentity(address,address,uint16,address)\":{\"details\":\"calls the `registerIdentity` function on the Identity Registry contract AgentManager has to be set as agent on the Identity Registry smart contract to process this function See {IIdentityRegistry-registerIdentity}. Requires that `ManagerOnchainID` is set as WhiteListManager on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_managerOnchainID`\",\"params\":{\"_managerOnchainID\":\"the onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callSetAddressFrozen(address,bool,address)\":{\"details\":\"calls the `setAddressFrozen` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-setAddressFrozen}. Requires that `_onchainID` is set as Freezer on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callUnfreezePartialTokens(address,uint256,address)\":{\"details\":\"calls the `unfreezePartialTokens` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-unfreezePartialTokens}. Requires that `_onchainID` is set as Freezer on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callUnpause(address)\":{\"details\":\"calls the `unpause` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-unpause}. Requires that `_onchainID` is set as Freezer on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callUpdateCountry(address,uint16,address)\":{\"details\":\"calls the `updateCountry` function on the Identity Registry contract AgentManager has to be set as agent on the Identity Registry smart contract to process this function See {IIdentityRegistry-updateCountry}. Requires that `_onchainID` is set as WhiteListManager on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callUpdateIdentity(address,address,address)\":{\"details\":\"calls the `updateIdentity` function on the Identity Registry contract AgentManager has to be set as agent on the Identity Registry smart contract to process this function See {IIdentityRegistry-updateIdentity}. Requires that `_onchainID` is set as WhiteListManager on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"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\":{\"token\":{\"details\":\"the token managed by this AgentManager contract\"}},\"version\":1},\"userdoc\":{\"events\":{\"RoleAdded(address,string)\":{\"notice\":\"events\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/roles/permissioning/agent/AgentManager.sol\":\"AgentManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/roles/permissioning/agent/AgentManager.sol\":{\"keccak256\":\"0x444f558fb37e2508eebea6b6817a71c576b7d039785474aa00b9fd749ec11abd\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://02771e25f8b81527f4a2a45a754100ad202d43826e906dd76cc1dfb770198e84\",\"dweb:/ipfs/QmcZhVJd9xorkSD6UxkGLMeVoPSYMzQfmKobmrWzxHV55x\"]},\"contracts/erc3643/roles/permissioning/agent/AgentRoles.sol\":{\"keccak256\":\"0x851d32985e3b72b1e3ab298254f51d962f0fde7332598809a505d26cc6156013\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://45a3e22184fcea26741c16c8c0285f378423d4adb12e5dc4a718ae88b1024fac\",\"dweb:/ipfs/QmNqqvMi6VdZzRnR9yjWneKrAWCWaPrAiypMN6jihUF85e\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true},{"internalType":"string","name":"_role","type":"string","indexed":false}],"type":"event","name":"RoleAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true},{"internalType":"string","name":"_role","type":"string","indexed":false}],"type":"event","name":"RoleRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgentAdmin"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addComplianceAgent"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addFreezer"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addRecoveryAgent"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addSupplyModifier"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTransferManager"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addWhiteListManager"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callBatchBurn"},{"inputs":[{"internalType":"address[]","name":"_fromList","type":"address[]"},{"internalType":"address[]","name":"_toList","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callBatchForcedTransfer"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callBatchFreezePartialTokens"},{"inputs":[{"internalType":"address[]","name":"_toList","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callBatchMint"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"bool[]","name":"_freeze","type":"bool[]"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callBatchSetAddressFrozen"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callBatchUnfreezePartialTokens"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callBurn"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callDeleteIdentity"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callForcedTransfer"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callFreezePartialTokens"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callMint"},{"inputs":[{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callPause"},{"inputs":[{"internalType":"address","name":"_lostWallet","type":"address"},{"internalType":"address","name":"_newWallet","type":"address"},{"internalType":"address","name":"_onchainID","type":"address"},{"internalType":"contract IIdentity","name":"_managerOnchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callRecoveryAddress"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"},{"internalType":"uint16","name":"_country","type":"uint16"},{"internalType":"contract IIdentity","name":"_managerOnchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callRegisterIdentity"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"bool","name":"_freeze","type":"bool"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callSetAddressFrozen"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callUnfreezePartialTokens"},{"inputs":[{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callUnpause"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint16","name":"_country","type":"uint16"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callUpdateCountry"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"contract IIdentity","name":"_identity","type":"address"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callUpdateIdentity"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgentAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isFreezer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isRecoveryAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isSupplyModifier","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isTransferManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isWhiteListManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgentAdmin"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeComplianceAgent"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeFreezer"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeRecoveryAgent"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeSupplyModifier"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTransferManager"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeWhiteListManager"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"contract IToken","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"addAgentAdmin(address)":{"details":"AgentAdmin Role _agentAdmin"},"callBatchBurn(address[],uint256[],address)":{"details":"calls the `batchBurn` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-batchBurn}. Requires that `_onchainID` is set as SupplyModifier on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callBatchForcedTransfer(address[],address[],uint256[],address)":{"details":"calls the `batchForcedTransfer` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-batchForcedTransfer}. Requires that `_onchainID` is set as TransferManager on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callBatchFreezePartialTokens(address[],uint256[],address)":{"details":"calls the `batchFreezePartialTokens` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-batchFreezePartialTokens}. Requires that `_onchainID` is set as Freezer on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callBatchMint(address[],uint256[],address)":{"details":"calls the `batchMint` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-batchMint}. Requires that `_onchainID` is set as SupplyModifier on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callBatchSetAddressFrozen(address[],bool[],address)":{"details":"calls the `batchSetAddressFrozen` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-batchSetAddressFrozen}. Requires that `_onchainID` is set as Freezer on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callBatchUnfreezePartialTokens(address[],uint256[],address)":{"details":"calls the `batchUnfreezePartialTokens` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-batchUnfreezePartialTokens}. Requires that `_onchainID` is set as Freezer on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callBurn(address,uint256,address)":{"details":"calls the `burn` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-burn}. Requires that `_onchainID` is set as SupplyModifier on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callDeleteIdentity(address,address)":{"details":"calls the `deleteIdentity` function on the Identity Registry contract AgentManager has to be set as agent on the Identity Registry smart contract to process this function See {IIdentityRegistry-deleteIdentity}. Requires that `_onchainID` is set as WhiteListManager on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callForcedTransfer(address,address,uint256,address)":{"details":"calls the `forcedTransfer` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-forcedTransfer}. Requires that `_onchainID` is set as TransferManager on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callFreezePartialTokens(address,uint256,address)":{"details":"calls the `freezePartialTokens` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-freezePartialTokens}. Requires that `_onchainID` is set as Freezer on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callMint(address,uint256,address)":{"details":"calls the `mint` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-mint}. Requires that `_onchainID` is set as SupplyModifier on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callPause(address)":{"details":"calls the `pause` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-pause}. Requires that `_onchainID` is set as Freezer on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callRecoveryAddress(address,address,address,address)":{"details":"calls the `recoveryAddress` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-recoveryAddress}. Requires that `_managerOnchainID` is set as RecoveryAgent on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_managerOnchainID`","params":{"_managerOnchainID":"the onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callRegisterIdentity(address,address,uint16,address)":{"details":"calls the `registerIdentity` function on the Identity Registry contract AgentManager has to be set as agent on the Identity Registry smart contract to process this function See {IIdentityRegistry-registerIdentity}. Requires that `ManagerOnchainID` is set as WhiteListManager on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_managerOnchainID`","params":{"_managerOnchainID":"the onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callSetAddressFrozen(address,bool,address)":{"details":"calls the `setAddressFrozen` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-setAddressFrozen}. Requires that `_onchainID` is set as Freezer on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callUnfreezePartialTokens(address,uint256,address)":{"details":"calls the `unfreezePartialTokens` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-unfreezePartialTokens}. Requires that `_onchainID` is set as Freezer on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callUnpause(address)":{"details":"calls the `unpause` function on the Token contract AgentManager has to be set as agent on the token smart contract to process this function See {IToken-unpause}. Requires that `_onchainID` is set as Freezer on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callUpdateCountry(address,uint16,address)":{"details":"calls the `updateCountry` function on the Identity Registry contract AgentManager has to be set as agent on the Identity Registry smart contract to process this function See {IIdentityRegistry-updateCountry}. Requires that `_onchainID` is set as WhiteListManager on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callUpdateIdentity(address,address,address)":{"details":"calls the `updateIdentity` function on the Identity Registry contract AgentManager has to be set as agent on the Identity Registry smart contract to process this function See {IIdentityRegistry-updateIdentity}. Requires that `_onchainID` is set as WhiteListManager on the AgentManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"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."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/roles/permissioning/agent/AgentManager.sol":"AgentManager"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/roles/permissioning/agent/AgentManager.sol":{"keccak256":"0x444f558fb37e2508eebea6b6817a71c576b7d039785474aa00b9fd749ec11abd","urls":["bzz-raw://02771e25f8b81527f4a2a45a754100ad202d43826e906dd76cc1dfb770198e84","dweb:/ipfs/QmcZhVJd9xorkSD6UxkGLMeVoPSYMzQfmKobmrWzxHV55x"],"license":"GPL-3.0"},"contracts/erc3643/roles/permissioning/agent/AgentRoles.sol":{"keccak256":"0x851d32985e3b72b1e3ab298254f51d962f0fde7332598809a505d26cc6156013","urls":["bzz-raw://45a3e22184fcea26741c16c8c0285f378423d4adb12e5dc4a718ae88b1024fac","dweb:/ipfs/QmNqqvMi6VdZzRnR9yjWneKrAWCWaPrAiypMN6jihUF85e"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":90} \ No newline at end of file diff --git a/out/AgentRole.sol/AgentRole.json b/out/AgentRole.sol/AgentRole.json new file mode 100644 index 0000000..7efba9e --- /dev/null +++ b/out/AgentRole.sol/AgentRole.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6104fb806100a56000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631ffbb06414610067578063715018a61461008f57806384e79842146100995780638da5cb5b146100ac57806397a6278e146100c7578063f2fde38b146100da575b600080fd5b61007a610075366004610495565b6100ed565b60405190151581526020015b60405180910390f35b610097610100565b005b6100976100a7366004610495565b610114565b6000546040516001600160a01b039091168152602001610086565b6100976100d5366004610495565b6101b9565b6100976100e8366004610495565b610259565b60006100fa600183610297565b92915050565b61010861031a565b6101126000610347565b565b61011c61031a565b6001600160a01b0381166101775760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b610182600182610397565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b6101c161031a565b6001600160a01b0381166102175760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161016e565b610222600182610413565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b61026161031a565b6001600160a01b03811661028b57604051631e4fbdf760e01b81526000600482015260240161016e565b61029481610347565b50565b60006001600160a01b0382166102fa5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840161016e565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000546001600160a01b031633146101125760405163118cdaa760e01b815233600482015260240161016e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6103a18282610297565b156103ee5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640161016e565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61041d8282610297565b6104735760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b606482015260840161016e565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6000602082840312156104a757600080fd5b81356001600160a01b03811681146104be57600080fd5b939250505056fea264697066735822122081f59c8f689786ef1aac904da4883d210da7bf38eec07f267703fae04629db4864736f6c63430008180033","sourceMap":"3920:885:87:-:0;;;4250:36;;;;;;;;;-1:-1:-1;4272:10:87;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;160:51:165;133:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;3920:885:87;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:165:-;3920:885:87;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c80631ffbb06414610067578063715018a61461008f57806384e79842146100995780638da5cb5b146100ac57806397a6278e146100c7578063f2fde38b146100da575b600080fd5b61007a610075366004610495565b6100ed565b60405190151581526020015b60405180910390f35b610097610100565b005b6100976100a7366004610495565b610114565b6000546040516001600160a01b039091168152602001610086565b6100976100d5366004610495565b6101b9565b6100976100e8366004610495565b610259565b60006100fa600183610297565b92915050565b61010861031a565b6101126000610347565b565b61011c61031a565b6001600160a01b0381166101775760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b610182600182610397565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b6101c161031a565b6001600160a01b0381166102175760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161016e565b610222600182610413565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b61026161031a565b6001600160a01b03811661028b57604051631e4fbdf760e01b81526000600482015260240161016e565b61029481610347565b50565b60006001600160a01b0382166102fa5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840161016e565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000546001600160a01b031633146101125760405163118cdaa760e01b815233600482015260240161016e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6103a18282610297565b156103ee5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640161016e565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61041d8282610297565b6104735760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b606482015260840161016e565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6000602082840312156104a757600080fd5b81356001600160a01b03811681146104be57600080fd5b939250505056fea264697066735822122081f59c8f689786ef1aac904da4883d210da7bf38eec07f267703fae04629db4864736f6c63430008180033","sourceMap":"3920:885:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4700:103;;;;;;:::i;:::-;;:::i;:::-;;;470:14:165;;463:22;445:41;;433:2;418:18;4700:103:87;;;;;;;;2293:101:141;;;:::i;:::-;;4292:194:87;;;;;;:::i;:::-;;:::i;1638:85:141:-;1684:7;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:141;;;643:51:165;;631:2;616:18;1638:85:141;497:203:165;4492:202:87;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;4700:103:87:-;4754:4;4777:19;:7;4789:6;4777:11;:19::i;:::-;4770:26;4700:103;-1:-1:-1;;4700:103:87:o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;4292:194:87:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4361:20:87;::::1;4353:64;;;::::0;-1:-1:-1;;;4353:64:87;;907:2:165;4353:64:87::1;::::0;::::1;889:21:165::0;946:2;926:18;;;919:30;985:33;965:18;;;958:61;1036:18;;4353:64:87::1;;;;;;;;;4427:19;:7;4439:6:::0;4427:11:::1;:19::i;:::-;4461:18;::::0;-1:-1:-1;;;;;4461:18:87;::::1;::::0;::::1;::::0;;;::::1;4292:194:::0;:::o;4492:202::-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4564:20:87;::::1;4556:64;;;::::0;-1:-1:-1;;;4556:64:87;;907:2:165;4556:64:87::1;::::0;::::1;889:21:165::0;946:2;926:18;;;919:30;985:33;965:18;;;958:61;1036:18;;4556:64:87::1;705:355:165::0;4556:64:87::1;4630:22;:7;4645:6:::0;4630:14:::1;:22::i;:::-;4667:20;::::0;-1:-1:-1;;;;;4667:20:87;::::1;::::0;::::1;::::0;;;::::1;4492:202:::0;:::o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;643:51:165::0;616:18;;2672:31:141::1;497:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;4596:200:89:-;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;1267:2:165;4684:68:89;;;1249:21:165;1306:2;1286:18;;;1279:30;1345:34;1325:18;;;1318:62;-1:-1:-1;;;1396:18:165;;;1389:32;1438:19;;4684:68:89;1065:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;1796:162:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;643:51:165;616:18;;1901:40:141;497:203:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;4077:175:89:-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;1670:2:165;4145:63:89;;;1652:21:165;1709:2;1689:18;;;1682:30;1748:33;1728:18;;;1721:61;1799:18;;4145:63:89;1468:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;4327:180::-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;2030:2:165;4398:64:89;;;2012:21:165;2069:2;2049:18;;;2042:30;2108:34;2088:18;;;2081:62;-1:-1:-1;;;2159:18:165;;;2152:31;2200:19;;4398:64:89;1828:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;14:286:165:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:165;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:165:o","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","isAgent(address)":"1ffbb064","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"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\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/roles/AgentRole.sol\":\"AgentRole\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"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."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/roles/AgentRole.sol":"AgentRole"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":87} \ No newline at end of file diff --git a/out/AgentRoleUpgradeable.sol/AgentRoleUpgradeable.json b/out/AgentRoleUpgradeable.sol/AgentRoleUpgradeable.json new file mode 100644 index 0000000..5deec10 --- /dev/null +++ b/out/AgentRoleUpgradeable.sol/AgentRoleUpgradeable.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610568806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631ffbb06414610067578063715018a61461008f57806384e79842146100995780638da5cb5b146100ac57806397a6278e146100e6578063f2fde38b146100f9575b600080fd5b61007a610075366004610502565b61010c565b60405190151581526020015b60405180910390f35b61009761011e565b005b6100976100a7366004610502565b610132565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b039091168152602001610086565b6100976100f4366004610502565b6101d7565b610097610107366004610502565b610277565b600061011881836102b5565b92915050565b610126610338565b6101306000610393565b565b61013a610338565b6001600160a01b0381166101955760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6101a0600082610404565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b6101df610338565b6001600160a01b0381166102355760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161018c565b610240600082610480565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b61027f610338565b6001600160a01b0381166102a957604051631e4fbdf760e01b81526000600482015260240161018c565b6102b281610393565b50565b60006001600160a01b0382166103185760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840161018c565b506001600160a01b03166000908152602091909152604090205460ff1690565b3361036a7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146101305760405163118cdaa760e01b815233600482015260240161018c565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61040e82826102b5565b1561045b5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640161018c565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61048a82826102b5565b6104e05760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b606482015260840161018c565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60006020828403121561051457600080fd5b81356001600160a01b038116811461052b57600080fd5b939250505056fea26469706673582212205f3a3a4690c24889c1064c72516c0c6fa2f3f60a06368a913e7a13f523b6565a64736f6c63430008180033","sourceMap":"3943:865:88:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c80631ffbb06414610067578063715018a61461008f57806384e79842146100995780638da5cb5b146100ac57806397a6278e146100e6578063f2fde38b146100f9575b600080fd5b61007a610075366004610502565b61010c565b60405190151581526020015b60405180910390f35b61009761011e565b005b6100976100a7366004610502565b610132565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b039091168152602001610086565b6100976100f4366004610502565b6101d7565b610097610107366004610502565b610277565b600061011881836102b5565b92915050565b610126610338565b6101306000610393565b565b61013a610338565b6001600160a01b0381166101955760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6101a0600082610404565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b6101df610338565b6001600160a01b0381166102355760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161018c565b610240600082610480565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b61027f610338565b6001600160a01b0381166102a957604051631e4fbdf760e01b81526000600482015260240161018c565b6102b281610393565b50565b60006001600160a01b0382166103185760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840161018c565b506001600160a01b03166000908152602091909152604090205460ff1690565b3361036a7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146101305760405163118cdaa760e01b815233600482015260240161018c565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61040e82826102b5565b1561045b5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640161018c565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61048a82826102b5565b6104e05760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b606482015260840161018c565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60006020828403121561051457600080fd5b81356001600160a01b038116811461052b57600080fd5b939250505056fea26469706673582212205f3a3a4690c24889c1064c72516c0c6fa2f3f60a06368a913e7a13f523b6565a64736f6c63430008180033","sourceMap":"3943:865:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4703:103;;;;;;:::i;:::-;;:::i;:::-;;;470:14:165;;463:22;445:41;;433:2;418:18;4703:103:88;;;;;;;;3155:101:136;;;:::i;:::-;;4295:194:88;;;;;;:::i;:::-;;:::i;2441:144:136:-;1313:22;2570:8;2441:144;;-1:-1:-1;;;;;2570:8:136;;;643:51:165;;631:2;616:18;2441:144:136;497:203:165;4495:202:88;;;;;;:::i;:::-;;:::i;3405:215:136:-;;;;;;:::i;:::-;;:::i;4703:103:88:-;4757:4;4780:19;4757:4;4792:6;4780:11;:19::i;:::-;4773:26;4703:103;-1:-1:-1;;4703:103:88:o;3155:101:136:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;4295:194:88:-;2334:13:136;:11;:13::i;:::-;-1:-1:-1;;;;;4364:20:88;::::1;4356:64;;;::::0;-1:-1:-1;;;4356:64:88;;907:2:165;4356:64:88::1;::::0;::::1;889:21:165::0;946:2;926:18;;;919:30;985:33;965:18;;;958:61;1036:18;;4356:64:88::1;;;;;;;;;4430:19;:7;4442:6:::0;4430:11:::1;:19::i;:::-;4464:18;::::0;-1:-1:-1;;;;;4464:18:88;::::1;::::0;::::1;::::0;;;::::1;4295:194:::0;:::o;4495:202::-;2334:13:136;:11;:13::i;:::-;-1:-1:-1;;;;;4567:20:88;::::1;4559:64;;;::::0;-1:-1:-1;;;4559:64:88;;907:2:165;4559:64:88::1;::::0;::::1;889:21:165::0;946:2;926:18;;;919:30;985:33;965:18;;;958:61;1036:18;;4559:64:88::1;705:355:165::0;4559:64:88::1;4633:22;:7;4648:6:::0;4633:14:::1;:22::i;:::-;4670:20;::::0;-1:-1:-1;;;;;4670:20:88;::::1;::::0;::::1;::::0;;;::::1;4495:202:::0;:::o;3405:215:136:-;2334:13;:11;:13::i;:::-;-1:-1:-1;;;;;3489:22:136;::::1;3485:91;;3534:31;::::0;-1:-1:-1;;;3534:31:136;;3562:1:::1;3534:31;::::0;::::1;643:51:165::0;616:18;;3534:31:136::1;497:203:165::0;3485:91:136::1;3585:28;3604:8;3585:18;:28::i;:::-;3405:215:::0;:::o;4596:200:89:-;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;1267:2:165;4684:68:89;;;1249:21:165;1306:2;1286:18;;;1279:30;1345:34;1325:18;;;1318:62;-1:-1:-1;;;1396:18:165;;;1389:32;1438:19;;4684:68:89;1065:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;2658:162:136:-;966:10:138;2717:7:136;1313:22;2570:8;-1:-1:-1;;;;;2570:8:136;;2441:144;2717:7;-1:-1:-1;;;;;2717:23:136;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:136;;966:10:138;2763:40:136;;;643:51:165;616:18;;2763:40:136;497:203:165;3774:248:136;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:136;;-1:-1:-1;;;;;3941:19:136;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;4077:175:89:-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;1670:2:165;4145:63:89;;;1652:21:165;1709:2;1689:18;;;1682:30;1748:33;1728:18;;;1721:61;1799:18;;4145:63:89;1468:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;4327:180::-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;2030:2:165;4398:64:89;;;2012:21:165;2069:2;2049:18;;;2042:30;2108:34;2088:18;;;2081:62;-1:-1:-1;;;2159:18:165;;;2152:31;2200:19;;4398:64:89;1828:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;14:286:165:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:165;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:165:o","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","isAgent(address)":"1ffbb064","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"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\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/roles/AgentRoleUpgradeable.sol\":\"AgentRoleUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/roles/AgentRoleUpgradeable.sol\":{\"keccak256\":\"0x621b1a88ff1637e2d14b1dd27cbd8cc5d1feba549be25cad7c57fb22a4d6a2b1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e81b966250d80f55c179eff2d28fc9a5322ba8d09230b8a4744e77f97ad53c8a\",\"dweb:/ipfs/QmTAB51L4yRgQdh3becJKXMHaAMR9vnpjjdpFs4LQ5kWKT\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"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."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/roles/AgentRoleUpgradeable.sol":"AgentRoleUpgradeable"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/roles/AgentRoleUpgradeable.sol":{"keccak256":"0x621b1a88ff1637e2d14b1dd27cbd8cc5d1feba549be25cad7c57fb22a4d6a2b1","urls":["bzz-raw://e81b966250d80f55c179eff2d28fc9a5322ba8d09230b8a4744e77f97ad53c8a","dweb:/ipfs/QmTAB51L4yRgQdh3becJKXMHaAMR9vnpjjdpFs4LQ5kWKT"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"}},"version":1},"id":88} \ No newline at end of file diff --git a/out/AgentRoles.sol/AgentRoles.json b/out/AgentRoles.sol/AgentRoles.json new file mode 100644 index 0000000..09e78cf --- /dev/null +++ b/out/AgentRoles.sol/AgentRoles.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addAgentAdmin","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addComplianceAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addFreezer","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addRecoveryAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addSupplyModifier","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTransferManager","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addWhiteListManager","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgentAdmin","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComplianceAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isFreezer","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isRecoveryAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSupplyModifier","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTransferManager","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWhiteListManager","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgentAdmin","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeComplianceAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeFreezer","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeRecoveryAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeSupplyModifier","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTransferManager","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeWhiteListManager","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"},{"name":"_role","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"RoleRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"},{"name":"_role","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610fcd806100a56000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c8063715018a6116100c3578063bd92fcfe1161007c578063bd92fcfe146102c7578063c6006c9a146102da578063c8777b50146102ed578063cdf1b69314610300578063e86c643114610313578063f2fde38b1461032657600080fd5b8063715018a6146102585780637489453d146102605780637ad78a4614610273578063860a2bcf146102865780638da5cb5b14610299578063965e61ea146102b457600080fd5b80633cdf8000116101155780633cdf8000146101e65780634599fb7b146101f95780634aff432c1461020c578063526606c91461021f57806365d07b2e146102325780636c65fd6a1461024557600080fd5b8063042a36061461015d57806314f2d2761461018557806315d8ca621461019a5780632001c350146101ad5780632acd2000146101c05780633966904d146101d3575b600080fd5b61017061016b366004610ea1565b610339565b60405190151581526020015b60405180910390f35b610198610193366004610ea1565b61034c565b005b6101986101a8366004610ea1565b610401565b6101706101bb366004610ea1565b6104a0565b6101986101ce366004610ea1565b6104ad565b6101986101e1366004610ea1565b610545565b6101986101f4366004610ea1565b6105e6565b610170610207366004610ea1565b610686565b61019861021a366004610ea1565b610693565b61019861022d366004610ea1565b610734565b610198610240366004610ea1565b6107cc565b610170610253366004610ea1565b610867565b610198610874565b61019861026e366004610ea1565b610888565b610170610281366004610ea1565b610926565b610198610294366004610ea1565b610933565b6000546040516001600160a01b03909116815260200161017c565b6101986102c2366004610ea1565b6109d2565b6101706102d5366004610ea1565b610a72565b6101986102e8366004610ea1565b610a7f565b6101986102fb366004610ea1565b610b1f565b61019861030e366004610ea1565b610bbd565b610170610321366004610ea1565b610c58565b610198610334366004610ea1565b610c65565b6000610346600183610ca3565b92915050565b3361035f6000546001600160a01b031690565b6001600160a01b03161480610378575061037833610686565b61039d5760405162461bcd60e51b815260040161039490610ed1565b60405180910390fd5b6103a8600382610d26565b604080518082018252600f81526e2a3930b739b332b926b0b730b3b2b960891b602082015290516001600160a01b03831690600080516020610f78833981519152906103f5908490610f08565b60405180910390a25050565b336104146000546001600160a01b031690565b6001600160a01b0316148061042d575061042d33610686565b6104495760405162461bcd60e51b815260040161039490610ed1565b610454600182610d26565b604080518082018252600e81526d29bab838363ca6b7b234b334b2b960911b602082015290516001600160a01b03831690600080516020610f78833981519152906103f5908490610f08565b6000610346600583610ca3565b336104c06000546001600160a01b031690565b6001600160a01b031614806104d957506104d933610686565b6104f55760405162461bcd60e51b815260040161039490610ed1565b610500600282610da2565b6040805180820182526007815266233932b2bd32b960c91b602082015290516001600160a01b03831690600080516020610f58833981519152906103f5908490610f08565b336105586000546001600160a01b031690565b6001600160a01b03161480610571575061057133610686565b61058d5760405162461bcd60e51b815260040161039490610ed1565b610598600682610d26565b604080518082018252601081526f2bb434ba32a634b9ba26b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020610f78833981519152906103f5908490610f08565b336105f96000546001600160a01b031690565b6001600160a01b03161480610612575061061233610686565b61062e5760405162461bcd60e51b815260040161039490610ed1565b610639600582610d26565b604080518082018252600f81526e10dbdb5c1b1a585b98d95059d95b9d608a1b602082015290516001600160a01b03831690600080516020610f78833981519152906103f5908490610f08565b6000610346600783610ca3565b336106a66000546001600160a01b031690565b6001600160a01b031614806106bf57506106bf33610686565b6106db5760405162461bcd60e51b815260040161039490610ed1565b6106e6600682610da2565b604080518082018252601081526f2bb434ba32a634b9ba26b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020610f58833981519152906103f5908490610f08565b336107476000546001600160a01b031690565b6001600160a01b03161480610760575061076033610686565b61077c5760405162461bcd60e51b815260040161039490610ed1565b610787600282610d26565b6040805180820182526007815266233932b2bd32b960c91b602082015290516001600160a01b03831690600080516020610f78833981519152906103f5908490610f08565b336107df6000546001600160a01b031690565b6001600160a01b031614806107f857506107f833610686565b6108145760405162461bcd60e51b815260040161039490610ed1565b61081f600782610da2565b604080518082018252600a81526920b3b2b73a20b236b4b760b11b602082015290516001600160a01b03831690600080516020610f58833981519152906103f5908490610f08565b6000610346600283610ca3565b61087c610e24565b6108866000610e51565b565b3361089b6000546001600160a01b031690565b6001600160a01b031614806108b457506108b433610686565b6108d05760405162461bcd60e51b815260040161039490610ed1565b6108db600482610d26565b604080518082018252600d81526c149958dbdd995c9e5059d95b9d609a1b602082015290516001600160a01b03831690600080516020610f78833981519152906103f5908490610f08565b6000610346600483610ca3565b336109466000546001600160a01b031690565b6001600160a01b0316148061095f575061095f33610686565b61097b5760405162461bcd60e51b815260040161039490610ed1565b610986600182610da2565b604080518082018252600e81526d29bab838363ca6b7b234b334b2b960911b602082015290516001600160a01b03831690600080516020610f58833981519152906103f5908490610f08565b336109e56000546001600160a01b031690565b6001600160a01b031614806109fe57506109fe33610686565b610a1a5760405162461bcd60e51b815260040161039490610ed1565b610a25600382610da2565b604080518082018252600f81526e2a3930b739b332b926b0b730b3b2b960891b602082015290516001600160a01b03831690600080516020610f58833981519152906103f5908490610f08565b6000610346600683610ca3565b33610a926000546001600160a01b031690565b6001600160a01b03161480610aab5750610aab33610686565b610ac75760405162461bcd60e51b815260040161039490610ed1565b610ad2600582610da2565b604080518082018252600f81526e10dbdb5c1b1a585b98d95059d95b9d608a1b602082015290516001600160a01b03831690600080516020610f58833981519152906103f5908490610f08565b33610b326000546001600160a01b031690565b6001600160a01b03161480610b4b5750610b4b33610686565b610b675760405162461bcd60e51b815260040161039490610ed1565b610b72600482610da2565b604080518082018252600d81526c149958dbdd995c9e5059d95b9d609a1b602082015290516001600160a01b03831690600080516020610f58833981519152906103f5908490610f08565b33610bd06000546001600160a01b031690565b6001600160a01b03161480610be95750610be933610686565b610c055760405162461bcd60e51b815260040161039490610ed1565b610c10600782610d26565b604080518082018252600a81526920b3b2b73a20b236b4b760b11b602082015290516001600160a01b03831690600080516020610f78833981519152906103f5908490610f08565b6000610346600383610ca3565b610c6d610e24565b6001600160a01b038116610c9757604051631e4fbdf760e01b815260006004820152602401610394565b610ca081610e51565b50565b60006001600160a01b038216610d065760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610394565b506001600160a01b03166000908152602091909152604090205460ff1690565b610d308282610ca3565b15610d7d5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610394565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610dac8282610ca3565b610e025760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610394565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6000546001600160a01b031633146108865760405163118cdaa760e01b8152336004820152602401610394565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610eb357600080fd5b81356001600160a01b0381168114610eca57600080fd5b9392505050565b60208082526019908201527f526f6c653a2053656e646572206973204e4f542041646d696e00000000000000604082015260600190565b60006020808352835180602085015260005b81811015610f3657858101830151858201604001528201610f1a565b506000604082860101526040601f19601f830116850101925050509291505056fed211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803abfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489a2646970667358221220389672299d658925b5ea762dcdf05f964817860b6e750b92f8fbde108bacf33d64736f6c63430008180033","sourceMap":"3924:4445:91:-:0;;;4592:36;;;;;;;;;-1:-1:-1;4614:10:91;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;160:51:165;133:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;3924:4445:91;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:165:-;3924:4445:91;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101585760003560e01c8063715018a6116100c3578063bd92fcfe1161007c578063bd92fcfe146102c7578063c6006c9a146102da578063c8777b50146102ed578063cdf1b69314610300578063e86c643114610313578063f2fde38b1461032657600080fd5b8063715018a6146102585780637489453d146102605780637ad78a4614610273578063860a2bcf146102865780638da5cb5b14610299578063965e61ea146102b457600080fd5b80633cdf8000116101155780633cdf8000146101e65780634599fb7b146101f95780634aff432c1461020c578063526606c91461021f57806365d07b2e146102325780636c65fd6a1461024557600080fd5b8063042a36061461015d57806314f2d2761461018557806315d8ca621461019a5780632001c350146101ad5780632acd2000146101c05780633966904d146101d3575b600080fd5b61017061016b366004610ea1565b610339565b60405190151581526020015b60405180910390f35b610198610193366004610ea1565b61034c565b005b6101986101a8366004610ea1565b610401565b6101706101bb366004610ea1565b6104a0565b6101986101ce366004610ea1565b6104ad565b6101986101e1366004610ea1565b610545565b6101986101f4366004610ea1565b6105e6565b610170610207366004610ea1565b610686565b61019861021a366004610ea1565b610693565b61019861022d366004610ea1565b610734565b610198610240366004610ea1565b6107cc565b610170610253366004610ea1565b610867565b610198610874565b61019861026e366004610ea1565b610888565b610170610281366004610ea1565b610926565b610198610294366004610ea1565b610933565b6000546040516001600160a01b03909116815260200161017c565b6101986102c2366004610ea1565b6109d2565b6101706102d5366004610ea1565b610a72565b6101986102e8366004610ea1565b610a7f565b6101986102fb366004610ea1565b610b1f565b61019861030e366004610ea1565b610bbd565b610170610321366004610ea1565b610c58565b610198610334366004610ea1565b610c65565b6000610346600183610ca3565b92915050565b3361035f6000546001600160a01b031690565b6001600160a01b03161480610378575061037833610686565b61039d5760405162461bcd60e51b815260040161039490610ed1565b60405180910390fd5b6103a8600382610d26565b604080518082018252600f81526e2a3930b739b332b926b0b730b3b2b960891b602082015290516001600160a01b03831690600080516020610f78833981519152906103f5908490610f08565b60405180910390a25050565b336104146000546001600160a01b031690565b6001600160a01b0316148061042d575061042d33610686565b6104495760405162461bcd60e51b815260040161039490610ed1565b610454600182610d26565b604080518082018252600e81526d29bab838363ca6b7b234b334b2b960911b602082015290516001600160a01b03831690600080516020610f78833981519152906103f5908490610f08565b6000610346600583610ca3565b336104c06000546001600160a01b031690565b6001600160a01b031614806104d957506104d933610686565b6104f55760405162461bcd60e51b815260040161039490610ed1565b610500600282610da2565b6040805180820182526007815266233932b2bd32b960c91b602082015290516001600160a01b03831690600080516020610f58833981519152906103f5908490610f08565b336105586000546001600160a01b031690565b6001600160a01b03161480610571575061057133610686565b61058d5760405162461bcd60e51b815260040161039490610ed1565b610598600682610d26565b604080518082018252601081526f2bb434ba32a634b9ba26b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020610f78833981519152906103f5908490610f08565b336105f96000546001600160a01b031690565b6001600160a01b03161480610612575061061233610686565b61062e5760405162461bcd60e51b815260040161039490610ed1565b610639600582610d26565b604080518082018252600f81526e10dbdb5c1b1a585b98d95059d95b9d608a1b602082015290516001600160a01b03831690600080516020610f78833981519152906103f5908490610f08565b6000610346600783610ca3565b336106a66000546001600160a01b031690565b6001600160a01b031614806106bf57506106bf33610686565b6106db5760405162461bcd60e51b815260040161039490610ed1565b6106e6600682610da2565b604080518082018252601081526f2bb434ba32a634b9ba26b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020610f58833981519152906103f5908490610f08565b336107476000546001600160a01b031690565b6001600160a01b03161480610760575061076033610686565b61077c5760405162461bcd60e51b815260040161039490610ed1565b610787600282610d26565b6040805180820182526007815266233932b2bd32b960c91b602082015290516001600160a01b03831690600080516020610f78833981519152906103f5908490610f08565b336107df6000546001600160a01b031690565b6001600160a01b031614806107f857506107f833610686565b6108145760405162461bcd60e51b815260040161039490610ed1565b61081f600782610da2565b604080518082018252600a81526920b3b2b73a20b236b4b760b11b602082015290516001600160a01b03831690600080516020610f58833981519152906103f5908490610f08565b6000610346600283610ca3565b61087c610e24565b6108866000610e51565b565b3361089b6000546001600160a01b031690565b6001600160a01b031614806108b457506108b433610686565b6108d05760405162461bcd60e51b815260040161039490610ed1565b6108db600482610d26565b604080518082018252600d81526c149958dbdd995c9e5059d95b9d609a1b602082015290516001600160a01b03831690600080516020610f78833981519152906103f5908490610f08565b6000610346600483610ca3565b336109466000546001600160a01b031690565b6001600160a01b0316148061095f575061095f33610686565b61097b5760405162461bcd60e51b815260040161039490610ed1565b610986600182610da2565b604080518082018252600e81526d29bab838363ca6b7b234b334b2b960911b602082015290516001600160a01b03831690600080516020610f58833981519152906103f5908490610f08565b336109e56000546001600160a01b031690565b6001600160a01b031614806109fe57506109fe33610686565b610a1a5760405162461bcd60e51b815260040161039490610ed1565b610a25600382610da2565b604080518082018252600f81526e2a3930b739b332b926b0b730b3b2b960891b602082015290516001600160a01b03831690600080516020610f58833981519152906103f5908490610f08565b6000610346600683610ca3565b33610a926000546001600160a01b031690565b6001600160a01b03161480610aab5750610aab33610686565b610ac75760405162461bcd60e51b815260040161039490610ed1565b610ad2600582610da2565b604080518082018252600f81526e10dbdb5c1b1a585b98d95059d95b9d608a1b602082015290516001600160a01b03831690600080516020610f58833981519152906103f5908490610f08565b33610b326000546001600160a01b031690565b6001600160a01b03161480610b4b5750610b4b33610686565b610b675760405162461bcd60e51b815260040161039490610ed1565b610b72600482610da2565b604080518082018252600d81526c149958dbdd995c9e5059d95b9d609a1b602082015290516001600160a01b03831690600080516020610f58833981519152906103f5908490610f08565b33610bd06000546001600160a01b031690565b6001600160a01b03161480610be95750610be933610686565b610c055760405162461bcd60e51b815260040161039490610ed1565b610c10600782610d26565b604080518082018252600a81526920b3b2b73a20b236b4b760b11b602082015290516001600160a01b03831690600080516020610f78833981519152906103f5908490610f08565b6000610346600383610ca3565b610c6d610e24565b6001600160a01b038116610c9757604051631e4fbdf760e01b815260006004820152602401610394565b610ca081610e51565b50565b60006001600160a01b038216610d065760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610394565b506001600160a01b03166000908152602091909152604090205460ff1690565b610d308282610ca3565b15610d7d5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610394565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610dac8282610ca3565b610e025760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610394565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6000546001600160a01b031633146108865760405163118cdaa760e01b8152336004820152602401610394565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610eb357600080fd5b81356001600160a01b0381168114610eca57600080fd5b9392505050565b60208082526019908201527f526f6c653a2053656e646572206973204e4f542041646d696e00000000000000604082015260600190565b60006020808352835180602085015260005b81811015610f3657858101830151858201604001528201610f1a565b506000604082860101526040601f19601f830116850101925050509291505056fed211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803abfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489a2646970667358221220389672299d658925b5ea762dcdf05f964817860b6e750b92f8fbde108bacf33d64736f6c63430008180033","sourceMap":"3924:4445:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8246:121;;;;;;:::i;:::-;;:::i;:::-;;;470:14:165;;463:22;445:41;;433:2;418:18;8246:121:91;;;;;;;;5851:197;;;;;;:::i;:::-;;:::i;:::-;;5077:194;;;;;;:::i;:::-;;:::i;7750:123::-;;;;;;:::i;:::-;;:::i;5664:181::-;;;;;;:::i;:::-;;:::i;7081:200::-;;;;;;:::i;:::-;;:::i;6667:197::-;;;;;;:::i;:::-;;:::i;7501:112::-;;;;;;:::i;:::-;;:::i;7287:208::-;;;;;;:::i;:::-;;:::i;5485:173::-;;;;;;:::i;:::-;;:::i;4882:189::-;;;;;;:::i;:::-;;:::i;8133:107::-;;;;;;:::i;:::-;;:::i;2293:101:141:-;;;:::i;6265:191:91:-;;;;;;:::i;:::-;;:::i;7879:119::-;;;;;;:::i;:::-;;:::i;5277:202::-;;;;;;:::i;:::-;;:::i;1638:85:141:-;1684:7;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:141;;;643:51:165;;631:2;616:18;1638:85:141;497:203:165;6054:205:91;;;;;;:::i;:::-;;:::i;7619:125::-;;;;;;:::i;:::-;;:::i;6870:205::-;;;;;;:::i;:::-;;:::i;6462:199::-;;;;;;:::i;:::-;;:::i;4695:181::-;;;;;;:::i;:::-;;:::i;8004:123::-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;8246:121:91:-;8309:4;8332:28;:16;8353:6;8332:20;:28::i;:::-;8325:35;8246:121;-1:-1:-1;;8246:121:91:o;5851:197::-;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;;;;;;;;;5924:29:::1;:17;5946:6:::0;5924:21:::1;:29::i;:::-;5963:39;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5963:39:91::1;::::0;::::1;::::0;6017:24;;-1:-1:-1;;;;;6017:24:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;6017:24:91;::::1;::::0;5963:39;;6017:24:::1;:::i;:::-;;;;;;;;5914:134;5851:197:::0;:::o;5077:194::-;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;5149:28:::1;:16;5170:6:::0;5149:20:::1;:28::i;:::-;5187:38;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5187:38:91::1;::::0;::::1;::::0;5240:24;;-1:-1:-1;;;;;5240:24:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;5240:24:91;::::1;::::0;5187:38;;5240:24:::1;:::i;7750:123::-:0;7814:4;7837:29;:17;7859:6;7837:21;:29::i;5664:181::-;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;5732:24:::1;:9;5749:6:::0;5732:16:::1;:24::i;:::-;5766:31;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5766:31:91::1;::::0;::::1;::::0;5812:26;;-1:-1:-1;;;;;5812:26:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;5812:26:91;::::1;::::0;5766:31;;5812:26:::1;:::i;7081:200::-:0;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;7155:30:::1;:18;7178:6:::0;7155:22:::1;:30::i;:::-;7195:40;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;7195:40:91::1;::::0;::::1;::::0;7250:24;;-1:-1:-1;;;;;7250:24:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;7250:24:91;::::1;::::0;7195:40;;7250:24:::1;:::i;6667:197::-:0;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;6740:29:::1;:17;6762:6:::0;6740:21:::1;:29::i;:::-;6779:39;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6779:39:91::1;::::0;::::1;::::0;6833:24;;-1:-1:-1;;;;;6833:24:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;6833:24:91;::::1;::::0;6779:39;;6833:24:::1;:::i;7501:112::-:0;7560:4;7583:23;:11;7599:6;7583:15;:23::i;7287:208::-;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;7364:33:::1;:18;7390:6:::0;7364:25:::1;:33::i;:::-;7407:40;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;7407:40:91::1;::::0;::::1;::::0;7462:26;;-1:-1:-1;;;;;7462:26:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;7462:26:91;::::1;::::0;7407:40;;7462:26:::1;:::i;5485:173::-:0;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;5550:21:::1;:9;5564:6:::0;5550:13:::1;:21::i;:::-;5581:31;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5581:31:91::1;::::0;::::1;::::0;5627:24;;-1:-1:-1;;;;;5627:24:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;5627:24:91;::::1;::::0;5581:31;;5627:24:::1;:::i;4882:189::-:0;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;4953:26:::1;:11;4972:6:::0;4953:18:::1;:26::i;:::-;4989:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;4989:34:91::1;::::0;::::1;::::0;5038:26;;-1:-1:-1;;;;;5038:26:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;5038:26:91;::::1;::::0;4989:34;;5038:26:::1;:::i;8133:107::-:0;8189:4;8212:21;:9;8226:6;8212:13;:21::i;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;6265:191:91:-;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;6336:27:::1;:15;6356:6:::0;6336:19:::1;:27::i;:::-;6373:37;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6373:37:91::1;::::0;::::1;::::0;6425:24;;-1:-1:-1;;;;;6425:24:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;6425:24:91;::::1;::::0;6373:37;;6425:24:::1;:::i;7879:119::-:0;7941:4;7964:27;:15;7984:6;7964:19;:27::i;5277:202::-;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;5352:31:::1;:16;5376:6:::0;5352:23:::1;:31::i;:::-;5393:38;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5393:38:91::1;::::0;::::1;::::0;5446:26;;-1:-1:-1;;;;;5446:26:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;5446:26:91;::::1;::::0;5393:38;;5446:26:::1;:::i;6054:205::-:0;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;6130:32:::1;:17;6155:6:::0;6130:24:::1;:32::i;:::-;6172:39;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6172:39:91::1;::::0;::::1;::::0;6226:26;;-1:-1:-1;;;;;6226:26:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;6226:26:91;::::1;::::0;6172:39;;6226:26:::1;:::i;7619:125::-:0;7684:4;7707:30;:18;7730:6;7707:22;:30::i;6870:205::-;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;6946:32:::1;:17;6971:6:::0;6946:24:::1;:32::i;:::-;6988:39;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6988:39:91::1;::::0;::::1;::::0;7042:26;;-1:-1:-1;;;;;7042:26:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;7042:26:91;::::1;::::0;6988:39;;7042:26:::1;:::i;6462:199::-:0;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;6536:30:::1;:15;6559:6:::0;6536:22:::1;:30::i;:::-;6576:37;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6576:37:91::1;::::0;::::1;::::0;6628:26;;-1:-1:-1;;;;;6628:26:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;6628:26:91;::::1;::::0;6576:37;;6628:26:::1;:::i;4695:181::-:0;4498:10;4487:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4487:7:91;-1:-1:-1;;;;;4487:21:91;;:51;;;-1:-1:-1;4512:26:91;735:10:152;7501:112:91;:::i;4512:26::-;4479:89;;;;-1:-1:-1;;;4479:89:91;;;;;;;:::i;:::-;4763:23:::1;:11;4779:6:::0;4763:15:::1;:23::i;:::-;4796:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;4796:34:91::1;::::0;::::1;::::0;4845:24;;-1:-1:-1;;;;;4845:24:91;::::1;::::0;-1:-1:-1;;;;;;;;;;;4845:24:91;::::1;::::0;4796:34;;4845:24:::1;:::i;8004:123::-:0;8068:4;8091:29;:17;8113:6;8091:21;:29::i;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;643:51:165::0;616:18;;2672:31:141::1;497:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;4596:200:89:-;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;1814:2:165;4684:68:89;;;1796:21:165;1853:2;1833:18;;;1826:30;1892:34;1872:18;;;1865:62;-1:-1:-1;;;1943:18:165;;;1936:32;1985:19;;4684:68:89;1612:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;4077:175::-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;2217:2:165;4145:63:89;;;2199:21:165;2256:2;2236:18;;;2229:30;2295:33;2275:18;;;2268:61;2346:18;;4145:63:89;2015:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;4327:180::-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;2577:2:165;4398:64:89;;;2559:21:165;2616:2;2596:18;;;2589:30;2655:34;2635:18;;;2628:62;-1:-1:-1;;;2706:18:165;;;2699:31;2747:19;;4398:64:89;2375:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;1796:162:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;643:51:165;616:18;;1901:40:141;497:203:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:286:165:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:165;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:165:o;705:349::-;907:2;889:21;;;946:2;926:18;;;919:30;985:27;980:2;965:18;;958:55;1045:2;1030:18;;705:349::o;1059:548::-;1171:4;1200:2;1229;1218:9;1211:21;1261:6;1255:13;1304:6;1299:2;1288:9;1284:18;1277:34;1329:1;1339:140;1353:6;1350:1;1347:13;1339:140;;;1448:14;;;1444:23;;1438:30;1414:17;;;1433:2;1410:26;1403:66;1368:10;;1339:140;;;1343:3;1528:1;1523:2;1514:6;1503:9;1499:22;1495:31;1488:42;1598:2;1591;1587:7;1582:2;1574:6;1570:15;1566:29;1555:9;1551:45;1547:54;1539:62;;;;1059:548;;;;:::o","linkReferences":{}},"methodIdentifiers":{"addAgentAdmin(address)":"cdf1b693","addComplianceAgent(address)":"3cdf8000","addFreezer(address)":"526606c9","addRecoveryAgent(address)":"7489453d","addSupplyModifier(address)":"15d8ca62","addTransferManager(address)":"14f2d276","addWhiteListManager(address)":"3966904d","isAgentAdmin(address)":"4599fb7b","isComplianceAgent(address)":"2001c350","isFreezer(address)":"6c65fd6a","isRecoveryAgent(address)":"7ad78a46","isSupplyModifier(address)":"042a3606","isTransferManager(address)":"e86c6431","isWhiteListManager(address)":"bd92fcfe","owner()":"8da5cb5b","removeAgentAdmin(address)":"65d07b2e","removeComplianceAgent(address)":"c6006c9a","removeFreezer(address)":"2acd2000","removeRecoveryAgent(address)":"c8777b50","removeSupplyModifier(address)":"860a2bcf","removeTransferManager(address)":"965e61ea","removeWhiteListManager(address)":"4aff432c","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_role\",\"type\":\"string\"}],\"name\":\"RoleAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_role\",\"type\":\"string\"}],\"name\":\"RoleRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgentAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addComplianceAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addFreezer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addRecoveryAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addSupplyModifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addTransferManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addWhiteListManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgentAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isComplianceAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isFreezer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isRecoveryAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isSupplyModifier\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isTransferManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isWhiteListManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgentAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeComplianceAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeFreezer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeRecoveryAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeSupplyModifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeTransferManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeWhiteListManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addAgentAdmin(address)\":{\"details\":\"AgentAdmin Role _agentAdmin\"},\"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.\"}},\"version\":1},\"userdoc\":{\"events\":{\"RoleAdded(address,string)\":{\"notice\":\"events\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/roles/permissioning/agent/AgentRoles.sol\":\"AgentRoles\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/roles/permissioning/agent/AgentRoles.sol\":{\"keccak256\":\"0x851d32985e3b72b1e3ab298254f51d962f0fde7332598809a505d26cc6156013\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://45a3e22184fcea26741c16c8c0285f378423d4adb12e5dc4a718ae88b1024fac\",\"dweb:/ipfs/QmNqqvMi6VdZzRnR9yjWneKrAWCWaPrAiypMN6jihUF85e\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true},{"internalType":"string","name":"_role","type":"string","indexed":false}],"type":"event","name":"RoleAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true},{"internalType":"string","name":"_role","type":"string","indexed":false}],"type":"event","name":"RoleRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgentAdmin"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addComplianceAgent"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addFreezer"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addRecoveryAgent"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addSupplyModifier"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTransferManager"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addWhiteListManager"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgentAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isFreezer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isRecoveryAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isSupplyModifier","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isTransferManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isWhiteListManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgentAdmin"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeComplianceAgent"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeFreezer"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeRecoveryAgent"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeSupplyModifier"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTransferManager"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeWhiteListManager"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"addAgentAdmin(address)":{"details":"AgentAdmin Role _agentAdmin"},"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."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/roles/permissioning/agent/AgentRoles.sol":"AgentRoles"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/roles/permissioning/agent/AgentRoles.sol":{"keccak256":"0x851d32985e3b72b1e3ab298254f51d962f0fde7332598809a505d26cc6156013","urls":["bzz-raw://45a3e22184fcea26741c16c8c0285f378423d4adb12e5dc4a718ae88b1024fac","dweb:/ipfs/QmNqqvMi6VdZzRnR9yjWneKrAWCWaPrAiypMN6jihUF85e"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":91} \ No newline at end of file diff --git a/out/AgentRolesUpgradeable.sol/AgentRolesUpgradeable.json b/out/AgentRolesUpgradeable.sol/AgentRolesUpgradeable.json new file mode 100644 index 0000000..756bff7 --- /dev/null +++ b/out/AgentRolesUpgradeable.sol/AgentRolesUpgradeable.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgentAdmin","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addComplianceAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addFreezer","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addRecoveryAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addSupplyModifier","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTransferManager","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addWhiteListManager","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgentAdmin","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComplianceAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isFreezer","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isRecoveryAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSupplyModifier","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTransferManager","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWhiteListManager","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgentAdmin","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeComplianceAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeFreezer","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeRecoveryAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeSupplyModifier","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTransferManager","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeWhiteListManager","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"},{"name":"_role","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"RoleRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"},{"name":"_role","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610f99806100206000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c8063715018a6116100c3578063bd92fcfe1161007c578063bd92fcfe146102cc578063c6006c9a146102df578063c8777b50146102f2578063cdf1b69314610305578063e86c643114610318578063f2fde38b1461032b57600080fd5b8063715018a6146102585780637489453d146102605780637ad78a4614610273578063860a2bcf146102865780638da5cb5b14610299578063965e61ea146102b957600080fd5b80633cdf8000116101155780633cdf8000146101e65780634599fb7b146101f95780634aff432c1461020c578063526606c91461021f57806365d07b2e146102325780636c65fd6a1461024557600080fd5b8063042a36061461015d57806314f2d2761461018557806315d8ca621461019a5780632001c350146101ad5780632acd2000146101c05780633966904d146101d3575b600080fd5b61017061016b366004610e6d565b61033e565b60405190151581526020015b60405180910390f35b610198610193366004610e6d565b610350565b005b6101986101a8366004610e6d565b6103fb565b6101706101bb366004610e6d565b610490565b6101986101ce366004610e6d565b61049d565b6101986101e1366004610e6d565b61052b565b6101986101f4366004610e6d565b6105c2565b610170610207366004610e6d565b610658565b61019861021a366004610e6d565b610665565b61019861022d366004610e6d565b6106fc565b610198610240366004610e6d565b61078a565b610170610253366004610e6d565b61081b565b610198610828565b61019861026e366004610e6d565b61083c565b610170610281366004610e6d565b6108d0565b610198610294366004610e6d565b6108dd565b6102a1610972565b6040516001600160a01b03909116815260200161017c565b6101986102c7366004610e6d565b6109a0565b6101706102da366004610e6d565b610a36565b6101986102ed366004610e6d565b610a43565b610198610300366004610e6d565b610ad9565b610198610313366004610e6d565b610b6d565b610170610326366004610e6d565b610bfe565b610198610339366004610e6d565b610c0b565b600061034a8183610c49565b92915050565b33610359610972565b6001600160a01b03161480610372575061037233610658565b6103975760405162461bcd60e51b815260040161038e90610e9d565b60405180910390fd5b6103a2600282610ccc565b604080518082018252600f81526e2a3930b739b332b926b0b730b3b2b960891b602082015290516001600160a01b03831690600080516020610f44833981519152906103ef908490610ed4565b60405180910390a25050565b33610404610972565b6001600160a01b0316148061041d575061041d33610658565b6104395760405162461bcd60e51b815260040161038e90610e9d565b610444600082610ccc565b604080518082018252600e81526d29bab838363ca6b7b234b334b2b960911b602082015290516001600160a01b03831690600080516020610f44833981519152906103ef908490610ed4565b600061034a600483610c49565b336104a6610972565b6001600160a01b031614806104bf57506104bf33610658565b6104db5760405162461bcd60e51b815260040161038e90610e9d565b6104e6600182610d48565b6040805180820182526007815266233932b2bd32b960c91b602082015290516001600160a01b03831690600080516020610f24833981519152906103ef908490610ed4565b33610534610972565b6001600160a01b0316148061054d575061054d33610658565b6105695760405162461bcd60e51b815260040161038e90610e9d565b610574600582610ccc565b604080518082018252601081526f2bb434ba32a634b9ba26b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020610f44833981519152906103ef908490610ed4565b336105cb610972565b6001600160a01b031614806105e457506105e433610658565b6106005760405162461bcd60e51b815260040161038e90610e9d565b61060b600482610ccc565b604080518082018252600f81526e10dbdb5c1b1a585b98d95059d95b9d608a1b602082015290516001600160a01b03831690600080516020610f44833981519152906103ef908490610ed4565b600061034a600683610c49565b3361066e610972565b6001600160a01b03161480610687575061068733610658565b6106a35760405162461bcd60e51b815260040161038e90610e9d565b6106ae600582610d48565b604080518082018252601081526f2bb434ba32a634b9ba26b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020610f24833981519152906103ef908490610ed4565b33610705610972565b6001600160a01b0316148061071e575061071e33610658565b61073a5760405162461bcd60e51b815260040161038e90610e9d565b610745600182610ccc565b6040805180820182526007815266233932b2bd32b960c91b602082015290516001600160a01b03831690600080516020610f44833981519152906103ef908490610ed4565b33610793610972565b6001600160a01b031614806107ac57506107ac33610658565b6107c85760405162461bcd60e51b815260040161038e90610e9d565b6107d3600682610d48565b604080518082018252600a81526920b3b2b73a20b236b4b760b11b602082015290516001600160a01b03831690600080516020610f24833981519152906103ef908490610ed4565b600061034a600183610c49565b610830610dca565b61083a6000610dfc565b565b33610845610972565b6001600160a01b0316148061085e575061085e33610658565b61087a5760405162461bcd60e51b815260040161038e90610e9d565b610885600382610ccc565b604080518082018252600d81526c149958dbdd995c9e5059d95b9d609a1b602082015290516001600160a01b03831690600080516020610f44833981519152906103ef908490610ed4565b600061034a600383610c49565b336108e6610972565b6001600160a01b031614806108ff57506108ff33610658565b61091b5760405162461bcd60e51b815260040161038e90610e9d565b610926600082610d48565b604080518082018252600e81526d29bab838363ca6b7b234b334b2b960911b602082015290516001600160a01b03831690600080516020610f24833981519152906103ef908490610ed4565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b336109a9610972565b6001600160a01b031614806109c257506109c233610658565b6109de5760405162461bcd60e51b815260040161038e90610e9d565b6109e9600282610d48565b604080518082018252600f81526e2a3930b739b332b926b0b730b3b2b960891b602082015290516001600160a01b03831690600080516020610f24833981519152906103ef908490610ed4565b600061034a600583610c49565b33610a4c610972565b6001600160a01b03161480610a655750610a6533610658565b610a815760405162461bcd60e51b815260040161038e90610e9d565b610a8c600482610d48565b604080518082018252600f81526e10dbdb5c1b1a585b98d95059d95b9d608a1b602082015290516001600160a01b03831690600080516020610f24833981519152906103ef908490610ed4565b33610ae2610972565b6001600160a01b03161480610afb5750610afb33610658565b610b175760405162461bcd60e51b815260040161038e90610e9d565b610b22600382610d48565b604080518082018252600d81526c149958dbdd995c9e5059d95b9d609a1b602082015290516001600160a01b03831690600080516020610f24833981519152906103ef908490610ed4565b33610b76610972565b6001600160a01b03161480610b8f5750610b8f33610658565b610bab5760405162461bcd60e51b815260040161038e90610e9d565b610bb6600682610ccc565b604080518082018252600a81526920b3b2b73a20b236b4b760b11b602082015290516001600160a01b03831690600080516020610f44833981519152906103ef908490610ed4565b600061034a600283610c49565b610c13610dca565b6001600160a01b038116610c3d57604051631e4fbdf760e01b81526000600482015260240161038e565b610c4681610dfc565b50565b60006001600160a01b038216610cac5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840161038e565b506001600160a01b03166000908152602091909152604090205460ff1690565b610cd68282610c49565b15610d235760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640161038e565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610d528282610c49565b610da85760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b606482015260840161038e565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b33610dd3610972565b6001600160a01b03161461083a5760405163118cdaa760e01b815233600482015260240161038e565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b600060208284031215610e7f57600080fd5b81356001600160a01b0381168114610e9657600080fd5b9392505050565b60208082526019908201527f526f6c653a2053656e646572206973204e4f542041646d696e00000000000000604082015260600190565b60006020808352835180602085015260005b81811015610f0257858101830151858201604001528201610ee6565b506000604082860101526040601f19601f830116850101925050509291505056fed211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803abfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489a2646970667358221220a961b04ca169ed784eb9ff8a9f81e142b622e3b95c56b7f6d29826af6c7b4ffe64736f6c63430008180033","sourceMap":"3947:4427:92:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101585760003560e01c8063715018a6116100c3578063bd92fcfe1161007c578063bd92fcfe146102cc578063c6006c9a146102df578063c8777b50146102f2578063cdf1b69314610305578063e86c643114610318578063f2fde38b1461032b57600080fd5b8063715018a6146102585780637489453d146102605780637ad78a4614610273578063860a2bcf146102865780638da5cb5b14610299578063965e61ea146102b957600080fd5b80633cdf8000116101155780633cdf8000146101e65780634599fb7b146101f95780634aff432c1461020c578063526606c91461021f57806365d07b2e146102325780636c65fd6a1461024557600080fd5b8063042a36061461015d57806314f2d2761461018557806315d8ca621461019a5780632001c350146101ad5780632acd2000146101c05780633966904d146101d3575b600080fd5b61017061016b366004610e6d565b61033e565b60405190151581526020015b60405180910390f35b610198610193366004610e6d565b610350565b005b6101986101a8366004610e6d565b6103fb565b6101706101bb366004610e6d565b610490565b6101986101ce366004610e6d565b61049d565b6101986101e1366004610e6d565b61052b565b6101986101f4366004610e6d565b6105c2565b610170610207366004610e6d565b610658565b61019861021a366004610e6d565b610665565b61019861022d366004610e6d565b6106fc565b610198610240366004610e6d565b61078a565b610170610253366004610e6d565b61081b565b610198610828565b61019861026e366004610e6d565b61083c565b610170610281366004610e6d565b6108d0565b610198610294366004610e6d565b6108dd565b6102a1610972565b6040516001600160a01b03909116815260200161017c565b6101986102c7366004610e6d565b6109a0565b6101706102da366004610e6d565b610a36565b6101986102ed366004610e6d565b610a43565b610198610300366004610e6d565b610ad9565b610198610313366004610e6d565b610b6d565b610170610326366004610e6d565b610bfe565b610198610339366004610e6d565b610c0b565b600061034a8183610c49565b92915050565b33610359610972565b6001600160a01b03161480610372575061037233610658565b6103975760405162461bcd60e51b815260040161038e90610e9d565b60405180910390fd5b6103a2600282610ccc565b604080518082018252600f81526e2a3930b739b332b926b0b730b3b2b960891b602082015290516001600160a01b03831690600080516020610f44833981519152906103ef908490610ed4565b60405180910390a25050565b33610404610972565b6001600160a01b0316148061041d575061041d33610658565b6104395760405162461bcd60e51b815260040161038e90610e9d565b610444600082610ccc565b604080518082018252600e81526d29bab838363ca6b7b234b334b2b960911b602082015290516001600160a01b03831690600080516020610f44833981519152906103ef908490610ed4565b600061034a600483610c49565b336104a6610972565b6001600160a01b031614806104bf57506104bf33610658565b6104db5760405162461bcd60e51b815260040161038e90610e9d565b6104e6600182610d48565b6040805180820182526007815266233932b2bd32b960c91b602082015290516001600160a01b03831690600080516020610f24833981519152906103ef908490610ed4565b33610534610972565b6001600160a01b0316148061054d575061054d33610658565b6105695760405162461bcd60e51b815260040161038e90610e9d565b610574600582610ccc565b604080518082018252601081526f2bb434ba32a634b9ba26b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020610f44833981519152906103ef908490610ed4565b336105cb610972565b6001600160a01b031614806105e457506105e433610658565b6106005760405162461bcd60e51b815260040161038e90610e9d565b61060b600482610ccc565b604080518082018252600f81526e10dbdb5c1b1a585b98d95059d95b9d608a1b602082015290516001600160a01b03831690600080516020610f44833981519152906103ef908490610ed4565b600061034a600683610c49565b3361066e610972565b6001600160a01b03161480610687575061068733610658565b6106a35760405162461bcd60e51b815260040161038e90610e9d565b6106ae600582610d48565b604080518082018252601081526f2bb434ba32a634b9ba26b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020610f24833981519152906103ef908490610ed4565b33610705610972565b6001600160a01b0316148061071e575061071e33610658565b61073a5760405162461bcd60e51b815260040161038e90610e9d565b610745600182610ccc565b6040805180820182526007815266233932b2bd32b960c91b602082015290516001600160a01b03831690600080516020610f44833981519152906103ef908490610ed4565b33610793610972565b6001600160a01b031614806107ac57506107ac33610658565b6107c85760405162461bcd60e51b815260040161038e90610e9d565b6107d3600682610d48565b604080518082018252600a81526920b3b2b73a20b236b4b760b11b602082015290516001600160a01b03831690600080516020610f24833981519152906103ef908490610ed4565b600061034a600183610c49565b610830610dca565b61083a6000610dfc565b565b33610845610972565b6001600160a01b0316148061085e575061085e33610658565b61087a5760405162461bcd60e51b815260040161038e90610e9d565b610885600382610ccc565b604080518082018252600d81526c149958dbdd995c9e5059d95b9d609a1b602082015290516001600160a01b03831690600080516020610f44833981519152906103ef908490610ed4565b600061034a600383610c49565b336108e6610972565b6001600160a01b031614806108ff57506108ff33610658565b61091b5760405162461bcd60e51b815260040161038e90610e9d565b610926600082610d48565b604080518082018252600e81526d29bab838363ca6b7b234b334b2b960911b602082015290516001600160a01b03831690600080516020610f24833981519152906103ef908490610ed4565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b336109a9610972565b6001600160a01b031614806109c257506109c233610658565b6109de5760405162461bcd60e51b815260040161038e90610e9d565b6109e9600282610d48565b604080518082018252600f81526e2a3930b739b332b926b0b730b3b2b960891b602082015290516001600160a01b03831690600080516020610f24833981519152906103ef908490610ed4565b600061034a600583610c49565b33610a4c610972565b6001600160a01b03161480610a655750610a6533610658565b610a815760405162461bcd60e51b815260040161038e90610e9d565b610a8c600482610d48565b604080518082018252600f81526e10dbdb5c1b1a585b98d95059d95b9d608a1b602082015290516001600160a01b03831690600080516020610f24833981519152906103ef908490610ed4565b33610ae2610972565b6001600160a01b03161480610afb5750610afb33610658565b610b175760405162461bcd60e51b815260040161038e90610e9d565b610b22600382610d48565b604080518082018252600d81526c149958dbdd995c9e5059d95b9d609a1b602082015290516001600160a01b03831690600080516020610f24833981519152906103ef908490610ed4565b33610b76610972565b6001600160a01b03161480610b8f5750610b8f33610658565b610bab5760405162461bcd60e51b815260040161038e90610e9d565b610bb6600682610ccc565b604080518082018252600a81526920b3b2b73a20b236b4b760b11b602082015290516001600160a01b03831690600080516020610f44833981519152906103ef908490610ed4565b600061034a600283610c49565b610c13610dca565b6001600160a01b038116610c3d57604051631e4fbdf760e01b81526000600482015260240161038e565b610c4681610dfc565b50565b60006001600160a01b038216610cac5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840161038e565b506001600160a01b03166000908152602091909152604090205460ff1690565b610cd68282610c49565b15610d235760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640161038e565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610d528282610c49565b610da85760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b606482015260840161038e565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b33610dd3610972565b6001600160a01b03161461083a5760405163118cdaa760e01b815233600482015260240161038e565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b600060208284031215610e7f57600080fd5b81356001600160a01b0381168114610e9657600080fd5b9392505050565b60208082526019908201527f526f6c653a2053656e646572206973204e4f542041646d696e00000000000000604082015260600190565b60006020808352835180602085015260005b81811015610f0257858101830151858201604001528201610ee6565b506000604082860101526040601f19601f830116850101925050509291505056fed211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803abfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489a2646970667358221220a961b04ca169ed784eb9ff8a9f81e142b622e3b95c56b7f6d29826af6c7b4ffe64736f6c63430008180033","sourceMap":"3947:4427:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8251:121;;;;;;:::i;:::-;;:::i;:::-;;;470:14:165;;463:22;445:41;;433:2;418:18;8251:121:92;;;;;;;;5856:197;;;;;;:::i;:::-;;:::i;:::-;;5082:194;;;;;;:::i;:::-;;:::i;7755:123::-;;;;;;:::i;:::-;;:::i;5669:181::-;;;;;;:::i;:::-;;:::i;7086:200::-;;;;;;:::i;:::-;;:::i;6672:197::-;;;;;;:::i;:::-;;:::i;7506:112::-;;;;;;:::i;:::-;;:::i;7292:208::-;;;;;;:::i;:::-;;:::i;5490:173::-;;;;;;:::i;:::-;;:::i;4887:189::-;;;;;;:::i;:::-;;:::i;8138:107::-;;;;;;:::i;:::-;;:::i;3155:101:136:-;;;:::i;6270:191:92:-;;;;;;:::i;:::-;;:::i;7884:119::-;;;;;;:::i;:::-;;:::i;5282:202::-;;;;;;:::i;:::-;;:::i;2441:144:136:-;;;:::i;:::-;;;-1:-1:-1;;;;;661:32:165;;;643:51;;631:2;616:18;2441:144:136;497:203:165;6059:205:92;;;;;;:::i;:::-;;:::i;7624:125::-;;;;;;:::i;:::-;;:::i;6875:205::-;;;;;;:::i;:::-;;:::i;6467:199::-;;;;;;:::i;:::-;;:::i;4700:181::-;;;;;;:::i;:::-;;:::i;8009:123::-;;;;;;:::i;:::-;;:::i;3405:215:136:-;;;;;;:::i;:::-;;:::i;8251:121:92:-;8314:4;8337:28;8314:4;8358:6;8337:20;:28::i;:::-;8330:35;8251:121;-1:-1:-1;;8251:121:92:o;5856:197::-;4545:10;4534:7;:5;:7::i;:::-;-1:-1:-1;;;;;4534:21:92;;:51;;;-1:-1:-1;4559:26:92;966:10:138;7506:112:92;:::i;4559:26::-;4526:89;;;;-1:-1:-1;;;4526:89:92;;;;;;;:::i;:::-;;;;;;;;;5929:29:::1;:17;5951:6:::0;5929:21:::1;:29::i;:::-;5968:39;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5968:39:92::1;::::0;::::1;::::0;6022:24;;-1:-1:-1;;;;;6022:24:92;::::1;::::0;-1:-1:-1;;;;;;;;;;;6022:24:92;::::1;::::0;5968:39;;6022:24:::1;:::i;:::-;;;;;;;;5919:134;5856:197:::0;:::o;5082:194::-;4545:10;4534:7;:5;:7::i;:::-;-1:-1:-1;;;;;4534:21:92;;:51;;;-1:-1:-1;4559:26:92;966:10:138;7506:112:92;:::i;4559:26::-;4526:89;;;;-1:-1:-1;;;4526:89:92;;;;;;;:::i;:::-;5154:28:::1;:16;5175:6:::0;5154:20:::1;:28::i;:::-;5192:38;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5192:38:92::1;::::0;::::1;::::0;5245:24;;-1:-1:-1;;;;;5245:24:92;::::1;::::0;-1:-1:-1;;;;;;;;;;;5245:24:92;::::1;::::0;5192:38;;5245:24:::1;:::i;7755:123::-:0;7819:4;7842:29;:17;7864:6;7842:21;:29::i;5669:181::-;4545:10;4534:7;:5;:7::i;:::-;-1:-1:-1;;;;;4534:21:92;;:51;;;-1:-1:-1;4559:26:92;966:10:138;7506:112:92;:::i;4559:26::-;4526:89;;;;-1:-1:-1;;;4526:89:92;;;;;;;:::i;:::-;5737:24:::1;:9;5754:6:::0;5737:16:::1;:24::i;:::-;5771:31;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5771:31:92::1;::::0;::::1;::::0;5817:26;;-1:-1:-1;;;;;5817:26:92;::::1;::::0;-1:-1:-1;;;;;;;;;;;5817:26:92;::::1;::::0;5771:31;;5817:26:::1;:::i;7086:200::-:0;4545:10;4534:7;:5;:7::i;:::-;-1:-1:-1;;;;;4534:21:92;;:51;;;-1:-1:-1;4559:26:92;966:10:138;7506:112:92;:::i;4559:26::-;4526:89;;;;-1:-1:-1;;;4526:89:92;;;;;;;:::i;:::-;7160:30:::1;:18;7183:6:::0;7160:22:::1;:30::i;:::-;7200:40;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;7200:40:92::1;::::0;::::1;::::0;7255:24;;-1:-1:-1;;;;;7255:24:92;::::1;::::0;-1:-1:-1;;;;;;;;;;;7255:24:92;::::1;::::0;7200:40;;7255:24:::1;:::i;6672:197::-:0;4545:10;4534:7;:5;:7::i;:::-;-1:-1:-1;;;;;4534:21:92;;:51;;;-1:-1:-1;4559:26:92;966:10:138;7506:112:92;:::i;4559:26::-;4526:89;;;;-1:-1:-1;;;4526:89:92;;;;;;;:::i;:::-;6745:29:::1;:17;6767:6:::0;6745:21:::1;:29::i;:::-;6784:39;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6784:39:92::1;::::0;::::1;::::0;6838:24;;-1:-1:-1;;;;;6838:24:92;::::1;::::0;-1:-1:-1;;;;;;;;;;;6838:24:92;::::1;::::0;6784:39;;6838:24:::1;:::i;7506:112::-:0;7565:4;7588:23;:11;7604:6;7588:15;:23::i;7292:208::-;4545:10;4534:7;:5;:7::i;:::-;-1:-1:-1;;;;;4534:21:92;;:51;;;-1:-1:-1;4559:26:92;966:10:138;7506:112:92;:::i;4559:26::-;4526:89;;;;-1:-1:-1;;;4526:89:92;;;;;;;:::i;:::-;7369:33:::1;:18;7395:6:::0;7369:25:::1;:33::i;:::-;7412:40;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;7412:40:92::1;::::0;::::1;::::0;7467:26;;-1:-1:-1;;;;;7467:26:92;::::1;::::0;-1:-1:-1;;;;;;;;;;;7467:26:92;::::1;::::0;7412:40;;7467:26:::1;:::i;5490:173::-:0;4545:10;4534:7;:5;:7::i;:::-;-1:-1:-1;;;;;4534:21:92;;:51;;;-1:-1:-1;4559:26:92;966:10:138;7506:112:92;:::i;4559:26::-;4526:89;;;;-1:-1:-1;;;4526:89:92;;;;;;;:::i;:::-;5555:21:::1;:9;5569:6:::0;5555:13:::1;:21::i;:::-;5586:31;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5586:31:92::1;::::0;::::1;::::0;5632:24;;-1:-1:-1;;;;;5632:24:92;::::1;::::0;-1:-1:-1;;;;;;;;;;;5632:24:92;::::1;::::0;5586:31;;5632:24:::1;:::i;4887:189::-:0;4545:10;4534:7;:5;:7::i;:::-;-1:-1:-1;;;;;4534:21:92;;:51;;;-1:-1:-1;4559:26:92;966:10:138;7506:112:92;:::i;4559:26::-;4526:89;;;;-1:-1:-1;;;4526:89:92;;;;;;;:::i;:::-;4958:26:::1;:11;4977:6:::0;4958:18:::1;:26::i;:::-;4994:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;4994:34:92::1;::::0;::::1;::::0;5043:26;;-1:-1:-1;;;;;5043:26:92;::::1;::::0;-1:-1:-1;;;;;;;;;;;5043:26:92;::::1;::::0;4994:34;;5043:26:::1;:::i;8138:107::-:0;8194:4;8217:21;:9;8231:6;8217:13;:21::i;3155:101:136:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;6270:191:92:-;4545:10;4534:7;:5;:7::i;:::-;-1:-1:-1;;;;;4534:21:92;;:51;;;-1:-1:-1;4559:26:92;966:10:138;7506:112:92;:::i;4559:26::-;4526:89;;;;-1:-1:-1;;;4526:89:92;;;;;;;:::i;:::-;6341:27:::1;:15;6361:6:::0;6341:19:::1;:27::i;:::-;6378:37;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6378:37:92::1;::::0;::::1;::::0;6430:24;;-1:-1:-1;;;;;6430:24:92;::::1;::::0;-1:-1:-1;;;;;;;;;;;6430:24:92;::::1;::::0;6378:37;;6430:24:::1;:::i;7884:119::-:0;7946:4;7969:27;:15;7989:6;7969:19;:27::i;5282:202::-;4545:10;4534:7;:5;:7::i;:::-;-1:-1:-1;;;;;4534:21:92;;:51;;;-1:-1:-1;4559:26:92;966:10:138;7506:112:92;:::i;4559:26::-;4526:89;;;;-1:-1:-1;;;4526:89:92;;;;;;;:::i;:::-;5357:31:::1;:16;5381:6:::0;5357:23:::1;:31::i;:::-;5398:38;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5398:38:92::1;::::0;::::1;::::0;5451:26;;-1:-1:-1;;;;;5451:26:92;::::1;::::0;-1:-1:-1;;;;;;;;;;;5451:26:92;::::1;::::0;5398:38;;5451:26:::1;:::i;2441:144:136:-:0;1313:22;2570:8;-1:-1:-1;;;;;2570:8:136;;2441:144::o;6059:205:92:-;4545:10;4534:7;:5;:7::i;:::-;-1:-1:-1;;;;;4534:21:92;;:51;;;-1:-1:-1;4559:26:92;966:10:138;7506:112:92;:::i;4559:26::-;4526:89;;;;-1:-1:-1;;;4526:89:92;;;;;;;:::i;:::-;6135:32:::1;:17;6160:6:::0;6135:24:::1;:32::i;:::-;6177:39;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6177:39:92::1;::::0;::::1;::::0;6231:26;;-1:-1:-1;;;;;6231:26:92;::::1;::::0;-1:-1:-1;;;;;;;;;;;6231:26:92;::::1;::::0;6177:39;;6231:26:::1;:::i;7624:125::-:0;7689:4;7712:30;:18;7735:6;7712:22;:30::i;6875:205::-;4545:10;4534:7;:5;:7::i;:::-;-1:-1:-1;;;;;4534:21:92;;:51;;;-1:-1:-1;4559:26:92;966:10:138;7506:112:92;:::i;4559:26::-;4526:89;;;;-1:-1:-1;;;4526:89:92;;;;;;;:::i;:::-;6951:32:::1;:17;6976:6:::0;6951:24:::1;:32::i;:::-;6993:39;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6993:39:92::1;::::0;::::1;::::0;7047:26;;-1:-1:-1;;;;;7047:26:92;::::1;::::0;-1:-1:-1;;;;;;;;;;;7047:26:92;::::1;::::0;6993:39;;7047:26:::1;:::i;6467:199::-:0;4545:10;4534:7;:5;:7::i;:::-;-1:-1:-1;;;;;4534:21:92;;:51;;;-1:-1:-1;4559:26:92;966:10:138;7506:112:92;:::i;4559:26::-;4526:89;;;;-1:-1:-1;;;4526:89:92;;;;;;;:::i;:::-;6541:30:::1;:15;6564:6:::0;6541:22:::1;:30::i;:::-;6581:37;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6581:37:92::1;::::0;::::1;::::0;6633:26;;-1:-1:-1;;;;;6633:26:92;::::1;::::0;-1:-1:-1;;;;;;;;;;;6633:26:92;::::1;::::0;6581:37;;6633:26:::1;:::i;4700:181::-:0;4545:10;4534:7;:5;:7::i;:::-;-1:-1:-1;;;;;4534:21:92;;:51;;;-1:-1:-1;4559:26:92;966:10:138;7506:112:92;:::i;4559:26::-;4526:89;;;;-1:-1:-1;;;4526:89:92;;;;;;;:::i;:::-;4768:23:::1;:11;4784:6:::0;4768:15:::1;:23::i;:::-;4801:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;4801:34:92::1;::::0;::::1;::::0;4850:24;;-1:-1:-1;;;;;4850:24:92;::::1;::::0;-1:-1:-1;;;;;;;;;;;4850:24:92;::::1;::::0;4801:34;;4850:24:::1;:::i;8009:123::-:0;8073:4;8096:29;:17;8118:6;8096:21;:29::i;3405:215:136:-;2334:13;:11;:13::i;:::-;-1:-1:-1;;;;;3489:22:136;::::1;3485:91;;3534:31;::::0;-1:-1:-1;;;3534:31:136;;3562:1:::1;3534:31;::::0;::::1;643:51:165::0;616:18;;3534:31:136::1;497:203:165::0;3485:91:136::1;3585:28;3604:8;3585:18;:28::i;:::-;3405:215:::0;:::o;4596:200:89:-;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;1814:2:165;4684:68:89;;;1796:21:165;1853:2;1833:18;;;1826:30;1892:34;1872:18;;;1865:62;-1:-1:-1;;;1943:18:165;;;1936:32;1985:19;;4684:68:89;1612:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;4077:175::-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;2217:2:165;4145:63:89;;;2199:21:165;2256:2;2236:18;;;2229:30;2295:33;2275:18;;;2268:61;2346:18;;4145:63:89;2015:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;4327:180::-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;2577:2:165;4398:64:89;;;2559:21:165;2616:2;2596:18;;;2589:30;2655:34;2635:18;;;2628:62;-1:-1:-1;;;2706:18:165;;;2699:31;2747:19;;4398:64:89;2375:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;2658:162:136:-;966:10:138;2717:7:136;:5;:7::i;:::-;-1:-1:-1;;;;;2717:23:136;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:136;;966:10:138;2763:40:136;;;643:51:165;616:18;;2763:40:136;497:203:165;3774:248:136;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:136;;-1:-1:-1;;;;;3941:19:136;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;14:286:165:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:165;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:165:o;705:349::-;907:2;889:21;;;946:2;926:18;;;919:30;985:27;980:2;965:18;;958:55;1045:2;1030:18;;705:349::o;1059:548::-;1171:4;1200:2;1229;1218:9;1211:21;1261:6;1255:13;1304:6;1299:2;1288:9;1284:18;1277:34;1329:1;1339:140;1353:6;1350:1;1347:13;1339:140;;;1448:14;;;1444:23;;1438:30;1414:17;;;1433:2;1410:26;1403:66;1368:10;;1339:140;;;1343:3;1528:1;1523:2;1514:6;1503:9;1499:22;1495:31;1488:42;1598:2;1591;1587:7;1582:2;1574:6;1570:15;1566:29;1555:9;1551:45;1547:54;1539:62;;;;1059:548;;;;:::o","linkReferences":{}},"methodIdentifiers":{"addAgentAdmin(address)":"cdf1b693","addComplianceAgent(address)":"3cdf8000","addFreezer(address)":"526606c9","addRecoveryAgent(address)":"7489453d","addSupplyModifier(address)":"15d8ca62","addTransferManager(address)":"14f2d276","addWhiteListManager(address)":"3966904d","isAgentAdmin(address)":"4599fb7b","isComplianceAgent(address)":"2001c350","isFreezer(address)":"6c65fd6a","isRecoveryAgent(address)":"7ad78a46","isSupplyModifier(address)":"042a3606","isTransferManager(address)":"e86c6431","isWhiteListManager(address)":"bd92fcfe","owner()":"8da5cb5b","removeAgentAdmin(address)":"65d07b2e","removeComplianceAgent(address)":"c6006c9a","removeFreezer(address)":"2acd2000","removeRecoveryAgent(address)":"c8777b50","removeSupplyModifier(address)":"860a2bcf","removeTransferManager(address)":"965e61ea","removeWhiteListManager(address)":"4aff432c","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_role\",\"type\":\"string\"}],\"name\":\"RoleAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_role\",\"type\":\"string\"}],\"name\":\"RoleRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgentAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addComplianceAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addFreezer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addRecoveryAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addSupplyModifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addTransferManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addWhiteListManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgentAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isComplianceAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isFreezer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isRecoveryAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isSupplyModifier\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isTransferManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isWhiteListManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgentAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeComplianceAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeFreezer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeRecoveryAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeSupplyModifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeTransferManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeWhiteListManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"addAgentAdmin(address)\":{\"details\":\"AgentAdmin Role _agentAdmin\"},\"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.\"}},\"version\":1},\"userdoc\":{\"events\":{\"RoleAdded(address,string)\":{\"notice\":\"events\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/roles/permissioning/agent/AgentRolesUpgradeable.sol\":\"AgentRolesUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/roles/permissioning/agent/AgentRolesUpgradeable.sol\":{\"keccak256\":\"0x368896c5bc0e55d48ed4f820e22e2cafc926ea276d747e4fee8acbb1f2c777f5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4c27213a3b6c808ba929577d7019ccb56fd574cf146b0a7d6d24bd09aecb6462\",\"dweb:/ipfs/QmYLc8jkDfTkEpSyac3RAAiV54jRfvhAbkMpHo2JSKJmJN\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true},{"internalType":"string","name":"_role","type":"string","indexed":false}],"type":"event","name":"RoleAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true},{"internalType":"string","name":"_role","type":"string","indexed":false}],"type":"event","name":"RoleRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgentAdmin"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addComplianceAgent"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addFreezer"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addRecoveryAgent"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addSupplyModifier"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTransferManager"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addWhiteListManager"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgentAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isFreezer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isRecoveryAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isSupplyModifier","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isTransferManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isWhiteListManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgentAdmin"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeComplianceAgent"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeFreezer"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeRecoveryAgent"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeSupplyModifier"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTransferManager"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeWhiteListManager"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"addAgentAdmin(address)":{"details":"AgentAdmin Role _agentAdmin"},"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."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/roles/permissioning/agent/AgentRolesUpgradeable.sol":"AgentRolesUpgradeable"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/roles/permissioning/agent/AgentRolesUpgradeable.sol":{"keccak256":"0x368896c5bc0e55d48ed4f820e22e2cafc926ea276d747e4fee8acbb1f2c777f5","urls":["bzz-raw://4c27213a3b6c808ba929577d7019ccb56fd574cf146b0a7d6d24bd09aecb6462","dweb:/ipfs/QmYLc8jkDfTkEpSyac3RAAiV54jRfvhAbkMpHo2JSKJmJN"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"}},"version":1},"id":92} \ No newline at end of file diff --git a/out/ApproveTransfer.sol/ApproveTransfer.json b/out/ApproveTransfer.sol/ApproveTransfer.json new file mode 100644 index 0000000..24e55e3 --- /dev/null +++ b/out/ApproveTransfer.sol/ApproveTransfer.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approveAndTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approveTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"complianceCheckOnApproveTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenBound","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeApproval","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tokenBound","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IToken"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ApprovalRemoved","inputs":[{"name":"_from","type":"address","indexed":false,"internalType":"address"},{"name":"_to","type":"address","indexed":false,"internalType":"address"},{"name":"_amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentAdded","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentRemoved","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TransferApproved","inputs":[{"name":"_from","type":"address","indexed":false,"internalType":"address"},{"name":"_to","type":"address","indexed":false,"internalType":"address"},{"name":"_amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","addTokenAgent(address)":"ff3e6954","approveAndTransfer(address,address,uint256)":"0e20cc85","approveTransfer(address,address,uint256)":"82580805","bindToken(address)":"3ff5aa02","canTransfer(address,address,uint256)":"e46638e6","complianceCheckOnApproveTransfer(address,address,uint256)":"56db9096","created(address,uint256)":"5f8dead3","destroyed(address,uint256)":"8d2ea772","isAgent(address)":"1ffbb064","isTokenAgent(address)":"346531fa","isTokenBound(address)":"993e8b95","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","removeApproval(address,address,uint256)":"2ca9ea43","removeTokenAgent(address)":"cdde2932","renounceOwnership()":"715018a6","tokenBound()":"93e62f07","transferOwnership(address)":"f2fde38b","transferred(address,address,uint256)":"8baf29b4","unbindToken(address)":"40db3b50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"ApprovalRemoved\",\"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\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TransferApproved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"addTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"approveAndTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"approveTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"complianceCheckOnApproveTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"isTokenAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"removeApproval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"removeTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenBound\",\"outputs\":[{\"internalType\":\"contract IToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addTokenAgent(address)\":{\"details\":\"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces\"},\"approveAndTransfer(address,address,uint256)\":{\"details\":\"Approves a transfer and execute it immediately As the function calls `transferFrom` on the token contract, the compliance contract, which is de facto sender of that function call has to be allowed to make such a call, i.e. the allowance should be >= `_amount` with Compliance contract address being the spender address\",\"params\":{\"_amount\":\"the amount of tokens that `_from` would send to `_to` Only Admin can call this function, i.e. owner of compliance contract OR token agent emits a `TransferApproved` event, an `ApprovalRemoved` event and a `Transfer` event\",\"_from\":\"the address of the transfer sender\",\"_to\":\"the address of the transfer receiver\"}},\"approveTransfer(address,address,uint256)\":{\"details\":\"Approves a transfer once a transfer is approved, the sender is allowed to execute it\",\"params\":{\"_amount\":\"the amount of tokens that `_from` would send to `_to` Only Admin can call this function, i.e. owner of compliance contract OR token agent emits a `TransferApproved` event\",\"_from\":\"the address of the transfer sender\",\"_to\":\"the address of the transfer receiver\"}},\"bindToken(address)\":{\"details\":\"See {ICompliance-bindToken}.\"},\"canTransfer(address,address,uint256)\":{\"details\":\"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"complianceCheckOnApproveTransfer(address,address,uint256)\":{\"details\":\"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the transferID corresponding to the parameters of the transfer corresponds to a pre-approved transfer or not, and will return TRUE or FALSE according to the approval status of the said transfer If `_from` is a token agent, the transfer will pass whatever the approval status may be as agents bypass this compliance feature.\",\"params\":{\"_from\":\"the address of the transfer sender\",\"_to\":\"the address of the transfer receiver\",\"_value\":\"the amount of tokens that `_from` would send to `_to`\"}},\"created(address,uint256)\":{\"details\":\"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_to\":\"The address of the receiver\"}},\"destroyed(address,uint256)\":{\"details\":\"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the receiver\"}},\"isTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"isTokenBound(address)\":{\"details\":\"See {ICompliance-isTokenBound}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeApproval(address,address,uint256)\":{\"details\":\"removes approval on a transfer previously approved requires the transfer to be previously approved once a transfer approval is removed, the sender is not allowed to execute it anymore\",\"params\":{\"_amount\":\"the amount of tokens that `_from` was allowed to send to `_to` Only Admin can call this function, i.e. owner of compliance contract OR token agent emits an `ApprovalRemoved` event\",\"_from\":\"the address of the transfer sender\",\"_to\":\"the address of the transfer receiver\"}},\"removeTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"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.\"},\"transferred(address,address,uint256)\":{\"details\":\"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"unbindToken(address)\":{\"details\":\"See {ICompliance-unbindToken}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ApprovalRemoved(address,address,uint256,address)\":{\"notice\":\"this event is emitted when a transfer approval is removed the event is emitted by the `removeApproval` function `_from` is the address of the transfer sender `_to` is the address of the transfer receiver `_amount` is the amount of tokens that `_from` was allowed to send to `_to` `_token` is the address of the token that was allowed to be transferred\"},\"TokenAgentAdded(address)\":{\"notice\":\"this event is emitted when the Agent has been added on the allowedList of this Compliance. the event is emitted by the Compliance constructor and by the addTokenAgent function `_agentAddress` is the address of the Agent to add\"},\"TokenAgentRemoved(address)\":{\"notice\":\"this event is emitted when the Agent has been removed from the agent list of this Compliance. the event is emitted by the Compliance constructor and by the removeTokenAgent function `_agentAddress` is the address of the Agent to remove\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"},\"TransferApproved(address,address,uint256,address)\":{\"notice\":\"this event is emitted when a transfer is approved the event is emitted by the `approveTransfer` and `approveAndTransfer` functions `_from` is the address of the transfer sender `_to` is the address of the transfer receiver `_amount` is the amount of tokens that `_from` is allowed to send to `_to` note that the approved transfer has to be exactly of the approved amount `_amount` `_token` is the address of the token that is allowed to be transferred\"}},\"kind\":\"user\",\"methods\":{\"tokenBound()\":{\"notice\":\"Mapping of tokens linked to the compliance contract\"}},\"notice\":\"this feature allows to require the pre-validation of a transfer before allowing it to be executed This feature is also known as \\\"conditional transfers\\\" feature\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/legacy/features/ApproveTransfer.sol\":\"ApproveTransfer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/legacy/BasicCompliance.sol\":{\"keccak256\":\"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d\",\"dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4\"]},\"contracts/erc3643/compliance/legacy/ICompliance.sol\":{\"keccak256\":\"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e\",\"dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV\"]},\"contracts/erc3643/compliance/legacy/features/ApproveTransfer.sol\":{\"keccak256\":\"0x9e114f3c1d6e014a1de72f82e695f79f06d86fa7334cf2a4b719584a9dda18bc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://80a04df8da32a86fe7b46d2414715f413a2633e3179fe807e30c870b0d981996\",\"dweb:/ipfs/QmQq6DKSZ3Q7JqC7oVboZRR3nV5pn8tFBwZ8PEoRDRimhh\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":false},{"internalType":"address","name":"_to","type":"address","indexed":false},{"internalType":"uint256","name":"_amount","type":"uint256","indexed":false},{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"ApprovalRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":false},{"internalType":"address","name":"_to","type":"address","indexed":false},{"internalType":"uint256","name":"_amount","type":"uint256","indexed":false},{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TransferApproved","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenAgent"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approveAndTransfer"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approveTransfer"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"view","type":"function","name":"complianceCheckOnApproveTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeApproval"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenBound","outputs":[{"internalType":"contract IToken","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"}],"devdoc":{"kind":"dev","methods":{"addTokenAgent(address)":{"details":"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces"},"approveAndTransfer(address,address,uint256)":{"details":"Approves a transfer and execute it immediately As the function calls `transferFrom` on the token contract, the compliance contract, which is de facto sender of that function call has to be allowed to make such a call, i.e. the allowance should be >= `_amount` with Compliance contract address being the spender address","params":{"_amount":"the amount of tokens that `_from` would send to `_to` Only Admin can call this function, i.e. owner of compliance contract OR token agent emits a `TransferApproved` event, an `ApprovalRemoved` event and a `Transfer` event","_from":"the address of the transfer sender","_to":"the address of the transfer receiver"}},"approveTransfer(address,address,uint256)":{"details":"Approves a transfer once a transfer is approved, the sender is allowed to execute it","params":{"_amount":"the amount of tokens that `_from` would send to `_to` Only Admin can call this function, i.e. owner of compliance contract OR token agent emits a `TransferApproved` event","_from":"the address of the transfer sender","_to":"the address of the transfer receiver"}},"bindToken(address)":{"details":"See {ICompliance-bindToken}."},"canTransfer(address,address,uint256)":{"details":"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"complianceCheckOnApproveTransfer(address,address,uint256)":{"details":"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the transferID corresponding to the parameters of the transfer corresponds to a pre-approved transfer or not, and will return TRUE or FALSE according to the approval status of the said transfer If `_from` is a token agent, the transfer will pass whatever the approval status may be as agents bypass this compliance feature.","params":{"_from":"the address of the transfer sender","_to":"the address of the transfer receiver","_value":"the amount of tokens that `_from` would send to `_to`"}},"created(address,uint256)":{"details":"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_to":"The address of the receiver"}},"destroyed(address,uint256)":{"details":"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the receiver"}},"isTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"isTokenBound(address)":{"details":"See {ICompliance-isTokenBound}."},"owner()":{"details":"Returns the address of the current owner."},"removeApproval(address,address,uint256)":{"details":"removes approval on a transfer previously approved requires the transfer to be previously approved once a transfer approval is removed, the sender is not allowed to execute it anymore","params":{"_amount":"the amount of tokens that `_from` was allowed to send to `_to` Only Admin can call this function, i.e. owner of compliance contract OR token agent emits an `ApprovalRemoved` event","_from":"the address of the transfer sender","_to":"the address of the transfer receiver"}},"removeTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"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."},"transferred(address,address,uint256)":{"details":"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"unbindToken(address)":{"details":"See {ICompliance-unbindToken}."}},"version":1},"userdoc":{"kind":"user","methods":{"tokenBound()":{"notice":"Mapping of tokens linked to the compliance contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/legacy/features/ApproveTransfer.sol":"ApproveTransfer"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/legacy/BasicCompliance.sol":{"keccak256":"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305","urls":["bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d","dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/ICompliance.sol":{"keccak256":"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7","urls":["bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e","dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/features/ApproveTransfer.sol":{"keccak256":"0x9e114f3c1d6e014a1de72f82e695f79f06d86fa7334cf2a4b719584a9dda18bc","urls":["bzz-raw://80a04df8da32a86fe7b46d2414715f413a2633e3179fe807e30c870b0d981996","dweb:/ipfs/QmQq6DKSZ3Q7JqC7oVboZRR3nV5pn8tFBwZ8PEoRDRimhh"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":27} \ No newline at end of file diff --git a/out/ApproveTransferTest.sol/ApproveTransferTest.json b/out/ApproveTransferTest.sol/ApproveTransferTest.json new file mode 100644 index 0000000..3da985e --- /dev/null +++ b/out/ApproveTransferTest.sol/ApproveTransferTest.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approveAndTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approveTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"complianceCheckOnApproveTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenBound","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeApproval","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tokenBound","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IToken"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ApprovalRemoved","inputs":[{"name":"_from","type":"address","indexed":false,"internalType":"address"},{"name":"_to","type":"address","indexed":false,"internalType":"address"},{"name":"_amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentAdded","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentRemoved","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TransferApproved","inputs":[{"name":"_from","type":"address","indexed":false,"internalType":"address"},{"name":"_to","type":"address","indexed":false,"internalType":"address"},{"name":"_amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611204806100a56000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806384e79842116100b857806397a6278e1161007c57806397a6278e14610264578063993e8b9514610277578063cdde29321461028a578063e46638e61461029d578063f2fde38b146102b0578063ff3e6954146102c357600080fd5b806384e79842146102065780638baf29b4146102195780638d2ea772146101d85780638da5cb5b1461022c57806393e62f071461025157600080fd5b806340db3b50116100ff57806340db3b50146101b257806356db9096146101c55780635f8dead3146101d8578063715018a6146101eb57806382580805146101f357600080fd5b80630e20cc851461013c5780631ffbb064146101515780632ca9ea4314610179578063346531fa1461018c5780633ff5aa021461019f575b600080fd5b61014f61014a366004611053565b6102d6565b005b61016461015f36600461108f565b610366565b60405190151581526020015b60405180910390f35b61014f610187366004611053565b610379565b61016461019a36600461108f565b610512565b61014f6101ad36600461108f565b6105bb565b61014f6101c036600461108f565b6106a0565b6101646101d3366004611053565b6107c2565b61014f6101e63660046110aa565b61081f565b61014f610847565b61014f610201366004611053565b61085b565b61014f61021436600461108f565b6109e1565b61014f610227366004611053565b610a81565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610170565b600354610239906001600160a01b031681565b61014f61027236600461108f565b610ab5565b61016461028536600461108f565b610b55565b61014f61029836600461108f565b610b75565b6101646102ab366004611053565b610c36565b61014f6102be36600461108f565b610c4f565b61014f6102d136600461108f565b610c8d565b6102e183838361085b565b6003546040516323b872dd60e01b81526001600160a01b038581166004830152848116602483015260448201849052909116906323b872dd906064016020604051808303816000875af115801561033c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036091906110d4565b50505050565b6000610373600183610d52565b92915050565b3361038c6000546001600160a01b031690565b6001600160a01b0316148061040857506003546040516307feec1960e21b81523360048201526001600160a01b0390911690631ffbb06490602401602060405180830381865afa1580156103e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040891906110d4565b61042d5760405162461bcd60e51b8152600401610424906110f6565b60405180910390fd5b60035460009061044b908590859085906001600160a01b0316610dd5565b60008181526004602052604090205490915060ff166104ac5760405162461bcd60e51b815260206004820152601960248201527f7472616e73666572206e6f7420617070726f76656420796574000000000000006044820152606401610424565b60008181526004602052604090819020805460ff1916905560035490517f611476e33c1d844d9fa71ba7de6e7130e18b22971d28580fd76321e4af69635691610504918791879187916001600160a01b031690611139565b60405180910390a150505050565b6001600160a01b03811660009081526002602052604081205460ff161580156105a657506003546040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa158015610580573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a491906110d4565b155b156105b357506000919050565b506001919050565b336105ce6000546001600160a01b031690565b6001600160a01b031614806105ff57506003546001600160a01b03161580156105ff5750336001600160a01b038216145b61064b5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c000000006044820152606401610424565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b906020015b60405180910390a150565b336106b36000546001600160a01b031690565b6001600160a01b031614806106d05750336001600160a01b038216145b61071c5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c000000006044820152606401610424565b6003546001600160a01b038281169116146107795760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e640000000000000000006044820152606401610424565b600380546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a90602001610695565b60006107cd84610512565b610814576003546000906107ef908690869086906001600160a01b0316610dd5565b60008181526004602052604090205490915060ff16610812576000915050610818565b505b5060015b9392505050565b610827610e11565b6108435760405162461bcd60e51b815260040161042490611164565b5050565b61084f610e21565b6108596000610e4e565b565b3361086e6000546001600160a01b031690565b6001600160a01b031614806108ea57506003546040516307feec1960e21b81523360048201526001600160a01b0390911690631ffbb06490602401602060405180830381865afa1580156108c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ea91906110d4565b6109065760405162461bcd60e51b8152600401610424906110f6565b600354600090610924908590859085906001600160a01b0316610dd5565b60008181526004602052604090205490915060ff16156109865760405162461bcd60e51b815260206004820152601960248201527f7472616e7366657220616c726561647920617070726f766564000000000000006044820152606401610424565b60008181526004602052604090819020805460ff1916600117905560035490517f776c895685d60b5ac3aa2c3381ed2b021825c000fbb0d8ff1359636700aa165191610504918791879187916001600160a01b031690611139565b6109e9610e21565b6001600160a01b038116610a3f5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610424565b610a4a600182610e9e565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b610a89610e11565b610aa55760405162461bcd60e51b815260040161042490611164565b610ab0838383610f1a565b505050565b610abd610e21565b6001600160a01b038116610b135760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610424565b610b1e600182610f25565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6003546000906001600160a01b038381169116146105b357506000919050565b610b7d610e21565b6001600160a01b03811660009081526002602052604090205460ff16610be55760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e74206973206e6f742072656769737465726564207965746044820152606401610424565b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f6a659bb87bb23efbdc295f8eed8ae8c4379bfb77660ced2ef0f3d7d26b05c6a69101610695565b6000610c438484846107c2565b61081457506000610818565b610c57610e21565b6001600160a01b038116610c8157604051631e4fbdf760e01b815260006004820152602401610424565b610c8a81610e4e565b50565b610c95610e21565b6001600160a01b03811660009081526002602052604090205460ff1615610cfe5760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e7420697320616c726561647920726567697374657265646044820152606401610424565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fd62c45e13ac30396aceb3ad37c89bd1ba9048032fe61679000e92eb93dbfd67d9101610695565b60006001600160a01b038216610db55760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610424565b506001600160a01b03166000908152602091909152604090205460ff1690565b60008085858585604051602001610def9493929190611139565b60408051808303601f1901815291905280516020909101209695505050505050565b6000610e1c33610b55565b905090565b6000546001600160a01b031633146108595760405163118cdaa760e01b8152336004820152602401610424565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610ea88282610d52565b15610ef55760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610424565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610ab0838383610fa7565b610f2f8282610d52565b610f855760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610424565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b600354600090610fc5908590859085906001600160a01b0316610dd5565b60008181526004602052604090205490915060ff16156103605760008181526004602052604090819020805460ff1916905560035490517f611476e33c1d844d9fa71ba7de6e7130e18b22971d28580fd76321e4af69635691610504918791879187916001600160a01b031690611139565b80356001600160a01b038116811461104e57600080fd5b919050565b60008060006060848603121561106857600080fd5b61107184611037565b925061107f60208501611037565b9150604084013590509250925092565b6000602082840312156110a157600080fd5b61081882611037565b600080604083850312156110bd57600080fd5b6110c683611037565b946020939093013593505050565b6000602082840312156110e657600080fd5b8151801515811461081857600080fd5b60208082526023908201527f63616e2062652063616c6c6564206f6e6c792062792041646d696e206164647260408201526265737360e81b606082015260800190565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b60208082526044908201527f6572726f72203a20746869732061646472657373206973206e6f74206120746f60408201527f6b656e20626f756e6420746f2074686520636f6d706c69616e636520636f6e746060820152631c9858dd60e21b608082015260a0019056fea2646970667358221220dd7dba205ef978d170a4436108d527a96173386edb7587d3a0cdad4b57ccdf0d64736f6c63430008180033","sourceMap":"3885:993:34:-:0;;;;;;;;;;;;-1:-1:-1;4272:10:87;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;160:51:165;133:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;3885:993:34;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:165:-;3885:993:34;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101375760003560e01c806384e79842116100b857806397a6278e1161007c57806397a6278e14610264578063993e8b9514610277578063cdde29321461028a578063e46638e61461029d578063f2fde38b146102b0578063ff3e6954146102c357600080fd5b806384e79842146102065780638baf29b4146102195780638d2ea772146101d85780638da5cb5b1461022c57806393e62f071461025157600080fd5b806340db3b50116100ff57806340db3b50146101b257806356db9096146101c55780635f8dead3146101d8578063715018a6146101eb57806382580805146101f357600080fd5b80630e20cc851461013c5780631ffbb064146101515780632ca9ea4314610179578063346531fa1461018c5780633ff5aa021461019f575b600080fd5b61014f61014a366004611053565b6102d6565b005b61016461015f36600461108f565b610366565b60405190151581526020015b60405180910390f35b61014f610187366004611053565b610379565b61016461019a36600461108f565b610512565b61014f6101ad36600461108f565b6105bb565b61014f6101c036600461108f565b6106a0565b6101646101d3366004611053565b6107c2565b61014f6101e63660046110aa565b61081f565b61014f610847565b61014f610201366004611053565b61085b565b61014f61021436600461108f565b6109e1565b61014f610227366004611053565b610a81565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610170565b600354610239906001600160a01b031681565b61014f61027236600461108f565b610ab5565b61016461028536600461108f565b610b55565b61014f61029836600461108f565b610b75565b6101646102ab366004611053565b610c36565b61014f6102be36600461108f565b610c4f565b61014f6102d136600461108f565b610c8d565b6102e183838361085b565b6003546040516323b872dd60e01b81526001600160a01b038581166004830152848116602483015260448201849052909116906323b872dd906064016020604051808303816000875af115801561033c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036091906110d4565b50505050565b6000610373600183610d52565b92915050565b3361038c6000546001600160a01b031690565b6001600160a01b0316148061040857506003546040516307feec1960e21b81523360048201526001600160a01b0390911690631ffbb06490602401602060405180830381865afa1580156103e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040891906110d4565b61042d5760405162461bcd60e51b8152600401610424906110f6565b60405180910390fd5b60035460009061044b908590859085906001600160a01b0316610dd5565b60008181526004602052604090205490915060ff166104ac5760405162461bcd60e51b815260206004820152601960248201527f7472616e73666572206e6f7420617070726f76656420796574000000000000006044820152606401610424565b60008181526004602052604090819020805460ff1916905560035490517f611476e33c1d844d9fa71ba7de6e7130e18b22971d28580fd76321e4af69635691610504918791879187916001600160a01b031690611139565b60405180910390a150505050565b6001600160a01b03811660009081526002602052604081205460ff161580156105a657506003546040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa158015610580573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a491906110d4565b155b156105b357506000919050565b506001919050565b336105ce6000546001600160a01b031690565b6001600160a01b031614806105ff57506003546001600160a01b03161580156105ff5750336001600160a01b038216145b61064b5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c000000006044820152606401610424565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b906020015b60405180910390a150565b336106b36000546001600160a01b031690565b6001600160a01b031614806106d05750336001600160a01b038216145b61071c5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c000000006044820152606401610424565b6003546001600160a01b038281169116146107795760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e640000000000000000006044820152606401610424565b600380546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a90602001610695565b60006107cd84610512565b610814576003546000906107ef908690869086906001600160a01b0316610dd5565b60008181526004602052604090205490915060ff16610812576000915050610818565b505b5060015b9392505050565b610827610e11565b6108435760405162461bcd60e51b815260040161042490611164565b5050565b61084f610e21565b6108596000610e4e565b565b3361086e6000546001600160a01b031690565b6001600160a01b031614806108ea57506003546040516307feec1960e21b81523360048201526001600160a01b0390911690631ffbb06490602401602060405180830381865afa1580156108c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ea91906110d4565b6109065760405162461bcd60e51b8152600401610424906110f6565b600354600090610924908590859085906001600160a01b0316610dd5565b60008181526004602052604090205490915060ff16156109865760405162461bcd60e51b815260206004820152601960248201527f7472616e7366657220616c726561647920617070726f766564000000000000006044820152606401610424565b60008181526004602052604090819020805460ff1916600117905560035490517f776c895685d60b5ac3aa2c3381ed2b021825c000fbb0d8ff1359636700aa165191610504918791879187916001600160a01b031690611139565b6109e9610e21565b6001600160a01b038116610a3f5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610424565b610a4a600182610e9e565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b610a89610e11565b610aa55760405162461bcd60e51b815260040161042490611164565b610ab0838383610f1a565b505050565b610abd610e21565b6001600160a01b038116610b135760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610424565b610b1e600182610f25565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6003546000906001600160a01b038381169116146105b357506000919050565b610b7d610e21565b6001600160a01b03811660009081526002602052604090205460ff16610be55760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e74206973206e6f742072656769737465726564207965746044820152606401610424565b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f6a659bb87bb23efbdc295f8eed8ae8c4379bfb77660ced2ef0f3d7d26b05c6a69101610695565b6000610c438484846107c2565b61081457506000610818565b610c57610e21565b6001600160a01b038116610c8157604051631e4fbdf760e01b815260006004820152602401610424565b610c8a81610e4e565b50565b610c95610e21565b6001600160a01b03811660009081526002602052604090205460ff1615610cfe5760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e7420697320616c726561647920726567697374657265646044820152606401610424565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fd62c45e13ac30396aceb3ad37c89bd1ba9048032fe61679000e92eb93dbfd67d9101610695565b60006001600160a01b038216610db55760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610424565b506001600160a01b03166000908152602091909152604090205460ff1690565b60008085858585604051602001610def9493929190611139565b60408051808303601f1901815291905280516020909101209695505050505050565b6000610e1c33610b55565b905090565b6000546001600160a01b031633146108595760405163118cdaa760e01b8152336004820152602401610424565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610ea88282610d52565b15610ef55760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610424565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610ab0838383610fa7565b610f2f8282610d52565b610f855760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610424565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b600354600090610fc5908590859085906001600160a01b0316610dd5565b60008181526004602052604090205490915060ff16156103605760008181526004602052604090819020805460ff1916905560035490517f611476e33c1d844d9fa71ba7de6e7130e18b22971d28580fd76321e4af69635691610504918791879187916001600160a01b031690611139565b80356001600160a01b038116811461104e57600080fd5b919050565b60008060006060848603121561106857600080fd5b61107184611037565b925061107f60208501611037565b9150604084013590509250925092565b6000602082840312156110a157600080fd5b61081882611037565b600080604083850312156110bd57600080fd5b6110c683611037565b946020939093013593505050565b6000602082840312156110e657600080fd5b8151801515811461081857600080fd5b60208082526023908201527f63616e2062652063616c6c6564206f6e6c792062792041646d696e206164647260408201526265737360e81b606082015260800190565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b60208082526044908201527f6572726f72203a20746869732061646472657373206973206e6f74206120746f60408201527f6b656e20626f756e6420746f2074686520636f6d706c69616e636520636f6e746060820152631c9858dd60e21b608082015260a0019056fea2646970667358221220dd7dba205ef978d170a4436108d527a96173386edb7587d3a0cdad4b57ccdf0d64736f6c63430008180033","sourceMap":"3885:993:34:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6996:186:27;;;;;;:::i;:::-;;:::i;:::-;;4700:103:87;;;;;;:::i;:::-;;:::i;:::-;;;881:14:165;;874:22;856:41;;844:2;829:18;4700:103:87;;;;;;;;5871:384:27;;;;;;:::i;:::-;;:::i;6271:253:24:-;;;;;;:::i;:::-;;:::i;5569:277::-;;;;;;:::i;:::-;;:::i;5910:296::-;;;;;;:::i;:::-;;:::i;8818:378:27:-;;;;;;:::i;:::-;;:::i;4221:136:34:-;;;;;;:::i;:::-;;:::i;2293:101:141:-;;;:::i;7624:384:27:-;;;;;;:::i;:::-;;:::i;4292:194:87:-;;;;;;:::i;:::-;;:::i;3997:162:34:-;;;;;;:::i;:::-;;:::i;1638:85:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;1638:85;;;-1:-1:-1;;;;;1331:32:165;;;1313:51;;1301:2;1286:18;1638:85:141;1167:203:165;4173:24:24;;;;;-1:-1:-1;;;;;4173:24:24;;;4492:202:87;;;;;;:::i;:::-;;:::i;6589:182:24:-;;;;;;:::i;:::-;;:::i;5239:266::-;;;;;;:::i;:::-;;:::i;4632:244:34:-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;4913:261:24:-;;;;;;:::i;:::-;;:::i;6996:186:27:-;7085:36;7101:5;7108:3;7113:7;7085:15;:36::i;:::-;7131:10;;:44;;-1:-1:-1;;;7131:44:27;;-1:-1:-1;;;;;1857:15:165;;;7131:44:27;;;1839:34:165;1909:15;;;1889:18;;;1882:43;1941:18;;;1934:34;;;7131:10:27;;;;:23;;1774:18:165;;7131:44:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6996:186;;;:::o;4700:103:87:-;4754:4;4777:19;:7;4789:6;4777:11;:19::i;:::-;4770:26;4700:103;-1:-1:-1;;4700:103:87:o;5871:384:27:-;4620:10:24;4609:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4609:7:24;-1:-1:-1;;;;;4609:21:24;;:77;;;-1:-1:-1;4653:10:24;;4634:52;;-1:-1:-1;;;4634:52:24;;4675:10;4634:52;;;1313:51:165;-1:-1:-1;;;;;4653:10:24;;;;4634:40;;1286:18:165;;4634:52:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4601:138;;;;-1:-1:-1;;;4601:138:24;;;;;;;:::i;:::-;;;;;;;;;6038:10:27::1;::::0;5966:18:::1;::::0;5987:63:::1;::::0;6009:5;;6016:3;;6021:7;;-1:-1:-1;;;;;6038:10:27::1;5987:20;:63::i;:::-;6068:30;::::0;;;:18:::1;:30;::::0;;;;;5966:84;;-1:-1:-1;6068:30:27::1;;6060:68;;;::::0;-1:-1:-1;;;6060:68:27;;2867:2:165;6060:68:27::1;::::0;::::1;2849:21:165::0;2906:2;2886:18;;;2879:30;2945:27;2925:18;;;2918:55;2990:18;;6060:68:27::1;2665:349:165::0;6060:68:27::1;6171:5;6138:30:::0;;;:18:::1;:30;::::0;;;;;;:38;;-1:-1:-1;;6138:38:27::1;::::0;;6236:10:::1;::::0;6191:57;;::::1;::::0;::::1;::::0;6207:5;;6214:3;;6219:7;;-1:-1:-1;;;;;6236:10:27::1;::::0;6191:57:::1;:::i;:::-;;;;;;;;5956:299;5871:384:::0;;;:::o;6271:253:24:-;-1:-1:-1;;;;;6367:31:24;;6346:4;6367:31;;;:16;:31;;;;;;;;6366:32;:92;;;;-1:-1:-1;6422:10:24;;6403:55;;-1:-1:-1;;;6403:55:24;;-1:-1:-1;;;;;1331:32:165;;;6403:55:24;;;1313:51:165;6422:10:24;;;;6403:40;;1286:18:165;;6403:55:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6402:56;6366:92;6362:135;;;-1:-1:-1;6481:5:24;;6271:253;-1:-1:-1;6271:253:24:o;6362:135::-;-1:-1:-1;6513:4:24;;6271:253;-1:-1:-1;6271:253:24:o;5569:277::-;5651:10;5640:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;5640:7:24;-1:-1:-1;;;;;5640:21:24;;:84;;;-1:-1:-1;5674:10:24;;-1:-1:-1;;;;;5674:10:24;5666:33;:57;;;;-1:-1:-1;5703:10:24;-1:-1:-1;;;;;5703:20:24;;;5666:57;5632:137;;;;-1:-1:-1;;;5632:137:24;;3682:2:165;5632:137:24;;;3664:21:165;3721:2;3701:18;;;3694:30;3760;3740:18;;;3733:58;3808:18;;5632:137:24;3480:352:165;5632:137:24;5779:10;:27;;-1:-1:-1;;;;;;5779:27:24;-1:-1:-1;;;;;5779:27:24;;;;;;;;5821:18;;1313:51:165;;;5821:18:24;;1301:2:165;1286:18;5821::24;;;;;;;;5569:277;:::o;5910:296::-;5994:10;5983:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;5983:7:24;-1:-1:-1;;;;;5983:21:24;;:45;;;-1:-1:-1;6008:10:24;-1:-1:-1;;;;;6008:20:24;;;5983:45;5975:87;;;;-1:-1:-1;;;5975:87:24;;3682:2:165;5975:87:24;;;3664:21:165;3721:2;3701:18;;;3694:30;3760;3740:18;;;3733:58;3808:18;;5975:87:24;3480:352:165;5975:87:24;6098:10;;-1:-1:-1;;;;;6080:29:24;;;6098:10;;6080:29;6072:65;;;;-1:-1:-1;;;6072:65:24;;4039:2:165;6072:65:24;;;4021:21:165;4078:2;4058:18;;;4051:30;4117:25;4097:18;;;4090:53;4160:18;;6072:65:24;3837:347:165;6072:65:24;6154:10;6147:17;;-1:-1:-1;;;;;;6147:17:24;;;6179:20;;-1:-1:-1;;;;;1331:32:165;;1313:51;;6179:20:24;;1301:2:165;1286:18;6179:20:24;1167:203:165;8818:378:27;8925:4;8946:19;8959:5;8946:12;:19::i;:::-;8941:228;;9052:10;;8981:18;;9002:62;;9024:5;;9031:3;;9036:6;;-1:-1:-1;;;;;9052:10:27;9002:20;:62::i;:::-;9083:30;;;;:18;:30;;;;;;8981:83;;-1:-1:-1;9083:30:27;;9078:81;;9139:5;9132:12;;;;;9078:81;8967:202;8941:228;-1:-1:-1;9185:4:27;8818:378;;;;;;:::o;4221:136:34:-;4348:10:24;:8;:10::i;:::-;4340:91;;;;-1:-1:-1;;;4340:91:24;;;;;;;:::i;:::-;4221:136:34;;:::o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;7624:384:27:-;4620:10:24;4609:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4609:7:24;-1:-1:-1;;;;;4609:21:24;;:77;;;-1:-1:-1;4653:10:24;;4634:52;;-1:-1:-1;;;4634:52:24;;4675:10;4634:52;;;1313:51:165;-1:-1:-1;;;;;4653:10:24;;;;4634:40;;1286:18:165;;4634:52:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4601:138;;;;-1:-1:-1;;;4601:138:24;;;;;;;:::i;:::-;7790:10:27::1;::::0;7718:18:::1;::::0;7739:63:::1;::::0;7761:5;;7768:3;;7773:7;;-1:-1:-1;;;;;7790:10:27::1;7739:20;:63::i;:::-;7821:30;::::0;;;:18:::1;:30;::::0;;;;;7718:84;;-1:-1:-1;7821:30:27::1;;7820:31;7812:69;;;::::0;-1:-1:-1;;;7812:69:27;;4868:2:165;7812:69:27::1;::::0;::::1;4850:21:165::0;4907:2;4887:18;;;4880:30;4946:27;4926:18;;;4919:55;4991:18;;7812:69:27::1;4666:349:165::0;7812:69:27::1;7891:30;::::0;;;:18:::1;:30;::::0;;;;;;:37;;-1:-1:-1;;7891:37:27::1;7924:4;7891:37;::::0;;7989:10:::1;::::0;7943:58;;::::1;::::0;::::1;::::0;7960:5;;7967:3;;7972:7;;-1:-1:-1;;;;;7989:10:27::1;::::0;7943:58:::1;:::i;4292:194:87:-:0;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4361:20:87;::::1;4353:64;;;::::0;-1:-1:-1;;;4353:64:87;;5222:2:165;4353:64:87::1;::::0;::::1;5204:21:165::0;5261:2;5241:18;;;5234:30;5300:33;5280:18;;;5273:61;5351:18;;4353:64:87::1;5020:355:165::0;4353:64:87::1;4427:19;:7;4439:6:::0;4427:11:::1;:19::i;:::-;4461:18;::::0;-1:-1:-1;;;;;4461:18:87;::::1;::::0;::::1;::::0;;;::::1;4292:194:::0;:::o;3997:162:34:-;4348:10:24;:8;:10::i;:::-;4340:91;;;;-1:-1:-1;;;4340:91:24;;;;;;;:::i;:::-;4100:52:34::1;4133:5;4140:3;4145:6;4100:32;:52::i;:::-;3997:162:::0;;;:::o;4492:202:87:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4564:20:87;::::1;4556:64;;;::::0;-1:-1:-1;;;4556:64:87;;5222:2:165;4556:64:87::1;::::0;::::1;5204:21:165::0;5261:2;5241:18;;;5234:30;5300:33;5280:18;;;5273:61;5351:18;;4556:64:87::1;5020:355:165::0;4556:64:87::1;4630:22;:7;4645:6:::0;4630:14:::1;:22::i;:::-;4667:20;::::0;-1:-1:-1;;;;;4667:20:87;::::1;::::0;::::1;::::0;;;::::1;4492:202:::0;:::o;6589:182:24:-;6695:10;;6657:4;;-1:-1:-1;;;;;6677:29:24;;;6695:10;;6677:29;6673:71;;-1:-1:-1;6728:5:24;;6589:182;-1:-1:-1;6589:182:24:o;5239:266::-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;5334:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;5326:76;;;::::0;-1:-1:-1;;;5326:76:24;;5582:2:165;5326:76:24::1;::::0;::::1;5564:21:165::0;;;5601:18;;;5594:30;5660:34;5640:18;;;5633:62;5712:18;;5326:76:24::1;5380:356:165::0;5326:76:24::1;-1:-1:-1::0;;;;;5412:31:24;::::1;5446:5;5412:31:::0;;;:16:::1;:31;::::0;;;;;;;;:39;;-1:-1:-1;;5412:39:24::1;::::0;;5466:32;;1313:51:165;;;5466:32:24::1;::::0;1286:18:165;5466:32:24::1;1167:203:165::0;4632:244:34;4729:4;4750:52;4783:5;4790:3;4795:6;4750:32;:52::i;:::-;4745:104;;-1:-1:-1;4833:5:34;4826:12;;2543:215:141;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;1313:51:165::0;1286:18;;2672:31:141::1;1167:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;4913:261:24:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;5006:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;5005:32;4997:77;;;::::0;-1:-1:-1;;;4997:77:24;;5943:2:165;4997:77:24::1;::::0;::::1;5925:21:165::0;;;5962:18;;;5955:30;6021:34;6001:18;;;5994:62;6073:18;;4997:77:24::1;5741:356:165::0;4997:77:24::1;-1:-1:-1::0;;;;;5084:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;;;;:38;;-1:-1:-1;;5084:38:24::1;5118:4;5084:38;::::0;;5137:30;;1313:51:165;;;5137:30:24::1;::::0;1286:18:165;5137:30:24::1;1167:203:165::0;4596:200:89;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;6304:2:165;4684:68:89;;;6286:21:165;6343:2;6323:18;;;6316:30;6382:34;6362:18;;;6355:62;-1:-1:-1;;;6433:18:165;;;6426:32;6475:19;;4684:68:89;6102:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;12333:273:27:-;12483:7;12501:18;12543:5;12550:3;12555:7;12564:6;12532:39;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;12532:39:27;;;;;;12522:50;;12532:39;12522:50;;;;;12333:273;-1:-1:-1;;;;;;12333:273:27:o;6897:97:24:-;6940:4;6963:24;6976:10;6963:12;:24::i;:::-;6956:31;;6897:97;:::o;1796:162:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;1313:51:165;1286:18;;1901:40:141;1167:203:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;4077:175:89:-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;6707:2:165;4145:63:89;;;6689:21:165;6746:2;6726:18;;;6719:30;6785:33;6765:18;;;6758:61;6836:18;;4145:63:89;6505:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;9646:150:27:-;9751:38;9770:5;9777:3;9782:6;9751:18;:38::i;4327:180:89:-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;7067:2:165;4398:64:89;;;7049:21:165;7106:2;7086:18;;;7079:30;7145:34;7125:18;;;7118:62;-1:-1:-1;;;7196:18:165;;;7189:31;7237:19;;4398:64:89;6865:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;11486:364:27:-;11647:10;;11575:18;;11596:63;;11618:5;;11625:3;;11630:7;;-1:-1:-1;;;;;11647:10:27;11596:20;:63::i;:::-;11673:30;;;;:18;:30;;;;;;11575:84;;-1:-1:-1;11673:30:27;;11669:175;;;11752:5;11719:30;;;:18;:30;;;;;;;:38;;-1:-1:-1;;11719:38:27;;;11821:10;;11776:57;;;;;;11792:5;;11799:3;;11804:7;;-1:-1:-1;;;;;11821:10:27;;11776:57;:::i;14:173:165:-;82:20;;-1:-1:-1;;;;;131:31:165;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:328::-;269:6;277;285;338:2;326:9;317:7;313:23;309:32;306:52;;;354:1;351;344:12;306:52;377:29;396:9;377:29;:::i;:::-;367:39;;425:38;459:2;448:9;444:18;425:38;:::i;:::-;415:48;;510:2;499:9;495:18;482:32;472:42;;192:328;;;;;:::o;525:186::-;584:6;637:2;625:9;616:7;612:23;608:32;605:52;;;653:1;650;643:12;605:52;676:29;695:9;676:29;:::i;908:254::-;976:6;984;1037:2;1025:9;1016:7;1012:23;1008:32;1005:52;;;1053:1;1050;1043:12;1005:52;1076:29;1095:9;1076:29;:::i;:::-;1066:39;1152:2;1137:18;;;;1124:32;;-1:-1:-1;;;908:254:165:o;1979:277::-;2046:6;2099:2;2087:9;2078:7;2074:23;2070:32;2067:52;;;2115:1;2112;2105:12;2067:52;2147:9;2141:16;2200:5;2193:13;2186:21;2179:5;2176:32;2166:60;;2222:1;2219;2212:12;2261:399;2463:2;2445:21;;;2502:2;2482:18;;;2475:30;2541:34;2536:2;2521:18;;2514:62;-1:-1:-1;;;2607:2:165;2592:18;;2585:33;2650:3;2635:19;;2261:399::o;3019:456::-;-1:-1:-1;;;;;3306:15:165;;;3288:34;;3358:15;;;3353:2;3338:18;;3331:43;3405:2;3390:18;;3383:34;;;;3453:15;;;3448:2;3433:18;;3426:43;3237:3;3222:19;;3019:456::o;4189:472::-;4391:2;4373:21;;;4430:2;4410:18;;;4403:30;4469:34;4464:2;4449:18;;4442:62;4540:34;4535:2;4520:18;;4513:62;-1:-1:-1;;;4606:3:165;4591:19;;4584:35;4651:3;4636:19;;4189:472::o","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","addTokenAgent(address)":"ff3e6954","approveAndTransfer(address,address,uint256)":"0e20cc85","approveTransfer(address,address,uint256)":"82580805","bindToken(address)":"3ff5aa02","canTransfer(address,address,uint256)":"e46638e6","complianceCheckOnApproveTransfer(address,address,uint256)":"56db9096","created(address,uint256)":"5f8dead3","destroyed(address,uint256)":"8d2ea772","isAgent(address)":"1ffbb064","isTokenAgent(address)":"346531fa","isTokenBound(address)":"993e8b95","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","removeApproval(address,address,uint256)":"2ca9ea43","removeTokenAgent(address)":"cdde2932","renounceOwnership()":"715018a6","tokenBound()":"93e62f07","transferOwnership(address)":"f2fde38b","transferred(address,address,uint256)":"8baf29b4","unbindToken(address)":"40db3b50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"ApprovalRemoved\",\"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\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TransferApproved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"addTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"approveAndTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"approveTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"complianceCheckOnApproveTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"isTokenAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"removeApproval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"removeTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenBound\",\"outputs\":[{\"internalType\":\"contract IToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addTokenAgent(address)\":{\"details\":\"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces\"},\"approveAndTransfer(address,address,uint256)\":{\"details\":\"Approves a transfer and execute it immediately As the function calls `transferFrom` on the token contract, the compliance contract, which is de facto sender of that function call has to be allowed to make such a call, i.e. the allowance should be >= `_amount` with Compliance contract address being the spender address\",\"params\":{\"_amount\":\"the amount of tokens that `_from` would send to `_to` Only Admin can call this function, i.e. owner of compliance contract OR token agent emits a `TransferApproved` event, an `ApprovalRemoved` event and a `Transfer` event\",\"_from\":\"the address of the transfer sender\",\"_to\":\"the address of the transfer receiver\"}},\"approveTransfer(address,address,uint256)\":{\"details\":\"Approves a transfer once a transfer is approved, the sender is allowed to execute it\",\"params\":{\"_amount\":\"the amount of tokens that `_from` would send to `_to` Only Admin can call this function, i.e. owner of compliance contract OR token agent emits a `TransferApproved` event\",\"_from\":\"the address of the transfer sender\",\"_to\":\"the address of the transfer receiver\"}},\"bindToken(address)\":{\"details\":\"See {ICompliance-bindToken}.\"},\"canTransfer(address,address,uint256)\":{\"details\":\"See {ICompliance-canTransfer}.\"},\"complianceCheckOnApproveTransfer(address,address,uint256)\":{\"details\":\"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the transferID corresponding to the parameters of the transfer corresponds to a pre-approved transfer or not, and will return TRUE or FALSE according to the approval status of the said transfer If `_from` is a token agent, the transfer will pass whatever the approval status may be as agents bypass this compliance feature.\",\"params\":{\"_from\":\"the address of the transfer sender\",\"_to\":\"the address of the transfer receiver\",\"_value\":\"the amount of tokens that `_from` would send to `_to`\"}},\"created(address,uint256)\":{\"details\":\"See {ICompliance-created}.\"},\"destroyed(address,uint256)\":{\"details\":\"See {ICompliance-destroyed}.\"},\"isTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"isTokenBound(address)\":{\"details\":\"See {ICompliance-isTokenBound}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeApproval(address,address,uint256)\":{\"details\":\"removes approval on a transfer previously approved requires the transfer to be previously approved once a transfer approval is removed, the sender is not allowed to execute it anymore\",\"params\":{\"_amount\":\"the amount of tokens that `_from` was allowed to send to `_to` Only Admin can call this function, i.e. owner of compliance contract OR token agent emits an `ApprovalRemoved` event\",\"_from\":\"the address of the transfer sender\",\"_to\":\"the address of the transfer receiver\"}},\"removeTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"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.\"},\"transferred(address,address,uint256)\":{\"details\":\"See {ICompliance-transferred}.\"},\"unbindToken(address)\":{\"details\":\"See {ICompliance-unbindToken}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ApprovalRemoved(address,address,uint256,address)\":{\"notice\":\"this event is emitted when a transfer approval is removed the event is emitted by the `removeApproval` function `_from` is the address of the transfer sender `_to` is the address of the transfer receiver `_amount` is the amount of tokens that `_from` was allowed to send to `_to` `_token` is the address of the token that was allowed to be transferred\"},\"TokenAgentAdded(address)\":{\"notice\":\"this event is emitted when the Agent has been added on the allowedList of this Compliance. the event is emitted by the Compliance constructor and by the addTokenAgent function `_agentAddress` is the address of the Agent to add\"},\"TokenAgentRemoved(address)\":{\"notice\":\"this event is emitted when the Agent has been removed from the agent list of this Compliance. the event is emitted by the Compliance constructor and by the removeTokenAgent function `_agentAddress` is the address of the Agent to remove\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"},\"TransferApproved(address,address,uint256,address)\":{\"notice\":\"this event is emitted when a transfer is approved the event is emitted by the `approveTransfer` and `approveAndTransfer` functions `_from` is the address of the transfer sender `_to` is the address of the transfer receiver `_amount` is the amount of tokens that `_from` is allowed to send to `_to` note that the approved transfer has to be exactly of the approved amount `_amount` `_token` is the address of the token that is allowed to be transferred\"}},\"kind\":\"user\",\"methods\":{\"tokenBound()\":{\"notice\":\"Mapping of tokens linked to the compliance contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/legacy/test/ApproveTransferTest.sol\":\"ApproveTransferTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/legacy/BasicCompliance.sol\":{\"keccak256\":\"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d\",\"dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4\"]},\"contracts/erc3643/compliance/legacy/ICompliance.sol\":{\"keccak256\":\"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e\",\"dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV\"]},\"contracts/erc3643/compliance/legacy/features/ApproveTransfer.sol\":{\"keccak256\":\"0x9e114f3c1d6e014a1de72f82e695f79f06d86fa7334cf2a4b719584a9dda18bc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://80a04df8da32a86fe7b46d2414715f413a2633e3179fe807e30c870b0d981996\",\"dweb:/ipfs/QmQq6DKSZ3Q7JqC7oVboZRR3nV5pn8tFBwZ8PEoRDRimhh\"]},\"contracts/erc3643/compliance/legacy/test/ApproveTransferTest.sol\":{\"keccak256\":\"0x641ebc56673325b0ca0c9ec421995ceff64825c0e5e67296d72e911a7d3b4804\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ba8df1606a58847d3365c56432d805f74d1ed7efe28a608bd604ad50c97ca97f\",\"dweb:/ipfs/QmZ1enJH9YuwjVZfcXU9632ZgK46RqoYNDNdPDvvRaLoW8\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":false},{"internalType":"address","name":"_to","type":"address","indexed":false},{"internalType":"uint256","name":"_amount","type":"uint256","indexed":false},{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"ApprovalRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":false},{"internalType":"address","name":"_to","type":"address","indexed":false},{"internalType":"uint256","name":"_amount","type":"uint256","indexed":false},{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TransferApproved","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenAgent"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approveAndTransfer"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approveTransfer"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"view","type":"function","name":"complianceCheckOnApproveTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeApproval"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenBound","outputs":[{"internalType":"contract IToken","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"}],"devdoc":{"kind":"dev","methods":{"addTokenAgent(address)":{"details":"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces"},"approveAndTransfer(address,address,uint256)":{"details":"Approves a transfer and execute it immediately As the function calls `transferFrom` on the token contract, the compliance contract, which is de facto sender of that function call has to be allowed to make such a call, i.e. the allowance should be >= `_amount` with Compliance contract address being the spender address","params":{"_amount":"the amount of tokens that `_from` would send to `_to` Only Admin can call this function, i.e. owner of compliance contract OR token agent emits a `TransferApproved` event, an `ApprovalRemoved` event and a `Transfer` event","_from":"the address of the transfer sender","_to":"the address of the transfer receiver"}},"approveTransfer(address,address,uint256)":{"details":"Approves a transfer once a transfer is approved, the sender is allowed to execute it","params":{"_amount":"the amount of tokens that `_from` would send to `_to` Only Admin can call this function, i.e. owner of compliance contract OR token agent emits a `TransferApproved` event","_from":"the address of the transfer sender","_to":"the address of the transfer receiver"}},"bindToken(address)":{"details":"See {ICompliance-bindToken}."},"canTransfer(address,address,uint256)":{"details":"See {ICompliance-canTransfer}."},"complianceCheckOnApproveTransfer(address,address,uint256)":{"details":"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the transferID corresponding to the parameters of the transfer corresponds to a pre-approved transfer or not, and will return TRUE or FALSE according to the approval status of the said transfer If `_from` is a token agent, the transfer will pass whatever the approval status may be as agents bypass this compliance feature.","params":{"_from":"the address of the transfer sender","_to":"the address of the transfer receiver","_value":"the amount of tokens that `_from` would send to `_to`"}},"created(address,uint256)":{"details":"See {ICompliance-created}."},"destroyed(address,uint256)":{"details":"See {ICompliance-destroyed}."},"isTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"isTokenBound(address)":{"details":"See {ICompliance-isTokenBound}."},"owner()":{"details":"Returns the address of the current owner."},"removeApproval(address,address,uint256)":{"details":"removes approval on a transfer previously approved requires the transfer to be previously approved once a transfer approval is removed, the sender is not allowed to execute it anymore","params":{"_amount":"the amount of tokens that `_from` was allowed to send to `_to` Only Admin can call this function, i.e. owner of compliance contract OR token agent emits an `ApprovalRemoved` event","_from":"the address of the transfer sender","_to":"the address of the transfer receiver"}},"removeTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"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."},"transferred(address,address,uint256)":{"details":"See {ICompliance-transferred}."},"unbindToken(address)":{"details":"See {ICompliance-unbindToken}."}},"version":1},"userdoc":{"kind":"user","methods":{"tokenBound()":{"notice":"Mapping of tokens linked to the compliance contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/legacy/test/ApproveTransferTest.sol":"ApproveTransferTest"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/legacy/BasicCompliance.sol":{"keccak256":"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305","urls":["bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d","dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/ICompliance.sol":{"keccak256":"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7","urls":["bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e","dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/features/ApproveTransfer.sol":{"keccak256":"0x9e114f3c1d6e014a1de72f82e695f79f06d86fa7334cf2a4b719584a9dda18bc","urls":["bzz-raw://80a04df8da32a86fe7b46d2414715f413a2633e3179fe807e30c870b0d981996","dweb:/ipfs/QmQq6DKSZ3Q7JqC7oVboZRR3nV5pn8tFBwZ8PEoRDRimhh"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/test/ApproveTransferTest.sol":{"keccak256":"0x641ebc56673325b0ca0c9ec421995ceff64825c0e5e67296d72e911a7d3b4804","urls":["bzz-raw://ba8df1606a58847d3365c56432d805f74d1ed7efe28a608bd604ad50c97ca97f","dweb:/ipfs/QmZ1enJH9YuwjVZfcXU9632ZgK46RqoYNDNdPDvvRaLoW8"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":34} \ No newline at end of file diff --git a/out/Base.sol/CommonBase.json b/out/Base.sol/CommonBase.json new file mode 100644 index 0000000..b422b3e --- /dev/null +++ b/out/Base.sol/CommonBase.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"CommonBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8\",\"dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Base.sol":"CommonBase"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4","urls":["bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8","dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy"],"license":"MIT OR Apache-2.0"}},"version":1},"id":0} \ No newline at end of file diff --git a/out/Base.sol/ScriptBase.json b/out/Base.sol/ScriptBase.json new file mode 100644 index 0000000..e7ecb86 --- /dev/null +++ b/out/Base.sol/ScriptBase.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"ScriptBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8\",\"dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Base.sol":"ScriptBase"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4","urls":["bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8","dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy"],"license":"MIT OR Apache-2.0"}},"version":1},"id":0} \ No newline at end of file diff --git a/out/Base.sol/TestBase.json b/out/Base.sol/TestBase.json new file mode 100644 index 0000000..d633f22 --- /dev/null +++ b/out/Base.sol/TestBase.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"TestBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8\",\"dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Base.sol":"TestBase"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4","urls":["bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8","dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy"],"license":"MIT OR Apache-2.0"}},"version":1},"id":0} \ No newline at end of file diff --git a/out/BasicCompliance.sol/BasicCompliance.json b/out/BasicCompliance.sol/BasicCompliance.json new file mode 100644 index 0000000..775afb3 --- /dev/null +++ b/out/BasicCompliance.sol/BasicCompliance.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenBound","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tokenBound","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IToken"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentAdded","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentRemoved","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","addTokenAgent(address)":"ff3e6954","bindToken(address)":"3ff5aa02","canTransfer(address,address,uint256)":"e46638e6","created(address,uint256)":"5f8dead3","destroyed(address,uint256)":"8d2ea772","isAgent(address)":"1ffbb064","isTokenAgent(address)":"346531fa","isTokenBound(address)":"993e8b95","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","removeTokenAgent(address)":"cdde2932","renounceOwnership()":"715018a6","tokenBound()":"93e62f07","transferOwnership(address)":"f2fde38b","transferred(address,address,uint256)":"8baf29b4","unbindToken(address)":"40db3b50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"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\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"addTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"isTokenAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"removeTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenBound\",\"outputs\":[{\"internalType\":\"contract IToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addTokenAgent(address)\":{\"details\":\"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces\"},\"bindToken(address)\":{\"details\":\"See {ICompliance-bindToken}.\"},\"canTransfer(address,address,uint256)\":{\"details\":\"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"created(address,uint256)\":{\"details\":\"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_to\":\"The address of the receiver\"}},\"destroyed(address,uint256)\":{\"details\":\"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the receiver\"}},\"isTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"isTokenBound(address)\":{\"details\":\"See {ICompliance-isTokenBound}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"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.\"},\"transferred(address,address,uint256)\":{\"details\":\"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"unbindToken(address)\":{\"details\":\"See {ICompliance-unbindToken}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"TokenAgentAdded(address)\":{\"notice\":\"this event is emitted when the Agent has been added on the allowedList of this Compliance. the event is emitted by the Compliance constructor and by the addTokenAgent function `_agentAddress` is the address of the Agent to add\"},\"TokenAgentRemoved(address)\":{\"notice\":\"this event is emitted when the Agent has been removed from the agent list of this Compliance. the event is emitted by the Compliance constructor and by the removeTokenAgent function `_agentAddress` is the address of the Agent to remove\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"}},\"kind\":\"user\",\"methods\":{\"tokenBound()\":{\"notice\":\"Mapping of tokens linked to the compliance contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/legacy/BasicCompliance.sol\":\"BasicCompliance\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/legacy/BasicCompliance.sol\":{\"keccak256\":\"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d\",\"dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4\"]},\"contracts/erc3643/compliance/legacy/ICompliance.sol\":{\"keccak256\":\"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e\",\"dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenAgent"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenBound","outputs":[{"internalType":"contract IToken","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"}],"devdoc":{"kind":"dev","methods":{"addTokenAgent(address)":{"details":"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces"},"bindToken(address)":{"details":"See {ICompliance-bindToken}."},"canTransfer(address,address,uint256)":{"details":"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"created(address,uint256)":{"details":"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_to":"The address of the receiver"}},"destroyed(address,uint256)":{"details":"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the receiver"}},"isTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"isTokenBound(address)":{"details":"See {ICompliance-isTokenBound}."},"owner()":{"details":"Returns the address of the current owner."},"removeTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"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."},"transferred(address,address,uint256)":{"details":"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"unbindToken(address)":{"details":"See {ICompliance-unbindToken}."}},"version":1},"userdoc":{"kind":"user","methods":{"tokenBound()":{"notice":"Mapping of tokens linked to the compliance contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/legacy/BasicCompliance.sol":"BasicCompliance"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/legacy/BasicCompliance.sol":{"keccak256":"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305","urls":["bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d","dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/ICompliance.sol":{"keccak256":"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7","urls":["bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e","dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":24} \ No newline at end of file diff --git a/out/CTRStorage.sol/CTRStorage.json b/out/CTRStorage.sol/CTRStorage.json new file mode 100644 index 0000000..1b3aa38 --- /dev/null +++ b/out/CTRStorage.sol/CTRStorage.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea26469706673582212206e4783f3c4e1fa697d5f005a0958c3127953890128f5901f1db65665182c8db864736f6c63430008180033","sourceMap":"3843:310:83:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea26469706673582212206e4783f3c4e1fa697d5f005a0958c3127953890128f5901f1db65665182c8db864736f6c63430008180033","sourceMap":"3843:310:83:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"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.\"},\"_claimTopics\":{\"details\":\"All required Claim Topics\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/registry/storage/CTRStorage.sol\":\"CTRStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/registry/storage/CTRStorage.sol\":{\"keccak256\":\"0x159af1d4b2f6b3f300dd548b7de251be01f2f7a3603cb56d3fe9d4700e033b07\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5c833924bb820c292fca966261bddb7501065d441ba82279afee1e447a127af4\",\"dweb:/ipfs/Qmf3gXJMjGwJR2MHsT5pszQoReemcjuEw2CzeSPKRnWkXC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/registry/storage/CTRStorage.sol":"CTRStorage"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/registry/storage/CTRStorage.sol":{"keccak256":"0x159af1d4b2f6b3f300dd548b7de251be01f2f7a3603cb56d3fe9d4700e033b07","urls":["bzz-raw://5c833924bb820c292fca966261bddb7501065d441ba82279afee1e447a127af4","dweb:/ipfs/Qmf3gXJMjGwJR2MHsT5pszQoReemcjuEw2CzeSPKRnWkXC"],"license":"GPL-3.0"}},"version":1},"id":83} \ No newline at end of file diff --git a/out/ClaimIssuer.sol/ClaimIssuer.json b/out/ClaimIssuer.sol/ClaimIssuer.json new file mode 100644 index 0000000..549987d --- /dev/null +++ b/out/ClaimIssuer.sol/ClaimIssuer.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"initialManagementKey","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"addClaim","inputs":[{"name":"_topic","type":"uint256","internalType":"uint256"},{"name":"_scheme","type":"uint256","internalType":"uint256"},{"name":"_issuer","type":"address","internalType":"address"},{"name":"_signature","type":"bytes","internalType":"bytes"},{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_uri","type":"string","internalType":"string"}],"outputs":[{"name":"claimRequestId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"addKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"},{"name":"_type","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"_id","type":"uint256","internalType":"uint256"},{"name":"_approve","type":"bool","internalType":"bool"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"execute","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"executionId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"getClaim","inputs":[{"name":"_claimId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"topic","type":"uint256","internalType":"uint256"},{"name":"scheme","type":"uint256","internalType":"uint256"},{"name":"issuer","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"uri","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getClaimIdsByTopic","inputs":[{"name":"_topic","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"claimIds","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"purposes","type":"uint256[]","internalType":"uint256[]"},{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getKeyPurposes","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_purposes","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getKeysByPurpose","inputs":[{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keys","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getRecoveredAddress","inputs":[{"name":"sig","type":"bytes","internalType":"bytes"},{"name":"dataHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"initialize","inputs":[{"name":"initialManagementKey","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isClaimRevoked","inputs":[{"name":"_sig","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isClaimValid","inputs":[{"name":"_identity","type":"address","internalType":"contract IIdentity"},{"name":"claimTopic","type":"uint256","internalType":"uint256"},{"name":"sig","type":"bytes","internalType":"bytes"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"claimValid","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyHasPurpose","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeClaim","inputs":[{"name":"_claimId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokeClaim","inputs":[{"name":"_claimId","type":"bytes32","internalType":"bytes32"},{"name":"_identity","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokeClaimBySignature","inputs":[{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokedClaims","inputs":[{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"event","name":"Approved","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ClaimAdded","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimChanged","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimRemoved","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimRevoked","inputs":[{"name":"signature","type":"bytes","indexed":true,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Executed","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ExecutionFailed","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ExecutionRequested","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"KeyAdded","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"purpose","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"keyType","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"KeyRemoved","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"purpose","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"keyType","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040526006805461ffff191690553480156200001c57600080fd5b506040516200307b3803806200307b8339810160408190526200003f91620002a3565b8060006001600160a01b0382166200009e5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b80620000b557620000af82620000cc565b620000c3565b6006805460ff191660011790555b505050620002d5565b60065460ff161580620000de5750303b155b6200012c5760405162461bcd60e51b815260206004820152601e60248201527f496e697469616c206b65792077617320616c72656164792073657475702e0000604482015260640162000095565b6006805461ffff1916610101179055604080516001600160a01b03831660208201526000910160408051601f1981840301815282825280516020918201206000818152600180845284822060028101849055868501909552808652908290529182905293506200019d929062000237565b506000818152600160208181526040808420830183905560029091527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0805480840182559084527f7fef4bf8f63cf9dd467136c679c02b5c17fcf6322d9562512bf5eb952cf7cc5301849055519091829184917f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e991a45050565b8280548282559060005260206000209081019282156200027a579160200282015b828111156200027a578251829060ff1690559160200191906001019062000258565b50620002889291506200028c565b5090565b5b808211156200028857600081556001016200028d565b600060208284031215620002b657600080fd5b81516001600160a01b0381168114620002ce57600080fd5b9392505050565b612d9680620002e56000396000f3fe60806040526004361061011f5760003560e01c80639f7f9edd116100a0578063c4d66de811610064578063c4d66de814610368578063c9100bcb14610388578063d202158d146103ba578063d2345249146103da578063fb307b341461041557600080fd5b80639f7f9edd146102ad578063b1a34e0d146102cf578063b61d27f6146102fd578063c0969a6e14610310578063c3b129e31461033057600080fd5b806354fd4d50116100e757806354fd4d50146101ec57806373c3370814610220578063747442d31461024057806380e9e9e1146102605780639010f7261461028d57600080fd5b806312aaac70146101245780631d3812401461015c5780632646b2641461018c5780634eee424a146101ac57806353d413c5146101cc575b600080fd5b34801561013057600080fd5b5061014461013f366004612194565b610442565b604051610153939291906121e9565b60405180910390f35b34801561016857600080fd5b5061017c61017736600461220e565b6104bb565b6040519015158152602001610153565b34801561019857600080fd5b5061017c6101a7366004612307565b610715565b3480156101b857600080fd5b5061017c6101c7366004612194565b61074f565b3480156101d857600080fd5b5061017c6101e736600461233c565b610a0e565b3480156101f857600080fd5b506040805180820182526005815264322e322e3160d81b6020820152905161015391906123ae565b34801561022c57600080fd5b5061017c61023b3660046123d6565b610dfe565b34801561024c57600080fd5b5061017c61025b366004612414565b610fdd565b34801561026c57600080fd5b5061028061027b366004612194565b6113ba565b6040516101539190612439565b34801561029957600080fd5b506102806102a8366004612194565b61141c565b3480156102b957600080fd5b506102cd6102c836600461247d565b61147c565b005b3480156102db57600080fd5b506102ef6102ea3660046124ef565b6115ca565b604051908152602001610153565b6102ef61030b3660046125b0565b611896565b34801561031c57600080fd5b5061017c61032b366004612609565b6119c8565b34801561033c57600080fd5b5061035061034b366004612689565b611acb565b6040516001600160a01b039091168152602001610153565b34801561037457600080fd5b506102cd6103833660046126ce565b611b7c565b34801561039457600080fd5b506103a86103a3366004612194565b611bde565b604051610153969594939291906126eb565b3480156103c657600080fd5b5061017c6103d536600461233c565b611ddf565b3480156103e657600080fd5b5061017c6103f5366004612307565b805160208183018101805160388252928201919093012091525460ff1681565b34801561042157600080fd5b50610435610430366004612194565b611ed6565b604051610153919061274b565b6000818152600160208181526040808420928301546002840154845483518186028101860190945280845260609695869590949185918301828280156104a757602002820191906000526020600020905b815481526020019060010190808311610493575b505050505092509250925092509193909250565b60065460009060ff6101009091041615156001146104f45760405162461bcd60e51b81526004016104eb9061275e565b60405180910390fd5b3330148061052a57506040805133602082015261052a91015b604051602081830303815290604052805190602001206001611ddf565b6105465760405162461bcd60e51b81526004016104eb906127b1565b60008481526001602052604090206002015484900361066f576000848152600160209081526040808320805482518185028101850190935280835291929091908301828280156105b557602002820191906000526020600020905b8154815260200190600101908083116105a1575b5050505050905060005b81518110156106485760008282815181106105dc576105dc612801565b6020026020010151905085810361063f5760405162461bcd60e51b815260206004820152602160248201527f436f6e666c6963743a204b657920616c72656164792068617320707572706f736044820152606560f81b60648201526084016104eb565b506001016105bf565b505060008481526001602081815260408320805492830181558352909120018390556106bb565b600084815260016020818152604080842060028101899055815180840190925287825293889052908290526106a4929161209c565b506000848152600160208190526040909120018290555b60008381526002602090815260408083208054600181018255908452918320909101869055518391859187917f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e991a45060015b9392505050565b60006038826040516107279190612817565b9081526040519081900360200190205460ff161561074757506001919050565b506000919050565b60065460009060ff61010090910416151560011461077f5760405162461bcd60e51b81526004016104eb9061275e565b333014806107b55750604080513360208201526107b591015b604051602081830303815290604052805190602001206003611ddf565b6107d15760405162461bcd60e51b81526004016104eb90612833565b600082815260046020526040812054908190036108445760405162461bcd60e51b815260206004820152602b60248201527f4e6f6e4578697374696e673a205468657265206973206e6f20636c61696d207760448201526a1a5d1a081d1a1a5cc8125160aa1b60648201526084016104eb565b6000818152600560205260408120545b600083815260056020526040902080548691908490811061087757610877612801565b90600052602060002001541461089c57816108918161289b565b925050808210610854575b60008381526005602052604090206108b56001836128b4565b815481106108c5576108c5612801565b90600052602060002001546005600085815260200190815260200160002083815481106108f4576108f4612801565b906000526020600020018190555060056000848152602001908152602001600020805480610924576109246128c7565b6000828152602080822083016000199081018390559092019092558682526004908190526040918290206002810154600182015493516001600160a01b039091169387938a937f3cf57863a89432c61c4a27073c6ee39e8a764bff5a05aebfbcdcdc80b2e6130a936109a59392600383019290810191600590910190612994565b60405180910390a46000858152600460205260408120818155600181018290556002810180546001600160a01b0319169055906109e560038301826120e7565b6109f36004830160006120e7565b610a016005830160006120e7565b5060019695505050505050565b60065460009060ff610100909104161515600114610a3e5760405162461bcd60e51b81526004016104eb9061275e565b33301480610a5b575060408051336020820152610a5b910161050d565b610a775760405162461bcd60e51b81526004016104eb906127b1565b6000838152600160205260409020600201548314610ae15760405162461bcd60e51b815260206004820152602160248201527f4e6f6e4578697374696e673a204b65792069736e2774207265676973746572656044820152601960fa1b60648201526084016104eb565b600083815260016020908152604080832080548251818502810185019093528083529192909190830182828015610b3757602002820191906000526020600020905b815481526020019060010190808311610b23575b5050505050905060005b83828281518110610b5457610b54612801565b602002602001015114610bd65780610b6b8161289b565b91505081518103610bd15760405162461bcd60e51b815260206004820152602a60248201527f4e6f6e4578697374696e673a204b657920646f65736e27742068617665207375604482015269636820707572706f736560b01b60648201526084016104eb565b610b41565b8160018351610be591906128b4565b81518110610bf557610bf5612801565b6020026020010151828281518110610c0f57610c0f612801565b602090810291909101810191909152600086815260018252604090208351610c399285019061209c565b506000858152600160205260409020805480610c5757610c576128c7565b6000828152602080822083016000199081018390559092019092558582526002905260408120545b6000868152600260205260409020805488919084908110610ca257610ca2612801565b906000526020600020015414610cc75781610cbc8161289b565b925050808210610c7f575b6000868152600260205260409020610ce06001836128b4565b81548110610cf057610cf0612801565b9060005260206000200154600260008881526020019081526020016000208381548110610d1f57610d1f612801565b906000526020600020018190555060026000878152602001908152602001600020805480610d4f57610d4f6128c7565b6001900381819060005260206000200160009055905560006001600089815260200190815260200160002060010154905060018551610d8e91906128b4565b600003610dbf57600088815260016020526040812090610dae8282612121565b506000600182018190556002909101555b8087897f585a4aef50f8267a92b32412b331b20f7f8b96f2245b253b9cc50dcc621d339760405160405180910390a46001955050505050505b92915050565b60065460009060ff610100909104161515600114610e2e5760405162461bcd60e51b81526004016104eb9061275e565b33301480610e4b575060408051336020820152610e4b910161050d565b610e675760405162461bcd60e51b81526004016104eb906127b1565b6000806000606080866001600160a01b031663c9100bcb896040518263ffffffff1660e01b8152600401610e9d91815260200190565b600060405180830381865afa158015610eba573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ee29190810190612a23565b5060405194995092975090955093509150603890610f01908490612817565b9081526040519081900360200190205460ff1615610f615760405162461bcd60e51b815260206004820152601f60248201527f436f6e666c6963743a20436c61696d20616c7265616479207265766f6b65640060448201526064016104eb565b6001603883604051610f739190612817565b908152604051908190036020018120805492151560ff1990931692909217909155610f9f908390612817565b604051908190038120907f7f484e37f24c0a92f81dd74afa3027b3ea31f2e9fb6b9fa29fe9865f81ac556990600090a2506001979650505050505050565b60065460009060ff61010090910416151560011461100d5760405162461bcd60e51b81526004016104eb9061275e565b600054831061106e5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420617070726f76652061206e6f6e2d6578697374696e6720657860448201526632b1baba34b7b760c91b60648201526084016104eb565b60008381526003602081905260409091200154610100900460ff16156110d65760405162461bcd60e51b815260206004820152601860248201527f5265717565737420616c7265616479206578656375746564000000000000000060448201526064016104eb565b600083815260036020526040902054306001600160a01b0390911603611167576040805133602082015261110a910161050d565b6111625760405162461bcd60e51b815260206004820152602360248201527f53656e64657220646f6573206e6f742068617665206d616e6167656d656e74206044820152626b657960e81b60648201526084016104eb565b6111e0565b6040805133602082015261119491015b604051602081830303815290604052805190602001206002611ddf565b6111e05760405162461bcd60e51b815260206004820152601f60248201527f53656e64657220646f6573206e6f74206861766520616374696f6e206b65790060448201526064016104eb565b827fb3932da477fe5d6c8ff2eafef050c0f3a1af18fc07121001482600f36f3715d883604051611214911515815260200190565b60405180910390a281151560010361139c57600083815260036020819052604091829020908101805460ff1916600190811790915581549082015492516001600160a01b03909116929161126d91600290910190612ad8565b60006040518083038185875af1925050503d80600081146112aa576040519150601f19603f3d011682016040523d82523d6000602084013e6112af565b606091505b5090915050801561133457600083815260036020819052604091829020908101805461ff00191661010017905560018101548154925190926001600160a01b03169186917f1f920dbda597d7bf95035464170fa58d0a4b57f13a1c315ace6793b9f63688b89161132491600290910190612b4e565b60405180910390a4506001610df8565b6000838152600360205260409081902060018101548154925190926001600160a01b03169186917fe10c49d9f7c71da23262367013434763cfdb2332267641728d25cd712c5c6a689161138c91600290910190612b4e565b60405180910390a4506000610df8565b50506000908152600360208190526040822001805460ff1916905590565b60008181526005602090815260409182902080548351818402810184019094528084526060939283018282801561141057602002820191906000526020600020905b8154815260200190600101908083116113fc575b50505050509050919050565b60008181526002602090815260409182902080548351818402810184019094528084526060939283018282801561141057602002820191906000526020600020908154815260200190600101908083116113fc5750505050509050919050565b60065460ff6101009091041615156001146114a95760405162461bcd60e51b81526004016104eb9061275e565b333014806114c65750604080513360208201526114c6910161050d565b6114e25760405162461bcd60e51b81526004016104eb906127b1565b603882826040516114f4929190612b61565b9081526040519081900360200190205460ff16156115545760405162461bcd60e51b815260206004820152601f60248201527f436f6e666c6963743a20436c61696d20616c7265616479207265766f6b65640060448201526064016104eb565b600160388383604051611568929190612b61565b908152604051908190036020018120805492151560ff19909316929092179091556115969083908390612b61565b604051908190038120907f7f484e37f24c0a92f81dd74afa3027b3ea31f2e9fb6b9fa29fe9865f81ac556990600090a25050565b60065460009060ff6101009091041615156001146115fa5760405162461bcd60e51b81526004016104eb9061275e565b333014806116175750604080513360208201526116179101610798565b6116335760405162461bcd60e51b81526004016104eb90612833565b6001600160a01b03851630146116f25760405163604b4d3760e11b81526001600160a01b0386169063c0969a6e906116759030908b9089908990600401612b71565b602060405180830381865afa158015611692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b69190612baa565b6116f25760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420636c61696d60981b60448201526064016104eb565b604080516001600160a01b038716602082015290810188905260009060600160408051601f1981840301815291815281516020928301206000818152600490935291208981556001810189905590915060030161174f8682612c18565b5060008181526004602081905260409091200161176c8582612c18565b5060008181526004602052604090206005016117888482612c18565b506000818152600460205260409020600201546001600160a01b0387811691161461184157600088815260056020908152604080832080546001810182559084528284200184905583835260049091529081902060020180546001600160a01b0319166001600160a01b0389169081179091559051899083907f46149b18aa084502c3f12bc75e19eda8bda8d102b82cce8474677a6d0d5f43c590611834908c908b908b908b90612cd8565b60405180910390a461188b565b856001600160a01b031688827f3bab293fc00db832d7619a9299914251b8747c036867ec056cbd506f60135b138a8989896040516118829493929190612cd8565b60405180910390a45b979650505050505050565b60065460009060ff6101009091041615156001146118c65760405162461bcd60e51b81526004016104eb9061275e565b600080548082526003602052604090912080546001600160a01b0319166001600160a01b038716178155600181018590556002016119048482612c18565b506000805490806119148361289b565b919050555083856001600160a01b0316827f8afcfabcb00e47a53a8fc3e9f23ff47ee1926194bb1350dd007c50b412a6cee88660405161195491906123ae565b60405180910390a460408051336020820152611970910161050d565b1561198657611980816001610fdd565b506119c0565b6001600160a01b03851630148015906119ae5750604080513360208201526119ae9101611177565b156119c0576119be816001610fdd565b505b949350505050565b6000808585846040516020016119e093929190612d17565b604051602081830303815290604052805190602001209050600081604051602001611a3791907f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b6040516020818303038152906040528051906020012090506000611a5b8683611acb565b604080516001600160a01b038316602082015291925060009101604051602081830303815290604052805190602001209050611a98816003611ddf565b8015611aaa5750611aa887610715565b155b15611abc5760019450505050506119c0565b50600098975050505050505050565b6000806000808551604114611ae65760009350505050610df8565b50505060208301516040840151606085015160001a601b811015611b1257611b0f601b82612d47565b90505b6040805160008082526020820180845288905260ff841692820192909252606081018590526080810184905260019060a0016020604051602081039080840390855afa158015611b66573d6000803e3d6000fd5b5050604051601f19015198975050505050505050565b6001600160a01b038116611bd25760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016104eb565b611bdb81611f36565b50565b600081815260046020819052604082208054600182015460028301546003840180548796879660609687968796919590946001600160a01b03909216939092908101916005909101908390611c32906128dd565b80601f0160208091040260200160405190810160405280929190818152602001828054611c5e906128dd565b8015611cab5780601f10611c8057610100808354040283529160200191611cab565b820191906000526020600020905b815481529060010190602001808311611c8e57829003601f168201915b50505050509250818054611cbe906128dd565b80601f0160208091040260200160405190810160405280929190818152602001828054611cea906128dd565b8015611d375780601f10611d0c57610100808354040283529160200191611d37565b820191906000526020600020905b815481529060010190602001808311611d1a57829003601f168201915b50505050509150808054611d4a906128dd565b80601f0160208091040260200160405190810160405280929190818152602001828054611d76906128dd565b8015611dc35780601f10611d9857610100808354040283529160200191611dc3565b820191906000526020600020905b815481529060010190602001808311611da657829003601f168201915b5050505050905095509550955095509550955091939550919395565b60008281526001602090815260408083208151815460809481028201850190935260608101838152859491938492849190840182828015611e3f57602002820191906000526020600020905b815481526020019060010190808311611e2b575b505050918352505060018201546020820152600290910154604091820152810151909150600003611e74576000915050610df8565b60005b815151811015611ecb57600082600001518281518110611e9957611e99612801565b602002602001015190508060011480611eb157508481145b15611ec25760019350505050610df8565b50600101611e77565b506000949350505050565b60008181526001602090815260409182902080548351818402810184019094528084526060939283018282801561141057602002820191906000526020600020908154815260200190600101908083116113fc5750505050509050919050565b60065460ff161580611f475750303b155b611f935760405162461bcd60e51b815260206004820152601e60248201527f496e697469616c206b65792077617320616c72656164792073657475702e000060448201526064016104eb565b6006805461ffff1916610101179055604080516001600160a01b03831660208201526000910160408051601f198184030181528282528051602091820120600081815260018084528482206002810184905586850190955280865290829052918290529350612002929061213f565b506000818152600160208181526040808420830183905560029091527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0805480840182559084527f7fef4bf8f63cf9dd467136c679c02b5c17fcf6322d9562512bf5eb952cf7cc5301849055519091829184917f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e991a45050565b8280548282559060005260206000209081019282156120d7579160200282015b828111156120d75782518255916020019190600101906120bc565b506120e392915061217f565b5090565b5080546120f3906128dd565b6000825580601f10612103575050565b601f016020900490600052602060002090810190611bdb919061217f565b5080546000825590600052602060002090810190611bdb919061217f565b8280548282559060005260206000209081019282156120d7579160200282015b828111156120d7578251829060ff1690559160200191906001019061215f565b5b808211156120e35760008155600101612180565b6000602082840312156121a657600080fd5b5035919050565b60008151808452602080850194506020840160005b838110156121de578151875295820195908201906001016121c2565b509495945050505050565b6060815260006121fc60608301866121ad565b60208301949094525060400152919050565b60008060006060848603121561222357600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156122795761227961223a565b604052919050565b600067ffffffffffffffff82111561229b5761229b61223a565b50601f01601f191660200190565b60006122bc6122b784612281565b612250565b90508281528383830111156122d057600080fd5b828260208301376000602084830101529392505050565b600082601f8301126122f857600080fd5b61070e838335602085016122a9565b60006020828403121561231957600080fd5b813567ffffffffffffffff81111561233057600080fd5b6119c0848285016122e7565b6000806040838503121561234f57600080fd5b50508035926020909101359150565b60005b83811015612379578181015183820152602001612361565b50506000910152565b6000815180845261239a81602086016020860161235e565b601f01601f19169290920160200192915050565b60208152600061070e6020830184612382565b6001600160a01b0381168114611bdb57600080fd5b600080604083850312156123e957600080fd5b8235915060208301356123fb816123c1565b809150509250929050565b8015158114611bdb57600080fd5b6000806040838503121561242757600080fd5b8235915060208301356123fb81612406565b6020808252825182820181905260009190848201906040850190845b8181101561247157835183529284019291840191600101612455565b50909695505050505050565b6000806020838503121561249057600080fd5b823567ffffffffffffffff808211156124a857600080fd5b818501915085601f8301126124bc57600080fd5b8135818111156124cb57600080fd5b8660208285010111156124dd57600080fd5b60209290920196919550909350505050565b60008060008060008060c0878903121561250857600080fd5b86359550602087013594506040870135612521816123c1565b9350606087013567ffffffffffffffff8082111561253e57600080fd5b61254a8a838b016122e7565b9450608089013591508082111561256057600080fd5b61256c8a838b016122e7565b935060a089013591508082111561258257600080fd5b508701601f8101891361259457600080fd5b6125a3898235602084016122a9565b9150509295509295509295565b6000806000606084860312156125c557600080fd5b83356125d0816123c1565b925060208401359150604084013567ffffffffffffffff8111156125f357600080fd5b6125ff868287016122e7565b9150509250925092565b6000806000806080858703121561261f57600080fd5b843561262a816123c1565b935060208501359250604085013567ffffffffffffffff8082111561264e57600080fd5b61265a888389016122e7565b9350606087013591508082111561267057600080fd5b5061267d878288016122e7565b91505092959194509250565b6000806040838503121561269c57600080fd5b823567ffffffffffffffff8111156126b357600080fd5b6126bf858286016122e7565b95602094909401359450505050565b6000602082840312156126e057600080fd5b813561070e816123c1565b86815285602082015260018060a01b038516604082015260c06060820152600061271860c0830186612382565b828103608084015261272a8186612382565b905082810360a084015261273e8185612382565b9998505050505050505050565b60208152600061070e60208301846121ad565b60208082526033908201527f496e746572616374696e67207769746820746865206c69627261727920636f6e6040820152723a3930b1ba1034b9903337b93134b23232b71760691b606082015260800190565b60208082526030908201527f5065726d697373696f6e733a2053656e64657220646f6573206e6f742068617660408201526f65206d616e6167656d656e74206b657960801b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000825161282981846020870161235e565b9190910192915050565b60208082526032908201527f5065726d697373696f6e733a2053656e64657220646f6573206e6f74206861766040820152716520636c61696d207369676e6572206b657960701b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b6000600182016128ad576128ad612885565b5060010190565b81810381811115610df857610df8612885565b634e487b7160e01b600052603160045260246000fd5b600181811c908216806128f157607f821691505b60208210810361291157634e487b7160e01b600052602260045260246000fd5b50919050565b60008154612924816128dd565b808552602060018381168015612941576001811461295b57612989565b60ff1985168884015283151560051b880183019550612989565b866000528260002060005b858110156129815781548a8201860152908301908401612966565b890184019650505b505050505092915050565b8481526080602082015260006129ad6080830186612917565b82810360408401526129bf8186612917565b9050828103606084015261188b8185612917565b60006129e16122b784612281565b90508281528383830111156129f557600080fd5b61070e83602083018461235e565b600082601f830112612a1457600080fd5b61070e838351602085016129d3565b60008060008060008060c08789031215612a3c57600080fd5b86519550602087015194506040870151612a55816123c1565b606088015190945067ffffffffffffffff80821115612a7357600080fd5b612a7f8a838b01612a03565b94506080890151915080821115612a9557600080fd5b612aa18a838b01612a03565b935060a0890151915080821115612ab757600080fd5b508701601f81018913612ac957600080fd5b6125a3898251602084016129d3565b6000808354612ae6816128dd565b60018281168015612afe5760018114612b1357612b42565b60ff1984168752821515830287019450612b42565b8760005260208060002060005b85811015612b395781548a820152908401908201612b20565b50505082870194505b50929695505050505050565b60208152600061070e6020830184612917565b8183823760009101908152919050565b60018060a01b0385168152836020820152608060408201526000612b986080830185612382565b828103606084015261188b8185612382565b600060208284031215612bbc57600080fd5b815161070e81612406565b601f821115612c13576000816000526020600020601f850160051c81016020861015612bf05750805b601f850160051c820191505b81811015612c0f57828155600101612bfc565b5050505b505050565b815167ffffffffffffffff811115612c3257612c3261223a565b612c4681612c4084546128dd565b84612bc7565b602080601f831160018114612c7b5760008415612c635750858301515b600019600386901b1c1916600185901b178555612c0f565b600085815260208120601f198616915b82811015612caa57888601518255948401946001909101908401612c8b565b5085821015612cc85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b848152608060208201526000612cf16080830186612382565b8281036040840152612d038186612382565b9050828103606084015261188b8185612382565b60018060a01b0384168152826020820152606060408201526000612d3e6060830184612382565b95945050505050565b60ff8181168382160190811115610df857610df861288556fea2646970667358221220d903dc2e345dbbf9f5b85378c3db3792f25689efa58cde9fa42bac7d1ee8ec1464736f6c63430008180033","sourceMap":"126:2471:112:-:0;;;757:34:126;;;-1:-1:-1;;856:34:126;;;279:82:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;330:20;352:5;-1:-1:-1;;;;;1771:34:113;;1763:78;;;;-1:-1:-1;;;1763:78:113;;511:2:165;1763:78:113;;;493:21:165;550:2;530:18;;;523:30;589:33;569:18;;;562:61;640:18;;1763:78:113;;;;;;;;;1857:10;1852:129;;1883:37;1899:20;1883:15;:37::i;:::-;1852:129;;;1951:12;:19;;-1:-1:-1;;1951:19:113;1966:4;1951:19;;;1852:129;1694:293;;279:82:112;126:2471;;20029:458:113;20112:12;;;;20111:13;;:33;;-1:-1:-1;20752:4:113;20860:17;20895:7;20128:16;20103:76;;;;-1:-1:-1;;;20103:76:113;;871:2:165;20103:76:113;;;853:21:165;910:2;890:18;;;883:30;949:32;929:18;;;922:60;999:18;;20103:76:113;669:354:165;20103:76:113;20189:12;:19;;-1:-1:-1;;20218:19:113;;;;;20273:32;;;-1:-1:-1;;;;;1192:32:165;;20273::113;;;1174:51:165;-1:-1:-1;;1147:18:165;20273:32:113;;;-1:-1:-1;;20273:32:113;;;;;;;;;20263:43;;20273:32;20263:43;;;;20316:11;;;;:5;:11;;;;;;:15;;;:22;;;20348:26;;;;;;;;;:11;;;;;;;;20263:43;-1:-1:-1;20348:26:113;;20273:32;20348:26;:::i;:::-;-1:-1:-1;20384:11:113;;;;20406:1;20384:11;;;;;;;;:19;;:23;;;20417:14;:17;;;;:28;;;;;;;;;;;;;;;20460:20;20406:1;;;;20390:4;;20460:20;;;20093:394;20029:458;:::o;126:2471:112:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;126:2471:112;;;-1:-1:-1;126:2471:112;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:290:165;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:165;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:165:o;1028:203::-;126:2471:112;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061011f5760003560e01c80639f7f9edd116100a0578063c4d66de811610064578063c4d66de814610368578063c9100bcb14610388578063d202158d146103ba578063d2345249146103da578063fb307b341461041557600080fd5b80639f7f9edd146102ad578063b1a34e0d146102cf578063b61d27f6146102fd578063c0969a6e14610310578063c3b129e31461033057600080fd5b806354fd4d50116100e757806354fd4d50146101ec57806373c3370814610220578063747442d31461024057806380e9e9e1146102605780639010f7261461028d57600080fd5b806312aaac70146101245780631d3812401461015c5780632646b2641461018c5780634eee424a146101ac57806353d413c5146101cc575b600080fd5b34801561013057600080fd5b5061014461013f366004612194565b610442565b604051610153939291906121e9565b60405180910390f35b34801561016857600080fd5b5061017c61017736600461220e565b6104bb565b6040519015158152602001610153565b34801561019857600080fd5b5061017c6101a7366004612307565b610715565b3480156101b857600080fd5b5061017c6101c7366004612194565b61074f565b3480156101d857600080fd5b5061017c6101e736600461233c565b610a0e565b3480156101f857600080fd5b506040805180820182526005815264322e322e3160d81b6020820152905161015391906123ae565b34801561022c57600080fd5b5061017c61023b3660046123d6565b610dfe565b34801561024c57600080fd5b5061017c61025b366004612414565b610fdd565b34801561026c57600080fd5b5061028061027b366004612194565b6113ba565b6040516101539190612439565b34801561029957600080fd5b506102806102a8366004612194565b61141c565b3480156102b957600080fd5b506102cd6102c836600461247d565b61147c565b005b3480156102db57600080fd5b506102ef6102ea3660046124ef565b6115ca565b604051908152602001610153565b6102ef61030b3660046125b0565b611896565b34801561031c57600080fd5b5061017c61032b366004612609565b6119c8565b34801561033c57600080fd5b5061035061034b366004612689565b611acb565b6040516001600160a01b039091168152602001610153565b34801561037457600080fd5b506102cd6103833660046126ce565b611b7c565b34801561039457600080fd5b506103a86103a3366004612194565b611bde565b604051610153969594939291906126eb565b3480156103c657600080fd5b5061017c6103d536600461233c565b611ddf565b3480156103e657600080fd5b5061017c6103f5366004612307565b805160208183018101805160388252928201919093012091525460ff1681565b34801561042157600080fd5b50610435610430366004612194565b611ed6565b604051610153919061274b565b6000818152600160208181526040808420928301546002840154845483518186028101860190945280845260609695869590949185918301828280156104a757602002820191906000526020600020905b815481526020019060010190808311610493575b505050505092509250925092509193909250565b60065460009060ff6101009091041615156001146104f45760405162461bcd60e51b81526004016104eb9061275e565b60405180910390fd5b3330148061052a57506040805133602082015261052a91015b604051602081830303815290604052805190602001206001611ddf565b6105465760405162461bcd60e51b81526004016104eb906127b1565b60008481526001602052604090206002015484900361066f576000848152600160209081526040808320805482518185028101850190935280835291929091908301828280156105b557602002820191906000526020600020905b8154815260200190600101908083116105a1575b5050505050905060005b81518110156106485760008282815181106105dc576105dc612801565b6020026020010151905085810361063f5760405162461bcd60e51b815260206004820152602160248201527f436f6e666c6963743a204b657920616c72656164792068617320707572706f736044820152606560f81b60648201526084016104eb565b506001016105bf565b505060008481526001602081815260408320805492830181558352909120018390556106bb565b600084815260016020818152604080842060028101899055815180840190925287825293889052908290526106a4929161209c565b506000848152600160208190526040909120018290555b60008381526002602090815260408083208054600181018255908452918320909101869055518391859187917f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e991a45060015b9392505050565b60006038826040516107279190612817565b9081526040519081900360200190205460ff161561074757506001919050565b506000919050565b60065460009060ff61010090910416151560011461077f5760405162461bcd60e51b81526004016104eb9061275e565b333014806107b55750604080513360208201526107b591015b604051602081830303815290604052805190602001206003611ddf565b6107d15760405162461bcd60e51b81526004016104eb90612833565b600082815260046020526040812054908190036108445760405162461bcd60e51b815260206004820152602b60248201527f4e6f6e4578697374696e673a205468657265206973206e6f20636c61696d207760448201526a1a5d1a081d1a1a5cc8125160aa1b60648201526084016104eb565b6000818152600560205260408120545b600083815260056020526040902080548691908490811061087757610877612801565b90600052602060002001541461089c57816108918161289b565b925050808210610854575b60008381526005602052604090206108b56001836128b4565b815481106108c5576108c5612801565b90600052602060002001546005600085815260200190815260200160002083815481106108f4576108f4612801565b906000526020600020018190555060056000848152602001908152602001600020805480610924576109246128c7565b6000828152602080822083016000199081018390559092019092558682526004908190526040918290206002810154600182015493516001600160a01b039091169387938a937f3cf57863a89432c61c4a27073c6ee39e8a764bff5a05aebfbcdcdc80b2e6130a936109a59392600383019290810191600590910190612994565b60405180910390a46000858152600460205260408120818155600181018290556002810180546001600160a01b0319169055906109e560038301826120e7565b6109f36004830160006120e7565b610a016005830160006120e7565b5060019695505050505050565b60065460009060ff610100909104161515600114610a3e5760405162461bcd60e51b81526004016104eb9061275e565b33301480610a5b575060408051336020820152610a5b910161050d565b610a775760405162461bcd60e51b81526004016104eb906127b1565b6000838152600160205260409020600201548314610ae15760405162461bcd60e51b815260206004820152602160248201527f4e6f6e4578697374696e673a204b65792069736e2774207265676973746572656044820152601960fa1b60648201526084016104eb565b600083815260016020908152604080832080548251818502810185019093528083529192909190830182828015610b3757602002820191906000526020600020905b815481526020019060010190808311610b23575b5050505050905060005b83828281518110610b5457610b54612801565b602002602001015114610bd65780610b6b8161289b565b91505081518103610bd15760405162461bcd60e51b815260206004820152602a60248201527f4e6f6e4578697374696e673a204b657920646f65736e27742068617665207375604482015269636820707572706f736560b01b60648201526084016104eb565b610b41565b8160018351610be591906128b4565b81518110610bf557610bf5612801565b6020026020010151828281518110610c0f57610c0f612801565b602090810291909101810191909152600086815260018252604090208351610c399285019061209c565b506000858152600160205260409020805480610c5757610c576128c7565b6000828152602080822083016000199081018390559092019092558582526002905260408120545b6000868152600260205260409020805488919084908110610ca257610ca2612801565b906000526020600020015414610cc75781610cbc8161289b565b925050808210610c7f575b6000868152600260205260409020610ce06001836128b4565b81548110610cf057610cf0612801565b9060005260206000200154600260008881526020019081526020016000208381548110610d1f57610d1f612801565b906000526020600020018190555060026000878152602001908152602001600020805480610d4f57610d4f6128c7565b6001900381819060005260206000200160009055905560006001600089815260200190815260200160002060010154905060018551610d8e91906128b4565b600003610dbf57600088815260016020526040812090610dae8282612121565b506000600182018190556002909101555b8087897f585a4aef50f8267a92b32412b331b20f7f8b96f2245b253b9cc50dcc621d339760405160405180910390a46001955050505050505b92915050565b60065460009060ff610100909104161515600114610e2e5760405162461bcd60e51b81526004016104eb9061275e565b33301480610e4b575060408051336020820152610e4b910161050d565b610e675760405162461bcd60e51b81526004016104eb906127b1565b6000806000606080866001600160a01b031663c9100bcb896040518263ffffffff1660e01b8152600401610e9d91815260200190565b600060405180830381865afa158015610eba573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ee29190810190612a23565b5060405194995092975090955093509150603890610f01908490612817565b9081526040519081900360200190205460ff1615610f615760405162461bcd60e51b815260206004820152601f60248201527f436f6e666c6963743a20436c61696d20616c7265616479207265766f6b65640060448201526064016104eb565b6001603883604051610f739190612817565b908152604051908190036020018120805492151560ff1990931692909217909155610f9f908390612817565b604051908190038120907f7f484e37f24c0a92f81dd74afa3027b3ea31f2e9fb6b9fa29fe9865f81ac556990600090a2506001979650505050505050565b60065460009060ff61010090910416151560011461100d5760405162461bcd60e51b81526004016104eb9061275e565b600054831061106e5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420617070726f76652061206e6f6e2d6578697374696e6720657860448201526632b1baba34b7b760c91b60648201526084016104eb565b60008381526003602081905260409091200154610100900460ff16156110d65760405162461bcd60e51b815260206004820152601860248201527f5265717565737420616c7265616479206578656375746564000000000000000060448201526064016104eb565b600083815260036020526040902054306001600160a01b0390911603611167576040805133602082015261110a910161050d565b6111625760405162461bcd60e51b815260206004820152602360248201527f53656e64657220646f6573206e6f742068617665206d616e6167656d656e74206044820152626b657960e81b60648201526084016104eb565b6111e0565b6040805133602082015261119491015b604051602081830303815290604052805190602001206002611ddf565b6111e05760405162461bcd60e51b815260206004820152601f60248201527f53656e64657220646f6573206e6f74206861766520616374696f6e206b65790060448201526064016104eb565b827fb3932da477fe5d6c8ff2eafef050c0f3a1af18fc07121001482600f36f3715d883604051611214911515815260200190565b60405180910390a281151560010361139c57600083815260036020819052604091829020908101805460ff1916600190811790915581549082015492516001600160a01b03909116929161126d91600290910190612ad8565b60006040518083038185875af1925050503d80600081146112aa576040519150601f19603f3d011682016040523d82523d6000602084013e6112af565b606091505b5090915050801561133457600083815260036020819052604091829020908101805461ff00191661010017905560018101548154925190926001600160a01b03169186917f1f920dbda597d7bf95035464170fa58d0a4b57f13a1c315ace6793b9f63688b89161132491600290910190612b4e565b60405180910390a4506001610df8565b6000838152600360205260409081902060018101548154925190926001600160a01b03169186917fe10c49d9f7c71da23262367013434763cfdb2332267641728d25cd712c5c6a689161138c91600290910190612b4e565b60405180910390a4506000610df8565b50506000908152600360208190526040822001805460ff1916905590565b60008181526005602090815260409182902080548351818402810184019094528084526060939283018282801561141057602002820191906000526020600020905b8154815260200190600101908083116113fc575b50505050509050919050565b60008181526002602090815260409182902080548351818402810184019094528084526060939283018282801561141057602002820191906000526020600020908154815260200190600101908083116113fc5750505050509050919050565b60065460ff6101009091041615156001146114a95760405162461bcd60e51b81526004016104eb9061275e565b333014806114c65750604080513360208201526114c6910161050d565b6114e25760405162461bcd60e51b81526004016104eb906127b1565b603882826040516114f4929190612b61565b9081526040519081900360200190205460ff16156115545760405162461bcd60e51b815260206004820152601f60248201527f436f6e666c6963743a20436c61696d20616c7265616479207265766f6b65640060448201526064016104eb565b600160388383604051611568929190612b61565b908152604051908190036020018120805492151560ff19909316929092179091556115969083908390612b61565b604051908190038120907f7f484e37f24c0a92f81dd74afa3027b3ea31f2e9fb6b9fa29fe9865f81ac556990600090a25050565b60065460009060ff6101009091041615156001146115fa5760405162461bcd60e51b81526004016104eb9061275e565b333014806116175750604080513360208201526116179101610798565b6116335760405162461bcd60e51b81526004016104eb90612833565b6001600160a01b03851630146116f25760405163604b4d3760e11b81526001600160a01b0386169063c0969a6e906116759030908b9089908990600401612b71565b602060405180830381865afa158015611692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b69190612baa565b6116f25760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420636c61696d60981b60448201526064016104eb565b604080516001600160a01b038716602082015290810188905260009060600160408051601f1981840301815291815281516020928301206000818152600490935291208981556001810189905590915060030161174f8682612c18565b5060008181526004602081905260409091200161176c8582612c18565b5060008181526004602052604090206005016117888482612c18565b506000818152600460205260409020600201546001600160a01b0387811691161461184157600088815260056020908152604080832080546001810182559084528284200184905583835260049091529081902060020180546001600160a01b0319166001600160a01b0389169081179091559051899083907f46149b18aa084502c3f12bc75e19eda8bda8d102b82cce8474677a6d0d5f43c590611834908c908b908b908b90612cd8565b60405180910390a461188b565b856001600160a01b031688827f3bab293fc00db832d7619a9299914251b8747c036867ec056cbd506f60135b138a8989896040516118829493929190612cd8565b60405180910390a45b979650505050505050565b60065460009060ff6101009091041615156001146118c65760405162461bcd60e51b81526004016104eb9061275e565b600080548082526003602052604090912080546001600160a01b0319166001600160a01b038716178155600181018590556002016119048482612c18565b506000805490806119148361289b565b919050555083856001600160a01b0316827f8afcfabcb00e47a53a8fc3e9f23ff47ee1926194bb1350dd007c50b412a6cee88660405161195491906123ae565b60405180910390a460408051336020820152611970910161050d565b1561198657611980816001610fdd565b506119c0565b6001600160a01b03851630148015906119ae5750604080513360208201526119ae9101611177565b156119c0576119be816001610fdd565b505b949350505050565b6000808585846040516020016119e093929190612d17565b604051602081830303815290604052805190602001209050600081604051602001611a3791907f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b6040516020818303038152906040528051906020012090506000611a5b8683611acb565b604080516001600160a01b038316602082015291925060009101604051602081830303815290604052805190602001209050611a98816003611ddf565b8015611aaa5750611aa887610715565b155b15611abc5760019450505050506119c0565b50600098975050505050505050565b6000806000808551604114611ae65760009350505050610df8565b50505060208301516040840151606085015160001a601b811015611b1257611b0f601b82612d47565b90505b6040805160008082526020820180845288905260ff841692820192909252606081018590526080810184905260019060a0016020604051602081039080840390855afa158015611b66573d6000803e3d6000fd5b5050604051601f19015198975050505050505050565b6001600160a01b038116611bd25760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016104eb565b611bdb81611f36565b50565b600081815260046020819052604082208054600182015460028301546003840180548796879660609687968796919590946001600160a01b03909216939092908101916005909101908390611c32906128dd565b80601f0160208091040260200160405190810160405280929190818152602001828054611c5e906128dd565b8015611cab5780601f10611c8057610100808354040283529160200191611cab565b820191906000526020600020905b815481529060010190602001808311611c8e57829003601f168201915b50505050509250818054611cbe906128dd565b80601f0160208091040260200160405190810160405280929190818152602001828054611cea906128dd565b8015611d375780601f10611d0c57610100808354040283529160200191611d37565b820191906000526020600020905b815481529060010190602001808311611d1a57829003601f168201915b50505050509150808054611d4a906128dd565b80601f0160208091040260200160405190810160405280929190818152602001828054611d76906128dd565b8015611dc35780601f10611d9857610100808354040283529160200191611dc3565b820191906000526020600020905b815481529060010190602001808311611da657829003601f168201915b5050505050905095509550955095509550955091939550919395565b60008281526001602090815260408083208151815460809481028201850190935260608101838152859491938492849190840182828015611e3f57602002820191906000526020600020905b815481526020019060010190808311611e2b575b505050918352505060018201546020820152600290910154604091820152810151909150600003611e74576000915050610df8565b60005b815151811015611ecb57600082600001518281518110611e9957611e99612801565b602002602001015190508060011480611eb157508481145b15611ec25760019350505050610df8565b50600101611e77565b506000949350505050565b60008181526001602090815260409182902080548351818402810184019094528084526060939283018282801561141057602002820191906000526020600020908154815260200190600101908083116113fc5750505050509050919050565b60065460ff161580611f475750303b155b611f935760405162461bcd60e51b815260206004820152601e60248201527f496e697469616c206b65792077617320616c72656164792073657475702e000060448201526064016104eb565b6006805461ffff1916610101179055604080516001600160a01b03831660208201526000910160408051601f198184030181528282528051602091820120600081815260018084528482206002810184905586850190955280865290829052918290529350612002929061213f565b506000818152600160208181526040808420830183905560029091527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0805480840182559084527f7fef4bf8f63cf9dd467136c679c02b5c17fcf6322d9562512bf5eb952cf7cc5301849055519091829184917f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e991a45050565b8280548282559060005260206000209081019282156120d7579160200282015b828111156120d75782518255916020019190600101906120bc565b506120e392915061217f565b5090565b5080546120f3906128dd565b6000825580601f10612103575050565b601f016020900490600052602060002090810190611bdb919061217f565b5080546000825590600052602060002090810190611bdb919061217f565b8280548282559060005260206000209081019282156120d7579160200282015b828111156120d7578251829060ff1690559160200191906001019061215f565b5b808211156120e35760008155600101612180565b6000602082840312156121a657600080fd5b5035919050565b60008151808452602080850194506020840160005b838110156121de578151875295820195908201906001016121c2565b509495945050505050565b6060815260006121fc60608301866121ad565b60208301949094525060400152919050565b60008060006060848603121561222357600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156122795761227961223a565b604052919050565b600067ffffffffffffffff82111561229b5761229b61223a565b50601f01601f191660200190565b60006122bc6122b784612281565b612250565b90508281528383830111156122d057600080fd5b828260208301376000602084830101529392505050565b600082601f8301126122f857600080fd5b61070e838335602085016122a9565b60006020828403121561231957600080fd5b813567ffffffffffffffff81111561233057600080fd5b6119c0848285016122e7565b6000806040838503121561234f57600080fd5b50508035926020909101359150565b60005b83811015612379578181015183820152602001612361565b50506000910152565b6000815180845261239a81602086016020860161235e565b601f01601f19169290920160200192915050565b60208152600061070e6020830184612382565b6001600160a01b0381168114611bdb57600080fd5b600080604083850312156123e957600080fd5b8235915060208301356123fb816123c1565b809150509250929050565b8015158114611bdb57600080fd5b6000806040838503121561242757600080fd5b8235915060208301356123fb81612406565b6020808252825182820181905260009190848201906040850190845b8181101561247157835183529284019291840191600101612455565b50909695505050505050565b6000806020838503121561249057600080fd5b823567ffffffffffffffff808211156124a857600080fd5b818501915085601f8301126124bc57600080fd5b8135818111156124cb57600080fd5b8660208285010111156124dd57600080fd5b60209290920196919550909350505050565b60008060008060008060c0878903121561250857600080fd5b86359550602087013594506040870135612521816123c1565b9350606087013567ffffffffffffffff8082111561253e57600080fd5b61254a8a838b016122e7565b9450608089013591508082111561256057600080fd5b61256c8a838b016122e7565b935060a089013591508082111561258257600080fd5b508701601f8101891361259457600080fd5b6125a3898235602084016122a9565b9150509295509295509295565b6000806000606084860312156125c557600080fd5b83356125d0816123c1565b925060208401359150604084013567ffffffffffffffff8111156125f357600080fd5b6125ff868287016122e7565b9150509250925092565b6000806000806080858703121561261f57600080fd5b843561262a816123c1565b935060208501359250604085013567ffffffffffffffff8082111561264e57600080fd5b61265a888389016122e7565b9350606087013591508082111561267057600080fd5b5061267d878288016122e7565b91505092959194509250565b6000806040838503121561269c57600080fd5b823567ffffffffffffffff8111156126b357600080fd5b6126bf858286016122e7565b95602094909401359450505050565b6000602082840312156126e057600080fd5b813561070e816123c1565b86815285602082015260018060a01b038516604082015260c06060820152600061271860c0830186612382565b828103608084015261272a8186612382565b905082810360a084015261273e8185612382565b9998505050505050505050565b60208152600061070e60208301846121ad565b60208082526033908201527f496e746572616374696e67207769746820746865206c69627261727920636f6e6040820152723a3930b1ba1034b9903337b93134b23232b71760691b606082015260800190565b60208082526030908201527f5065726d697373696f6e733a2053656e64657220646f6573206e6f742068617660408201526f65206d616e6167656d656e74206b657960801b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000825161282981846020870161235e565b9190910192915050565b60208082526032908201527f5065726d697373696f6e733a2053656e64657220646f6573206e6f74206861766040820152716520636c61696d207369676e6572206b657960701b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b6000600182016128ad576128ad612885565b5060010190565b81810381811115610df857610df8612885565b634e487b7160e01b600052603160045260246000fd5b600181811c908216806128f157607f821691505b60208210810361291157634e487b7160e01b600052602260045260246000fd5b50919050565b60008154612924816128dd565b808552602060018381168015612941576001811461295b57612989565b60ff1985168884015283151560051b880183019550612989565b866000528260002060005b858110156129815781548a8201860152908301908401612966565b890184019650505b505050505092915050565b8481526080602082015260006129ad6080830186612917565b82810360408401526129bf8186612917565b9050828103606084015261188b8185612917565b60006129e16122b784612281565b90508281528383830111156129f557600080fd5b61070e83602083018461235e565b600082601f830112612a1457600080fd5b61070e838351602085016129d3565b60008060008060008060c08789031215612a3c57600080fd5b86519550602087015194506040870151612a55816123c1565b606088015190945067ffffffffffffffff80821115612a7357600080fd5b612a7f8a838b01612a03565b94506080890151915080821115612a9557600080fd5b612aa18a838b01612a03565b935060a0890151915080821115612ab757600080fd5b508701601f81018913612ac957600080fd5b6125a3898251602084016129d3565b6000808354612ae6816128dd565b60018281168015612afe5760018114612b1357612b42565b60ff1984168752821515830287019450612b42565b8760005260208060002060005b85811015612b395781548a820152908401908201612b20565b50505082870194505b50929695505050505050565b60208152600061070e6020830184612917565b8183823760009101908152919050565b60018060a01b0385168152836020820152608060408201526000612b986080830185612382565b828103606084015261188b8185612382565b600060208284031215612bbc57600080fd5b815161070e81612406565b601f821115612c13576000816000526020600020601f850160051c81016020861015612bf05750805b601f850160051c820191505b81811015612c0f57828155600101612bfc565b5050505b505050565b815167ffffffffffffffff811115612c3257612c3261223a565b612c4681612c4084546128dd565b84612bc7565b602080601f831160018114612c7b5760008415612c635750858301515b600019600386901b1c1916600185901b178555612c0f565b600085815260208120601f198616915b82811015612caa57888601518255948401946001909101908401612c8b565b5085821015612cc85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b848152608060208201526000612cf16080830186612382565b8281036040840152612d038186612382565b9050828103606084015261188b8185612382565b60018060a01b0384168152826020820152606060408201526000612d3e6060830184612382565b95945050505050565b60ff8181168382160190811115610df857610df861288556fea2646970667358221220d903dc2e345dbbf9f5b85378c3db3792f25689efa58cde9fa42bac7d1ee8ec1464736f6c63430008180033","sourceMap":"126:2471:112:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4274:222:113;;;;;;;;;;-1:-1:-1;4274:222:113;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;7066:880;;;;;;;;;;-1:-1:-1;7066:880:113;;;;;:::i;:::-;;:::i;:::-;;;1537:14:165;;1530:22;1512:41;;1500:2;1485:18;7066:880:113;1372:187:165;2416:179:112;;;;;;;;;;-1:-1:-1;2416:179:112;;;;;:::i;:::-;;:::i;14084:1020:113:-;;;;;;;;;;-1:-1:-1;14084:1020:113;;;;;:::i;:::-;;:::i;10047:1288::-;;;;;;;;;;-1:-1:-1;10047:1288:113;;;;;:::i;:::-;;:::i;253:113:129:-;;;;;;;;;;-1:-1:-1;345:14:129;;;;;;;;;;;-1:-1:-1;;;345:14:129;;;;253:113;;;;345:14;253:113;:::i;775:519:112:-;;;;;;;;;;-1:-1:-1;775:519:112;;;;;:::i;:::-;;:::i;8385:1560:113:-;;;;;;;;;;-1:-1:-1;8385:1560:113;;;;;:::i;:::-;;:::i;5825:168::-;;;;;;;;;;-1:-1:-1;5825:168:113;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5291:166::-;;;;;;;;;;-1:-1:-1;5291:166:113;;;;;:::i;:::-;;:::i;439:269:112:-;;;;;;;;;;-1:-1:-1;439:269:112;;;;;:::i;:::-;;:::i;:::-;;12477:1135:113;;;;;;;;;;-1:-1:-1;12477:1135:113;;;;;:::i;:::-;;:::i;:::-;;;7670:25:165;;;7658:2;7643:18;12477:1135:113;7524:177:165;3064:747:113;;;;;;:::i;:::-;;:::i;1362:984:112:-;;;;;;;;;;-1:-1:-1;1362:984:112;;;;;:::i;:::-;;:::i;19050:719:113:-;;;;;;;;;;-1:-1:-1;19050:719:113;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;9740:32:165;;;9722:51;;9710:2;9695:18;19050:719:113;9576:203:165;2239:201:113;;;;;;;;;;-1:-1:-1;2239:201:113;;;;;:::i;:::-;;:::i;16194:483::-;;;;;;;;;;-1:-1:-1;16194:483:113;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;16825:463::-;;;;;;;;;;-1:-1:-1;16825:463:113;;;;;:::i;:::-;;:::i;179:44:112:-;;;;;;;;;;-1:-1:-1;179:44:112;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4761:163:113;;;;;;;;;;-1:-1:-1;4761:163:113;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4274:222::-;4378:15;4430:11;;;:5;:11;;;;;;;;4452:19;;;;4473:15;;;;4422:67;;;;;;;;;;;;;;;;;4351:25;;4378:15;;;4430:11;;4422:67;4430:11;;4422:67;;4430:11;4422:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4274:222;;;;;:::o;7066:880::-;700:12;;7200;;700;;;;;;:20;;:12;:20;692:84;;;;-1:-1:-1;;;692:84:113;;;;;;;:::i;:::-;;;;;;;;;936:10:::1;958:4;936:27;::::0;:82:::1;;-1:-1:-1::0;991:22:113::1;::::0;;1002:10:::1;991:22;::::0;::::1;9722:51:165::0;967::113::1;::::0;9695:18:165;991:22:113::1;;;;;;;;;;;;;981:33;;;;;;1016:1;967:13;:51::i;:::-;928:152;;;;-1:-1:-1::0;;;928:152:113::1;;;;;;;:::i;:::-;7232:11:::2;::::0;;;:5:::2;:11;::::0;;;;:15:::2;;::::0;:23;;;7228:597:::2;;7271:26;7300:11:::0;;;:5:::2;:11;::::0;;;;;;;7271:49;;;;;;::::2;::::0;;;;;;;;;;;;7300:11;;7271:49;;::::2;7300:11:::0;7271:49;;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7339:20;7334:290;7383:9;:16;7365:15;:34;7334:290;;;7438:15;7456:9;7466:15;7456:26;;;;;;;;:::i;:::-;;;;;;;7438:44;;7516:8;7505:7;:19:::0;7501:109:::2;;7548:43;::::0;-1:-1:-1;;;7548:43:113;;12263:2:165;7548:43:113::2;::::0;::::2;12245:21:165::0;12302:2;12282:18;;;12275:30;12341:34;12321:18;;;12314:62;-1:-1:-1;;;12392:18:165;;;12385:31;12433:19;;7548:43:113::2;12061:397:165::0;7501:109:113::2;-1:-1:-1::0;7401:17:113::2;;7334:290;;;-1:-1:-1::0;;7638:11:113::2;::::0;;;:5:::2;:11;::::0;;;;;;:35;;;;::::2;::::0;;;;;;;::::2;::::0;;;7228:597:::2;;;7704:11;::::0;;;:5:::2;:11;::::0;;;;;;;:15:::2;::::0;::::2;:22:::0;;;7740:33;;;;::::2;::::0;;;;;;:11;;;;;;;;:33:::2;::::0;7704:11;7740:33:::2;:::i;:::-;-1:-1:-1::0;7787:11:113::2;::::0;;;:5:::2;:11;::::0;;;;;;;:19:::2;:27:::0;;;7228:597:::2;7835:24;::::0;;;:14:::2;:24;::::0;;;;;;;:35;;::::2;::::0;::::2;::::0;;;;;;;;;;::::2;::::0;;;7886:31;7911:5;;7850:8;;7865:4;;7886:31:::2;::::0;::::2;-1:-1:-1::0;7935:4:113::2;1090:1;7066:880:::0;;;;;:::o;2416:179:112:-;2489:4;2509:13;2523:4;2509:19;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;2505:61;;;-1:-1:-1;2551:4:112;;2416:179;-1:-1:-1;2416:179:112:o;2505:61::-;-1:-1:-1;2583:5:112;;2416:179;-1:-1:-1;2416:179:112:o;14084:1020:113:-;700:12;;14199;;700;;;;;;:20;;:12;:20;692:84;;;;-1:-1:-1;;;692:84:113;;;;;;;:::i;:::-;1236:10:::1;1258:4;1236:27;::::0;:82:::1;;-1:-1:-1::0;1291:22:113::1;::::0;;1302:10:::1;1291:22;::::0;::::1;9722:51:165::0;1267::113::1;::::0;9695:18:165;1291:22:113::1;;;;;;;;;;;;;1281:33;;;;;;1316:1;1267:13;:51::i;:::-;1228:154;;;;-1:-1:-1::0;;;1228:154:113::1;;;;;;;:::i;:::-;14223:14:::2;14240:17:::0;;;:7:::2;:17;::::0;;;;:23;;14277:11;;;14273:95:::2;;14304:53;::::0;-1:-1:-1;;;14304:53:113;;13376:2:165;14304:53:113::2;::::0;::::2;13358:21:165::0;13415:2;13395:18;;;13388:30;13454:34;13434:18;;;13427:62;-1:-1:-1;;;13505:18:165;;;13498:41;13556:19;;14304:53:113::2;13174:407:165::0;14273:95:113::2;14378:15;14426:22:::0;;;:14:::2;:22;::::0;;;;:29;14465:175:::2;14472:22;::::0;;;:14:::2;:22;::::0;;;;:34;;14510:8;;14472:22;14495:10;;14472:34;::::2;;;;;:::i;:::-;;;;;;;;;:46;14465:175;;14534:12:::0;::::2;::::0;::::2;:::i;:::-;;;;14579:11;14565:10;:25;14465:175;14561:69;14465:175;14695:22;::::0;;;:14:::2;:22;::::0;;;;14718:15:::2;14732:1;14718:11:::0;:15:::2;:::i;:::-;14695:39;;;;;;;;:::i;:::-;;;;;;;;;14650:14;:22;14665:6;14650:22;;;;;;;;;;;14673:10;14650:34;;;;;;;;:::i;:::-;;;;;;;;:84;;;;14744:14;:22;14759:6;14744:22;;;;;;;;;;;:28;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;-1:-1:-1;;14744:28:113;;;;;;;;;;;;14894:17;;;:7:::2;:17:::0;;;;;;;;;:24:::2;::::0;::::2;::::0;14744:28:::2;14856:24:::0;::::2;::::0;14788:252;;-1:-1:-1;;;;;14894:24:113;;::::2;::::0;14836:6;;14902:8;;14788:252:::2;::::0;::::2;::::0;14856:24;14932:27:::2;::::0;::::2;::::0;14973:22;;::::2;::::0;15009:21:::2;::::0;;::::2;::::0;14788:252:::2;:::i;:::-;;;;;;;;15058:17;::::0;;;:7:::2;:17;::::0;;;;15051:24;;;::::2;::::0;::::2;::::0;;;::::2;::::0;::::2;::::0;;-1:-1:-1;;;;;;15051:24:113::2;::::0;;15058:17;15051:24:::2;;::::0;::::2;15058:17:::0;15051:24:::2;:::i;:::-;;;::::0;::::2;;;:::i;:::-;;;::::0;::::2;;;:::i;:::-;-1:-1:-1::0;15093:4:113::2;::::0;14084:1020;-1:-1:-1;;;;;;14084:1020:113:o;10047:1288::-;700:12;;10169;;700;;;;;;:20;;:12;:20;692:84;;;;-1:-1:-1;;;692:84:113;;;;;;;:::i;:::-;936:10:::1;958:4;936:27;::::0;:82:::1;;-1:-1:-1::0;991:22:113::1;::::0;;1002:10:::1;991:22;::::0;::::1;9722:51:165::0;967::113::1;::::0;9695:18:165;991:22:113::1;9576:203:165::0;967:51:113::1;928:152;;;;-1:-1:-1::0;;;928:152:113::1;;;;;;;:::i;:::-;10205:11:::2;::::0;;;:5:::2;:11;::::0;;;;:15:::2;;::::0;:23;::::2;10197:69;;;::::0;-1:-1:-1;;;10197:69:113;;16242:2:165;10197:69:113::2;::::0;::::2;16224:21:165::0;16281:2;16261:18;;;16254:30;16320:34;16300:18;;;16293:62;-1:-1:-1;;;16371:18:165;;;16364:31;16412:19;;10197:69:113::2;16040:397:165::0;10197:69:113::2;10276:26;10305:11:::0;;;:5:::2;:11;::::0;;;;;;;10276:49;;;;;;::::2;::::0;;;;;;;;;;;;10305:11;;10276:49;;::::2;10305:11:::0;10276:49;;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10336:17;10367:220;10401:8;10374:9;10384:12;10374:23;;;;;;;;:::i;:::-;;;;;;;:35;10367:220;;10425:14:::0;::::2;::::0;::::2;:::i;:::-;;;;10474:9;:16;10458:12;:32:::0;10454:123:::2;;10510:52;::::0;-1:-1:-1;;;10510:52:113;;16644:2:165;10510:52:113::2;::::0;::::2;16626:21:165::0;16683:2;16663:18;;;16656:30;16722:34;16702:18;;;16695:62;-1:-1:-1;;;16773:18:165;;;16766:40;16823:19;;10510:52:113::2;16442:406:165::0;10454:123:113::2;10367:220;;;10623:9;10652:1;10633:9;:16;:20;;;;:::i;:::-;10623:31;;;;;;;;:::i;:::-;;;;;;;10597:9;10607:12;10597:23;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;:57;;;;10664:11:::2;::::0;;;:5:::2;:11:::0;;;;;:32;;::::2;::::0;;::::2;::::0;::::2;:::i;:::-;-1:-1:-1::0;10706:11:113::2;::::0;;;:5:::2;:11;::::0;;;;:26;;;::::2;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;-1:-1:-1;;10706:26:113;;;;;;;;;;;;10789:24;;;:14:::2;:24:::0;;;;;:31;10831:167:::2;10838:24;::::0;;;:14:::2;:24;::::0;;;;:34;;10876:4;;10838:24;10863:8;;10838:34;::::2;;;;;:::i;:::-;;;;;;;;;:42;10831:167;;10896:10:::0;::::2;::::0;::::2;:::i;:::-;;;;10937:11;10925:8;:23;10831:167;10921:67;10831:167;11045:24;::::0;;;:14:::2;:24;::::0;;;;11070:15:::2;11084:1;11070:11:::0;:15:::2;:::i;:::-;11045:41;;;;;;;;:::i;:::-;;;;;;;;;11008:14;:24;11023:8;11008:24;;;;;;;;;;;11033:8;11008:34;;;;;;;;:::i;:::-;;;;;;;;:78;;;;11096:14;:24;11111:8;11096:24;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;11137:12;11152:5;:11;11158:4;11152:11;;;;;;;;;;;:19;;;11137:34;;11205:1;11186:9;:16;:20;;;;:::i;:::-;11210:1;11186:25:::0;11182:74:::2;;11234:11;::::0;;;:5:::2;:11;::::0;;;;;11227:18:::2;11234:11:::0;;11227:18:::2;:::i;:::-;-1:-1:-1::0;11227:18:113::2;;::::0;::::2;::::0;;;::::2;::::0;;::::2;::::0;11182:74:::2;11298:7;11288:8;11282:4;11271:35;;;;;;;;;;11324:4;11317:11;;;;;;;1090:1;10047:1288:::0;;;;:::o;775:519:112:-;700:12:113;;885:4:112;;700:12:113;;;;;;:20;;:12;:20;692:84;;;;-1:-1:-1;;;692:84:113;;;;;;;:::i;:::-;936:10:::1;958:4;936:27;::::0;:82:::1;;-1:-1:-1::0;991:22:113::1;::::0;;1002:10:::1;991:22;::::0;::::1;9722:51:165::0;967::113::1;::::0;9695:18:165;991:22:113::1;9576:203:165::0;967:51:113::1;928:152;;;;-1:-1:-1::0;;;928:152:113::1;;;;;;;:::i;:::-;901:23:112::2;934:14:::0;958::::2;982:16;1008:17:::0;1095:9:::2;-1:-1:-1::0;;;;;1086:28:112::2;;1115:8;1086:38;;;;;;;;;;;;;7670:25:165::0;;7658:2;7643:18;;7524:177;1086:38:112::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;1086:38:112::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;-1:-1:-1::0;1144:18:112::2;::::0;1036:88;;-1:-1:-1;1036:88:112;;-1:-1:-1;1036:88:112;;-1:-1:-1;1036:88:112;-1:-1:-1;1036:88:112;-1:-1:-1;1144:13:112::2;::::0;:18:::2;::::0;1036:88;;1144:18:::2;:::i;:::-;::::0;;;::::2;::::0;;;;;::::2;::::0;;;;::::2;;1143:19;1135:63;;;::::0;-1:-1:-1;;;1135:63:112;;18761:2:165;1135:63:112::2;::::0;::::2;18743:21:165::0;18800:2;18780:18;;;18773:30;18839:33;18819:18;;;18812:61;18890:18;;1135:63:112::2;18559:355:165::0;1135:63:112::2;1230:4;1209:13;1223:3;1209:18;;;;;;:::i;:::-;::::0;;;::::2;::::0;;;;;::::2;::::0;;;:25;;;::::2;;-1:-1:-1::0;;1209:25:112;;::::2;::::0;;;::::2;::::0;;;1249:17:::2;::::0;1262:3;;1249:17:::2;:::i;:::-;;::::0;;;;::::2;::::0;;;::::2;::::0;;;::::2;-1:-1:-1::0;1283:4:112::2;::::0;775:519;-1:-1:-1;;;;;;;775:519:112:o;8385:1560:113:-;700:12;;8485;;700;;;;;;:20;;:12;:20;692:84;;;;-1:-1:-1;;;692:84:113;;;;;;;:::i;:::-;8527:15:::1;;8521:3;:21;8513:73;;;::::0;-1:-1:-1;;;8513:73:113;;19121:2:165;8513:73:113::1;::::0;::::1;19103:21:165::0;19160:2;19140:18;;;19133:30;19199:34;19179:18;;;19172:62;-1:-1:-1;;;19250:18:165;;;19243:37;19297:19;;8513:73:113::1;18919:403:165::0;8513:73:113::1;8605:16;::::0;;;:11:::1;:16;::::0;;;;;;;:25:::1;::::0;::::1;::::0;::::1;;;8604:26;8596:63;;;::::0;-1:-1:-1;;;8596:63:113;;19529:2:165;8596:63:113::1;::::0;::::1;19511:21:165::0;19568:2;19548:18;;;19541:30;19607:26;19587:18;;;19580:54;19651:18;;8596:63:113::1;19327:348:165::0;8596:63:113::1;8673:16;::::0;;;:11:::1;:16;::::0;;;;:19;8704:4:::1;-1:-1:-1::0;;;;;8673:19:113;;::::1;:36:::0;8670:299:::1;;8757:22;::::0;;8768:10:::1;8757:22;::::0;::::1;9722:51:165::0;8733::113::1;::::0;9695:18:165;8757:22:113::1;9576:203:165::0;8733:51:113::1;8725:99;;;::::0;-1:-1:-1;;;8725:99:113;;19882:2:165;8725:99:113::1;::::0;::::1;19864:21:165::0;19921:2;19901:18;;;19894:30;19960:34;19940:18;;;19933:62;-1:-1:-1;;;20011:18:165;;;20004:33;20054:19;;8725:99:113::1;19680:399:165::0;8725:99:113::1;8670:299;;;8895:22;::::0;;8906:10:::1;8895:22;::::0;::::1;9722:51:165::0;8871::113::1;::::0;9695:18:165;8895:22:113::1;;;;;;;;;;;;;8885:33;;;;;;8920:1;8871:13;:51::i;:::-;8863:95;;;::::0;-1:-1:-1;;;8863:95:113;;20286:2:165;8863:95:113::1;::::0;::::1;20268:21:165::0;20325:2;20305:18;;;20298:30;20364:33;20344:18;;;20337:61;20415:18;;8863:95:113::1;20084:355:165::0;8863:95:113::1;8993:3;8984:23;8998:8;8984:23;;;;1537:14:165::0;1530:22;1512:41;;1500:2;1485:18;;1372:187;8984:23:113::1;;;;;;;;9022:16:::0;::::1;;9034:4;9022:16:::0;9018:899:::1;;9054:16;::::0;;;:11:::1;:16;::::0;;;;;;;;:25;;::::1;:32:::0;;-1:-1:-1;;9054:32:113::1;9082:4;9054:32:::0;;::::1;::::0;;;9177:19;;9209:22;;::::1;::::0;9177:79;;-1:-1:-1;;;;;9177:19:113;;::::1;::::0;9209:22;9177:79:::1;::::0;9234:21:::1;::::0;;::::1;::::0;9177:79:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;9164:92:113;;-1:-1:-1;;9271:572:113;::::1;;;9302:16;::::0;;;:11:::1;:16;::::0;;;;;;;;:25;;::::1;:32:::0;;-1:-1:-1;;9302:32:113::1;;;::::0;;9330:4:::1;9454:22:::0;::::1;::::0;9413:19;;9358:179;;9454:22;;-1:-1:-1;;;;;9413:19:113::1;::::0;9314:3;;9358:179:::1;::::0;::::1;::::0;9498:21:::1;::::0;;::::1;::::0;9358:179:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;9563:4:113::1;9556:11;;9271:572;9714:16;::::0;;;:11:::1;:16;::::0;;;;;;:22:::1;::::0;::::1;::::0;9673:19;;9611:186;;9714:22;;-1:-1:-1;;;;;9673:19:113::1;::::0;9726:3;;9611:186:::1;::::0;::::1;::::0;9758:21:::1;::::0;;::::1;::::0;9611:186:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;9823:5:113::1;9816:12;;9018:899;-1:-1:-1::0;;9901:5:113::1;9873:16:::0;;;:11:::1;:16;::::0;;;;;;:25:::1;:33:::0;;-1:-1:-1;;9873:33:113::1;::::0;;9901:5;8385:1560::o;5825:168::-;5964:22;;;;:14;:22;;;;;;;;;5957:29;;;;;;;;;;;;;;;;;5916:25;;5957:29;;;5964:22;5957:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5825:168;;;:::o;5291:166::-;5426:24;;;;:14;:24;;;;;;;;;5419:31;;;;;;;;;;;;;;;;;5382:21;;5419:31;;;5426:24;5419:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5291:166;;;:::o;439:269:112:-;700:12:113;;;;;;;;:20;;:12;:20;692:84;;;;-1:-1:-1;;;692:84:113;;;;;;;:::i;:::-;936:10:::1;958:4;936:27;::::0;:82:::1;;-1:-1:-1::0;991:22:113::1;::::0;;1002:10:::1;991:22;::::0;::::1;9722:51:165::0;967::113::1;::::0;9695:18:165;991:22:113::1;9576:203:165::0;967:51:113::1;928:152;;;;-1:-1:-1::0;;;928:152:113::1;;;;;;;:::i;:::-;560:13:112::2;574:9;;560:24;;;;;;;:::i;:::-;::::0;;;::::2;::::0;;;;;::::2;::::0;;;;::::2;;559:25;551:69;;;::::0;-1:-1:-1;;;551:69:112;;18761:2:165;551:69:112::2;::::0;::::2;18743:21:165::0;18800:2;18780:18;;;18773:30;18839:33;18819:18;;;18812:61;18890:18;;551:69:112::2;18559:355:165::0;551:69:112::2;658:4;631:13;645:9;;631:24;;;;;;;:::i;:::-;::::0;;;::::2;::::0;;;;;::::2;::::0;;;:31;;;::::2;;-1:-1:-1::0;;631:31:112;;::::2;::::0;;;::::2;::::0;;;678:23:::2;::::0;691:9;;;;678:23:::2;:::i;:::-;;::::0;;;;::::2;::::0;;;::::2;::::0;;;::::2;439:269:::0;;:::o;12477:1135:113:-;700:12;;12736:22;;700:12;;;;;;:20;;:12;:20;692:84;;;;-1:-1:-1;;;692:84:113;;;;;;;:::i;:::-;1236:10:::1;1258:4;1236:27;::::0;:82:::1;;-1:-1:-1::0;1291:22:113::1;::::0;;1302:10:::1;1291:22;::::0;::::1;9722:51:165::0;1267::113::1;::::0;9695:18:165;1291:22:113::1;9576:203:165::0;1267:51:113::1;1228:154;;;;-1:-1:-1::0;;;1228:154:113::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12778:24:113;::::2;12797:4;12778:24;12774:168;;12826:87;::::0;-1:-1:-1;;;12826:87:113;;-1:-1:-1;;;;;12826:34:113;::::2;::::0;::::2;::::0;:87:::2;::::0;12879:4:::2;::::0;12887:6;;12895:10;;12907:5;;12826:87:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12818:113;;;::::0;-1:-1:-1;;;12818:113:113;;22818:2:165;12818:113:113::2;::::0;::::2;22800:21:165::0;22857:2;22837:18;;;22830:30;-1:-1:-1;;;22876:18:165;;;22869:43;22929:18;;12818:113:113::2;22616:337:165::0;12818:113:113::2;12980:27;::::0;;-1:-1:-1;;;;;23150:32:165;;12980:27:113::2;::::0;::::2;23132:51:165::0;23199:18;;;23192:34;;;12952:15:113::2;::::0;23105:18:165;;12980:27:113::2;::::0;;-1:-1:-1;;12980:27:113;;::::2;::::0;;;;;;12970:38;;12980:27:::2;12970:38:::0;;::::2;::::0;13018:16:::2;::::0;;;:7:::2;:16:::0;;;;;:31;;;13059:23:::2;::::0;::::2;:33:::0;;;12970:38;;-1:-1:-1;13102:26:113::2;;:39;13131:10:::0;13102:26;:39:::2;:::i;:::-;-1:-1:-1::0;13151:16:113::2;::::0;;;:7:::2;:16;::::0;;;;;;;:21:::2;:29;13175:5:::0;13151:21;:29:::2;:::i;:::-;-1:-1:-1::0;13190:16:113::2;::::0;;;:7:::2;:16;::::0;;;;:20:::2;;:27;13213:4:::0;13190:20;:27:::2;:::i;:::-;-1:-1:-1::0;13232:16:113::2;::::0;;;:7:::2;:16;::::0;;;;:23:::2;;::::0;-1:-1:-1;;;;;13232:34:113;;::::2;:23:::0;::::2;:34;13228:354;;13282:22;::::0;;;:14:::2;:22;::::0;;;;;;;:36;;::::2;::::0;::::2;::::0;;;;;;;;::::2;::::0;;;13332:16;;;:7:::2;:16:::0;;;;;;;:23:::2;;:33:::0;;-1:-1:-1;;;;;;13332:33:113::2;-1:-1:-1::0;;;;;13332:33:113;::::2;::::0;;::::2;::::0;;;13385:70;;13282:22;;:36;;13385:70:::2;::::0;::::2;::::0;13413:7;;13431:10;;13443:5;;13450:4;;13385:70:::2;:::i;:::-;;;;;;;;13228:354;;;13538:7;-1:-1:-1::0;;;;;13499:72:113::2;13521:6;13512:7;13499:72;13529:7;13547:10;13559:5;13566:4;13499:72;;;;;;;;;:::i;:::-;;;;;;;;13228:354;13598:7:::0;12477:1135;-1:-1:-1;;;;;;;12477:1135:113:o;3064:747::-;700:12;;3199:19;;700:12;;;;;;:20;;:12;:20;692:84;;;;-1:-1:-1;;;692:84:113;;;;;;;:::i;:::-;3234:20:::1;3257:15:::0;;3282:25;;;:11:::1;:25;::::0;;;;;:34;;-1:-1:-1;;;;;;3282:34:113::1;-1:-1:-1::0;;;;;3282:34:113;::::1;;::::0;;-1:-1:-1;3326:31:113;::::1;:40:::0;;;3376:30:::1;;:38;3409:5:::0;3376:30;:38:::1;:::i;:::-;-1:-1:-1::0;3424:15:113::1;:17:::0;;;:15;:17:::1;::::0;::::1;:::i;:::-;;;;;;3495:6;3490:3;-1:-1:-1::0;;;;;3457:52:113::1;3476:12;3457:52;3503:5;3457:52;;;;;;:::i;:::-;;;;;;;;3548:22;::::0;;3559:10:::1;3548:22;::::0;::::1;9722:51:165::0;3524::113::1;::::0;9695:18:165;3548:22:113::1;9576:203:165::0;3524:51:113::1;3520:255;;;3591:27;3599:12;3613:4;3591:7;:27::i;:::-;;3520:255;;;-1:-1:-1::0;;;;;3647:20:113;::::1;3662:4;3647:20;::::0;::::1;::::0;:75:::1;;-1:-1:-1::0;3695:22:113::1;::::0;;3706:10:::1;3695:22;::::0;::::1;9722:51:165::0;3671::113::1;::::0;9695:18:165;3695:22:113::1;9576:203:165::0;3671:51:113::1;3643:132;;;3737:27;3745:12;3759:4;3737:7;:27::i;:::-;;3643:132;3792:12:::0;3064:747;-1:-1:-1;;;;3064:747:113:o;1362:984:112:-;1553:15;1584:16;1624:9;1635:10;1647:4;1613:39;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1603:50;;;;;;1584:69;;1754:20;1840:8;1787:62;;;;;;;28144:66:165;28132:79;;28236:2;28227:12;;28220:28;;;;28273:2;28264:12;;27902:380;1787:62:112;;;;;;;;;;;;;1777:73;;;;;;1754:96;;1903:17;1923:38;1943:3;1948:12;1923:19;:38::i;:::-;2045:21;;;-1:-1:-1;;;;;9740:32:165;;2045:21:112;;;9722:51:165;1903:58:112;;-1:-1:-1;2014:18:112;;9695::165;2045:21:112;;;;;;;;;;;;2035:32;;;;;;2014:53;;2217:28;2231:10;2243:1;2217:13;:28::i;:::-;:62;;;;;2250:19;2265:3;2250:14;:19::i;:::-;:28;2217:62;2213:104;;;2302:4;2295:11;;;;;;;;2213:104;-1:-1:-1;2334:5:112;;1362:984;-1:-1:-1;;;;;;;;1362:984:112:o;19050:719:113:-;19148:12;19176:10;19196;19216:8;19277:3;:10;19291:2;19277:16;19273:64;;19324:1;19309:17;;;;;;;19273:64;-1:-1:-1;;;19503:2:113;19494:12;;19488:19;19541:2;19532:12;;19526:19;19587:2;19578:12;;19572:19;19569:1;19564:28;19621:2;19616:7;;19612:46;;;19639:8;19645:2;19639:8;;:::i;:::-;;;19612:46;19695:31;;;19668:24;19695:31;;;;;;;;;28667:25:165;;;28740:4;28728:17;;28708:18;;;28701:45;;;;28762:18;;;28755:34;;;28805:18;;;28798:34;;;19695:31:113;;28639:19:165;;19695:31:113;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19695:31:113;;-1:-1:-1;;19695:31:113;;;19050:719;-1:-1:-1;;;;;;;;19050:719:113:o;2239:201::-;-1:-1:-1;;;;;2316:34:113;;2308:78;;;;-1:-1:-1;;;2308:78:113;;29045:2:165;2308:78:113;;;29027:21:165;29084:2;29064:18;;;29057:30;29123:33;29103:18;;;29096:61;29174:18;;2308:78:113;28843:355:165;2308:78:113;2396:37;2412:20;2396:15;:37::i;:::-;2239:201;:::o;16194:483::-;16284:13;16469:17;;;:7;:17;;;;;;;:23;;16502:24;;;;16536;;;;16570:27;;;16452:218;;16284:13;;;;16355:22;;;;;;16469:23;;16502:24;;-1:-1:-1;;;;;16536:24:113;;;;16570:27;;16607:22;;;;16639:21;;;;;16570:27;;16452:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16194:483;;;;;;;:::o;16825:463::-;16925:11;16969;;;:5;:11;;;;;;;;16952:28;;;;;;;;;;;;;;;;;;;;;16925:11;;16952:28;;;;16969:11;;16952:28;;;16969:11;16952:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16952:28:113;;;-1:-1:-1;;16952:28:113;;;;;;;;;;;;;;;;;;16994:7;;;16952:28;;-1:-1:-1;;16994:12:113;16990:30;;17015:5;17008:12;;;;;16990:30;17036:20;17031:228;17080:12;;:19;17062:37;;17031:228;;;17134:15;17152:3;:12;;;17165:15;17152:29;;;;;;;;:::i;:::-;;;;;;;17134:47;;17200:7;17211:1;17200:12;:35;;;;17227:8;17216:7;:19;17200:35;17196:52;;;17244:4;17237:11;;;;;;;17196:52;-1:-1:-1;17101:17:113;;17031:228;;;-1:-1:-1;17276:5:113;;16825:463;-1:-1:-1;;;;16825:463:113:o;4761:163::-;4896:11;;;;:5;:11;;;;;;;;;4888:29;;;;;;;;;;;;;;;;;4846:26;;4888:29;;;4896:11;4888:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4761:163;;;:::o;20029:458::-;20112:12;;;;20111:13;;:33;;-1:-1:-1;20752:4:113;20860:17;20895:7;20128:16;20103:76;;;;-1:-1:-1;;;20103:76:113;;29405:2:165;20103:76:113;;;29387:21:165;29444:2;29424:18;;;29417:30;29483:32;29463:18;;;29456:60;29533:18;;20103:76:113;29203:354:165;20103:76:113;20189:12;:19;;-1:-1:-1;;20218:19:113;;;;;20273:32;;;-1:-1:-1;;;;;9740:32:165;;20273::113;;;9722:51:165;-1:-1:-1;;9695:18:165;20273:32:113;;;-1:-1:-1;;20273:32:113;;;;;;;;;20263:43;;20273:32;20263:43;;;;20316:11;;;;:5;:11;;;;;;:15;;;:22;;;20348:26;;;;;;;;;:11;;;;;;;;20263:43;-1:-1:-1;20348:26:113;;20273:32;20348:26;:::i;:::-;-1:-1:-1;20384:11:113;;;;20406:1;20384:11;;;;;;;;:19;;:23;;;20417:14;:17;;;;:28;;;;;;;;;;;;;;;20460:20;20406:1;;;;20390:4;;20460:20;;;20093:394;20029:458;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:180:165;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:165;;14:180;-1:-1:-1;14:180:165:o;199:439::-;252:3;290:5;284:12;317:6;312:3;305:19;343:4;372;367:3;363:14;356:21;;411:4;404:5;400:16;434:1;444:169;458:6;455:1;452:13;444:169;;;519:13;;507:26;;553:12;;;;588:15;;;;480:1;473:9;444:169;;;-1:-1:-1;629:3:165;;199:439;-1:-1:-1;;;;;199:439:165:o;643:403::-;878:2;867:9;860:21;841:4;898:56;950:2;939:9;935:18;927:6;898:56;:::i;:::-;985:2;970:18;;963:34;;;;-1:-1:-1;1028:2:165;1013:18;1006:34;890:64;643:403;-1:-1:-1;643:403:165:o;1051:316::-;1128:6;1136;1144;1197:2;1185:9;1176:7;1172:23;1168:32;1165:52;;;1213:1;1210;1203:12;1165:52;-1:-1:-1;;1236:23:165;;;1306:2;1291:18;;1278:32;;-1:-1:-1;1357:2:165;1342:18;;;1329:32;;1051:316;-1:-1:-1;1051:316:165:o;1564:127::-;1625:10;1620:3;1616:20;1613:1;1606:31;1656:4;1653:1;1646:15;1680:4;1677:1;1670:15;1696:275;1767:2;1761:9;1832:2;1813:13;;-1:-1:-1;;1809:27:165;1797:40;;1867:18;1852:34;;1888:22;;;1849:62;1846:88;;;1914:18;;:::i;:::-;1950:2;1943:22;1696:275;;-1:-1:-1;1696:275:165:o;1976:186::-;2024:4;2057:18;2049:6;2046:30;2043:56;;;2079:18;;:::i;:::-;-1:-1:-1;2145:2:165;2124:15;-1:-1:-1;;2120:29:165;2151:4;2116:40;;1976:186::o;2167:336::-;2231:5;2260:52;2276:35;2304:6;2276:35;:::i;:::-;2260:52;:::i;:::-;2251:61;;2335:6;2328:5;2321:21;2375:3;2366:6;2361:3;2357:16;2354:25;2351:45;;;2392:1;2389;2382:12;2351:45;2441:6;2436:3;2429:4;2422:5;2418:16;2405:43;2495:1;2488:4;2479:6;2472:5;2468:18;2464:29;2457:40;2167:336;;;;;:::o;2508:220::-;2550:5;2603:3;2596:4;2588:6;2584:17;2580:27;2570:55;;2621:1;2618;2611:12;2570:55;2643:79;2718:3;2709:6;2696:20;2689:4;2681:6;2677:17;2643:79;:::i;2733:320::-;2801:6;2854:2;2842:9;2833:7;2829:23;2825:32;2822:52;;;2870:1;2867;2860:12;2822:52;2910:9;2897:23;2943:18;2935:6;2932:30;2929:50;;;2975:1;2972;2965:12;2929:50;2998:49;3039:7;3030:6;3019:9;3015:22;2998:49;:::i;3058:248::-;3126:6;3134;3187:2;3175:9;3166:7;3162:23;3158:32;3155:52;;;3203:1;3200;3193:12;3155:52;-1:-1:-1;;3226:23:165;;;3296:2;3281:18;;;3268:32;;-1:-1:-1;3058:248:165:o;3311:250::-;3396:1;3406:113;3420:6;3417:1;3414:13;3406:113;;;3496:11;;;3490:18;3477:11;;;3470:39;3442:2;3435:10;3406:113;;;-1:-1:-1;;3553:1:165;3535:16;;3528:27;3311:250::o;3566:271::-;3608:3;3646:5;3640:12;3673:6;3668:3;3661:19;3689:76;3758:6;3751:4;3746:3;3742:14;3735:4;3728:5;3724:16;3689:76;:::i;:::-;3819:2;3798:15;-1:-1:-1;;3794:29:165;3785:39;;;;3826:4;3781:50;;3566:271;-1:-1:-1;;3566:271:165:o;3842:220::-;3991:2;3980:9;3973:21;3954:4;4011:45;4052:2;4041:9;4037:18;4029:6;4011:45;:::i;4067:131::-;-1:-1:-1;;;;;4142:31:165;;4132:42;;4122:70;;4188:1;4185;4178:12;4203:315;4271:6;4279;4332:2;4320:9;4311:7;4307:23;4303:32;4300:52;;;4348:1;4345;4338:12;4300:52;4384:9;4371:23;4361:33;;4444:2;4433:9;4429:18;4416:32;4457:31;4482:5;4457:31;:::i;:::-;4507:5;4497:15;;;4203:315;;;;;:::o;4523:118::-;4609:5;4602:13;4595:21;4588:5;4585:32;4575:60;;4631:1;4628;4621:12;4646:309;4711:6;4719;4772:2;4760:9;4751:7;4747:23;4743:32;4740:52;;;4788:1;4785;4778:12;4740:52;4824:9;4811:23;4801:33;;4884:2;4873:9;4869:18;4856:32;4897:28;4919:5;4897:28;:::i;5145:632::-;5316:2;5368:21;;;5438:13;;5341:18;;;5460:22;;;5287:4;;5316:2;5539:15;;;;5513:2;5498:18;;;5287:4;5582:169;5596:6;5593:1;5590:13;5582:169;;;5657:13;;5645:26;;5726:15;;;;5691:12;;;;5618:1;5611:9;5582:169;;;-1:-1:-1;5768:3:165;;5145:632;-1:-1:-1;;;;;;5145:632:165:o;5782:591::-;5852:6;5860;5913:2;5901:9;5892:7;5888:23;5884:32;5881:52;;;5929:1;5926;5919:12;5881:52;5969:9;5956:23;5998:18;6039:2;6031:6;6028:14;6025:34;;;6055:1;6052;6045:12;6025:34;6093:6;6082:9;6078:22;6068:32;;6138:7;6131:4;6127:2;6123:13;6119:27;6109:55;;6160:1;6157;6150:12;6109:55;6200:2;6187:16;6226:2;6218:6;6215:14;6212:34;;;6242:1;6239;6232:12;6212:34;6287:7;6282:2;6273:6;6269:2;6265:15;6261:24;6258:37;6255:57;;;6308:1;6305;6298:12;6255:57;6339:2;6331:11;;;;;6361:6;;-1:-1:-1;5782:591:165;;-1:-1:-1;;;;5782:591:165:o;6378:1141::-;6510:6;6518;6526;6534;6542;6550;6603:3;6591:9;6582:7;6578:23;6574:33;6571:53;;;6620:1;6617;6610:12;6571:53;6656:9;6643:23;6633:33;;6713:2;6702:9;6698:18;6685:32;6675:42;;6767:2;6756:9;6752:18;6739:32;6780:31;6805:5;6780:31;:::i;:::-;6830:5;-1:-1:-1;6886:2:165;6871:18;;6858:32;6909:18;6939:14;;;6936:34;;;6966:1;6963;6956:12;6936:34;6989:49;7030:7;7021:6;7010:9;7006:22;6989:49;:::i;:::-;6979:59;;7091:3;7080:9;7076:19;7063:33;7047:49;;7121:2;7111:8;7108:16;7105:36;;;7137:1;7134;7127:12;7105:36;7160:51;7203:7;7192:8;7181:9;7177:24;7160:51;:::i;:::-;7150:61;;7264:3;7253:9;7249:19;7236:33;7220:49;;7294:2;7284:8;7281:16;7278:36;;;7310:1;7307;7300:12;7278:36;-1:-1:-1;7333:24:165;;7388:4;7380:13;;7376:27;-1:-1:-1;7366:55:165;;7417:1;7414;7407:12;7366:55;7440:73;7505:7;7500:2;7487:16;7482:2;7478;7474:11;7440:73;:::i;:::-;7430:83;;;6378:1141;;;;;;;;:::o;7706:523::-;7792:6;7800;7808;7861:2;7849:9;7840:7;7836:23;7832:32;7829:52;;;7877:1;7874;7867:12;7829:52;7916:9;7903:23;7935:31;7960:5;7935:31;:::i;:::-;7985:5;-1:-1:-1;8037:2:165;8022:18;;8009:32;;-1:-1:-1;8092:2:165;8077:18;;8064:32;8119:18;8108:30;;8105:50;;;8151:1;8148;8141:12;8105:50;8174:49;8215:7;8206:6;8195:9;8191:22;8174:49;:::i;:::-;8164:59;;;7706:523;;;;;:::o;8416:762::-;8539:6;8547;8555;8563;8616:3;8604:9;8595:7;8591:23;8587:33;8584:53;;;8633:1;8630;8623:12;8584:53;8672:9;8659:23;8691:31;8716:5;8691:31;:::i;:::-;8741:5;-1:-1:-1;8793:2:165;8778:18;;8765:32;;-1:-1:-1;8848:2:165;8833:18;;8820:32;8871:18;8901:14;;;8898:34;;;8928:1;8925;8918:12;8898:34;8951:49;8992:7;8983:6;8972:9;8968:22;8951:49;:::i;:::-;8941:59;;9053:2;9042:9;9038:18;9025:32;9009:48;;9082:2;9072:8;9069:16;9066:36;;;9098:1;9095;9088:12;9066:36;;9121:51;9164:7;9153:8;9142:9;9138:24;9121:51;:::i;:::-;9111:61;;;8416:762;;;;;;;:::o;9183:388::-;9260:6;9268;9321:2;9309:9;9300:7;9296:23;9292:32;9289:52;;;9337:1;9334;9327:12;9289:52;9377:9;9364:23;9410:18;9402:6;9399:30;9396:50;;;9442:1;9439;9432:12;9396:50;9465:49;9506:7;9497:6;9486:9;9482:22;9465:49;:::i;:::-;9455:59;9561:2;9546:18;;;;9533:32;;-1:-1:-1;;;;9183:388:165:o;9784:247::-;9843:6;9896:2;9884:9;9875:7;9871:23;9867:32;9864:52;;;9912:1;9909;9902:12;9864:52;9951:9;9938:23;9970:31;9995:5;9970:31;:::i;10036:785::-;10361:6;10350:9;10343:25;10404:6;10399:2;10388:9;10384:18;10377:34;10476:1;10472;10467:3;10463:11;10459:19;10451:6;10447:32;10442:2;10431:9;10427:18;10420:60;10516:3;10511:2;10500:9;10496:18;10489:31;10324:4;10543:46;10584:3;10573:9;10569:19;10561:6;10543:46;:::i;:::-;10638:9;10630:6;10626:22;10620:3;10609:9;10605:19;10598:51;10672:33;10698:6;10690;10672:33;:::i;:::-;10658:47;;10754:9;10746:6;10742:22;10736:3;10725:9;10721:19;10714:51;10782:33;10808:6;10800;10782:33;:::i;:::-;10774:41;10036:785;-1:-1:-1;;;;;;;;;10036:785:165:o;10826:261::-;11005:2;10994:9;10987:21;10968:4;11025:56;11077:2;11066:9;11062:18;11054:6;11025:56;:::i;11092:415::-;11294:2;11276:21;;;11333:2;11313:18;;;11306:30;11372:34;11367:2;11352:18;;11345:62;-1:-1:-1;;;11438:2:165;11423:18;;11416:49;11497:3;11482:19;;11092:415::o;11512:412::-;11714:2;11696:21;;;11753:2;11733:18;;;11726:30;11792:34;11787:2;11772:18;;11765:62;-1:-1:-1;;;11858:2:165;11843:18;;11836:46;11914:3;11899:19;;11512:412::o;11929:127::-;11990:10;11985:3;11981:20;11978:1;11971:31;12021:4;12018:1;12011:15;12045:4;12042:1;12035:15;12463:287;12592:3;12630:6;12624:13;12646:66;12705:6;12700:3;12693:4;12685:6;12681:17;12646:66;:::i;:::-;12728:16;;;;;12463:287;-1:-1:-1;;12463:287:165:o;12755:414::-;12957:2;12939:21;;;12996:2;12976:18;;;12969:30;13035:34;13030:2;13015:18;;13008:62;-1:-1:-1;;;13101:2:165;13086:18;;13079:48;13159:3;13144:19;;12755:414::o;13586:127::-;13647:10;13642:3;13638:20;13635:1;13628:31;13678:4;13675:1;13668:15;13702:4;13699:1;13692:15;13718:135;13757:3;13778:17;;;13775:43;;13798:18;;:::i;:::-;-1:-1:-1;13845:1:165;13834:13;;13718:135::o;13858:128::-;13925:9;;;13946:11;;;13943:37;;;13960:18;;:::i;13991:127::-;14052:10;14047:3;14043:20;14040:1;14033:31;14083:4;14080:1;14073:15;14107:4;14104:1;14097:15;14123:380;14202:1;14198:12;;;;14245;;;14266:61;;14320:4;14312:6;14308:17;14298:27;;14266:61;14373:2;14365:6;14362:14;14342:18;14339:38;14336:161;;14419:10;14414:3;14410:20;14407:1;14400:31;14454:4;14451:1;14444:15;14482:4;14479:1;14472:15;14336:161;;14123:380;;;:::o;14633:770::-;14682:3;14723:5;14717:12;14752:36;14778:9;14752:36;:::i;:::-;14797:19;;;14835:4;14858:1;14875:17;;;14901:146;;;;15061:1;15056:341;;;;14868:529;;14901:146;-1:-1:-1;;14943:24:165;;14929:12;;;14922:46;15015:14;;15008:22;15005:1;15001:30;14992:40;;14988:49;;;-1:-1:-1;14901:146:165;;15056:341;15087:5;15084:1;15077:16;15134:2;15131:1;15121:16;15159:1;15173:174;15187:6;15184:1;15181:13;15173:174;;;15274:14;;15256:11;;;15252:20;;15245:44;15317:16;;;;15202:10;;15173:174;;;15371:11;;15367:20;;;-1:-1:-1;;14868:529:165;;;;;;14633:770;;;;:::o;15408:627::-;15668:6;15657:9;15650:25;15711:3;15706:2;15695:9;15691:18;15684:31;15631:4;15738:53;15786:3;15775:9;15771:19;15763:6;15738:53;:::i;:::-;15839:9;15831:6;15827:22;15822:2;15811:9;15807:18;15800:50;15873:40;15906:6;15898;15873:40;:::i;:::-;15859:54;;15961:9;15953:6;15949:22;15944:2;15933:9;15929:18;15922:50;15989:40;16022:6;16014;15989:40;:::i;16853:320::-;16928:5;16957:52;16973:35;17001:6;16973:35;:::i;16957:52::-;16948:61;;17032:6;17025:5;17018:21;17072:3;17063:6;17058:3;17054:16;17051:25;17048:45;;;17089:1;17086;17079:12;17048:45;17102:65;17160:6;17153:4;17146:5;17142:16;17137:3;17102:65;:::i;17178:235::-;17231:5;17284:3;17277:4;17269:6;17265:17;17261:27;17251:55;;17302:1;17299;17292:12;17251:55;17324:83;17403:3;17394:6;17388:13;17381:4;17373:6;17369:17;17324:83;:::i;17418:1136::-;17561:6;17569;17577;17585;17593;17601;17654:3;17642:9;17633:7;17629:23;17625:33;17622:53;;;17671:1;17668;17661:12;17622:53;17700:9;17694:16;17684:26;;17750:2;17739:9;17735:18;17729:25;17719:35;;17797:2;17786:9;17782:18;17776:25;17810:31;17835:5;17810:31;:::i;:::-;17909:2;17894:18;;17888:25;17860:5;;-1:-1:-1;17932:18:165;17962:14;;;17959:34;;;17989:1;17986;17979:12;17959:34;18012:60;18064:7;18055:6;18044:9;18040:22;18012:60;:::i;:::-;18002:70;;18118:3;18107:9;18103:19;18097:26;18081:42;;18148:2;18138:8;18135:16;18132:36;;;18164:1;18161;18154:12;18132:36;18187:62;18241:7;18230:8;18219:9;18215:24;18187:62;:::i;:::-;18177:72;;18295:3;18284:9;18280:19;18274:26;18258:42;;18325:2;18315:8;18312:16;18309:36;;;18341:1;18338;18331:12;18309:36;-1:-1:-1;18364:24:165;;18419:4;18411:13;;18407:27;-1:-1:-1;18397:55:165;;18448:1;18445;18438:12;18397:55;18471:77;18540:7;18535:2;18529:9;18524:2;18520;18516:11;18471:77;:::i;20444:841::-;20570:3;20599:1;20632:6;20626:13;20662:36;20688:9;20662:36;:::i;:::-;20717:1;20734:17;;;20760:133;;;;20907:1;20902:358;;;;20727:533;;20760:133;-1:-1:-1;;20793:24:165;;20781:37;;20866:14;;20859:22;20847:35;;20838:45;;;-1:-1:-1;20760:133:165;;20902:358;20933:6;20930:1;20923:17;20963:4;21008;21005:1;20995:18;21035:1;21049:165;21063:6;21060:1;21057:13;21049:165;;;21141:14;;21128:11;;;21121:35;21184:16;;;;21078:10;;21049:165;;;21053:3;;;21243:6;21238:3;21234:16;21227:23;;20727:533;-1:-1:-1;21276:3:165;;20444:841;-1:-1:-1;;;;;;20444:841:165:o;21290:222::-;21434:2;21423:9;21416:21;21397:4;21454:52;21502:2;21491:9;21487:18;21479:6;21454:52;:::i;21517:271::-;21700:6;21692;21687:3;21674:33;21656:3;21726:16;;21751:13;;;21726:16;21517:271;-1:-1:-1;21517:271:165:o;21793:568::-;22090:1;22086;22081:3;22077:11;22073:19;22065:6;22061:32;22050:9;22043:51;22130:6;22125:2;22114:9;22110:18;22103:34;22173:3;22168:2;22157:9;22153:18;22146:31;22024:4;22200:46;22241:3;22230:9;22226:19;22218:6;22200:46;:::i;:::-;22294:9;22286:6;22282:22;22277:2;22266:9;22262:18;22255:50;22322:33;22348:6;22340;22322:33;:::i;22366:245::-;22433:6;22486:2;22474:9;22465:7;22461:23;22457:32;22454:52;;;22502:1;22499;22492:12;22454:52;22534:9;22528:16;22553:28;22575:5;22553:28;:::i;23237:542::-;23338:2;23333:3;23330:11;23327:446;;;23374:1;23398:5;23395:1;23388:16;23442:4;23439:1;23429:18;23512:2;23500:10;23496:19;23493:1;23489:27;23483:4;23479:38;23548:4;23536:10;23533:20;23530:47;;;-1:-1:-1;23571:4:165;23530:47;23626:2;23621:3;23617:12;23614:1;23610:20;23604:4;23600:31;23590:41;;23681:82;23699:2;23692:5;23689:13;23681:82;;;23744:17;;;23725:1;23714:13;23681:82;;;23685:3;;;23327:446;23237:542;;;:::o;23955:1341::-;24079:3;24073:10;24106:18;24098:6;24095:30;24092:56;;;24128:18;;:::i;:::-;24157:96;24246:6;24206:38;24238:4;24232:11;24206:38;:::i;:::-;24200:4;24157:96;:::i;:::-;24308:4;;24365:2;24354:14;;24382:1;24377:662;;;;25083:1;25100:6;25097:89;;;-1:-1:-1;25152:19:165;;;25146:26;25097:89;-1:-1:-1;;23912:1:165;23908:11;;;23904:24;23900:29;23890:40;23936:1;23932:11;;;23887:57;25199:81;;24347:943;;24377:662;14580:1;14573:14;;;14617:4;14604:18;;-1:-1:-1;;24413:20:165;;;24530:236;24544:7;24541:1;24538:14;24530:236;;;24633:19;;;24627:26;24612:42;;24725:27;;;;24693:1;24681:14;;;;24560:19;;24530:236;;;24534:3;24794:6;24785:7;24782:19;24779:201;;;24855:19;;;24849:26;-1:-1:-1;;24938:1:165;24934:14;;;24950:3;24930:24;24926:37;24922:42;24907:58;24892:74;;24779:201;-1:-1:-1;;;;;25026:1:165;25010:14;;;25006:22;24993:36;;-1:-1:-1;23955:1341:165:o;26649:615::-;26918:6;26907:9;26900:25;26961:3;26956:2;26945:9;26941:18;26934:31;26881:4;26988:46;27029:3;27018:9;27014:19;27006:6;26988:46;:::i;:::-;27082:9;27074:6;27070:22;27065:2;27054:9;27050:18;27043:50;27116:33;27142:6;27134;27116:33;:::i;:::-;27102:47;;27197:9;27189:6;27185:22;27180:2;27169:9;27165:18;27158:50;27225:33;27251:6;27243;27225:33;:::i;27492:405::-;27743:1;27739;27734:3;27730:11;27726:19;27718:6;27714:32;27703:9;27696:51;27783:6;27778:2;27767:9;27763:18;27756:34;27826:2;27821;27810:9;27806:18;27799:30;27677:4;27846:45;27887:2;27876:9;27872:18;27864:6;27846:45;:::i;:::-;27838:53;27492:405;-1:-1:-1;;;;;27492:405:165:o;28287:148::-;28375:4;28354:12;;;28368;;;28350:31;;28393:13;;28390:39;;;28409:18;;:::i","linkReferences":{}},"methodIdentifiers":{"addClaim(uint256,uint256,address,bytes,bytes,string)":"b1a34e0d","addKey(bytes32,uint256,uint256)":"1d381240","approve(uint256,bool)":"747442d3","execute(address,uint256,bytes)":"b61d27f6","getClaim(bytes32)":"c9100bcb","getClaimIdsByTopic(uint256)":"80e9e9e1","getKey(bytes32)":"12aaac70","getKeyPurposes(bytes32)":"fb307b34","getKeysByPurpose(uint256)":"9010f726","getRecoveredAddress(bytes,bytes32)":"c3b129e3","initialize(address)":"c4d66de8","isClaimRevoked(bytes)":"2646b264","isClaimValid(address,uint256,bytes,bytes)":"c0969a6e","keyHasPurpose(bytes32,uint256)":"d202158d","removeClaim(bytes32)":"4eee424a","removeKey(bytes32,uint256)":"53d413c5","revokeClaim(bytes32,address)":"73c33708","revokeClaimBySignature(bytes)":"9f7f9edd","revokedClaims(bytes)":"d2345249","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialManagementKey\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"Approved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"ClaimRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Executed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_topic\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_scheme\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_issuer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"_uri\",\"type\":\"string\"}],\"name\":\"addClaim\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimRequestId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_type\",\"type\":\"uint256\"}],\"name\":\"addKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_approve\",\"type\":\"bool\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimId\",\"type\":\"bytes32\"}],\"name\":\"getClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_topic\",\"type\":\"uint256\"}],\"name\":\"getClaimIdsByTopic\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"claimIds\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getKey\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"purposes\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getKeyPurposes\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_purposes\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"getKeysByPurpose\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"keys\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"sig\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"dataHash\",\"type\":\"bytes32\"}],\"name\":\"getRecoveredAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialManagementKey\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_sig\",\"type\":\"bytes\"}],\"name\":\"isClaimRevoked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IIdentity\",\"name\":\"_identity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sig\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"isClaimValid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"claimValid\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"keyHasPurpose\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimId\",\"type\":\"bytes32\"}],\"name\":\"removeClaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"removeKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_identity\",\"type\":\"address\"}],\"name\":\"revokeClaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"revokeClaimBySignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"revokedClaims\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approved(uint256,bool)\":{\"details\":\"Emitted when an execution request was approved. Specification: MUST be triggered when approve was successfully called.\"},\"ClaimAdded(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was added. Specification: MUST be triggered when a claim was successfully added.\"},\"ClaimChanged(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was changed. Specification: MUST be triggered when addClaim was successfully called on an existing claimId.\"},\"ClaimRemoved(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was removed. Specification: MUST be triggered when removeClaim was successfully called.\"},\"ClaimRevoked(bytes)\":{\"details\":\"Emitted when a claim is revoked. Specification: MUST be triggered when revoking a claim.\"},\"Executed(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execute operation was approved and successfully performed. Specification: MUST be triggered when approve was called and the execution was successfully approved.\"},\"ExecutionFailed(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execute operation was called and failed Specification: MUST be triggered when execute call failed\"},\"ExecutionRequested(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execution request was performed via `execute`. Specification: MUST be triggered when execute was successfully called.\"},\"KeyAdded(bytes32,uint256,uint256)\":{\"details\":\"Emitted when a key was added to the Identity. Specification: MUST be triggered when addKey was successfully called.\"},\"KeyRemoved(bytes32,uint256,uint256)\":{\"details\":\"Emitted when a key was removed from the Identity. Specification: MUST be triggered when removeKey was successfully called.\"}},\"kind\":\"dev\",\"methods\":{\"addClaim(uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"See {IERC735-addClaim}.\",\"params\":{\"_data\":\"The hash of the claim data, sitting in another location, a bit-mask, call data, or actual data based on the claim scheme.\",\"_issuer\":\"The issuers identity contract address, or the address used to sign the above signature.\",\"_scheme\":\"The scheme with which this claim SHOULD be verified or how it should be processed.\",\"_signature\":\"Signature which is the proof that the claim issuer issued a claim of topic for this identity. it MUST be a signed message of the following structure: keccak256(abi.encode(address identityHolder_address, uint256 _ topic, bytes data))\",\"_topic\":\"The type of claim\",\"_uri\":\"The location of the claim, this can be HTTP links, swarm hashes, IPFS hashes, and such.\"},\"returns\":{\"claimRequestId\":\"Returns claimRequestId: COULD be send to the approve function, to approve or reject this claim. triggers ClaimAdded event.\"}},\"addKey(bytes32,uint256,uint256)\":{\"params\":{\"_key\":\"keccak256 representation of an ethereum address\",\"_purpose\":\"a uint256 specifying the key type, like 1 = MANAGEMENT, 2 = ACTION, 3 = CLAIM, 4 = ENCRYPTION\",\"_type\":\"type of key used, which would be a uint256 for different key types. e.g. 1 = ECDSA, 2 = RSA, etc.\"},\"returns\":{\"success\":\"Returns TRUE if the addition was successful and FALSE if not\"}},\"approve(uint256,bool)\":{\"details\":\"See {IERC734-approve}.\"},\"execute(address,uint256,bytes)\":{\"details\":\"See {IERC734-execute}.\",\"returns\":{\"executionId\":\"to use in the approve function, to approve or reject this execution.\"}},\"getClaim(bytes32)\":{\"details\":\"See {IERC735-getClaim}.\",\"params\":{\"_claimId\":\"The identity of the claim i.e. keccak256(abi.encode(_issuer, _topic))\"},\"returns\":{\"data\":\"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .\",\"issuer\":\"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .\",\"scheme\":\"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .\",\"signature\":\"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .\",\"topic\":\"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .\",\"uri\":\"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .\"}},\"getClaimIdsByTopic(uint256)\":{\"details\":\"See {IERC735-getClaimIdsByTopic}.\",\"params\":{\"_topic\":\"The identity of the claim i.e. keccak256(abi.encode(_issuer, _topic))\"},\"returns\":{\"claimIds\":\"Returns an array of claim IDs by topic.\"}},\"getKey(bytes32)\":{\"details\":\"See {IERC734-getKey}.\",\"params\":{\"_key\":\"The public key. for non-hex and long keys, its the Keccak256 hash of the key\"},\"returns\":{\"key\":\"Returns the full key data, if present in the identity.\",\"keyType\":\"Returns the full key data, if present in the identity.\",\"purposes\":\"Returns the full key data, if present in the identity.\"}},\"getKeyPurposes(bytes32)\":{\"details\":\"See {IERC734-getKeyPurposes}.\",\"params\":{\"_key\":\"The public key. for non-hex and long keys, its the Keccak256 hash of the key\"},\"returns\":{\"_purposes\":\"Returns the purposes of the specified key\"}},\"getKeysByPurpose(uint256)\":{\"details\":\"See {IERC734-getKeysByPurpose}.\",\"params\":{\"_purpose\":\"a uint256[] Array of the key types, like 1 = MANAGEMENT, 2 = ACTION, 3 = CLAIM, 4 = ENCRYPTION\"},\"returns\":{\"keys\":\"Returns an array of public key bytes32 hold by this identity and having the specified purpose\"}},\"getRecoveredAddress(bytes,bytes32)\":{\"details\":\"returns the address that signed the given data\",\"params\":{\"dataHash\":\"the data that was signed returns the address that signed dataHash and created the signature sig\",\"sig\":\"the signature of the data\"}},\"initialize(address)\":{\"params\":{\"initialManagementKey\":\"The ethereum address to be set as the management key of the ONCHAINID.\"}},\"isClaimRevoked(bytes)\":{\"details\":\"See {IClaimIssuer-isClaimRevoked}.\"},\"isClaimValid(address,uint256,bytes,bytes)\":{\"details\":\"See {IClaimIssuer-isClaimValid}.\"},\"keyHasPurpose(bytes32,uint256)\":{\"details\":\"See {IERC734-keyHasPurpose}.\"},\"removeClaim(bytes32)\":{\"details\":\"See {IERC735-removeClaim}.\",\"params\":{\"_claimId\":\"The identity of the claim i.e. keccak256(abi.encode(_issuer, _topic))\"},\"returns\":{\"success\":\"Returns TRUE when the claim was removed. triggers ClaimRemoved event\"}},\"removeKey(bytes32,uint256)\":{\"details\":\"See {IERC734-removeKey}.\"},\"revokeClaim(bytes32,address)\":{\"details\":\"See {IClaimIssuer-revokeClaim}.\"},\"revokeClaimBySignature(bytes)\":{\"details\":\"See {IClaimIssuer-revokeClaimBySignature}.\"},\"version()\":{\"details\":\"Returns the string of the current version.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addClaim(uint256,uint256,address,bytes,bytes,string)\":{\"notice\":\"Implementation of the addClaim function from the ERC-735 standard Require that the msg.sender has claim signer key.\"},\"addKey(bytes32,uint256,uint256)\":{\"notice\":\"implementation of the addKey function of the ERC-734 standard Adds a _key to the identity. The _purpose specifies the purpose of key. Initially we propose four purposes: 1: MANAGEMENT keys, which can manage the identity 2: ACTION keys, which perform actions in this identities name (signing, logins, transactions, etc.) 3: CLAIM signer keys, used to sign claims on other identities which need to be revokable. 4: ENCRYPTION keys, used to encrypt data e.g. hold in claims. MUST only be done by keys of purpose 1, or the identity itself. If its the identity itself, the approval process will determine its approval.\"},\"approve(uint256,bool)\":{\"notice\":\"Approves an execution. If the sender is an ACTION key and the destination address is not the identity contract itself, then the approval is authorized and the operation would be performed. If the destination address is the identity itself, then the execution would be authorized and performed only if the sender is a MANAGEMENT key.\"},\"execute(address,uint256,bytes)\":{\"notice\":\"Passes an execution instruction to the keymanager. If the sender is an ACTION key and the destination address is not the identity contract itself, then the execution is immediately approved and performed. If the destination address is the identity itself, then the execution would be performed immediately only if the sender is a MANAGEMENT key. Otherwise the execution request must be approved via the `approve` method.\"},\"getClaim(bytes32)\":{\"notice\":\"Implementation of the getClaim function from the ERC-735 standard.\"},\"getClaimIdsByTopic(uint256)\":{\"notice\":\"Implementation of the getClaimIdsByTopic function from the ERC-735 standard. used to get all the claims from the specified topic\"},\"getKey(bytes32)\":{\"notice\":\"Implementation of the getKey function from the ERC-734 standard\"},\"getKeyPurposes(bytes32)\":{\"notice\":\"gets the purposes of a key\"},\"getKeysByPurpose(uint256)\":{\"notice\":\"gets all the keys with a specific purpose from an identity\"},\"initialize(address)\":{\"notice\":\"When using this contract as an implementation for a proxy, call this initializer with a delegatecall.\"},\"keyHasPurpose(bytes32,uint256)\":{\"notice\":\"Returns true if the key has MANAGEMENT purpose or the specified purpose.\"},\"removeClaim(bytes32)\":{\"notice\":\"Implementation of the removeClaim function from the ERC-735 standard Require that the msg.sender has management key. Can only be removed by the claim issuer, or the claim holder itself.\"},\"removeKey(bytes32,uint256)\":{\"notice\":\"Remove the purpose from a key.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onchainid/ClaimIssuer.sol\":\"ClaimIssuer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/onchainid/ClaimIssuer.sol\":{\"keccak256\":\"0x43d6ec93222df4a0e969a31e178d8a1819586aa179eb6f6ffe8baa0d38a90aec\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b42c3a3590d92cb413e47b0d279fe2f559678ffc17db227defe1c68a64d85196\",\"dweb:/ipfs/QmTvvnggbxCrkvLdZN3fmivuq3on5U8H2HdbokP9RpHJ2C\"]},\"contracts/onchainid/Identity.sol\":{\"keccak256\":\"0x461b8b4a8532737ebad153922938b35d9e9559dbc140250b80a1ba84165069b9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6dc4a9e89fb9cbbc7b8700fa53451ecba2886a06fe3f8300057613656b85ae49\",\"dweb:/ipfs/QmXYUvgjy4wH4udF2JxDJiSrf94ooVPptR5TNFTF3igDXL\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"contracts/onchainid/storage/Storage.sol\":{\"keccak256\":\"0x4d625d363da1a06accde20e3cddc4e7846c5010faaa846e29adfe3c3301fe92c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e08cb6e44df21c75e0796a11531de13843b13168554bb26e3904ce5120f61582\",\"dweb:/ipfs/Qmd2sp9x86Q9iLUSvZkx3Hy4ProDfRNgn2qf9irZKeTDHC\"]},\"contracts/onchainid/storage/Structs.sol\":{\"keccak256\":\"0x42270db48adff6628fac14178eece647909bd6890bcfba1742fdff8f2d371a57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c04a62167213c8960fdb8a4d5ad12730d9a00cd4d4062b45b61249e3f15e4dc8\",\"dweb:/ipfs/QmQGoMtYcJqQZUjQ3gYgzEwMDLSScXBPphTHh4T6jHCJdV\"]},\"contracts/onchainid/version/Version.sol\":{\"keccak256\":\"0x400b5649726c17f41dbb8882928d020616684f26dbdacf1acd37d2019f47d716\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c4db1bcaec955efa7e3ba4e20c8b81434241743a91ee357fbe980b4d3b43bb64\",\"dweb:/ipfs/QmaP5BaXD2aahn5QV7EvY6Jm4vfT61MHkrmjAqFmb3jmqv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"initialManagementKey","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"Approved","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimRemoved","anonymous":false},{"inputs":[{"internalType":"bytes","name":"signature","type":"bytes","indexed":true}],"type":"event","name":"ClaimRevoked","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Executed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"ExecutionFailed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"ExecutionRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"uint256","name":"purpose","type":"uint256","indexed":true},{"internalType":"uint256","name":"keyType","type":"uint256","indexed":true}],"type":"event","name":"KeyAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"uint256","name":"purpose","type":"uint256","indexed":true},{"internalType":"uint256","name":"keyType","type":"uint256","indexed":true}],"type":"event","name":"KeyRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_topic","type":"uint256"},{"internalType":"uint256","name":"_scheme","type":"uint256"},{"internalType":"address","name":"_issuer","type":"address"},{"internalType":"bytes","name":"_signature","type":"bytes"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"string","name":"_uri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addClaim","outputs":[{"internalType":"bytes32","name":"claimRequestId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"},{"internalType":"uint256","name":"_type","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addKey","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"bool","name":"_approve","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"execute","outputs":[{"internalType":"uint256","name":"executionId","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"_claimId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClaim","outputs":[{"internalType":"uint256","name":"topic","type":"uint256"},{"internalType":"uint256","name":"scheme","type":"uint256"},{"internalType":"address","name":"issuer","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string","name":"uri","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"_topic","type":"uint256"}],"stateMutability":"view","type":"function","name":"getClaimIdsByTopic","outputs":[{"internalType":"bytes32[]","name":"claimIds","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKey","outputs":[{"internalType":"uint256[]","name":"purposes","type":"uint256[]"},{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"bytes32","name":"key","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeyPurposes","outputs":[{"internalType":"uint256[]","name":"_purposes","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"view","type":"function","name":"getKeysByPurpose","outputs":[{"internalType":"bytes32[]","name":"keys","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes","name":"sig","type":"bytes"},{"internalType":"bytes32","name":"dataHash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getRecoveredAddress","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"address","name":"initialManagementKey","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes","name":"_sig","type":"bytes"}],"stateMutability":"view","type":"function","name":"isClaimRevoked","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"contract IIdentity","name":"_identity","type":"address"},{"internalType":"uint256","name":"claimTopic","type":"uint256"},{"internalType":"bytes","name":"sig","type":"bytes"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"isClaimValid","outputs":[{"internalType":"bool","name":"claimValid","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"view","type":"function","name":"keyHasPurpose","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_claimId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeClaim","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeKey","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_claimId","type":"bytes32"},{"internalType":"address","name":"_identity","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeClaim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"revokeClaimBySignature"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function","name":"revokedClaims","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"addClaim(uint256,uint256,address,bytes,bytes,string)":{"details":"See {IERC735-addClaim}.","params":{"_data":"The hash of the claim data, sitting in another location, a bit-mask, call data, or actual data based on the claim scheme.","_issuer":"The issuers identity contract address, or the address used to sign the above signature.","_scheme":"The scheme with which this claim SHOULD be verified or how it should be processed.","_signature":"Signature which is the proof that the claim issuer issued a claim of topic for this identity. it MUST be a signed message of the following structure: keccak256(abi.encode(address identityHolder_address, uint256 _ topic, bytes data))","_topic":"The type of claim","_uri":"The location of the claim, this can be HTTP links, swarm hashes, IPFS hashes, and such."},"returns":{"claimRequestId":"Returns claimRequestId: COULD be send to the approve function, to approve or reject this claim. triggers ClaimAdded event."}},"addKey(bytes32,uint256,uint256)":{"params":{"_key":"keccak256 representation of an ethereum address","_purpose":"a uint256 specifying the key type, like 1 = MANAGEMENT, 2 = ACTION, 3 = CLAIM, 4 = ENCRYPTION","_type":"type of key used, which would be a uint256 for different key types. e.g. 1 = ECDSA, 2 = RSA, etc."},"returns":{"success":"Returns TRUE if the addition was successful and FALSE if not"}},"approve(uint256,bool)":{"details":"See {IERC734-approve}."},"execute(address,uint256,bytes)":{"details":"See {IERC734-execute}.","returns":{"executionId":"to use in the approve function, to approve or reject this execution."}},"getClaim(bytes32)":{"details":"See {IERC735-getClaim}.","params":{"_claimId":"The identity of the claim i.e. keccak256(abi.encode(_issuer, _topic))"},"returns":{"data":"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .","issuer":"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .","scheme":"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .","signature":"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .","topic":"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .","uri":"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) ."}},"getClaimIdsByTopic(uint256)":{"details":"See {IERC735-getClaimIdsByTopic}.","params":{"_topic":"The identity of the claim i.e. keccak256(abi.encode(_issuer, _topic))"},"returns":{"claimIds":"Returns an array of claim IDs by topic."}},"getKey(bytes32)":{"details":"See {IERC734-getKey}.","params":{"_key":"The public key. for non-hex and long keys, its the Keccak256 hash of the key"},"returns":{"key":"Returns the full key data, if present in the identity.","keyType":"Returns the full key data, if present in the identity.","purposes":"Returns the full key data, if present in the identity."}},"getKeyPurposes(bytes32)":{"details":"See {IERC734-getKeyPurposes}.","params":{"_key":"The public key. for non-hex and long keys, its the Keccak256 hash of the key"},"returns":{"_purposes":"Returns the purposes of the specified key"}},"getKeysByPurpose(uint256)":{"details":"See {IERC734-getKeysByPurpose}.","params":{"_purpose":"a uint256[] Array of the key types, like 1 = MANAGEMENT, 2 = ACTION, 3 = CLAIM, 4 = ENCRYPTION"},"returns":{"keys":"Returns an array of public key bytes32 hold by this identity and having the specified purpose"}},"getRecoveredAddress(bytes,bytes32)":{"details":"returns the address that signed the given data","params":{"dataHash":"the data that was signed returns the address that signed dataHash and created the signature sig","sig":"the signature of the data"}},"initialize(address)":{"params":{"initialManagementKey":"The ethereum address to be set as the management key of the ONCHAINID."}},"isClaimRevoked(bytes)":{"details":"See {IClaimIssuer-isClaimRevoked}."},"isClaimValid(address,uint256,bytes,bytes)":{"details":"See {IClaimIssuer-isClaimValid}."},"keyHasPurpose(bytes32,uint256)":{"details":"See {IERC734-keyHasPurpose}."},"removeClaim(bytes32)":{"details":"See {IERC735-removeClaim}.","params":{"_claimId":"The identity of the claim i.e. keccak256(abi.encode(_issuer, _topic))"},"returns":{"success":"Returns TRUE when the claim was removed. triggers ClaimRemoved event"}},"removeKey(bytes32,uint256)":{"details":"See {IERC734-removeKey}."},"revokeClaim(bytes32,address)":{"details":"See {IClaimIssuer-revokeClaim}."},"revokeClaimBySignature(bytes)":{"details":"See {IClaimIssuer-revokeClaimBySignature}."},"version()":{"details":"Returns the string of the current version."}},"version":1},"userdoc":{"kind":"user","methods":{"addClaim(uint256,uint256,address,bytes,bytes,string)":{"notice":"Implementation of the addClaim function from the ERC-735 standard Require that the msg.sender has claim signer key."},"addKey(bytes32,uint256,uint256)":{"notice":"implementation of the addKey function of the ERC-734 standard Adds a _key to the identity. The _purpose specifies the purpose of key. Initially we propose four purposes: 1: MANAGEMENT keys, which can manage the identity 2: ACTION keys, which perform actions in this identities name (signing, logins, transactions, etc.) 3: CLAIM signer keys, used to sign claims on other identities which need to be revokable. 4: ENCRYPTION keys, used to encrypt data e.g. hold in claims. MUST only be done by keys of purpose 1, or the identity itself. If its the identity itself, the approval process will determine its approval."},"approve(uint256,bool)":{"notice":"Approves an execution. If the sender is an ACTION key and the destination address is not the identity contract itself, then the approval is authorized and the operation would be performed. If the destination address is the identity itself, then the execution would be authorized and performed only if the sender is a MANAGEMENT key."},"execute(address,uint256,bytes)":{"notice":"Passes an execution instruction to the keymanager. If the sender is an ACTION key and the destination address is not the identity contract itself, then the execution is immediately approved and performed. If the destination address is the identity itself, then the execution would be performed immediately only if the sender is a MANAGEMENT key. Otherwise the execution request must be approved via the `approve` method."},"getClaim(bytes32)":{"notice":"Implementation of the getClaim function from the ERC-735 standard."},"getClaimIdsByTopic(uint256)":{"notice":"Implementation of the getClaimIdsByTopic function from the ERC-735 standard. used to get all the claims from the specified topic"},"getKey(bytes32)":{"notice":"Implementation of the getKey function from the ERC-734 standard"},"getKeyPurposes(bytes32)":{"notice":"gets the purposes of a key"},"getKeysByPurpose(uint256)":{"notice":"gets all the keys with a specific purpose from an identity"},"initialize(address)":{"notice":"When using this contract as an implementation for a proxy, call this initializer with a delegatecall."},"keyHasPurpose(bytes32,uint256)":{"notice":"Returns true if the key has MANAGEMENT purpose or the specified purpose."},"removeClaim(bytes32)":{"notice":"Implementation of the removeClaim function from the ERC-735 standard Require that the msg.sender has management key. Can only be removed by the claim issuer, or the claim holder itself."},"removeKey(bytes32,uint256)":{"notice":"Remove the purpose from a key."}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onchainid/ClaimIssuer.sol":"ClaimIssuer"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onchainid/ClaimIssuer.sol":{"keccak256":"0x43d6ec93222df4a0e969a31e178d8a1819586aa179eb6f6ffe8baa0d38a90aec","urls":["bzz-raw://b42c3a3590d92cb413e47b0d279fe2f559678ffc17db227defe1c68a64d85196","dweb:/ipfs/QmTvvnggbxCrkvLdZN3fmivuq3on5U8H2HdbokP9RpHJ2C"],"license":"GPL-3.0"},"contracts/onchainid/Identity.sol":{"keccak256":"0x461b8b4a8532737ebad153922938b35d9e9559dbc140250b80a1ba84165069b9","urls":["bzz-raw://6dc4a9e89fb9cbbc7b8700fa53451ecba2886a06fe3f8300057613656b85ae49","dweb:/ipfs/QmXYUvgjy4wH4udF2JxDJiSrf94ooVPptR5TNFTF3igDXL"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"contracts/onchainid/storage/Storage.sol":{"keccak256":"0x4d625d363da1a06accde20e3cddc4e7846c5010faaa846e29adfe3c3301fe92c","urls":["bzz-raw://e08cb6e44df21c75e0796a11531de13843b13168554bb26e3904ce5120f61582","dweb:/ipfs/Qmd2sp9x86Q9iLUSvZkx3Hy4ProDfRNgn2qf9irZKeTDHC"],"license":"GPL-3.0"},"contracts/onchainid/storage/Structs.sol":{"keccak256":"0x42270db48adff6628fac14178eece647909bd6890bcfba1742fdff8f2d371a57","urls":["bzz-raw://c04a62167213c8960fdb8a4d5ad12730d9a00cd4d4062b45b61249e3f15e4dc8","dweb:/ipfs/QmQGoMtYcJqQZUjQ3gYgzEwMDLSScXBPphTHh4T6jHCJdV"],"license":"GPL-3.0"},"contracts/onchainid/version/Version.sol":{"keccak256":"0x400b5649726c17f41dbb8882928d020616684f26dbdacf1acd37d2019f47d716","urls":["bzz-raw://c4db1bcaec955efa7e3ba4e20c8b81434241743a91ee357fbe980b4d3b43bb64","dweb:/ipfs/QmaP5BaXD2aahn5QV7EvY6Jm4vfT61MHkrmjAqFmb3jmqv"],"license":"GPL-3.0"}},"version":1},"id":112} \ No newline at end of file diff --git a/out/ClaimIssuerTrick.sol/ClaimIssuerTrick.json b/out/ClaimIssuerTrick.sol/ClaimIssuerTrick.json new file mode 100644 index 0000000..b8bfadf --- /dev/null +++ b/out/ClaimIssuerTrick.sol/ClaimIssuerTrick.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"isClaimValid","inputs":[{"name":"_identity","type":"address","internalType":"address"},{"name":"claimTopic","type":"uint256","internalType":"uint256"},{"name":"sig","type":"bytes","internalType":"bytes"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506101c6806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c0969a6e14610030575b600080fd5b61004361003e3660046100f8565b610057565b604051901515815260200160405180910390f35b60006001600160a01b0387163303610071575060016100a5565b60405162461bcd60e51b815260206004820152600560248201526422a92927a960d91b604482015260640160405180910390fd5b9695505050505050565b60008083601f8401126100c157600080fd5b50813567ffffffffffffffff8111156100d957600080fd5b6020830191508360208285010111156100f157600080fd5b9250929050565b6000806000806000806080878903121561011157600080fd5b86356001600160a01b038116811461012857600080fd5b955060208701359450604087013567ffffffffffffffff8082111561014c57600080fd5b6101588a838b016100af565b9096509450606089013591508082111561017157600080fd5b5061017e89828a016100af565b979a969950949750929593949250505056fea26469706673582212207edf010cfbcd81963cbf847099fef5353da2411f86556e324e990eac121b2dc864736f6c63430008180033","sourceMap":"36:307:16:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c0969a6e14610030575b600080fd5b61004361003e3660046100f8565b610057565b604051901515815260200160405180910390f35b60006001600160a01b0387163303610071575060016100a5565b60405162461bcd60e51b815260206004820152600560248201526422a92927a960d91b604482015260640160405180910390fd5b9695505050505050565b60008083601f8401126100c157600080fd5b50813567ffffffffffffffff8111156100d957600080fd5b6020830191508360208285010111156100f157600080fd5b9250929050565b6000806000806000806080878903121561011157600080fd5b86356001600160a01b038116811461012857600080fd5b955060208701359450604087013567ffffffffffffffff8082111561014c57600080fd5b6101588a838b016100af565b9096509450606089013591508082111561017157600080fd5b5061017e89828a016100af565b979a969950949750929593949250505056fea26469706673582212207edf010cfbcd81963cbf847099fef5353da2411f86556e324e990eac121b2dc864736f6c63430008180033","sourceMap":"36:307:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:273;;;;;;:::i;:::-;;:::i;:::-;;;1496:14:165;;1489:22;1471:41;;1459:2;1444:18;68:273:16;;;;;;;;228:4;-1:-1:-1;;;;;248:23:16;;:10;:23;244:65;;-1:-1:-1;294:4:16;287:11;;244:65;319:15;;-1:-1:-1;;;319:15:16;;1725:2:165;319:15:16;;;1707:21:165;1764:1;1744:18;;;1737:29;-1:-1:-1;;;1782:18:165;;;1775:35;1827:18;;319:15:16;;;;;;;68:273;;;;;;;;;:::o;14:347:165:-;65:8;75:6;129:3;122:4;114:6;110:17;106:27;96:55;;147:1;144;137:12;96:55;-1:-1:-1;170:20:165;;213:18;202:30;;199:50;;;245:1;242;235:12;199:50;282:4;274:6;270:17;258:29;;334:3;327:4;318:6;310;306:19;302:30;299:39;296:59;;;351:1;348;341:12;296:59;14:347;;;;;:::o;366:960::-;474:6;482;490;498;506;514;567:3;555:9;546:7;542:23;538:33;535:53;;;584:1;581;574:12;535:53;610:23;;-1:-1:-1;;;;;662:31:165;;652:42;;642:70;;708:1;705;698:12;642:70;731:5;-1:-1:-1;783:2:165;768:18;;755:32;;-1:-1:-1;838:2:165;823:18;;810:32;861:18;891:14;;;888:34;;;918:1;915;908:12;888:34;957:58;1007:7;998:6;987:9;983:22;957:58;:::i;:::-;1034:8;;-1:-1:-1;931:84:165;-1:-1:-1;1122:2:165;1107:18;;1094:32;;-1:-1:-1;1138:16:165;;;1135:36;;;1167:1;1164;1157:12;1135:36;;1206:60;1258:7;1247:8;1236:9;1232:24;1206:60;:::i;:::-;366:960;;;;-1:-1:-1;366:960:165;;-1:-1:-1;366:960:165;;1285:8;;366:960;-1:-1:-1;;;366:960:165:o","linkReferences":{}},"methodIdentifiers":{"isClaimValid(address,uint256,bytes,bytes)":"c0969a6e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sig\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"isClaimValid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/ClaimIssuerTrick.sol\":\"ClaimIssuerTrick\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/ClaimIssuerTrick.sol\":{\"keccak256\":\"0xc302d227a61d7a048363917bab7308cb2bde0f43838b40a446cd3af55e0ee998\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://44f34a507dacb577809ee722b958a974407c92559e4a911014635dd50bc9ec51\",\"dweb:/ipfs/QmWXBQdNaiH6d5p4gWbgS8kMmemqKjZh7QbgxAoHub9E6M\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_identity","type":"address"},{"internalType":"uint256","name":"claimTopic","type":"uint256"},{"internalType":"bytes","name":"sig","type":"bytes"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"isClaimValid","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/ClaimIssuerTrick.sol":"ClaimIssuerTrick"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/ClaimIssuerTrick.sol":{"keccak256":"0xc302d227a61d7a048363917bab7308cb2bde0f43838b40a446cd3af55e0ee998","urls":["bzz-raw://44f34a507dacb577809ee722b958a974407c92559e4a911014635dd50bc9ec51","dweb:/ipfs/QmWXBQdNaiH6d5p4gWbgS8kMmemqKjZh7QbgxAoHub9E6M"],"license":"GPL-3.0"}},"version":1},"id":16} \ No newline at end of file diff --git a/out/ClaimTopicsRegistry.sol/ClaimTopicsRegistry.json b/out/ClaimTopicsRegistry.sol/ClaimTopicsRegistry.json new file mode 100644 index 0000000..45a670b --- /dev/null +++ b/out/ClaimTopicsRegistry.sol/ClaimTopicsRegistry.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addClaimTopic","inputs":[{"name":"_claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getClaimTopics","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"init","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeClaimTopic","inputs":[{"name":"_claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ClaimTopicAdded","inputs":[{"name":"claimTopic","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimTopicRemoved","inputs":[{"name":"claimTopic","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610750806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063c7b225511161005b578063c7b22551146100de578063df09d604146100f1578063e1c7392a14610106578063f2fde38b1461010e57600080fd5b80630829784614610082578063715018a6146100975780638da5cb5b1461009f575b600080fd5b61009561009036600461063a565b610121565b005b61009561020a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b0390911681526020015b60405180910390f35b6100956100ec36600461063a565b61021e565b6100f9610367565b6040516100d59190610653565b6100956103bf565b61009561011c366004610697565b6104ce565b61012961050c565b60008054905b8181101561020557826000828154811061014b5761014b6106c7565b9060005260206000200154036101fd5760006101686001846106dd565b81548110610178576101786106c7565b906000526020600020015460008281548110610196576101966106c7565b906000526020600020018190555060008054806101b5576101b5610704565b60019003818190600052602060002001600090559055827f0b1381093c776453c1bbe54fd68be1b235c65db61d099cb50d194b2991e0eec560405160405180910390a2505050565b60010161012f565b505050565b61021261050c565b61021c6000610567565b565b61022661050c565b600054600f81106102895760405162461bcd60e51b815260206004820152602260248201527f63616e6e6f742072657175697265206d6f7265207468616e20313520746f7069604482015261637360f01b60648201526084015b60405180910390fd5b60005b818110156103085782600082815481106102a8576102a86106c7565b9060005260206000200154036103005760405162461bcd60e51b815260206004820152601960248201527f636c61696d546f70696320616c726561647920657869737473000000000000006044820152606401610280565b60010161028c565b50600080546001810182558180527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630183905560405183917f01c928b7f7ade2949e92366aa9454dbef3a416b731cf6ec786ba9595bbd814d691a25050565b606060008054806020026020016040519081016040528092919081815260200182805480156103b557602002820191906000526020600020905b8154815260200190600101908083116103a1575b5050505050905090565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156104055750825b905060008267ffffffffffffffff1660011480156104225750303b155b905081158015610430575080155b1561044e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561047857845460ff60401b1916600160401b1785555b610481336105d8565b83156104c757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6104d661050c565b6001600160a01b03811661050057604051631e4fbdf760e01b815260006004820152602401610280565b61050981610567565b50565b3361053e7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461021c5760405163118cdaa760e01b8152336004820152602401610280565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6105e06105e9565b61050981610632565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661021c57604051631afcd79f60e31b815260040160405180910390fd5b6104d66105e9565b60006020828403121561064c57600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b8181101561068b5783518352928401929184019160010161066f565b50909695505050505050565b6000602082840312156106a957600080fd5b81356001600160a01b03811681146106c057600080fd5b9392505050565b634e487b7160e01b600052603260045260246000fd5b818103818111156106fe57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220d2a8a4e17538f99f50be357adfb4a72113123fb919a4d633da862a75bbdcba0864736f6c63430008180033","sourceMap":"4003:1357:75:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063c7b225511161005b578063c7b22551146100de578063df09d604146100f1578063e1c7392a14610106578063f2fde38b1461010e57600080fd5b80630829784614610082578063715018a6146100975780638da5cb5b1461009f575b600080fd5b61009561009036600461063a565b610121565b005b61009561020a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b0390911681526020015b60405180910390f35b6100956100ec36600461063a565b61021e565b6100f9610367565b6040516100d59190610653565b6100956103bf565b61009561011c366004610697565b6104ce565b61012961050c565b60008054905b8181101561020557826000828154811061014b5761014b6106c7565b9060005260206000200154036101fd5760006101686001846106dd565b81548110610178576101786106c7565b906000526020600020015460008281548110610196576101966106c7565b906000526020600020018190555060008054806101b5576101b5610704565b60019003818190600052602060002001600090559055827f0b1381093c776453c1bbe54fd68be1b235c65db61d099cb50d194b2991e0eec560405160405180910390a2505050565b60010161012f565b505050565b61021261050c565b61021c6000610567565b565b61022661050c565b600054600f81106102895760405162461bcd60e51b815260206004820152602260248201527f63616e6e6f742072657175697265206d6f7265207468616e20313520746f7069604482015261637360f01b60648201526084015b60405180910390fd5b60005b818110156103085782600082815481106102a8576102a86106c7565b9060005260206000200154036103005760405162461bcd60e51b815260206004820152601960248201527f636c61696d546f70696320616c726561647920657869737473000000000000006044820152606401610280565b60010161028c565b50600080546001810182558180527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630183905560405183917f01c928b7f7ade2949e92366aa9454dbef3a416b731cf6ec786ba9595bbd814d691a25050565b606060008054806020026020016040519081016040528092919081815260200182805480156103b557602002820191906000526020600020905b8154815260200190600101908083116103a1575b5050505050905090565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156104055750825b905060008267ffffffffffffffff1660011480156104225750303b155b905081158015610430575080155b1561044e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561047857845460ff60401b1916600160401b1785555b610481336105d8565b83156104c757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6104d661050c565b6001600160a01b03811661050057604051631e4fbdf760e01b815260006004820152602401610280565b61050981610567565b50565b3361053e7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461021c5760405163118cdaa760e01b8152336004820152602401610280565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6105e06105e9565b61050981610632565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661021c57604051631afcd79f60e31b815260040160405180910390fd5b6104d66105e9565b60006020828403121561064c57600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b8181101561068b5783518352928401929184019160010161066f565b50909695505050505050565b6000602082840312156106a957600080fd5b81356001600160a01b03811681146106c057600080fd5b9392505050565b634e487b7160e01b600052603260045260246000fd5b818103818111156106fe57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220d2a8a4e17538f99f50be357adfb4a72113123fb919a4d633da862a75bbdcba0864736f6c63430008180033","sourceMap":"4003:1357:75:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4747:421;;;;;;:::i;:::-;;:::i;:::-;;3155:101:136;;;:::i;2441:144::-;1313:22;2570:8;2441:144;;-1:-1:-1;;;;;2570:8:136;;;345:51:165;;333:2;318:18;2441:144:136;;;;;;;;4252:415:75;;;;;;:::i;:::-;;:::i;5246:112::-;;;:::i;:::-;;;;;;;:::i;4095:80::-;;;:::i;3405:215:136:-;;;;;;:::i;:::-;;:::i;4747:421:75:-;2334:13:136;:11;:13::i;:::-;4832:14:75::1;4849:19:::0;;;4878:284:::1;4902:6;4898:1;:10;4878:284;;;4952:11;4933:12;4946:1;4933:15;;;;;;;;:::i;:::-;;;;;;;;;:30:::0;4929:223:::1;;5001:12;5014:10;5023:1;5014:6:::0;:10:::1;:::i;:::-;5001:24;;;;;;;;:::i;:::-;;;;;;;;;4983:12;4996:1;4983:15;;;;;;;;:::i;:::-;;;;;;;;:42;;;;5043:12;:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5102:11;5084:30;;;;;;;;;;4878:284;4822:346;4747:421:::0;:::o;4929:223::-:1;4910:3;;4878:284;;;;4822:346;4747:421:::0;:::o;3155:101:136:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;4252:415:75:-;2334:13:136;:11;:13::i;:::-;4334:14:75::1;4351:19:::0;4397:2:::1;4388:11:::0;::::1;4380:58;;;::::0;-1:-1:-1;;;4380:58:75;;2031:2:165;4380:58:75::1;::::0;::::1;2013:21:165::0;2070:2;2050:18;;;2043:30;2109:34;2089:18;;;2082:62;-1:-1:-1;;;2160:18:165;;;2153:32;2202:19;;4380:58:75::1;;;;;;;;;4453:9;4448:130;4472:6;4468:1;:10;4448:130;;;4526:11;4507:12;4520:1;4507:15;;;;;;;;:::i;:::-;;;;;;;;;:30:::0;4499:68:::1;;;::::0;-1:-1:-1;;;4499:68:75;;2434:2:165;4499:68:75::1;::::0;::::1;2416:21:165::0;2473:2;2453:18;;;2446:30;2512:27;2492:18;;;2485:55;2557:18;;4499:68:75::1;2232:349:165::0;4499:68:75::1;4480:3;;4448:130;;;-1:-1:-1::0;4587:12:75::1;:30:::0;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;;4632:28:::1;::::0;4605:11;;4632:28:::1;::::0;::::1;4324:343;4252:415:::0;:::o;5246:112::-;5304:16;5339:12;5332:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5246:112;:::o;4095:80::-;8870:21:137;4302:15;;-1:-1:-1;;;4302:15:137;;;;4301:16;;4348:14;;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;:16;;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:137;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:137;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:137;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:137;-1:-1:-1;;;5013:22:137;;;4979:67;4142:26:75::1;4157:10;4142:14;:26::i;:::-;5070:14:137::0;5066:101;;;5100:23;;-1:-1:-1;;;;5100:23:137;;;5142:14;;-1:-1:-1;2739:50:165;;5142:14:137;;2727:2:165;2712:18;5142:14:137;;;;;;;5066:101;4092:1081;;;;;4095:80:75:o;3405:215:136:-;2334:13;:11;:13::i;:::-;-1:-1:-1;;;;;3489:22:136;::::1;3485:91;;3534:31;::::0;-1:-1:-1;;;3534:31:136;;3562:1:::1;3534:31;::::0;::::1;345:51:165::0;318:18;;3534:31:136::1;199:203:165::0;3485:91:136::1;3585:28;3604:8;3585:18;:28::i;:::-;3405:215:::0;:::o;2658:162::-;966:10:138;2717:7:136;1313:22;2570:8;-1:-1:-1;;;;;2570:8:136;;2441:144;2717:7;-1:-1:-1;;;;;2717:23:136;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:136;;966:10:138;2763:40:136;;;345:51:165;318:18;;2763:40:136;199:203:165;3774:248:136;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:136;;-1:-1:-1;;;;;3941:19:136;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;1847:127::-;6931:20:137;:18;:20::i;:::-;1929:38:136::1;1954:12;1929:24;:38::i;7084:141:137:-:0;8870:21;8560:40;-1:-1:-1;;;8560:40:137;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:137;;;;;;;;;;;1980:235:136;6931:20:137;:18;:20::i;14:180:165:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:165;;14:180;-1:-1:-1;14:180:165:o;407:632::-;578:2;630:21;;;700:13;;603:18;;;722:22;;;549:4;;578:2;801:15;;;;775:2;760:18;;;549:4;844:169;858:6;855:1;852:13;844:169;;;919:13;;907:26;;988:15;;;;953:12;;;;880:1;873:9;844:169;;;-1:-1:-1;1030:3:165;;407:632;-1:-1:-1;;;;;;407:632:165:o;1044:286::-;1103:6;1156:2;1144:9;1135:7;1131:23;1127:32;1124:52;;;1172:1;1169;1162:12;1124:52;1198:23;;-1:-1:-1;;;;;1250:31:165;;1240:42;;1230:70;;1296:1;1293;1286:12;1230:70;1319:5;1044:286;-1:-1:-1;;;1044:286:165:o;1335:127::-;1396:10;1391:3;1387:20;1384:1;1377:31;1427:4;1424:1;1417:15;1451:4;1448:1;1441:15;1467:225;1534:9;;;1555:11;;;1552:134;;;1608:10;1603:3;1599:20;1596:1;1589:31;1643:4;1640:1;1633:15;1671:4;1668:1;1661:15;1552:134;1467:225;;;;:::o;1697:127::-;1758:10;1753:3;1749:20;1746:1;1739:31;1789:4;1786:1;1779:15;1813:4;1810:1;1803:15","linkReferences":{}},"methodIdentifiers":{"addClaimTopic(uint256)":"c7b22551","getClaimTopics()":"df09d604","init()":"e1c7392a","owner()":"8da5cb5b","removeClaimTopic(uint256)":"08297846","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"ClaimTopicAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"ClaimTopicRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"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\":[{\"internalType\":\"uint256\",\"name\":\"_claimTopic\",\"type\":\"uint256\"}],\"name\":\"addClaimTopic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getClaimTopics\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimTopic\",\"type\":\"uint256\"}],\"name\":\"removeClaimTopic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"addClaimTopic(uint256)\":{\"details\":\"See {IClaimTopicsRegistry-addClaimTopic}.\"},\"getClaimTopics()\":{\"details\":\"See {IClaimTopicsRegistry-getClaimTopics}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeClaimTopic(uint256)\":{\"details\":\"See {IClaimTopicsRegistry-removeClaimTopic}.\"},\"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.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ClaimTopicAdded(uint256)\":{\"notice\":\"this event is emitted when a claim topic has been added to the ClaimTopicsRegistry the event is emitted by the 'addClaimTopic' function `claimTopic` is the required claim added to the Claim Topics Registry\"},\"ClaimTopicRemoved(uint256)\":{\"notice\":\"this event is emitted when a claim topic has been removed from the ClaimTopicsRegistry the event is emitted by the 'removeClaimTopic' function `claimTopic` is the required claim removed from the Claim Topics Registry\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/registry/implementation/ClaimTopicsRegistry.sol\":\"ClaimTopicsRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/registry/implementation/ClaimTopicsRegistry.sol\":{\"keccak256\":\"0xd755f9a506bb6b97dc79c85c3c8a6da2dae7d32524d077269475bd4caaaac561\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://38071e257875247acee6fafdaad061662b76cc03178deb0f6ddc46b3f99108b6\",\"dweb:/ipfs/QmW9AJKqR4bkdiiTrFQ5hgKLtwF9EdR7iFoiubXF3aYGEc\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/storage/CTRStorage.sol\":{\"keccak256\":\"0x159af1d4b2f6b3f300dd548b7de251be01f2f7a3603cb56d3fe9d4700e033b07\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5c833924bb820c292fca966261bddb7501065d441ba82279afee1e447a127af4\",\"dweb:/ipfs/Qmf3gXJMjGwJR2MHsT5pszQoReemcjuEw2CzeSPKRnWkXC\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256","indexed":true}],"type":"event","name":"ClaimTopicAdded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256","indexed":true}],"type":"event","name":"ClaimTopicRemoved","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_claimTopic","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addClaimTopic"},{"inputs":[],"stateMutability":"view","type":"function","name":"getClaimTopics","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"init"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_claimTopic","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeClaimTopic"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"addClaimTopic(uint256)":{"details":"See {IClaimTopicsRegistry-addClaimTopic}."},"getClaimTopics()":{"details":"See {IClaimTopicsRegistry-getClaimTopics}."},"owner()":{"details":"Returns the address of the current owner."},"removeClaimTopic(uint256)":{"details":"See {IClaimTopicsRegistry-removeClaimTopic}."},"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."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/registry/implementation/ClaimTopicsRegistry.sol":"ClaimTopicsRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/registry/implementation/ClaimTopicsRegistry.sol":{"keccak256":"0xd755f9a506bb6b97dc79c85c3c8a6da2dae7d32524d077269475bd4caaaac561","urls":["bzz-raw://38071e257875247acee6fafdaad061662b76cc03178deb0f6ddc46b3f99108b6","dweb:/ipfs/QmW9AJKqR4bkdiiTrFQ5hgKLtwF9EdR7iFoiubXF3aYGEc"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/storage/CTRStorage.sol":{"keccak256":"0x159af1d4b2f6b3f300dd548b7de251be01f2f7a3603cb56d3fe9d4700e033b07","urls":["bzz-raw://5c833924bb820c292fca966261bddb7501065d441ba82279afee1e447a127af4","dweb:/ipfs/Qmf3gXJMjGwJR2MHsT5pszQoReemcjuEw2CzeSPKRnWkXC"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"}},"version":1},"id":75} \ No newline at end of file diff --git a/out/ClaimTopicsRegistryProxy.sol/ClaimTopicsRegistryProxy.json b/out/ClaimTopicsRegistryProxy.sol/ClaimTopicsRegistryProxy.json new file mode 100644 index 0000000..624cb06 --- /dev/null +++ b/out/ClaimTopicsRegistryProxy.sol/ClaimTopicsRegistryProxy.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"implementationAuthority","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"getImplementationAuthority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setImplementationAuthority","inputs":[{"name":"_newImplementationAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ImplementationAuthoritySet","inputs":[{"name":"_implementationAuthority","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516108fc3803806108fc83398101604081905261002f9161022a565b6001600160a01b03811661008a5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6100a0816000805160206108dc83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a260006100ec6000805160206108dc8339815191525490565b6001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014d919061022a565b60408051600481526024810182526020810180516001600160e01b03166370e39c9560e11b17905290519192506000916001600160a01b038416916101919161025a565b600060405180830381855af49150503d80600081146101cc576040519150601f19603f3d011682016040523d82523d6000602084013e6101d1565b606091505b50509050806102225760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e000000000000000000006044820152606401610081565b505050610289565b60006020828403121561023c57600080fd5b81516001600160a01b038116811461025357600080fd5b9392505050565b6000825160005b8181101561027b5760208186018101518583015201610261565b506000920191825250919050565b610644806102986000396000f3fe6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca264697066735822122040d5d3640bec242b642b94ef000a34014b5bb835c9537e7060464697004ec5eb64736f6c63430008180033821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc","sourceMap":"3873:1316:64:-:0;;;3931:577;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3994:37:64;;3986:81;;;;-1:-1:-1;;;3986:81:64;;511:2:165;3986:81:64;;;493:21:165;550:2;530:18;;;523:30;589:33;569:18;;;562:61;640:18;;3986:81:64;;;;;;;;;4077:54;4107:23;-1:-1:-1;;;;;;;;;;;6099:99:63;5929:285;4077:54:64;4146:51;;-1:-1:-1;;;;;4146:51:64;;;;;;;;4208:13;4254:28;-1:-1:-1;;;;;;;;;;;5598:73:63;;5391:323;4254:28:64;-1:-1:-1;;;;;4224:81:64;;:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4415:33;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4415:33:64;-1:-1:-1;;;4415:33:64;;;4396:53;;4208:99;;-1:-1:-1;4378:12:64;;-1:-1:-1;;;;;4396:18:64;;;:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4377:72;;;4467:7;4459:42;;;;-1:-1:-1;;;4459:42:64;;1288:2:165;4459:42:64;;;1270:21:165;1327:2;1307:18;;;1300:30;1366:24;1346:18;;;1339:52;1408:18;;4459:42:64;1086:346:165;4459:42:64;3976:532;;3931:577;3873:1316;;14:290:165;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:165;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:165:o;669:412::-;798:3;836:6;830:13;861:1;871:129;885:6;882:1;879:13;871:129;;;983:4;967:14;;;963:25;;957:32;944:11;;;937:53;900:12;871:129;;;-1:-1:-1;1055:1:165;1019:16;;1044:13;;;-1:-1:-1;1019:16:165;669:412;-1:-1:-1;669:412:165:o;1086:346::-;3873:1316:64;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca264697066735822122040d5d3640bec242b642b94ef000a34014b5bb835c9537e7060464697004ec5eb64736f6c63430008180033","sourceMap":"3873:1316:64:-:0;;;;;;;;;;;;;;;;;;;;;;;4605:13;4651:28;-1:-1:-1;;;;;;;;;;;5598:73:63;;5391:323;4651:28:64;-1:-1:-1;;;;;4621:81:64;;:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4605:99;;4817:14;4812:3;4807;4794:38;4923:1;4920;4904:14;4899:3;4892:5;4884;4877;4873:17;4860:65;4951:16;5001:5;4998:1;4995;4980:27;5027:7;5047:55;;;;5151:5;5148:1;5141:16;5047:55;5082:5;5079:1;5072:16;5020:151;;5391:323:63;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;5598:73:63;5391:323;;-1:-1:-1;;;;;570:32:165;;;552:51;;540:2;525:18;5391:323:63;;;;;;;4141:1174;;;;;;;;;;-1:-1:-1;4141:1174:63;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;5598:73:63;-1:-1:-1;;;;;4250:42:63;:10;-1:-1:-1;;;;;4250:42:63;;4242:100;;;;-1:-1:-1;;;4242:100:63;;1068:2:165;4242:100:63;;;1050:21:165;1107:2;1087:18;;;1080:30;1146:34;1126:18;;;1119:62;-1:-1:-1;;;1197:18:165;;;1190:43;1250:19;;4242:100:63;;;;;;;;;-1:-1:-1;;;;;4360:41:63;;4352:85;;;;-1:-1:-1;;;4352:85:63;;1482:2:165;4352:85:63;;;1464:21:165;1521:2;1501:18;;;1494:30;1560:33;1540:18;;;1533:61;1611:18;;4352:85:63;1280:355:165;4352:85:63;4564:1;-1:-1:-1;;;;;4468:98:63;4498:27;-1:-1:-1;;;;;4468:82:63;;:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4468:98:63;;;:210;;;;;4676:1;-1:-1:-1;;;;;4582:96:63;4612:27;-1:-1:-1;;;;;4582:80:63;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4582:96:63;;;4468:210;:321;;;;;4787:1;-1:-1:-1;;;;;4694:95:63;4724:27;-1:-1:-1;;;;;4694:79:63;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4694:95:63;;;4468:321;:433;;;;;4899:1;-1:-1:-1;;;;;4805:96:63;4835:27;-1:-1:-1;;;;;4805:80:63;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4805:96:63;;;4468:433;:544;;;;;5010:1;-1:-1:-1;;;;;4917:95:63;4947:27;-1:-1:-1;;;;;4917:79:63;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4917:95:63;;;4468:544;:656;;;;;5122:1;-1:-1:-1;;;;;5028:96:63;5058:27;-1:-1:-1;;;;;5028:80:63;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5028:96:63;;;4468:656;4447:723;;;;-1:-1:-1;;;4447:723:63;;1842:2:165;4447:723:63;;;1824:21:165;;;1861:18;;;1854:30;1920:34;1900:18;;;1893:62;1972:18;;4447:723:63;1640:356:165;4447:723:63;5180:58;5210:27;-1:-1:-1;;;;;;;;;;;6099:99:63;5929:285;5180:58;5253:55;;-1:-1:-1;;;;;5253:55:63;;;;;;;;4141:1174;:::o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:251::-;220:6;273:2;261:9;252:7;248:23;244:32;241:52;;;289:1;286;279:12;241:52;321:9;315:16;340:31;365:5;340:31;:::i;:::-;390:5;150:251;-1:-1:-1;;;150:251:165:o;614:247::-;673:6;726:2;714:9;705:7;701:23;697:32;694:52;;;742:1;739;732:12;694:52;781:9;768:23;800:31;825:5;800:31;:::i","linkReferences":{}},"methodIdentifiers":{"getImplementationAuthority()":"2d5f1187","setImplementationAuthority(address)":"92dd9d65"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementationAuthority\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_implementationAuthority\",\"type\":\"address\"}],\"name\":\"ImplementationAuthoritySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"getImplementationAuthority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newImplementationAuthority\",\"type\":\"address\"}],\"name\":\"setImplementationAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"getImplementationAuthority()\":{\"details\":\"See {IProxy-getImplementationAuthority}.\"},\"setImplementationAuthority(address)\":{\"details\":\"See {IProxy-setImplementationAuthority}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ImplementationAuthoritySet(address)\":{\"notice\":\"events\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/proxy/ClaimTopicsRegistryProxy.sol\":\"ClaimTopicsRegistryProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/proxy/AbstractProxy.sol\":{\"keccak256\":\"0x25dca1861c6dd72695b0b509da29cfb0fcce7c1ac1df0a0266f444596affc3f4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://221fb9fd02e0db96ff0ce584de79edefeb3b66a820c4dfab788147c0d32743fc\",\"dweb:/ipfs/QmcTatYqxSryAPkrqpvy3A9eFNoa13WjE48jitjBYwB7wq\"]},\"contracts/erc3643/proxy/ClaimTopicsRegistryProxy.sol\":{\"keccak256\":\"0x9023e92f81437cfe43509a1335d16265e50419bc236a93e44cca721b2c7d8fec\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1e0701d01d53199a86fd13d31443b305fb4f9ddc37b879a846bf64cb88be59e3\",\"dweb:/ipfs/QmdjPLnp5fwgbn4JNdUYpoPcQ4RD48P9XpVtgTAN7KY3zq\"]},\"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol\":{\"keccak256\":\"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa\",\"dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc\"]},\"contracts/erc3643/proxy/interface/IProxy.sol\":{\"keccak256\":\"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65\",\"dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"implementationAuthority","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"_implementationAuthority","type":"address","indexed":true}],"type":"event","name":"ImplementationAuthoritySet","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"getImplementationAuthority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_newImplementationAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setImplementationAuthority"}],"devdoc":{"kind":"dev","methods":{"getImplementationAuthority()":{"details":"See {IProxy-getImplementationAuthority}."},"setImplementationAuthority(address)":{"details":"See {IProxy-setImplementationAuthority}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/proxy/ClaimTopicsRegistryProxy.sol":"ClaimTopicsRegistryProxy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/proxy/AbstractProxy.sol":{"keccak256":"0x25dca1861c6dd72695b0b509da29cfb0fcce7c1ac1df0a0266f444596affc3f4","urls":["bzz-raw://221fb9fd02e0db96ff0ce584de79edefeb3b66a820c4dfab788147c0d32743fc","dweb:/ipfs/QmcTatYqxSryAPkrqpvy3A9eFNoa13WjE48jitjBYwB7wq"],"license":"GPL-3.0"},"contracts/erc3643/proxy/ClaimTopicsRegistryProxy.sol":{"keccak256":"0x9023e92f81437cfe43509a1335d16265e50419bc236a93e44cca721b2c7d8fec","urls":["bzz-raw://1e0701d01d53199a86fd13d31443b305fb4f9ddc37b879a846bf64cb88be59e3","dweb:/ipfs/QmdjPLnp5fwgbn4JNdUYpoPcQ4RD48P9XpVtgTAN7KY3zq"],"license":"GPL-3.0"},"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol":{"keccak256":"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5","urls":["bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa","dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc"],"license":"GPL-3.0"},"contracts/erc3643/proxy/interface/IProxy.sol":{"keccak256":"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536","urls":["bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65","dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"}},"version":1},"id":64} \ No newline at end of file diff --git a/out/ConditionalTransferModule.sol/ConditionalTransferModule.json b/out/ConditionalTransferModule.sol/ConditionalTransferModule.json new file mode 100644 index 0000000..4ce1179 --- /dev/null +++ b/out/ConditionalTransferModule.sol/ConditionalTransferModule.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"approveTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchApproveTransfers","inputs":[{"name":"_from","type":"address[]","internalType":"address[]"},{"name":"_to","type":"address[]","internalType":"address[]"},{"name":"_amount","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchUnApproveTransfers","inputs":[{"name":"_from","type":"address[]","internalType":"address[]"},{"name":"_to","type":"address[]","internalType":"address[]"},{"name":"_amount","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"calculateTransferHash","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"canComplianceBind","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getTransferApprovals","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_transferHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isComplianceBound","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPlugAndPlay","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"isTransferApproved","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_transferHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleBurnAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleCheck","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleMintAction","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleTransferAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"unApproveTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ApprovalRemoved","inputs":[{"name":"_from","type":"address","indexed":false,"internalType":"address"},{"name":"_to","type":"address","indexed":false,"internalType":"address"},{"name":"_amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ComplianceBound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ComplianceUnbound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TransferApproved","inputs":[{"name":"_from","type":"address","indexed":false,"internalType":"address"},{"name":"_to","type":"address","indexed":false,"internalType":"address"},{"name":"_amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610e6d806100206000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80634cf4d295116100a2578063bdf5a41511610071578063bdf5a415146102a6578063e2cb5c34146102dc578063e6f5e807146102ef578063f104a8c91461021a578063f3850dbf146102f657600080fd5b80634cf4d29514610240578063825808051461026c578063933865191461027f578063bcc210531461029257600080fd5b8063202a6376116100de578063202a63761461019f5780632cb7e1ec14610207578063372491a21461021a5780634a9325441461022d57600080fd5b8063013b7ce4146101105780630694a5fb1461013857806306fdde031461014d5780631c7a17931461018c575b600080fd5b61012361011e366004610b2d565b610309565b60405190151581526020015b60405180910390f35b61014b610146366004610b80565b61038a565b005b604080518082018252601981527f436f6e646974696f6e616c5472616e736665724d6f64756c65000000000000006020820152905161012f9190610ba4565b61014b61019a366004610bf3565b610489565b6101f96101ad366004610b2d565b604080516001600160a01b0395861660208083019190915294861681830152606081019390935293166080808301919091528351808303909101815260a0909101909252815191012090565b60405190815260200161012f565b61014b610215366004610bf3565b610640565b61014b610228366004610c34565b610704565b61014b61023b366004610b80565b610737565b61012361024e366004610b80565b6001600160a01b031660009081526020819052604090205460ff1690565b61014b61027a366004610bf3565b61086a565b61012361028d366004610c34565b61096f565b6101236102a0366004610b80565b50600190565b6101f96102b4366004610c34565b6001600160a01b03919091166000908152600160209081526040808320938352929052205490565b61014b6102ea366004610cac565b6109aa565b6001610123565b61014b610304366004610cac565b610a64565b600080610374868686866001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610350573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ad9190610d46565b9050610380838261096f565b9695505050505050565b3360009081526020819052604090205460ff166103c25760405162461bcd60e51b81526004016103b990610d63565b60405180910390fd5b6001600160a01b0381166104185760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016103b9565b336001600160a01b038216146104405760405162461bcd60e51b81526004016103b990610d9a565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166104b85760405162461bcd60e51b81526004016103b990610d63565b60006104fe848484336001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610350573d6000803e3d6000fd5b3360009081526001602090815260408083208484529091529020549091506105575760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b60448201526064016103b9565b336000908152600160209081526040808320848452909152812080549161057d83610df1565b91905055507f611476e33c1d844d9fa71ba7de6e7130e18b22971d28580fd76321e4af696356848484336001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106089190610d46565b604080516001600160a01b0395861681529385166020850152830191909152909116606082015260800160405180910390a150505050565b3360009081526020819052604090205460ff1661066f5760405162461bcd60e51b81526004016103b990610d63565b60006106b5848484336001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610350573d6000803e3d6000fd5b336000908152600160209081526040808320848452909152902054909150156106fe57336000908152600160209081526040808320848452909152812080549161057d83610df1565b50505050565b3360009081526020819052604090205460ff166107335760405162461bcd60e51b81526004016103b990610d63565b5050565b6001600160a01b03811661078d5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016103b9565b6001600160a01b03811660009081526020819052604090205460ff16156107f65760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e64000000000000000060448201526064016103b9565b336001600160a01b0382161461081e5760405162461bcd60e51b81526004016103b990610d9a565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b3360009081526020819052604090205460ff166108995760405162461bcd60e51b81526004016103b990610d63565b60006108df848484336001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610350573d6000803e3d6000fd5b336000908152600160209081526040808320848452909152812080549293509061090883610e08565b91905055507f776c895685d60b5ac3aa2c3381ed2b021825c000fbb0d8ff1359636700aa1651848484336001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105e4573d6000803e3d6000fd5b6001600160a01b0382166000908152600160209081526040808320848452909152812054156109a0575060016109a4565b5060005b92915050565b3360009081526020819052604090205460ff166109d95760405162461bcd60e51b81526004016103b990610d63565b60005b85811015610a5b57610a538787838181106109f9576109f9610e21565b9050602002016020810190610a0e9190610b80565b868684818110610a2057610a20610e21565b9050602002016020810190610a359190610b80565b858585818110610a4757610a47610e21565b90506020020135610489565b6001016109dc565b50505050505050565b3360009081526020819052604090205460ff16610a935760405162461bcd60e51b81526004016103b990610d63565b60005b85811015610a5b57610b0d878783818110610ab357610ab3610e21565b9050602002016020810190610ac89190610b80565b868684818110610ada57610ada610e21565b9050602002016020810190610aef9190610b80565b858585818110610b0157610b01610e21565b9050602002013561086a565b600101610a96565b6001600160a01b0381168114610b2a57600080fd5b50565b60008060008060808587031215610b4357600080fd5b8435610b4e81610b15565b93506020850135610b5e81610b15565b9250604085013591506060850135610b7581610b15565b939692955090935050565b600060208284031215610b9257600080fd5b8135610b9d81610b15565b9392505050565b60006020808352835180602085015260005b81811015610bd257858101830151858201604001528201610bb6565b506000604082860101526040601f19601f8301168501019250505092915050565b600080600060608486031215610c0857600080fd5b8335610c1381610b15565b92506020840135610c2381610b15565b929592945050506040919091013590565b60008060408385031215610c4757600080fd5b8235610c5281610b15565b946020939093013593505050565b60008083601f840112610c7257600080fd5b50813567ffffffffffffffff811115610c8a57600080fd5b6020830191508360208260051b8501011115610ca557600080fd5b9250929050565b60008060008060008060608789031215610cc557600080fd5b863567ffffffffffffffff80821115610cdd57600080fd5b610ce98a838b01610c60565b90985096506020890135915080821115610d0257600080fd5b610d0e8a838b01610c60565b90965094506040890135915080821115610d2757600080fd5b50610d3489828a01610c60565b979a9699509497509295939492505050565b600060208284031215610d5857600080fd5b8151610b9d81610b15565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600081610e0057610e00610ddb565b506000190190565b600060018201610e1a57610e1a610ddb565b5060010190565b634e487b7160e01b600052603260045260246000fdfea264697066735822122029d234a6e2250aad3bedb22498fe368cc5fd3d85316c1127790ec01536d8cfe164736f6c63430008180033","sourceMap":"4094:8757:45:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80634cf4d295116100a2578063bdf5a41511610071578063bdf5a415146102a6578063e2cb5c34146102dc578063e6f5e807146102ef578063f104a8c91461021a578063f3850dbf146102f657600080fd5b80634cf4d29514610240578063825808051461026c578063933865191461027f578063bcc210531461029257600080fd5b8063202a6376116100de578063202a63761461019f5780632cb7e1ec14610207578063372491a21461021a5780634a9325441461022d57600080fd5b8063013b7ce4146101105780630694a5fb1461013857806306fdde031461014d5780631c7a17931461018c575b600080fd5b61012361011e366004610b2d565b610309565b60405190151581526020015b60405180910390f35b61014b610146366004610b80565b61038a565b005b604080518082018252601981527f436f6e646974696f6e616c5472616e736665724d6f64756c65000000000000006020820152905161012f9190610ba4565b61014b61019a366004610bf3565b610489565b6101f96101ad366004610b2d565b604080516001600160a01b0395861660208083019190915294861681830152606081019390935293166080808301919091528351808303909101815260a0909101909252815191012090565b60405190815260200161012f565b61014b610215366004610bf3565b610640565b61014b610228366004610c34565b610704565b61014b61023b366004610b80565b610737565b61012361024e366004610b80565b6001600160a01b031660009081526020819052604090205460ff1690565b61014b61027a366004610bf3565b61086a565b61012361028d366004610c34565b61096f565b6101236102a0366004610b80565b50600190565b6101f96102b4366004610c34565b6001600160a01b03919091166000908152600160209081526040808320938352929052205490565b61014b6102ea366004610cac565b6109aa565b6001610123565b61014b610304366004610cac565b610a64565b600080610374868686866001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610350573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ad9190610d46565b9050610380838261096f565b9695505050505050565b3360009081526020819052604090205460ff166103c25760405162461bcd60e51b81526004016103b990610d63565b60405180910390fd5b6001600160a01b0381166104185760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016103b9565b336001600160a01b038216146104405760405162461bcd60e51b81526004016103b990610d9a565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166104b85760405162461bcd60e51b81526004016103b990610d63565b60006104fe848484336001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610350573d6000803e3d6000fd5b3360009081526001602090815260408083208484529091529020549091506105575760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b60448201526064016103b9565b336000908152600160209081526040808320848452909152812080549161057d83610df1565b91905055507f611476e33c1d844d9fa71ba7de6e7130e18b22971d28580fd76321e4af696356848484336001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106089190610d46565b604080516001600160a01b0395861681529385166020850152830191909152909116606082015260800160405180910390a150505050565b3360009081526020819052604090205460ff1661066f5760405162461bcd60e51b81526004016103b990610d63565b60006106b5848484336001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610350573d6000803e3d6000fd5b336000908152600160209081526040808320848452909152902054909150156106fe57336000908152600160209081526040808320848452909152812080549161057d83610df1565b50505050565b3360009081526020819052604090205460ff166107335760405162461bcd60e51b81526004016103b990610d63565b5050565b6001600160a01b03811661078d5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016103b9565b6001600160a01b03811660009081526020819052604090205460ff16156107f65760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e64000000000000000060448201526064016103b9565b336001600160a01b0382161461081e5760405162461bcd60e51b81526004016103b990610d9a565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b3360009081526020819052604090205460ff166108995760405162461bcd60e51b81526004016103b990610d63565b60006108df848484336001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610350573d6000803e3d6000fd5b336000908152600160209081526040808320848452909152812080549293509061090883610e08565b91905055507f776c895685d60b5ac3aa2c3381ed2b021825c000fbb0d8ff1359636700aa1651848484336001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105e4573d6000803e3d6000fd5b6001600160a01b0382166000908152600160209081526040808320848452909152812054156109a0575060016109a4565b5060005b92915050565b3360009081526020819052604090205460ff166109d95760405162461bcd60e51b81526004016103b990610d63565b60005b85811015610a5b57610a538787838181106109f9576109f9610e21565b9050602002016020810190610a0e9190610b80565b868684818110610a2057610a20610e21565b9050602002016020810190610a359190610b80565b858585818110610a4757610a47610e21565b90506020020135610489565b6001016109dc565b50505050505050565b3360009081526020819052604090205460ff16610a935760405162461bcd60e51b81526004016103b990610d63565b60005b85811015610a5b57610b0d878783818110610ab357610ab3610e21565b9050602002016020810190610ac89190610b80565b868684818110610ada57610ada610e21565b9050602002016020810190610aef9190610b80565b858585818110610b0157610b01610e21565b9050602002013561086a565b600101610a96565b6001600160a01b0381168114610b2a57600080fd5b50565b60008060008060808587031215610b4357600080fd5b8435610b4e81610b15565b93506020850135610b5e81610b15565b9250604085013591506060850135610b7581610b15565b939692955090935050565b600060208284031215610b9257600080fd5b8135610b9d81610b15565b9392505050565b60006020808352835180602085015260005b81811015610bd257858101830151858201604001528201610bb6565b506000604082860101526040601f19601f8301168501019250505092915050565b600080600060608486031215610c0857600080fd5b8335610c1381610b15565b92506020840135610c2381610b15565b929592945050506040919091013590565b60008060408385031215610c4757600080fd5b8235610c5281610b15565b946020939093013593505050565b60008083601f840112610c7257600080fd5b50813567ffffffffffffffff811115610c8a57600080fd5b6020830191508360208260051b8501011115610ca557600080fd5b9250929050565b60008060008060008060608789031215610cc557600080fd5b863567ffffffffffffffff80821115610cdd57600080fd5b610ce98a838b01610c60565b90985096506020890135915080821115610d0257600080fd5b610d0e8a838b01610c60565b90965094506040890135915080821115610d2757600080fd5b50610d3489828a01610c60565b979a9699509497509295939492505050565b600060208284031215610d5857600080fd5b8151610b9d81610b15565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600081610e0057610e00610ddb565b506000190190565b600060018201610e1a57610e1a610ddb565b5060010190565b634e487b7160e01b600052603260045260246000fdfea264697066735822122029d234a6e2250aad3bedb22498fe368cc5fd3d85316c1127790ec01536d8cfe164736f6c63430008180033","sourceMap":"4094:8757:45:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8599:354;;;;;;:::i;:::-;;:::i;:::-;;;918:14:165;;911:22;893:41;;881:2;866:18;8599:354:45;;;;;;;;5018:343:44;;;;;;:::i;:::-;;:::i;:::-;;12740:109:45;12808:34;;;;;;;;;;;;;;;;12740:109;;;;12808:34;12740:109;:::i;10598:464::-;;;;;;:::i;:::-;;:::i;12409:276::-;;;;;;:::i;:::-;12609:39;;;-1:-1:-1;;;;;6958:15:165;;;12609:39:45;;;;6940:34:165;;;;7010:15;;;6990:18;;;6983:43;7042:18;;;7035:34;;;;7105:15;;7085:18;;;;7078:43;;;;12609:39:45;;;;;;;;;;6874:19:165;;;;12609:39:45;;;12599:50;;;;;;12409:276;;;;2357:25:165;;;2345:2;2330:18;12409:276:45;2211:177:165;7467:504:45;;;;;;:::i;:::-;;:::i;8391:96::-;;;;;;:::i;:::-;;:::i;4555:396:44:-;;;;;;:::i;:::-;;:::i;5429:139::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5532:29:44;5509:4;5532:29;;;;;;;;;;;;;;5429:139;9699:379:45;;;;;;:::i;:::-;;:::i;11332:233::-;;;;;;:::i;:::-;;:::i;9021:118::-;;;;;;:::i;:::-;-1:-1:-1;9128:4:45;;9021:118;11849:173;;;;;;:::i;:::-;-1:-1:-1;;;;;11968:31:45;;;;11944:4;11968:31;;;:18;:31;;;;;;;;11967:48;;;;;;;;;11849:173;6931:270;;;;;;:::i;:::-;;:::i;9203:91::-;9283:4;9203:91;;5931:266;;;;;;:::i;:::-;;:::i;8599:354::-;8755:4;8771:20;8794:90;8816:5;8823:3;8828:6;8855:11;-1:-1:-1;;;;;8836:45:45;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8794:90::-;8771:113;;8901:45;8920:11;8933:12;8901:18;:45::i;:::-;8894:52;8599:354;-1:-1:-1;;;;;;8599:354:45:o;5018:343:44:-;4426:10;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5120:25:44;::::1;5112:69;;;::::0;-1:-1:-1;;;5112:69:44;;5497:2:165;5112:69:44::1;::::0;::::1;5479:21:165::0;5536:2;5516:18;;;5509:30;5575:33;5555:18;;;5548:61;5626:18;;5112:69:44::1;5295:355:165::0;5112:69:44::1;5199:10;-1:-1:-1::0;;;;;5199:25:44;::::1;;5191:71;;;;-1:-1:-1::0;;;5191:71:44::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5272:29:44;::::1;5304:5;5272:29:::0;;;::::1;::::0;;;;;;;:37;;-1:-1:-1;;5272:37:44::1;::::0;;5324:30;::::1;::::0;5304:5;5324:30:::1;5018:343:::0;:::o;10598:464:45:-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;10703:20:45::1;10726:90;10748:5;10755:3;10760:7;10788:10;-1:-1:-1::0;;;;;10769:44:45::1;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;10726:90;10853:10;10881:1;10834:30:::0;;;:18:::1;:30;::::0;;;;;;;:44;;;;;;;;;10703:113;;-1:-1:-1;10826:73:45::1;;;::::0;-1:-1:-1;;;10826:73:45;;6259:2:165;10826:73:45::1;::::0;::::1;6241:21:165::0;6298:2;6278:18;;;6271:30;-1:-1:-1;;;6317:18:165;;;6310:42;6369:18;;10826:73:45::1;6057:336:165::0;10826:73:45::1;10928:10;10909:30;::::0;;;:18:::1;:30;::::0;;;;;;;:44;;;;;;;;:46;;;::::1;::::0;::::1;:::i;:::-;;;;;;10970:84;10986:5;10993:3;10998:7;11026:10;-1:-1:-1::0;;;;;11007:44:45::1;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10970:84;::::0;;-1:-1:-1;;;;;6958:15:165;;;6940:34;;7010:15;;;7005:2;6990:18;;6983:43;7042:18;;7035:34;;;;7105:15;;;7100:2;7085:18;;7078:43;6889:3;6874:19;10970:84:45::1;;;;;;;10693:369;10598:464:::0;;;:::o;7467:504::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;7617:20:45::1;7640:89;7662:5;7669:3;7674:6;7701:10;-1:-1:-1::0;;;;;7682:44:45::1;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;7640:89;7761:10;7789:1;7742:30:::0;;;:18:::1;:30;::::0;;;;;;;:44;;;;;;;;;7617:112;;-1:-1:-1;7742:48:45;7739:226:::1;;7825:10;7806:30;::::0;;;:18:::1;:30;::::0;;;;;;;:44;;;;;;;;:46;;;::::1;::::0;::::1;:::i;7739:226::-;7607:364;7467:504:::0;;;:::o;8391:96::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;8391:96:45;;:::o;4555:396:44:-;-1:-1:-1;;;;;4636:25:44;;4628:69;;;;-1:-1:-1;;;4628:69:44;;5497:2:165;4628:69:44;;;5479:21:165;5536:2;5516:18;;;5509:30;5575:33;5555:18;;;5548:61;5626:18;;4628:69:44;5295:355:165;4628:69:44;-1:-1:-1;;;;;4716:29:44;;:16;:29;;;;;;;;;;;;;4715:30;4707:67;;;;-1:-1:-1;;;4707:67:44;;7334:2:165;4707:67:44;;;7316:21:165;7373:2;7353:18;;;7346:30;7412:26;7392:18;;;7385:54;7456:18;;4707:67:44;7132:348:165;4707:67:44;4792:10;-1:-1:-1;;;;;4792:25:44;;;4784:71;;;;-1:-1:-1;;;4784:71:44;;;;;;;:::i;:::-;-1:-1:-1;;;;;4865:29:44;;:16;:29;;;;;;;;;;;:36;;-1:-1:-1;;4865:36:44;4897:4;4865:36;;;4916:28;;;4865:16;4916:28;4555:396;:::o;9699:379:45:-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;9802:20:45::1;9825:90;9847:5;9854:3;9859:7;9887:10;-1:-1:-1::0;;;;;9868:44:45::1;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;9825:90;9944:10;9925:30;::::0;;;:18:::1;:30;::::0;;;;;;;:44;;;;;;;;:46;;9802:113;;-1:-1:-1;9925:44:45;:46:::1;::::0;::::1;:::i;:::-;;;;;;9986:85;10003:5;10010:3;10015:7;10043:10;-1:-1:-1::0;;;;;10024:44:45::1;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;11332:233:::0;-1:-1:-1;;;;;11447:31:45;;11425:4;11447:31;;;:18;:31;;;;;;;;11446:48;;;;;;;;;11445:54;11441:96;;-1:-1:-1;11522:4:45;11515:11;;11441:96;-1:-1:-1;11553:5:45;11332:233;;;;;:::o;6931:270::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;7086:9:45::1;7081:114;7101:16:::0;;::::1;7081:114;;;7137:47;7155:5;;7161:1;7155:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7165:3;;7169:1;7165:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7173:7;;7181:1;7173:10;;;;;;;:::i;:::-;;;;;;;7137:17;:47::i;:::-;7119:3;;7081:114;;;;6931:270:::0;;;;;;:::o;5931:266::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;6084:9:45::1;6079:112;6099:16:::0;;::::1;6079:112;;;6135:45;6151:5;;6157:1;6151:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;6161:3;;6165:1;6161:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;6169:7;;6177:1;6169:10;;;;;;;:::i;:::-;;;;;;;6135:15;:45::i;:::-;6117:3;;6079:112;;14:131:165::0;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:598::-;236:6;244;252;260;313:3;301:9;292:7;288:23;284:33;281:53;;;330:1;327;320:12;281:53;369:9;356:23;388:31;413:5;388:31;:::i;:::-;438:5;-1:-1:-1;495:2:165;480:18;;467:32;508:33;467:32;508:33;:::i;:::-;560:7;-1:-1:-1;614:2:165;599:18;;586:32;;-1:-1:-1;670:2:165;655:18;;642:32;683:33;642:32;683:33;:::i;:::-;150:598;;;;-1:-1:-1;150:598:165;;-1:-1:-1;;150:598:165:o;945:247::-;1004:6;1057:2;1045:9;1036:7;1032:23;1028:32;1025:52;;;1073:1;1070;1063:12;1025:52;1112:9;1099:23;1131:31;1156:5;1131:31;:::i;:::-;1181:5;945:247;-1:-1:-1;;;945:247:165:o;1197:548::-;1309:4;1338:2;1367;1356:9;1349:21;1399:6;1393:13;1442:6;1437:2;1426:9;1422:18;1415:34;1467:1;1477:140;1491:6;1488:1;1485:13;1477:140;;;1586:14;;;1582:23;;1576:30;1552:17;;;1571:2;1548:26;1541:66;1506:10;;1477:140;;;1481:3;1666:1;1661:2;1652:6;1641:9;1637:22;1633:31;1626:42;1736:2;1729;1725:7;1720:2;1712:6;1708:15;1704:29;1693:9;1689:45;1685:54;1677:62;;;;1197:548;;;;:::o;1750:456::-;1827:6;1835;1843;1896:2;1884:9;1875:7;1871:23;1867:32;1864:52;;;1912:1;1909;1902:12;1864:52;1951:9;1938:23;1970:31;1995:5;1970:31;:::i;:::-;2020:5;-1:-1:-1;2077:2:165;2062:18;;2049:32;2090:33;2049:32;2090:33;:::i;:::-;1750:456;;2142:7;;-1:-1:-1;;;2196:2:165;2181:18;;;;2168:32;;1750:456::o;2393:315::-;2461:6;2469;2522:2;2510:9;2501:7;2497:23;2493:32;2490:52;;;2538:1;2535;2528:12;2490:52;2577:9;2564:23;2596:31;2621:5;2596:31;:::i;:::-;2646:5;2698:2;2683:18;;;;2670:32;;-1:-1:-1;;;2393:315:165:o;3215:367::-;3278:8;3288:6;3342:3;3335:4;3327:6;3323:17;3319:27;3309:55;;3360:1;3357;3350:12;3309:55;-1:-1:-1;3383:20:165;;3426:18;3415:30;;3412:50;;;3458:1;3455;3448:12;3412:50;3495:4;3487:6;3483:17;3471:29;;3555:3;3548:4;3538:6;3535:1;3531:14;3523:6;3519:27;3515:38;3512:47;3509:67;;;3572:1;3569;3562:12;3509:67;3215:367;;;;;:::o;3587:1088::-;3745:6;3753;3761;3769;3777;3785;3838:2;3826:9;3817:7;3813:23;3809:32;3806:52;;;3854:1;3851;3844:12;3806:52;3894:9;3881:23;3923:18;3964:2;3956:6;3953:14;3950:34;;;3980:1;3977;3970:12;3950:34;4019:70;4081:7;4072:6;4061:9;4057:22;4019:70;:::i;:::-;4108:8;;-1:-1:-1;3993:96:165;-1:-1:-1;4196:2:165;4181:18;;4168:32;;-1:-1:-1;4212:16:165;;;4209:36;;;4241:1;4238;4231:12;4209:36;4280:72;4344:7;4333:8;4322:9;4318:24;4280:72;:::i;:::-;4371:8;;-1:-1:-1;4254:98:165;-1:-1:-1;4459:2:165;4444:18;;4431:32;;-1:-1:-1;4475:16:165;;;4472:36;;;4504:1;4501;4494:12;4472:36;;4543:72;4607:7;4596:8;4585:9;4581:24;4543:72;:::i;:::-;3587:1088;;;;-1:-1:-1;3587:1088:165;;-1:-1:-1;3587:1088:165;;4634:8;;3587:1088;-1:-1:-1;;;3587:1088:165:o;4680:251::-;4750:6;4803:2;4791:9;4782:7;4778:23;4774:32;4771:52;;;4819:1;4816;4809:12;4771:52;4851:9;4845:16;4870:31;4895:5;4870:31;:::i;4936:354::-;5138:2;5120:21;;;5177:2;5157:18;;;5150:30;5216:32;5211:2;5196:18;;5189:60;5281:2;5266:18;;4936:354::o;5655:397::-;5857:2;5839:21;;;5896:2;5876:18;;;5869:30;5935:34;5930:2;5915:18;;5908:62;-1:-1:-1;;;6001:2:165;5986:18;;5979:31;6042:3;6027:19;;5655:397::o;6398:127::-;6459:10;6454:3;6450:20;6447:1;6440:31;6490:4;6487:1;6480:15;6514:4;6511:1;6504:15;6530:136;6569:3;6597:5;6587:39;;6606:18;;:::i;:::-;-1:-1:-1;;;6642:18:165;;6530:136::o;7485:135::-;7524:3;7545:17;;;7542:43;;7565:18;;:::i;:::-;-1:-1:-1;7612:1:165;7601:13;;7485:135::o;7625:127::-;7686:10;7681:3;7677:20;7674:1;7667:31;7717:4;7714:1;7707:15;7741:4;7738:1;7731:15","linkReferences":{}},"methodIdentifiers":{"approveTransfer(address,address,uint256)":"82580805","batchApproveTransfers(address[],address[],uint256[])":"f3850dbf","batchUnApproveTransfers(address[],address[],uint256[])":"e2cb5c34","bindCompliance(address)":"4a932544","calculateTransferHash(address,address,uint256,address)":"202a6376","canComplianceBind(address)":"bcc21053","getTransferApprovals(address,bytes32)":"bdf5a415","isComplianceBound(address)":"4cf4d295","isPlugAndPlay()":"e6f5e807","isTransferApproved(address,bytes32)":"93386519","moduleBurnAction(address,uint256)":"372491a2","moduleCheck(address,address,uint256,address)":"013b7ce4","moduleMintAction(address,uint256)":"f104a8c9","moduleTransferAction(address,address,uint256)":"2cb7e1ec","name()":"06fdde03","unApproveTransfer(address,address,uint256)":"1c7a1793","unbindCompliance(address)":"0694a5fb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"ApprovalRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TransferApproved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"approveTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_from\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amount\",\"type\":\"uint256[]\"}],\"name\":\"batchApproveTransfers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_from\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amount\",\"type\":\"uint256[]\"}],\"name\":\"batchUnApproveTransfers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"bindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"calculateTransferHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"canComplianceBind\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_transferHash\",\"type\":\"bytes32\"}],\"name\":\"getTransferApprovals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"isComplianceBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPlugAndPlay\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_transferHash\",\"type\":\"bytes32\"}],\"name\":\"isTransferApproved\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleBurnAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"moduleCheck\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleMintAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleTransferAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"unApproveTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"unbindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approveTransfer(address,address,uint256)\":{\"details\":\"Approves a transfer once a transfer is approved, the sender is allowed to execute it\",\"params\":{\"_amount\":\"the amount of tokens that `_from` would send to `_to` Only a bound compliance can call this function emits a `TransferApproved` event\",\"_from\":\"the address of the transfer sender\",\"_to\":\"the address of the transfer receiver\"}},\"batchApproveTransfers(address[],address[],uint256[])\":{\"details\":\"Approves transfers in batch once a transfer is approved, the sender is allowed to execute it IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_from.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \\\"OUT OF GAS\\\" TRANSACTION\",\"params\":{\"_amount\":\"the array of tokens amounts that `_from` would send to `_to` Only a bound compliance can call this function emits `_from.length` `TransferApproved` events\",\"_from\":\"the array of addresses of the transfer senders\",\"_to\":\"the array of addresses of the transfer receivers\"}},\"batchUnApproveTransfers(address[],address[],uint256[])\":{\"details\":\"removes approval on a transfer previously approved requires the transfer to be previously approved once a transfer approval is removed, the sender is not allowed to execute it anymore IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_from.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \\\"OUT OF GAS\\\" TRANSACTION\",\"params\":{\"_amount\":\"the array of token amounts that `_from` were allowed to send to `_to` Only a bound compliance can call this function emits `_from.length` `ApprovalRemoved` events\",\"_from\":\"the array of addresses of the transfer senders\",\"_to\":\"the array of addresses of the transfer receivers\"}},\"bindCompliance(address)\":{\"details\":\"See {IModule-bindCompliance}.\"},\"calculateTransferHash(address,address,uint256,address)\":{\"details\":\"Calculates the hash of a transfer approval\",\"params\":{\"_amount\":\"the amount of tokens that `_from` would send to `_to`\",\"_from\":\"the address of the transfer sender\",\"_to\":\"the address of the transfer receiver\",\"_token\":\"the address of the token that would be transferred returns the transferId of the transfer\"}},\"canComplianceBind(address)\":{\"details\":\"See {IModule-canComplianceBind}.\"},\"getTransferApprovals(address,bytes32)\":{\"details\":\"Returns the amount of identical transfers approved\",\"params\":{\"_compliance\":\"the modular compliance address\",\"_transferHash\":\", bytes corresponding to the transfer details, hashed requires `_compliance` to be bound to this module\"}},\"isComplianceBound(address)\":{\"details\":\"See {IModule-isComplianceBound}.\"},\"isPlugAndPlay()\":{\"details\":\"See {IModule-isPlugAndPlay}.\"},\"isTransferApproved(address,bytes32)\":{\"details\":\"Returns true if transfer is approved\",\"params\":{\"_compliance\":\"the modular compliance address\",\"_transferHash\":\", bytes corresponding to the transfer details, hashed requires `_compliance` to be bound to this module\"}},\"moduleBurnAction(address,uint256)\":{\"details\":\"See {IModule-moduleBurnAction}. no burn action required in this module\"},\"moduleCheck(address,address,uint256,address)\":{\"details\":\"See {IModule-moduleCheck}. checks if the transfer is approved or not\"},\"moduleMintAction(address,uint256)\":{\"details\":\"See {IModule-moduleMintAction}. no mint action required in this module\"},\"moduleTransferAction(address,address,uint256)\":{\"details\":\"See {IModule-moduleTransferAction}. transfer approval is removed post-transfer if it was pre-approved the check on whether the transfer was pre-approved or not here is to allow forced transfers to bypass the module\"},\"name()\":{\"details\":\"See {IModule-name}.\"},\"unApproveTransfer(address,address,uint256)\":{\"details\":\"removes approval on a transfer previously approved requires the transfer to be previously approved once a transfer approval is removed, the sender is not allowed to execute it anymore\",\"params\":{\"_amount\":\"the amount of tokens that `_from` was allowed to send to `_to` Only a bound compliance can call this function emits an `ApprovalRemoved` event\",\"_from\":\"the address of the transfer sender\",\"_to\":\"the address of the transfer receiver\"}},\"unbindCompliance(address)\":{\"details\":\"See {IModule-unbindCompliance}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ApprovalRemoved(address,address,uint256,address)\":{\"notice\":\"this event is emitted whenever a transfer approval is removed. the event is emitted by 'unApproveTransfer' function. `_from` is the address of transfer sender. `_to` is the address of transfer recipient `_amount` is the token amount to be sent (take care of decimals) `_token` is the token address of the token concerned by the approval\"},\"ComplianceBound(address)\":{\"notice\":\"this event is emitted when the compliance contract is bound to the module. the event is emitted by the bindCompliance function `_compliance` is the address of the compliance contract being bound\"},\"ComplianceUnbound(address)\":{\"notice\":\"this event is emitted when the compliance contract is unbound from the module. the event is emitted by the unbindCompliance function `_compliance` is the address of the compliance contract being unbound\"},\"TransferApproved(address,address,uint256,address)\":{\"notice\":\"this event is emitted whenever a transfer is approved. the event is emitted by 'approveTransfer' function. `_from` is the address of transfer sender. `_to` is the address of transfer recipient `_amount` is the token amount to be sent (take care of decimals) `_token` is the token address of the token concerned by the approval\"}},\"kind\":\"user\",\"methods\":{},\"notice\":\"this module allows to require the pre-validation of a transfer before allowing it to be executed\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/modular/modules/ConditionalTransferModule.sol\":\"ConditionalTransferModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/compliance/modular/modules/AbstractModule.sol\":{\"keccak256\":\"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8\",\"dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu\"]},\"contracts/erc3643/compliance/modular/modules/ConditionalTransferModule.sol\":{\"keccak256\":\"0x482b7fa4b989004e55801c9490872dfe4198de7aed24b0659506fd4987b92b79\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://38fee9042519b1c9a6575c65cc809725fef25a49d2578f30ad356b4ea6382029\",\"dweb:/ipfs/QmZJk5iAwqadQCi4tzLhG2skz7wop5bRWrZwgckPZx4Qzc\"]},\"contracts/erc3643/compliance/modular/modules/IModule.sol\":{\"keccak256\":\"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c\",\"dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":false},{"internalType":"address","name":"_to","type":"address","indexed":false},{"internalType":"uint256","name":"_amount","type":"uint256","indexed":false},{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"ApprovalRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":false},{"internalType":"address","name":"_to","type":"address","indexed":false},{"internalType":"uint256","name":"_amount","type":"uint256","indexed":false},{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TransferApproved","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approveTransfer"},{"inputs":[{"internalType":"address[]","name":"_from","type":"address[]"},{"internalType":"address[]","name":"_to","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchApproveTransfers"},{"inputs":[{"internalType":"address[]","name":"_from","type":"address[]"},{"internalType":"address[]","name":"_to","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchUnApproveTransfers"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindCompliance"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"pure","type":"function","name":"calculateTransferHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"canComplianceBind","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"bytes32","name":"_transferHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getTransferApprovals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPlugAndPlay","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"bytes32","name":"_transferHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isTransferApproved","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleBurnAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"moduleCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleMintAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleTransferAction"},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unApproveTransfer"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindCompliance"}],"devdoc":{"kind":"dev","methods":{"approveTransfer(address,address,uint256)":{"details":"Approves a transfer once a transfer is approved, the sender is allowed to execute it","params":{"_amount":"the amount of tokens that `_from` would send to `_to` Only a bound compliance can call this function emits a `TransferApproved` event","_from":"the address of the transfer sender","_to":"the address of the transfer receiver"}},"batchApproveTransfers(address[],address[],uint256[])":{"details":"Approves transfers in batch once a transfer is approved, the sender is allowed to execute it IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_from.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \"OUT OF GAS\" TRANSACTION","params":{"_amount":"the array of tokens amounts that `_from` would send to `_to` Only a bound compliance can call this function emits `_from.length` `TransferApproved` events","_from":"the array of addresses of the transfer senders","_to":"the array of addresses of the transfer receivers"}},"batchUnApproveTransfers(address[],address[],uint256[])":{"details":"removes approval on a transfer previously approved requires the transfer to be previously approved once a transfer approval is removed, the sender is not allowed to execute it anymore IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_from.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \"OUT OF GAS\" TRANSACTION","params":{"_amount":"the array of token amounts that `_from` were allowed to send to `_to` Only a bound compliance can call this function emits `_from.length` `ApprovalRemoved` events","_from":"the array of addresses of the transfer senders","_to":"the array of addresses of the transfer receivers"}},"bindCompliance(address)":{"details":"See {IModule-bindCompliance}."},"calculateTransferHash(address,address,uint256,address)":{"details":"Calculates the hash of a transfer approval","params":{"_amount":"the amount of tokens that `_from` would send to `_to`","_from":"the address of the transfer sender","_to":"the address of the transfer receiver","_token":"the address of the token that would be transferred returns the transferId of the transfer"}},"canComplianceBind(address)":{"details":"See {IModule-canComplianceBind}."},"getTransferApprovals(address,bytes32)":{"details":"Returns the amount of identical transfers approved","params":{"_compliance":"the modular compliance address","_transferHash":", bytes corresponding to the transfer details, hashed requires `_compliance` to be bound to this module"}},"isComplianceBound(address)":{"details":"See {IModule-isComplianceBound}."},"isPlugAndPlay()":{"details":"See {IModule-isPlugAndPlay}."},"isTransferApproved(address,bytes32)":{"details":"Returns true if transfer is approved","params":{"_compliance":"the modular compliance address","_transferHash":", bytes corresponding to the transfer details, hashed requires `_compliance` to be bound to this module"}},"moduleBurnAction(address,uint256)":{"details":"See {IModule-moduleBurnAction}. no burn action required in this module"},"moduleCheck(address,address,uint256,address)":{"details":"See {IModule-moduleCheck}. checks if the transfer is approved or not"},"moduleMintAction(address,uint256)":{"details":"See {IModule-moduleMintAction}. no mint action required in this module"},"moduleTransferAction(address,address,uint256)":{"details":"See {IModule-moduleTransferAction}. transfer approval is removed post-transfer if it was pre-approved the check on whether the transfer was pre-approved or not here is to allow forced transfers to bypass the module"},"name()":{"details":"See {IModule-name}."},"unApproveTransfer(address,address,uint256)":{"details":"removes approval on a transfer previously approved requires the transfer to be previously approved once a transfer approval is removed, the sender is not allowed to execute it anymore","params":{"_amount":"the amount of tokens that `_from` was allowed to send to `_to` Only a bound compliance can call this function emits an `ApprovalRemoved` event","_from":"the address of the transfer sender","_to":"the address of the transfer receiver"}},"unbindCompliance(address)":{"details":"See {IModule-unbindCompliance}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/modular/modules/ConditionalTransferModule.sol":"ConditionalTransferModule"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/AbstractModule.sol":{"keccak256":"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3","urls":["bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8","dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/ConditionalTransferModule.sol":{"keccak256":"0x482b7fa4b989004e55801c9490872dfe4198de7aed24b0659506fd4987b92b79","urls":["bzz-raw://38fee9042519b1c9a6575c65cc809725fef25a49d2578f30ad356b4ea6382029","dweb:/ipfs/QmZJk5iAwqadQCi4tzLhG2skz7wop5bRWrZwgckPZx4Qzc"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/IModule.sol":{"keccak256":"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02","urls":["bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c","dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":45} \ No newline at end of file diff --git a/out/Context.sol/Context.json b/out/Context.sol/Context.json new file mode 100644 index 0000000..ca30f27 --- /dev/null +++ b/out/Context.sol/Context.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"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.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/Context.sol":"Context"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":152} \ No newline at end of file diff --git a/out/ContextUpgradeable.sol/ContextUpgradeable.json b/out/ContextUpgradeable.sol/ContextUpgradeable.json new file mode 100644 index 0000000..919f8d8 --- /dev/null +++ b/out/ContextUpgradeable.sol/ContextUpgradeable.json @@ -0,0 +1 @@ +{"abi":[{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"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.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":\"ContextUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":"ContextUpgradeable"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"}},"version":1},"id":138} \ No newline at end of file diff --git a/out/CountryAllowModule.sol/CountryAllowModule.json b/out/CountryAllowModule.sol/CountryAllowModule.json new file mode 100644 index 0000000..bb6b971 --- /dev/null +++ b/out/CountryAllowModule.sol/CountryAllowModule.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAllowedCountry","inputs":[{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchAllowCountries","inputs":[{"name":"_countries","type":"uint16[]","internalType":"uint16[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchDisallowCountries","inputs":[{"name":"_countries","type":"uint16[]","internalType":"uint16[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canComplianceBind","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComplianceBound","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isCountryAllowed","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPlugAndPlay","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"moduleBurnAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleCheck","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleMintAction","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleTransferAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"removeAllowedCountry","inputs":[{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComplianceBound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ComplianceUnbound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CountryAllowed","inputs":[{"name":"_compliance","type":"address","indexed":false,"internalType":"address"},{"name":"_country","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"CountryUnallowed","inputs":[{"name":"_compliance","type":"address","indexed":false,"internalType":"address"},{"name":"_country","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"error","name":"CountryAlreadyAllowed","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_country","type":"uint16","internalType":"uint16"}]},{"type":"error","name":"CountryNotAllowed","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_country","type":"uint16","internalType":"uint16"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610d66806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80634cf4d29511610097578063bcc2105311610066578063bcc2105314610248578063c08e15021461025c578063e6f5e8071461026f578063f104a8c9146101bd57600080fd5b80634cf4d295146101e35780634f44425e1461020f578063771c528114610222578063817544c31461023557600080fd5b80630f4f0904116100d35780630f4f09041461016b5780632cb7e1ec146101aa578063372491a2146101bd5780634a932544146101d057600080fd5b8063013b7ce4146100fa5780630694a5fb1461012257806306fdde0314610137575b600080fd5b61010d610108366004610a44565b610276565b60405190151581526020015b60405180910390f35b610135610130366004610a97565b6102bb565b005b6040805180820182526012815271436f756e747279416c6c6f774d6f64756c6560701b602082015290516101199190610ab4565b61010d610179366004610b13565b6001600160a01b038216600090815260016020908152604080832061ffff8516845290915290205460ff1692915050565b6101356101b8366004610b4c565b6103ba565b6101356101cb366004610b8d565b6103ee565b6101356101de366004610a97565b610421565b61010d6101f1366004610a97565b6001600160a01b031660009081526020819052604090205460ff1690565b61013561021d366004610bb9565b610554565b610135610230366004610bd6565b61062f565b610135610243366004610bb9565b61072d565b61010d610256366004610a97565b50600190565b61013561026a366004610bd6565b6107f9565b600161010d565b60008061028383866108f4565b6001600160a01b038416600090815260016020908152604080832061ffff8516845290915290205490915060ff169695505050505050565b3360009081526020819052604090205460ff166102f35760405162461bcd60e51b81526004016102ea90610c4b565b60405180910390fd5b6001600160a01b0381166103495760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016102ea565b336001600160a01b038216146103715760405162461bcd60e51b81526004016102ea90610c82565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166103e95760405162461bcd60e51b81526004016102ea90610c4b565b505050565b3360009081526020819052604090205460ff1661041d5760405162461bcd60e51b81526004016102ea90610c4b565b5050565b6001600160a01b0381166104775760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016102ea565b6001600160a01b03811660009081526020819052604090205460ff16156104e05760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e64000000000000000060448201526064016102ea565b336001600160a01b038216146105085760405162461bcd60e51b81526004016102ea90610c82565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b3360009081526020819052604090205460ff166105835760405162461bcd60e51b81526004016102ea90610c4b565b33600090815260016020818152604080842061ffff861685529091529091205460ff16151590036105cb57338160405163af6d613560e01b81526004016102ea929190610cc3565b33600081815260016020818152604080842061ffff8716855290915291829020805460ff19169091179055517f48c279381632bf87fca2680865a7384b6eb20716fd96b882b305a2198930a07491610624918490610cc3565b60405180910390a150565b3360009081526020819052604090205460ff1661065e5760405162461bcd60e51b81526004016102ea90610c4b565b60005b818110156103e9573360009081526001602081905260408220909185858581811061068e5761068e610ce0565b90506020020160208101906106a39190610bb9565b61ffff1681526020810191909152604001600020805460ff19169115159190911790557f48c279381632bf87fca2680865a7384b6eb20716fd96b882b305a2198930a074338484848181106106fa576106fa610ce0565b905060200201602081019061070f9190610bb9565b60405161071d929190610cc3565b60405180910390a1600101610661565b3360009081526020819052604090205460ff1661075c5760405162461bcd60e51b81526004016102ea90610c4b565b33600090815260016020908152604080832061ffff8516845290915281205460ff16151590036107a357338160405163236a687560e11b81526004016102ea929190610cc3565b33600081815260016020908152604080832061ffff8616845290915290819020805460ff19169055517f35c7374bcb82f2355cb703c8ab6162f87fe83b99618bdb78c6d19b07ddf060a291610624918490610cc3565b3360009081526020819052604090205460ff166108285760405162461bcd60e51b81526004016102ea90610c4b565b60005b818110156103e9573360009081526001602052604081208185858581811061085557610855610ce0565b905060200201602081019061086a9190610bb9565b61ffff1681526020810191909152604001600020805460ff19169115159190911790557f35c7374bcb82f2355cb703c8ab6162f87fe83b99618bdb78c6d19b07ddf060a2338484848181106108c1576108c1610ce0565b90506020020160208101906108d69190610bb9565b6040516108e4929190610cc3565b60405180910390a160010161082b565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610934573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109589190610cf6565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610995573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b99190610cf6565b604051637e42683b60e01b81526001600160a01b0384811660048301529190911690637e42683b90602401602060405180830381865afa158015610a01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a259190610d13565b9392505050565b6001600160a01b0381168114610a4157600080fd5b50565b60008060008060808587031215610a5a57600080fd5b8435610a6581610a2c565b93506020850135610a7581610a2c565b9250604085013591506060850135610a8c81610a2c565b939692955090935050565b600060208284031215610aa957600080fd5b8135610a2581610a2c565b60006020808352835180602085015260005b81811015610ae257858101830151858201604001528201610ac6565b506000604082860101526040601f19601f8301168501019250505092915050565b61ffff81168114610a4157600080fd5b60008060408385031215610b2657600080fd5b8235610b3181610a2c565b91506020830135610b4181610b03565b809150509250929050565b600080600060608486031215610b6157600080fd5b8335610b6c81610a2c565b92506020840135610b7c81610a2c565b929592945050506040919091013590565b60008060408385031215610ba057600080fd5b8235610bab81610a2c565b946020939093013593505050565b600060208284031215610bcb57600080fd5b8135610a2581610b03565b60008060208385031215610be957600080fd5b823567ffffffffffffffff80821115610c0157600080fd5b818501915085601f830112610c1557600080fd5b813581811115610c2457600080fd5b8660208260051b8501011115610c3957600080fd5b60209290920196919550909350505050565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b6001600160a01b0392909216825261ffff16602082015260400190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610d0857600080fd5b8151610a2581610a2c565b600060208284031215610d2557600080fd5b8151610a2581610b0356fea2646970667358221220374da104fa8396451ede082fab68ba7b5eb2405c5e30dcd8862c1f243e10ba2364736f6c63430008180033","sourceMap":"3946:7009:46:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80634cf4d29511610097578063bcc2105311610066578063bcc2105314610248578063c08e15021461025c578063e6f5e8071461026f578063f104a8c9146101bd57600080fd5b80634cf4d295146101e35780634f44425e1461020f578063771c528114610222578063817544c31461023557600080fd5b80630f4f0904116100d35780630f4f09041461016b5780632cb7e1ec146101aa578063372491a2146101bd5780634a932544146101d057600080fd5b8063013b7ce4146100fa5780630694a5fb1461012257806306fdde0314610137575b600080fd5b61010d610108366004610a44565b610276565b60405190151581526020015b60405180910390f35b610135610130366004610a97565b6102bb565b005b6040805180820182526012815271436f756e747279416c6c6f774d6f64756c6560701b602082015290516101199190610ab4565b61010d610179366004610b13565b6001600160a01b038216600090815260016020908152604080832061ffff8516845290915290205460ff1692915050565b6101356101b8366004610b4c565b6103ba565b6101356101cb366004610b8d565b6103ee565b6101356101de366004610a97565b610421565b61010d6101f1366004610a97565b6001600160a01b031660009081526020819052604090205460ff1690565b61013561021d366004610bb9565b610554565b610135610230366004610bd6565b61062f565b610135610243366004610bb9565b61072d565b61010d610256366004610a97565b50600190565b61013561026a366004610bd6565b6107f9565b600161010d565b60008061028383866108f4565b6001600160a01b038416600090815260016020908152604080832061ffff8516845290915290205490915060ff169695505050505050565b3360009081526020819052604090205460ff166102f35760405162461bcd60e51b81526004016102ea90610c4b565b60405180910390fd5b6001600160a01b0381166103495760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016102ea565b336001600160a01b038216146103715760405162461bcd60e51b81526004016102ea90610c82565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166103e95760405162461bcd60e51b81526004016102ea90610c4b565b505050565b3360009081526020819052604090205460ff1661041d5760405162461bcd60e51b81526004016102ea90610c4b565b5050565b6001600160a01b0381166104775760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016102ea565b6001600160a01b03811660009081526020819052604090205460ff16156104e05760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e64000000000000000060448201526064016102ea565b336001600160a01b038216146105085760405162461bcd60e51b81526004016102ea90610c82565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b3360009081526020819052604090205460ff166105835760405162461bcd60e51b81526004016102ea90610c4b565b33600090815260016020818152604080842061ffff861685529091529091205460ff16151590036105cb57338160405163af6d613560e01b81526004016102ea929190610cc3565b33600081815260016020818152604080842061ffff8716855290915291829020805460ff19169091179055517f48c279381632bf87fca2680865a7384b6eb20716fd96b882b305a2198930a07491610624918490610cc3565b60405180910390a150565b3360009081526020819052604090205460ff1661065e5760405162461bcd60e51b81526004016102ea90610c4b565b60005b818110156103e9573360009081526001602081905260408220909185858581811061068e5761068e610ce0565b90506020020160208101906106a39190610bb9565b61ffff1681526020810191909152604001600020805460ff19169115159190911790557f48c279381632bf87fca2680865a7384b6eb20716fd96b882b305a2198930a074338484848181106106fa576106fa610ce0565b905060200201602081019061070f9190610bb9565b60405161071d929190610cc3565b60405180910390a1600101610661565b3360009081526020819052604090205460ff1661075c5760405162461bcd60e51b81526004016102ea90610c4b565b33600090815260016020908152604080832061ffff8516845290915281205460ff16151590036107a357338160405163236a687560e11b81526004016102ea929190610cc3565b33600081815260016020908152604080832061ffff8616845290915290819020805460ff19169055517f35c7374bcb82f2355cb703c8ab6162f87fe83b99618bdb78c6d19b07ddf060a291610624918490610cc3565b3360009081526020819052604090205460ff166108285760405162461bcd60e51b81526004016102ea90610c4b565b60005b818110156103e9573360009081526001602052604081208185858581811061085557610855610ce0565b905060200201602081019061086a9190610bb9565b61ffff1681526020810191909152604001600020805460ff19169115159190911790557f35c7374bcb82f2355cb703c8ab6162f87fe83b99618bdb78c6d19b07ddf060a2338484848181106108c1576108c1610ce0565b90506020020160208101906108d69190610bb9565b6040516108e4929190610cc3565b60405180910390a160010161082b565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610934573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109589190610cf6565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610995573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b99190610cf6565b604051637e42683b60e01b81526001600160a01b0384811660048301529190911690637e42683b90602401602060405180830381865afa158015610a01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a259190610d13565b9392505050565b6001600160a01b0381168114610a4157600080fd5b50565b60008060008060808587031215610a5a57600080fd5b8435610a6581610a2c565b93506020850135610a7581610a2c565b9250604085013591506060850135610a8c81610a2c565b939692955090935050565b600060208284031215610aa957600080fd5b8135610a2581610a2c565b60006020808352835180602085015260005b81811015610ae257858101830151858201604001528201610ac6565b506000604082860101526040601f19601f8301168501019250505092915050565b61ffff81168114610a4157600080fd5b60008060408385031215610b2657600080fd5b8235610b3181610a2c565b91506020830135610b4181610b03565b809150509250929050565b600080600060608486031215610b6157600080fd5b8335610b6c81610a2c565b92506020840135610b7c81610a2c565b929592945050506040919091013590565b60008060408385031215610ba057600080fd5b8235610bab81610a2c565b946020939093013593505050565b600060208284031215610bcb57600080fd5b8135610a2581610b03565b60008060208385031215610be957600080fd5b823567ffffffffffffffff80821115610c0157600080fd5b818501915085601f830112610c1557600080fd5b813581811115610c2457600080fd5b8660208260051b8501011115610c3957600080fd5b60209290920196919550909350505050565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b6001600160a01b0392909216825261ffff16602082015260400190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610d0857600080fd5b8151610a2581610a2c565b600060208284031215610d2557600080fd5b8151610a2581610b0356fea2646970667358221220374da104fa8396451ede082fab68ba7b5eb2405c5e30dcd8862c1f243e10ba2364736f6c63430008180033","sourceMap":"3946:7009:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9185:304;;;;;;:::i;:::-;;:::i;:::-;;;918:14:165;;911:22;893:41;;881:2;866:18;9185:304:46;;;;;;;;5018:343:44;;;;;;:::i;:::-;;:::i;:::-;;10192:102:46;10260:27;;;;;;;;;;;-1:-1:-1;;;10260:27:46;;;;10192:102;;;;10260:27;10192:102;:::i;9982:155::-;;;;;;:::i;:::-;-1:-1:-1;;;;;10090:30:46;;10067:4;10090:30;;;:17;:30;;;;;;;;:40;;;;;;;;;;;;;9982:155;;;;;8262:113;;;;;;:::i;:::-;;:::i;8795:96::-;;;;;;:::i;:::-;;:::i;4555:396:44:-;;;;;;:::i;:::-;;:::i;5429:139::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5532:29:44;5509:4;5532:29;;;;;;;;;;;;;;5429:139;6973:303:46;;;;;;:::i;:::-;;:::i;5480:289::-;;;;;;:::i;:::-;;:::i;7785:306::-;;;;;;:::i;:::-;;:::i;9557:118::-;;;;;;:::i;:::-;-1:-1:-1;9664:4:46;;9557:118;6289:295;;;;;;:::i;:::-;;:::i;9739:91::-;9819:4;9739:91;;9185:304;9349:4;9365:22;9390:29;9402:11;9415:3;9390:11;:29::i;:::-;-1:-1:-1;;;;;10090:30:46;;10067:4;10090:30;;;:17;:30;;;;;;;;:40;;;;;;;;;;;9365:54;;-1:-1:-1;10090:40:46;;9429:53;9185:304;-1:-1:-1;;;;;;9185:304:46:o;5018:343:44:-;4426:10;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5120:25:44;::::1;5112:69;;;::::0;-1:-1:-1;;;5112:69:44;;4474:2:165;5112:69:44::1;::::0;::::1;4456:21:165::0;4513:2;4493:18;;;4486:30;4552:33;4532:18;;;4525:61;4603:18;;5112:69:44::1;4272:355:165::0;5112:69:44::1;5199:10;-1:-1:-1::0;;;;;5199:25:44;::::1;;5191:71;;;;-1:-1:-1::0;;;5191:71:44::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5272:29:44;::::1;5304:5;5272:29:::0;;;::::1;::::0;;;;;;;:37;;-1:-1:-1;;5272:37:44::1;::::0;;5324:30;::::1;::::0;5304:5;5324:30:::1;5018:343:::0;:::o;8262:113:46:-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;8262:113:46;;;:::o;8795:96::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;8795:96:46;;:::o;4555:396:44:-;-1:-1:-1;;;;;4636:25:44;;4628:69;;;;-1:-1:-1;;;4628:69:44;;4474:2:165;4628:69:44;;;4456:21:165;4513:2;4493:18;;;4486:30;4552:33;4532:18;;;4525:61;4603:18;;4628:69:44;4272:355:165;4628:69:44;-1:-1:-1;;;;;4716:29:44;;:16;:29;;;;;;;;;;;;;4715:30;4707:67;;;;-1:-1:-1;;;4707:67:44;;5236:2:165;4707:67:44;;;5218:21:165;5275:2;5255:18;;;5248:30;5314:26;5294:18;;;5287:54;5358:18;;4707:67:44;5034:348:165;4707:67:44;4792:10;-1:-1:-1;;;;;4792:25:44;;;4784:71;;;;-1:-1:-1;;;4784:71:44;;;;;;;:::i;:::-;-1:-1:-1;;;;;4865:29:44;;:16;:29;;;;;;;;;;;:36;;-1:-1:-1;;4865:36:44;4897:4;4865:36;;;4916:28;;;4865:16;4916:28;4555:396;:::o;6973:303:46:-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;7078:10:46::1;7060:29;::::0;;;:17:::1;:29;::::0;;;;;;;7059:41:::1;::::0;::::1;::::0;;;;;;;;;::::1;;:49;;::::0;;7055:105:::1;;7139:10;7151:8;7117:43;;-1:-1:-1::0;;;7117:43:46::1;;;;;;;;;:::i;7055:105::-;7189:10;7171:29;::::0;;;7214:4:::1;7171:29;::::0;;;;;;;7170:41:::1;::::0;::::1;::::0;;;;;;;;;:48;;-1:-1:-1;;7170:48:46::1;::::0;;::::1;::::0;;7233:36;::::1;::::0;::::1;::::0;7202:8;;7233:36:::1;:::i;:::-;;;;;;;;6973:303:::0;:::o;5480:289::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;5582:9:46::1;5577:186;5597:21:::0;;::::1;5577:186;;;5658:10;5640:29;::::0;;;5688:4:::1;5640:29;::::0;;;;;;5688:4;;5671:10;;5682:1;5671:13;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;5639:46;;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;5639:46:46;:53;;-1:-1:-1;;5639:53:46::1;::::0;::::1;;::::0;;;::::1;::::0;;5711:41:::1;5726:10;5738::::0;;5749:1;5738:13;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;5711:41;;;;;;;:::i;:::-;;;;;;;;5620:3;;5577:186;;7785:306:::0;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;7893:10:46::1;7875:29;::::0;;;:17:::1;:29;::::0;;;;;;;7874:41:::1;::::0;::::1;::::0;;;;;;;;::::1;;:50;;::::0;;7870:102:::1;;7951:10;7963:8;7933:39;;-1:-1:-1::0;;;7933:39:46::1;;;;;;;;;:::i;7870:102::-;8001:10;8026:5;7983:29:::0;;;:17:::1;:29;::::0;;;;;;;7982:41:::1;::::0;::::1;::::0;;;;;;;;;:49;;-1:-1:-1;;7982:49:46::1;::::0;;8046:38;::::1;::::0;::::1;::::0;8014:8;;8046:38:::1;:::i;6289:295::-:0;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;6394:9:46::1;6389:189;6409:21:::0;;::::1;6389:189;;;6470:10;6500:5;6452:29:::0;;;:17:::1;:29;::::0;;;;6500:5;6483:10;;6494:1;6483:13;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;6451:46;;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;6451:46:46;:54;;-1:-1:-1;;6451:54:46::1;::::0;::::1;;::::0;;;::::1;::::0;;6524:43:::1;6541:10;6553::::0;;6564:1;6553:13;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;6524:43;;;;;;;:::i;:::-;;;;;;;;6432:3;;6389:189;;10730:223:::0;10817:6;10868:11;-1:-1:-1;;;;;10849:45:46;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10842:72:46;;:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:104;;-1:-1:-1;;;10842:104:46;;-1:-1:-1;;;;;6512:32:165;;;10842:104:46;;;6494:51:165;10842:90:46;;;;;;;6467:18:165;;10842:104:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10835:111;10730:223;-1:-1:-1;;;10730:223:46:o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:598::-;236:6;244;252;260;313:3;301:9;292:7;288:23;284:33;281:53;;;330:1;327;320:12;281:53;369:9;356:23;388:31;413:5;388:31;:::i;:::-;438:5;-1:-1:-1;495:2:165;480:18;;467:32;508:33;467:32;508:33;:::i;:::-;560:7;-1:-1:-1;614:2:165;599:18;;586:32;;-1:-1:-1;670:2:165;655:18;;642:32;683:33;642:32;683:33;:::i;:::-;150:598;;;;-1:-1:-1;150:598:165;;-1:-1:-1;;150:598:165:o;945:247::-;1004:6;1057:2;1045:9;1036:7;1032:23;1028:32;1025:52;;;1073:1;1070;1063:12;1025:52;1112:9;1099:23;1131:31;1156:5;1131:31;:::i;1197:548::-;1309:4;1338:2;1367;1356:9;1349:21;1399:6;1393:13;1442:6;1437:2;1426:9;1422:18;1415:34;1467:1;1477:140;1491:6;1488:1;1485:13;1477:140;;;1586:14;;;1582:23;;1576:30;1552:17;;;1571:2;1548:26;1541:66;1506:10;;1477:140;;;1481:3;1666:1;1661:2;1652:6;1641:9;1637:22;1633:31;1626:42;1736:2;1729;1725:7;1720:2;1712:6;1708:15;1704:29;1693:9;1689:45;1685:54;1677:62;;;;1197:548;;;;:::o;1750:117::-;1835:6;1828:5;1824:18;1817:5;1814:29;1804:57;;1857:1;1854;1847:12;1872:386;1939:6;1947;2000:2;1988:9;1979:7;1975:23;1971:32;1968:52;;;2016:1;2013;2006:12;1968:52;2055:9;2042:23;2074:31;2099:5;2074:31;:::i;:::-;2124:5;-1:-1:-1;2181:2:165;2166:18;;2153:32;2194;2153;2194;:::i;:::-;2245:7;2235:17;;;1872:386;;;;;:::o;2263:456::-;2340:6;2348;2356;2409:2;2397:9;2388:7;2384:23;2380:32;2377:52;;;2425:1;2422;2415:12;2377:52;2464:9;2451:23;2483:31;2508:5;2483:31;:::i;:::-;2533:5;-1:-1:-1;2590:2:165;2575:18;;2562:32;2603:33;2562:32;2603:33;:::i;:::-;2263:456;;2655:7;;-1:-1:-1;;;2709:2:165;2694:18;;;;2681:32;;2263:456::o;2724:315::-;2792:6;2800;2853:2;2841:9;2832:7;2828:23;2824:32;2821:52;;;2869:1;2866;2859:12;2821:52;2908:9;2895:23;2927:31;2952:5;2927:31;:::i;:::-;2977:5;3029:2;3014:18;;;;3001:32;;-1:-1:-1;;;2724:315:165:o;3044:245::-;3102:6;3155:2;3143:9;3134:7;3130:23;3126:32;3123:52;;;3171:1;3168;3161:12;3123:52;3210:9;3197:23;3229:30;3253:5;3229:30;:::i;3294:614::-;3379:6;3387;3440:2;3428:9;3419:7;3415:23;3411:32;3408:52;;;3456:1;3453;3446:12;3408:52;3496:9;3483:23;3525:18;3566:2;3558:6;3555:14;3552:34;;;3582:1;3579;3572:12;3552:34;3620:6;3609:9;3605:22;3595:32;;3665:7;3658:4;3654:2;3650:13;3646:27;3636:55;;3687:1;3684;3677:12;3636:55;3727:2;3714:16;3753:2;3745:6;3742:14;3739:34;;;3769:1;3766;3759:12;3739:34;3822:7;3817:2;3807:6;3804:1;3800:14;3796:2;3792:23;3788:32;3785:45;3782:65;;;3843:1;3840;3833:12;3782:65;3874:2;3866:11;;;;;3896:6;;-1:-1:-1;3294:614:165;;-1:-1:-1;;;;3294:614:165:o;3913:354::-;4115:2;4097:21;;;4154:2;4134:18;;;4127:30;4193:32;4188:2;4173:18;;4166:60;4258:2;4243:18;;3913:354::o;4632:397::-;4834:2;4816:21;;;4873:2;4853:18;;;4846:30;4912:34;4907:2;4892:18;;4885:62;-1:-1:-1;;;4978:2:165;4963:18;;4956:31;5019:3;5004:19;;4632:397::o;5387:285::-;-1:-1:-1;;;;;5577:32:165;;;;5559:51;;5658:6;5646:19;5641:2;5626:18;;5619:47;5547:2;5532:18;;5387:285::o;5677:127::-;5738:10;5733:3;5729:20;5726:1;5719:31;5769:4;5766:1;5759:15;5793:4;5790:1;5783:15;5809:251;5879:6;5932:2;5920:9;5911:7;5907:23;5903:32;5900:52;;;5948:1;5945;5938:12;5900:52;5980:9;5974:16;5999:31;6024:5;5999:31;:::i;6556:249::-;6625:6;6678:2;6666:9;6657:7;6653:23;6649:32;6646:52;;;6694:1;6691;6684:12;6646:52;6726:9;6720:16;6745:30;6769:5;6745:30;:::i","linkReferences":{}},"methodIdentifiers":{"addAllowedCountry(uint16)":"4f44425e","batchAllowCountries(uint16[])":"771c5281","batchDisallowCountries(uint16[])":"c08e1502","bindCompliance(address)":"4a932544","canComplianceBind(address)":"bcc21053","isComplianceBound(address)":"4cf4d295","isCountryAllowed(address,uint16)":"0f4f0904","isPlugAndPlay()":"e6f5e807","moduleBurnAction(address,uint256)":"372491a2","moduleCheck(address,address,uint256,address)":"013b7ce4","moduleMintAction(address,uint256)":"f104a8c9","moduleTransferAction(address,address,uint256)":"2cb7e1ec","name()":"06fdde03","removeAllowedCountry(uint16)":"817544c3","unbindCompliance(address)":"0694a5fb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"CountryAlreadyAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"CountryNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"CountryAllowed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"CountryUnallowed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"addAllowedCountry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16[]\",\"name\":\"_countries\",\"type\":\"uint16[]\"}],\"name\":\"batchAllowCountries\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16[]\",\"name\":\"_countries\",\"type\":\"uint16[]\"}],\"name\":\"batchDisallowCountries\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"bindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"canComplianceBind\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"isComplianceBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"isCountryAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPlugAndPlay\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleBurnAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"moduleCheck\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleMintAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleTransferAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"removeAllowedCountry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"unbindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addAllowedCountry(uint16)\":{\"details\":\"Adds country allowance. Identities from this country will be able to manipulate Tokens linked to this Compliance.\",\"params\":{\"_country\":\"Country to be allowed, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `AddedAllowedCountry` event\"}},\"batchAllowCountries(uint16[])\":{\"details\":\"Adds country allowance in batch. Identities from those countries will be allowed to manipulate Tokens linked to this Compliance.\",\"params\":{\"_countries\":\"Countries to be restricted, should be expressed by following numeric ISO 3166-1 standard Can be called only for a compliance contract that is bound to the CountryAllowModule Only the owner of the Compliance smart contract can call this function emits an `AddedAllowedCountry` event\"}},\"batchDisallowCountries(uint16[])\":{\"details\":\"Removes country allowance in batch. Identities from those countries will lose the authorization to manipulate Tokens linked to this Compliance.\",\"params\":{\"_countries\":\"Countries to be disallowed, should be expressed by following numeric ISO 3166-1 standard Can be called only for a compliance contract that is bound to the CountryAllowModule Only the owner of the Compliance smart contract can call this function emits an `RemoveAllowedCountry` event\"}},\"bindCompliance(address)\":{\"details\":\"See {IModule-bindCompliance}.\"},\"canComplianceBind(address)\":{\"details\":\"See {IModule-canComplianceBind}.\"},\"isComplianceBound(address)\":{\"details\":\"See {IModule-isComplianceBound}.\"},\"isCountryAllowed(address,uint16)\":{\"details\":\"Returns true if country is Allowed\",\"params\":{\"_country\":\", numeric ISO 3166-1 standard of the country to be checked\"}},\"isPlugAndPlay()\":{\"details\":\"See {IModule-isPlugAndPlay}.\"},\"moduleBurnAction(address,uint256)\":{\"details\":\"See {IModule-moduleBurnAction}. no burn action required in this module\"},\"moduleCheck(address,address,uint256,address)\":{\"details\":\"See {IModule-moduleCheck}. checks if the country of address _to is allowed for this _compliance returns TRUE if the country of _to is allowed for this _compliance returns FALSE if the country of _to is not allowed for this _compliance\"},\"moduleMintAction(address,uint256)\":{\"details\":\"See {IModule-moduleMintAction}. no mint action required in this module\"},\"moduleTransferAction(address,address,uint256)\":{\"details\":\"See {IModule-moduleTransferAction}. no transfer action required in this module\"},\"name()\":{\"details\":\"See {IModule-name}.\"},\"removeAllowedCountry(uint16)\":{\"details\":\"Removes country allowance. Identities from those countries will lose the authorization to manipulate Tokens linked to this Compliance.\",\"params\":{\"_country\":\"Country to be unrestricted, should be expressed by following numeric ISO 3166-1 standard Can be called only for a compliance contract that is bound to the CountryAllowModule Only the owner of the Compliance smart contract can call this function emits an `RemoveAllowedCountry` event\"}},\"unbindCompliance(address)\":{\"details\":\"See {IModule-unbindCompliance}.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"CountryAlreadyAllowed(address,uint16)\":[{\"notice\":\"Custom Errors\"}]},\"events\":{\"ComplianceBound(address)\":{\"notice\":\"this event is emitted when the compliance contract is bound to the module. the event is emitted by the bindCompliance function `_compliance` is the address of the compliance contract being bound\"},\"ComplianceUnbound(address)\":{\"notice\":\"this event is emitted when the compliance contract is unbound from the module. the event is emitted by the unbindCompliance function `_compliance` is the address of the compliance contract being unbound\"},\"CountryAllowed(address,uint16)\":{\"notice\":\"this event is emitted whenever a Country has been allowed. the event is emitted by 'addAllowedCountry' and 'batchAllowCountries' functions. `_country` is the numeric ISO 3166-1 of the restricted country.\"},\"CountryUnallowed(address,uint16)\":{\"notice\":\"this event is emitted whenever a Country has been disallowed. the event is emitted by 'removeAllowedCountry' and 'batchDisallowCountries' functions. `_country` is the numeric ISO 3166-1 of the disallowed country.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/modular/modules/CountryAllowModule.sol\":\"CountryAllowModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/compliance/modular/modules/AbstractModule.sol\":{\"keccak256\":\"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8\",\"dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu\"]},\"contracts/erc3643/compliance/modular/modules/CountryAllowModule.sol\":{\"keccak256\":\"0xa2f822a7ccd79c1c2517d933c2c7b7b5bec8c7197e3e16277a708f3a9a72df81\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3e928f05926bc9318d52ad257484266f3b6fbab2dc7869fa1130d4e8b7c1d330\",\"dweb:/ipfs/QmTfP2egZLw9NkzVoRREe1v6SqAYoN3F2DizELrg7HzQ98\"]},\"contracts/erc3643/compliance/modular/modules/IModule.sol\":{\"keccak256\":\"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c\",\"dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"uint16","name":"_country","type":"uint16"}],"type":"error","name":"CountryAlreadyAllowed"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"uint16","name":"_country","type":"uint16"}],"type":"error","name":"CountryNotAllowed"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":false},{"internalType":"uint16","name":"_country","type":"uint16","indexed":false}],"type":"event","name":"CountryAllowed","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":false},{"internalType":"uint16","name":"_country","type":"uint16","indexed":false}],"type":"event","name":"CountryUnallowed","anonymous":false},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"addAllowedCountry"},{"inputs":[{"internalType":"uint16[]","name":"_countries","type":"uint16[]"}],"stateMutability":"nonpayable","type":"function","name":"batchAllowCountries"},{"inputs":[{"internalType":"uint16[]","name":"_countries","type":"uint16[]"}],"stateMutability":"nonpayable","type":"function","name":"batchDisallowCountries"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindCompliance"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"canComplianceBind","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"view","type":"function","name":"isCountryAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPlugAndPlay","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleBurnAction"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"moduleCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleMintAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleTransferAction"},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"removeAllowedCountry"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindCompliance"}],"devdoc":{"kind":"dev","methods":{"addAllowedCountry(uint16)":{"details":"Adds country allowance. Identities from this country will be able to manipulate Tokens linked to this Compliance.","params":{"_country":"Country to be allowed, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `AddedAllowedCountry` event"}},"batchAllowCountries(uint16[])":{"details":"Adds country allowance in batch. Identities from those countries will be allowed to manipulate Tokens linked to this Compliance.","params":{"_countries":"Countries to be restricted, should be expressed by following numeric ISO 3166-1 standard Can be called only for a compliance contract that is bound to the CountryAllowModule Only the owner of the Compliance smart contract can call this function emits an `AddedAllowedCountry` event"}},"batchDisallowCountries(uint16[])":{"details":"Removes country allowance in batch. Identities from those countries will lose the authorization to manipulate Tokens linked to this Compliance.","params":{"_countries":"Countries to be disallowed, should be expressed by following numeric ISO 3166-1 standard Can be called only for a compliance contract that is bound to the CountryAllowModule Only the owner of the Compliance smart contract can call this function emits an `RemoveAllowedCountry` event"}},"bindCompliance(address)":{"details":"See {IModule-bindCompliance}."},"canComplianceBind(address)":{"details":"See {IModule-canComplianceBind}."},"isComplianceBound(address)":{"details":"See {IModule-isComplianceBound}."},"isCountryAllowed(address,uint16)":{"details":"Returns true if country is Allowed","params":{"_country":", numeric ISO 3166-1 standard of the country to be checked"}},"isPlugAndPlay()":{"details":"See {IModule-isPlugAndPlay}."},"moduleBurnAction(address,uint256)":{"details":"See {IModule-moduleBurnAction}. no burn action required in this module"},"moduleCheck(address,address,uint256,address)":{"details":"See {IModule-moduleCheck}. checks if the country of address _to is allowed for this _compliance returns TRUE if the country of _to is allowed for this _compliance returns FALSE if the country of _to is not allowed for this _compliance"},"moduleMintAction(address,uint256)":{"details":"See {IModule-moduleMintAction}. no mint action required in this module"},"moduleTransferAction(address,address,uint256)":{"details":"See {IModule-moduleTransferAction}. no transfer action required in this module"},"name()":{"details":"See {IModule-name}."},"removeAllowedCountry(uint16)":{"details":"Removes country allowance. Identities from those countries will lose the authorization to manipulate Tokens linked to this Compliance.","params":{"_country":"Country to be unrestricted, should be expressed by following numeric ISO 3166-1 standard Can be called only for a compliance contract that is bound to the CountryAllowModule Only the owner of the Compliance smart contract can call this function emits an `RemoveAllowedCountry` event"}},"unbindCompliance(address)":{"details":"See {IModule-unbindCompliance}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/modular/modules/CountryAllowModule.sol":"CountryAllowModule"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/AbstractModule.sol":{"keccak256":"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3","urls":["bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8","dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/CountryAllowModule.sol":{"keccak256":"0xa2f822a7ccd79c1c2517d933c2c7b7b5bec8c7197e3e16277a708f3a9a72df81","urls":["bzz-raw://3e928f05926bc9318d52ad257484266f3b6fbab2dc7869fa1130d4e8b7c1d330","dweb:/ipfs/QmTfP2egZLw9NkzVoRREe1v6SqAYoN3F2DizELrg7HzQ98"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/IModule.sol":{"keccak256":"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02","urls":["bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c","dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"}},"version":1},"id":46} \ No newline at end of file diff --git a/out/CountryRestrictModule.sol/CountryRestrictModule.json b/out/CountryRestrictModule.sol/CountryRestrictModule.json new file mode 100644 index 0000000..7b3e25b --- /dev/null +++ b/out/CountryRestrictModule.sol/CountryRestrictModule.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addCountryRestriction","inputs":[{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchRestrictCountries","inputs":[{"name":"_countries","type":"uint16[]","internalType":"uint16[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchUnrestrictCountries","inputs":[{"name":"_countries","type":"uint16[]","internalType":"uint16[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canComplianceBind","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComplianceBound","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isCountryRestricted","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPlugAndPlay","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"moduleBurnAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleCheck","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleMintAction","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleTransferAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"removeCountryRestriction","inputs":[{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddedRestrictedCountry","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"},{"name":"_country","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"ComplianceBound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ComplianceUnbound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RemovedRestrictedCountry","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"},{"name":"_country","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610fa3806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063372491a211610097578063bcc2105311610066578063bcc210531461024b578063bdf9a07e1461025f578063e6f5e80714610272578063f104a8c9146101e657600080fd5b8063372491a2146101e65780634a932544146101f95780634cf4d2951461020c5780636aae7b261461023857600080fd5b806306fdde03116100d357806306fdde031461014a578063249c981d146101815780632cb7e1ec1461019457806330236f4a146101a757600080fd5b8063013b7ce4146100fa5780630333ce24146101225780630694a5fb14610137575b600080fd5b61010d610108366004610c9e565b610279565b60405190151581526020015b60405180910390f35b610135610130366004610d01565b6102d1565b005b610135610145366004610d1e565b6103d9565b6040805180820182526015815274436f756e74727952657374726963744d6f64756c6560581b602082015290516101199190610d3b565b61013561018f366004610d8a565b6104cf565b6101356101a2366004610dff565b6106cd565b61010d6101b5366004610e40565b6001600160a01b038216600090815260016020908152604080832061ffff8516845290915290205460ff1692915050565b6101356101f4366004610e79565b6106fc565b610135610207366004610d1e565b61072f565b61010d61021a366004610d1e565b6001600160a01b031660009081526020819052604090205460ff1690565b610135610246366004610d01565b610862565b61010d610259366004610d1e565b50600190565b61013561026d366004610d8a565b610951565b600161010d565b6000806102868386610b4e565b6001600160a01b038416600090815260016020908152604080832061ffff8516845290915290205490915060ff16156102c35760009150506102c9565b60019150505b949350505050565b3360009081526020819052604090205460ff166103095760405162461bcd60e51b815260040161030090610ea5565b60405180910390fd5b33600090815260016020908152604080832061ffff8516845290915290205460ff16156103785760405162461bcd60e51b815260206004820152601a60248201527f636f756e74727920616c726561647920726573747269637465640000000000006044820152606401610300565b33600081815260016020818152604080842061ffff871680865290835293819020805460ff191690931790925590519182527f5e0addf626d7d7091ab7aebf34682c3203384648734760b24921e31ddcec0bb591015b60405180910390a250565b3360009081526020819052604090205460ff166104085760405162461bcd60e51b815260040161030090610ea5565b6001600160a01b03811661045e5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610300565b336001600160a01b038216146104865760405162461bcd60e51b815260040161030090610edc565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166104fe5760405162461bcd60e51b815260040161030090610ea5565b60c381106105635760405162461bcd60e51b815260206004820152602c60248201527f6d6178696d756d203139352063616e20626520756e726573747269637465642060448201526b0d2dc40dedcca40c4c2e8c6d60a31b6064820152608401610300565b60005b818110156106c8573360009081526001602052604081209084848481811061059057610590610f1d565b90506020020160208101906105a59190610d01565b61ffff16815260208101919091526040016000205460ff1615156001146106075760405162461bcd60e51b815260206004820152601660248201527518dbdd5b9d1c9e481b9bdd081c995cdd1c9a58dd195960521b6044820152606401610300565b3360009081526001602052604081208185858581811061062957610629610f1d565b905060200201602081019061063e9190610d01565b61ffff1681526020810191909152604001600020805460ff1916911515919091179055337ffb8bb575200aa114265a31c7d8ebeb4e395bd3cd9d0914c4bfa2a511d2011a7a84848481811061069557610695610f1d565b90506020020160208101906106aa9190610d01565b60405161ffff909116815260200160405180910390a2600101610566565b505050565b3360009081526020819052604090205460ff166106c85760405162461bcd60e51b815260040161030090610ea5565b3360009081526020819052604090205460ff1661072b5760405162461bcd60e51b815260040161030090610ea5565b5050565b6001600160a01b0381166107855760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610300565b6001600160a01b03811660009081526020819052604090205460ff16156107ee5760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e6400000000000000006044820152606401610300565b336001600160a01b038216146108165760405162461bcd60e51b815260040161030090610edc565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b3360009081526020819052604090205460ff166108915760405162461bcd60e51b815260040161030090610ea5565b33600090815260016020818152604080842061ffff861685529091529091205460ff161515146108fc5760405162461bcd60e51b815260206004820152601660248201527518dbdd5b9d1c9e481b9bdd081c995cdd1c9a58dd195960521b6044820152606401610300565b33600081815260016020908152604080832061ffff861680855290835292819020805460ff19169055519182527ffb8bb575200aa114265a31c7d8ebeb4e395bd3cd9d0914c4bfa2a511d2011a7a91016103ce565b3360009081526020819052604090205460ff166109805760405162461bcd60e51b815260040161030090610ea5565b60c381106109e35760405162461bcd60e51b815260206004820152602a60248201527f6d6178696d756d203139352063616e206265207265737472696374656420696e604482015269040dedcca40c4c2e8c6d60b31b6064820152608401610300565b60005b818110156106c85733600090815260016020526040812090848484818110610a1057610a10610f1d565b9050602002016020810190610a259190610d01565b61ffff16815260208101919091526040016000205460ff1615610a8a5760405162461bcd60e51b815260206004820152601a60248201527f636f756e74727920616c726561647920726573747269637465640000000000006044820152606401610300565b33600090815260016020819052604082209091858585818110610aaf57610aaf610f1d565b9050602002016020810190610ac49190610d01565b61ffff1681526020810191909152604001600020805460ff1916911515919091179055337f5e0addf626d7d7091ab7aebf34682c3203384648734760b24921e31ddcec0bb5848484818110610b1b57610b1b610f1d565b9050602002016020810190610b309190610d01565b60405161ffff909116815260200160405180910390a26001016109e6565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb29190610f33565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c139190610f33565b604051637e42683b60e01b81526001600160a01b0384811660048301529190911690637e42683b90602401602060405180830381865afa158015610c5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7f9190610f50565b9392505050565b6001600160a01b0381168114610c9b57600080fd5b50565b60008060008060808587031215610cb457600080fd5b8435610cbf81610c86565b93506020850135610ccf81610c86565b9250604085013591506060850135610ce681610c86565b939692955090935050565b61ffff81168114610c9b57600080fd5b600060208284031215610d1357600080fd5b8135610c7f81610cf1565b600060208284031215610d3057600080fd5b8135610c7f81610c86565b60006020808352835180602085015260005b81811015610d6957858101830151858201604001528201610d4d565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060208385031215610d9d57600080fd5b823567ffffffffffffffff80821115610db557600080fd5b818501915085601f830112610dc957600080fd5b813581811115610dd857600080fd5b8660208260051b8501011115610ded57600080fd5b60209290920196919550909350505050565b600080600060608486031215610e1457600080fd5b8335610e1f81610c86565b92506020840135610e2f81610c86565b929592945050506040919091013590565b60008060408385031215610e5357600080fd5b8235610e5e81610c86565b91506020830135610e6e81610cf1565b809150509250929050565b60008060408385031215610e8c57600080fd5b8235610e9781610c86565b946020939093013593505050565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610f4557600080fd5b8151610c7f81610c86565b600060208284031215610f6257600080fd5b8151610c7f81610cf156fea264697066735822122097626be1f2268cbee4040c263557479bf489ab7c61ac89368b06e72d36c8130964736f6c63430008180033","sourceMap":"3946:7587:47:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063372491a211610097578063bcc2105311610066578063bcc210531461024b578063bdf9a07e1461025f578063e6f5e80714610272578063f104a8c9146101e657600080fd5b8063372491a2146101e65780634a932544146101f95780634cf4d2951461020c5780636aae7b261461023857600080fd5b806306fdde03116100d357806306fdde031461014a578063249c981d146101815780632cb7e1ec1461019457806330236f4a146101a757600080fd5b8063013b7ce4146100fa5780630333ce24146101225780630694a5fb14610137575b600080fd5b61010d610108366004610c9e565b610279565b60405190151581526020015b60405180910390f35b610135610130366004610d01565b6102d1565b005b610135610145366004610d1e565b6103d9565b6040805180820182526015815274436f756e74727952657374726963744d6f64756c6560581b602082015290516101199190610d3b565b61013561018f366004610d8a565b6104cf565b6101356101a2366004610dff565b6106cd565b61010d6101b5366004610e40565b6001600160a01b038216600090815260016020908152604080832061ffff8516845290915290205460ff1692915050565b6101356101f4366004610e79565b6106fc565b610135610207366004610d1e565b61072f565b61010d61021a366004610d1e565b6001600160a01b031660009081526020819052604090205460ff1690565b610135610246366004610d01565b610862565b61010d610259366004610d1e565b50600190565b61013561026d366004610d8a565b610951565b600161010d565b6000806102868386610b4e565b6001600160a01b038416600090815260016020908152604080832061ffff8516845290915290205490915060ff16156102c35760009150506102c9565b60019150505b949350505050565b3360009081526020819052604090205460ff166103095760405162461bcd60e51b815260040161030090610ea5565b60405180910390fd5b33600090815260016020908152604080832061ffff8516845290915290205460ff16156103785760405162461bcd60e51b815260206004820152601a60248201527f636f756e74727920616c726561647920726573747269637465640000000000006044820152606401610300565b33600081815260016020818152604080842061ffff871680865290835293819020805460ff191690931790925590519182527f5e0addf626d7d7091ab7aebf34682c3203384648734760b24921e31ddcec0bb591015b60405180910390a250565b3360009081526020819052604090205460ff166104085760405162461bcd60e51b815260040161030090610ea5565b6001600160a01b03811661045e5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610300565b336001600160a01b038216146104865760405162461bcd60e51b815260040161030090610edc565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166104fe5760405162461bcd60e51b815260040161030090610ea5565b60c381106105635760405162461bcd60e51b815260206004820152602c60248201527f6d6178696d756d203139352063616e20626520756e726573747269637465642060448201526b0d2dc40dedcca40c4c2e8c6d60a31b6064820152608401610300565b60005b818110156106c8573360009081526001602052604081209084848481811061059057610590610f1d565b90506020020160208101906105a59190610d01565b61ffff16815260208101919091526040016000205460ff1615156001146106075760405162461bcd60e51b815260206004820152601660248201527518dbdd5b9d1c9e481b9bdd081c995cdd1c9a58dd195960521b6044820152606401610300565b3360009081526001602052604081208185858581811061062957610629610f1d565b905060200201602081019061063e9190610d01565b61ffff1681526020810191909152604001600020805460ff1916911515919091179055337ffb8bb575200aa114265a31c7d8ebeb4e395bd3cd9d0914c4bfa2a511d2011a7a84848481811061069557610695610f1d565b90506020020160208101906106aa9190610d01565b60405161ffff909116815260200160405180910390a2600101610566565b505050565b3360009081526020819052604090205460ff166106c85760405162461bcd60e51b815260040161030090610ea5565b3360009081526020819052604090205460ff1661072b5760405162461bcd60e51b815260040161030090610ea5565b5050565b6001600160a01b0381166107855760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610300565b6001600160a01b03811660009081526020819052604090205460ff16156107ee5760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e6400000000000000006044820152606401610300565b336001600160a01b038216146108165760405162461bcd60e51b815260040161030090610edc565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b3360009081526020819052604090205460ff166108915760405162461bcd60e51b815260040161030090610ea5565b33600090815260016020818152604080842061ffff861685529091529091205460ff161515146108fc5760405162461bcd60e51b815260206004820152601660248201527518dbdd5b9d1c9e481b9bdd081c995cdd1c9a58dd195960521b6044820152606401610300565b33600081815260016020908152604080832061ffff861680855290835292819020805460ff19169055519182527ffb8bb575200aa114265a31c7d8ebeb4e395bd3cd9d0914c4bfa2a511d2011a7a91016103ce565b3360009081526020819052604090205460ff166109805760405162461bcd60e51b815260040161030090610ea5565b60c381106109e35760405162461bcd60e51b815260206004820152602a60248201527f6d6178696d756d203139352063616e206265207265737472696374656420696e604482015269040dedcca40c4c2e8c6d60b31b6064820152608401610300565b60005b818110156106c85733600090815260016020526040812090848484818110610a1057610a10610f1d565b9050602002016020810190610a259190610d01565b61ffff16815260208101919091526040016000205460ff1615610a8a5760405162461bcd60e51b815260206004820152601a60248201527f636f756e74727920616c726561647920726573747269637465640000000000006044820152606401610300565b33600090815260016020819052604082209091858585818110610aaf57610aaf610f1d565b9050602002016020810190610ac49190610d01565b61ffff1681526020810191909152604001600020805460ff1916911515919091179055337f5e0addf626d7d7091ab7aebf34682c3203384648734760b24921e31ddcec0bb5848484818110610b1b57610b1b610f1d565b9050602002016020810190610b309190610d01565b60405161ffff909116815260200160405180910390a26001016109e6565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb29190610f33565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c139190610f33565b604051637e42683b60e01b81526001600160a01b0384811660048301529190911690637e42683b90602401602060405180830381865afa158015610c5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7f9190610f50565b9392505050565b6001600160a01b0381168114610c9b57600080fd5b50565b60008060008060808587031215610cb457600080fd5b8435610cbf81610c86565b93506020850135610ccf81610c86565b9250604085013591506060850135610ce681610c86565b939692955090935050565b61ffff81168114610c9b57600080fd5b600060208284031215610d1357600080fd5b8135610c7f81610cf1565b600060208284031215610d3057600080fd5b8135610c7f81610c86565b60006020808352835180602085015260005b81811015610d6957858101830151858201604001528201610d4d565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060208385031215610d9d57600080fd5b823567ffffffffffffffff80821115610db557600080fd5b818501915085601f830112610dc957600080fd5b813581811115610dd857600080fd5b8660208260051b8501011115610ded57600080fd5b60209290920196919550909350505050565b600080600060608486031215610e1457600080fd5b8335610e1f81610c86565b92506020840135610e2f81610c86565b929592945050506040919091013590565b60008060408385031215610e5357600080fd5b8235610e5e81610c86565b91506020830135610e6e81610cf1565b809150509250929050565b60008060408385031215610e8c57600080fd5b8235610e9781610c86565b946020939093013593505050565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610f4557600080fd5b8151610c7f81610c86565b600060208284031215610f6257600080fd5b8151610c7f81610cf156fea264697066735822122097626be1f2268cbee4040c263557479bf489ab7c61ac89368b06e72d36c8130964736f6c63430008180033","sourceMap":"3946:7587:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9684:363;;;;;;:::i;:::-;;:::i;:::-;;;918:14:165;;911:22;893:41;;881:2;866:18;9684:363:47;;;;;;;;5245:305;;;;;;:::i;:::-;;:::i;:::-;;5018:343:44;;;;;;:::i;:::-;;:::i;10767:105:47:-;10835:30;;;;;;;;;;;-1:-1:-1;;;10835:30:47;;;;10767:105;;;;10835:30;10767:105;:::i;8073:504::-;;;;;;:::i;:::-;;:::i;8748:113::-;;;;;;:::i;:::-;;:::i;10543:169::-;;;;;;:::i;:::-;-1:-1:-1;;;;;10660:33:47;;10635:4;10660:33;;;:20;:33;;;;;;;;10659:45;;;;;;;;;;;;;10543:169;;;;;9281:96;;;;;;:::i;:::-;;:::i;4555:396:44:-;;;;;;:::i;:::-;;:::i;5429:139::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5532:29:44;5509:4;5532:29;;;;;;;;;;;;;;5429:139;6066:306:47;;;;;;:::i;:::-;;:::i;10115:118::-;;;;;;:::i;:::-;-1:-1:-1;10222:4:47;;10115:118;6964:502;;;;;;:::i;:::-;;:::i;10297:91::-;10377:4;10297:91;;9684:363;9848:4;9864:22;9889:29;9901:11;9914:3;9889:11;:29::i;:::-;-1:-1:-1;;;;;10660:33:47;;10635:4;10660:33;;;:20;:33;;;;;;;;10659:45;;;;;;;;;;;9864:54;;-1:-1:-1;10659:45:47;;9928:92;;;10004:5;9997:12;;;;;9928:92;10036:4;10029:11;;;9684:363;;;;;;;:::o;5245:305::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;;;;;;;;;5361:10:47::1;5340:32;::::0;;;:20:::1;:32;::::0;;;;;;;5339:44:::1;::::0;::::1;::::0;;;;;;;;::::1;;:53;5331:92;;;::::0;-1:-1:-1;;;5331:92:47;;4474:2:165;5331:92:47::1;::::0;::::1;4456:21:165::0;4513:2;4493:18;;;4486:30;4552:28;4532:18;;;4525:56;4598:18;;5331:92:47::1;4272:350:165::0;5331:92:47::1;5455:10;5434:32;::::0;;;5480:4:::1;5434:32;::::0;;;;;;;5433:44:::1;::::0;::::1;::::0;;;;;;;;;;:51;;-1:-1:-1;;5433:51:47::1;::::0;;::::1;::::0;;;5499:44;;4771:38:165;;;5499:44:47::1;::::0;4744:18:165;5499:44:47::1;;;;;;;;5245:305:::0;:::o;5018:343:44:-;4426:10;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;-1:-1:-1;;;;;5120:25:44;::::1;5112:69;;;::::0;-1:-1:-1;;;5112:69:44;;5022:2:165;5112:69:44::1;::::0;::::1;5004:21:165::0;5061:2;5041:18;;;5034:30;5100:33;5080:18;;;5073:61;5151:18;;5112:69:44::1;4820:355:165::0;5112:69:44::1;5199:10;-1:-1:-1::0;;;;;5199:25:44;::::1;;5191:71;;;;-1:-1:-1::0;;;5191:71:44::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5272:29:44;::::1;5304:5;5272:29:::0;;;::::1;::::0;;;;;;;:37;;-1:-1:-1;;5272:37:44::1;::::0;;5324:30;::::1;::::0;5304:5;5324:30:::1;5018:343:::0;:::o;8073:504:47:-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;8203:3:47::1;8183:23:::0;::::1;8175:80;;;::::0;-1:-1:-1;;;8175:80:47;;5784:2:165;8175:80:47::1;::::0;::::1;5766:21:165::0;5823:2;5803:18;;;5796:30;5862:34;5842:18;;;5835:62;-1:-1:-1;;;5913:18:165;;;5906:42;5965:19;;8175:80:47::1;5582:408:165::0;8175:80:47::1;8270:9;8265:306;8285:21:::0;;::::1;8265:306;;;8357:10;8336:32;::::0;;;:20:::1;:32;::::0;;;;;8370:10;;8381:1;8370:13;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8335:49;;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;8335:49:47;;::::1;;:57;;:49:::0;:57:::1;8327:92;;;::::0;-1:-1:-1;;;8327:92:47;;6329:2:165;8327:92:47::1;::::0;::::1;6311:21:165::0;6368:2;6348:18;;;6341:30;-1:-1:-1;;;6387:18:165;;;6380:52;6449:18;;8327:92:47::1;6127:346:165::0;8327:92:47::1;8455:10;8485:5;8434:32:::0;;;:20:::1;:32;::::0;;;;8485:5;8468:10;;8479:1;8468:13;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8433:49;;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;8433:49:47;:57;;-1:-1:-1;;8433:57:47::1;::::0;::::1;;::::0;;;::::1;::::0;;8534:10:::1;8509:51;8546:10:::0;;8557:1;8546:13;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8509:51;::::0;4801:6:165;4789:19;;;4771:38;;4759:2;4744:18;8509:51:47::1;;;;;;;8308:3;;8265:306;;;;8073:504:::0;;:::o;8748:113::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;9281:96:47:-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;9281:96:47;;:::o;4555:396:44:-;-1:-1:-1;;;;;4636:25:44;;4628:69;;;;-1:-1:-1;;;4628:69:44;;5022:2:165;4628:69:44;;;5004:21:165;5061:2;5041:18;;;5034:30;5100:33;5080:18;;;5073:61;5151:18;;4628:69:44;4820:355:165;4628:69:44;-1:-1:-1;;;;;4716:29:44;;:16;:29;;;;;;;;;;;;;4715:30;4707:67;;;;-1:-1:-1;;;4707:67:44;;6680:2:165;4707:67:44;;;6662:21:165;6719:2;6699:18;;;6692:30;6758:26;6738:18;;;6731:54;6802:18;;4707:67:44;6478:348:165;4707:67:44;4792:10;-1:-1:-1;;;;;4792:25:44;;;4784:71;;;;-1:-1:-1;;;4784:71:44;;;;;;;:::i;:::-;-1:-1:-1;;;;;4865:29:44;;:16;:29;;;;;;;;;;;:36;;-1:-1:-1;;4865:36:44;4897:4;4865:36;;;4916:28;;;4865:16;4916:28;4555:396;:::o;6066:306:47:-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;6185:10:47::1;6164:32;::::0;;;:20:::1;:32;::::0;;;;;;;6163:44:::1;::::0;::::1;::::0;;;;;;;;;::::1;;:52;;;6155:87;;;::::0;-1:-1:-1;;;6155:87:47;;6329:2:165;6155:87:47::1;::::0;::::1;6311:21:165::0;6368:2;6348:18;;;6341:30;-1:-1:-1;;;6387:18:165;;;6380:52;6449:18;;6155:87:47::1;6127:346:165::0;6155:87:47::1;6274:10;6299:5;6253:32:::0;;;:20:::1;:32;::::0;;;;;;;6252:44:::1;::::0;::::1;::::0;;;;;;;;;;:52;;-1:-1:-1;;6252:52:47::1;::::0;;6319:46;4771:38:165;;;6319:46:47::1;::::0;4744:18:165;6319:46:47::1;4627:188:165::0;6964:502:47;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;7092:3:47::1;7072:23:::0;::::1;7064:78;;;::::0;-1:-1:-1;;;7064:78:47;;7033:2:165;7064:78:47::1;::::0;::::1;7015:21:165::0;7072:2;7052:18;;;7045:30;7111:34;7091:18;;;7084:62;-1:-1:-1;;;7162:18:165;;;7155:40;7212:19;;7064:78:47::1;6831:406:165::0;7064:78:47::1;7157:9;7152:308;7172:21:::0;;::::1;7152:308;;;7244:10;7223:32;::::0;;;:20:::1;:32;::::0;;;;;7257:10;;7268:1;7257:13;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7222:49;;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;7222:49:47;;::::1;;:58;7214:97;;;::::0;-1:-1:-1;;;7214:97:47;;4474:2:165;7214:97:47::1;::::0;::::1;4456:21:165::0;4513:2;4493:18;;;4486:30;4552:28;4532:18;;;4525:56;4598:18;;7214:97:47::1;4272:350:165::0;7214:97:47::1;7347:10;7326:32;::::0;;;7377:4:::1;7326:32;::::0;;;;;;7377:4;;7360:10;;7371:1;7360:13;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7325:49;;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;7325:49:47;:56;;-1:-1:-1;;7325:56:47::1;::::0;::::1;;::::0;;;::::1;::::0;;7423:10:::1;7400:49;7435:10:::0;;7446:1;7435:13;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7400:49;::::0;4801:6:165;4789:19;;;4771:38;;4759:2;4744:18;7400:49:47::1;;;;;;;7195:3;;7152:308;;11308:223:::0;11395:6;11446:11;-1:-1:-1;;;;;11427:45:47;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11420:72:47;;:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:104;;-1:-1:-1;;;11420:104:47;;-1:-1:-1;;;;;7945:32:165;;;11420:104:47;;;7927:51:165;11420:90:47;;;;;;;7900:18:165;;11420:104:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11413:111;11308:223;-1:-1:-1;;;11308:223:47:o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:598::-;236:6;244;252;260;313:3;301:9;292:7;288:23;284:33;281:53;;;330:1;327;320:12;281:53;369:9;356:23;388:31;413:5;388:31;:::i;:::-;438:5;-1:-1:-1;495:2:165;480:18;;467:32;508:33;467:32;508:33;:::i;:::-;560:7;-1:-1:-1;614:2:165;599:18;;586:32;;-1:-1:-1;670:2:165;655:18;;642:32;683:33;642:32;683:33;:::i;:::-;150:598;;;;-1:-1:-1;150:598:165;;-1:-1:-1;;150:598:165:o;945:117::-;1030:6;1023:5;1019:18;1012:5;1009:29;999:57;;1052:1;1049;1042:12;1067:245;1125:6;1178:2;1166:9;1157:7;1153:23;1149:32;1146:52;;;1194:1;1191;1184:12;1146:52;1233:9;1220:23;1252:30;1276:5;1252:30;:::i;1317:247::-;1376:6;1429:2;1417:9;1408:7;1404:23;1400:32;1397:52;;;1445:1;1442;1435:12;1397:52;1484:9;1471:23;1503:31;1528:5;1503:31;:::i;1569:548::-;1681:4;1710:2;1739;1728:9;1721:21;1771:6;1765:13;1814:6;1809:2;1798:9;1794:18;1787:34;1839:1;1849:140;1863:6;1860:1;1857:13;1849:140;;;1958:14;;;1954:23;;1948:30;1924:17;;;1943:2;1920:26;1913:66;1878:10;;1849:140;;;1853:3;2038:1;2033:2;2024:6;2013:9;2009:22;2005:31;1998:42;2108:2;2101;2097:7;2092:2;2084:6;2080:15;2076:29;2065:9;2061:45;2057:54;2049:62;;;;1569:548;;;;:::o;2122:614::-;2207:6;2215;2268:2;2256:9;2247:7;2243:23;2239:32;2236:52;;;2284:1;2281;2274:12;2236:52;2324:9;2311:23;2353:18;2394:2;2386:6;2383:14;2380:34;;;2410:1;2407;2400:12;2380:34;2448:6;2437:9;2433:22;2423:32;;2493:7;2486:4;2482:2;2478:13;2474:27;2464:55;;2515:1;2512;2505:12;2464:55;2555:2;2542:16;2581:2;2573:6;2570:14;2567:34;;;2597:1;2594;2587:12;2567:34;2650:7;2645:2;2635:6;2632:1;2628:14;2624:2;2620:23;2616:32;2613:45;2610:65;;;2671:1;2668;2661:12;2610:65;2702:2;2694:11;;;;;2724:6;;-1:-1:-1;2122:614:165;;-1:-1:-1;;;;2122:614:165:o;2741:456::-;2818:6;2826;2834;2887:2;2875:9;2866:7;2862:23;2858:32;2855:52;;;2903:1;2900;2893:12;2855:52;2942:9;2929:23;2961:31;2986:5;2961:31;:::i;:::-;3011:5;-1:-1:-1;3068:2:165;3053:18;;3040:32;3081:33;3040:32;3081:33;:::i;:::-;2741:456;;3133:7;;-1:-1:-1;;;3187:2:165;3172:18;;;;3159:32;;2741:456::o;3202:386::-;3269:6;3277;3330:2;3318:9;3309:7;3305:23;3301:32;3298:52;;;3346:1;3343;3336:12;3298:52;3385:9;3372:23;3404:31;3429:5;3404:31;:::i;:::-;3454:5;-1:-1:-1;3511:2:165;3496:18;;3483:32;3524;3483;3524;:::i;:::-;3575:7;3565:17;;;3202:386;;;;;:::o;3593:315::-;3661:6;3669;3722:2;3710:9;3701:7;3697:23;3693:32;3690:52;;;3738:1;3735;3728:12;3690:52;3777:9;3764:23;3796:31;3821:5;3796:31;:::i;:::-;3846:5;3898:2;3883:18;;;;3870:32;;-1:-1:-1;;;3593:315:165:o;3913:354::-;4115:2;4097:21;;;4154:2;4134:18;;;4127:30;4193:32;4188:2;4173:18;;4166:60;4258:2;4243:18;;3913:354::o;5180:397::-;5382:2;5364:21;;;5421:2;5401:18;;;5394:30;5460:34;5455:2;5440:18;;5433:62;-1:-1:-1;;;5526:2:165;5511:18;;5504:31;5567:3;5552:19;;5180:397::o;5995:127::-;6056:10;6051:3;6047:20;6044:1;6037:31;6087:4;6084:1;6077:15;6111:4;6108:1;6101:15;7242:251;7312:6;7365:2;7353:9;7344:7;7340:23;7336:32;7333:52;;;7381:1;7378;7371:12;7333:52;7413:9;7407:16;7432:31;7457:5;7432:31;:::i;7989:249::-;8058:6;8111:2;8099:9;8090:7;8086:23;8082:32;8079:52;;;8127:1;8124;8117:12;8079:52;8159:9;8153:16;8178:30;8202:5;8178:30;:::i","linkReferences":{}},"methodIdentifiers":{"addCountryRestriction(uint16)":"0333ce24","batchRestrictCountries(uint16[])":"bdf9a07e","batchUnrestrictCountries(uint16[])":"249c981d","bindCompliance(address)":"4a932544","canComplianceBind(address)":"bcc21053","isComplianceBound(address)":"4cf4d295","isCountryRestricted(address,uint16)":"30236f4a","isPlugAndPlay()":"e6f5e807","moduleBurnAction(address,uint256)":"372491a2","moduleCheck(address,address,uint256,address)":"013b7ce4","moduleMintAction(address,uint256)":"f104a8c9","moduleTransferAction(address,address,uint256)":"2cb7e1ec","name()":"06fdde03","removeCountryRestriction(uint16)":"6aae7b26","unbindCompliance(address)":"0694a5fb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"AddedRestrictedCountry\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"RemovedRestrictedCountry\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"addCountryRestriction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16[]\",\"name\":\"_countries\",\"type\":\"uint16[]\"}],\"name\":\"batchRestrictCountries\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16[]\",\"name\":\"_countries\",\"type\":\"uint16[]\"}],\"name\":\"batchUnrestrictCountries\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"bindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"canComplianceBind\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"isComplianceBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"isCountryRestricted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPlugAndPlay\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleBurnAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"moduleCheck\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleMintAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleTransferAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"removeCountryRestriction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"unbindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addCountryRestriction(uint16)\":{\"details\":\"Adds country restriction. Identities from those countries will be forbidden to manipulate Tokens linked to this Compliance.\",\"params\":{\"_country\":\"Country to be restricted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `AddedRestrictedCountry` event\"}},\"batchRestrictCountries(uint16[])\":{\"details\":\"Adds countries restriction in batch. Identities from those countries will be forbidden to manipulate Tokens linked to this Compliance.\",\"params\":{\"_countries\":\"Countries to be restricted, should be expressed by following numeric ISO 3166-1 standard Can be called only for a compliance contract that is bound to the CountryRestrict Module Only the owner of the Compliance smart contract can call this function cannot restrict more than 195 countries in 1 batch emits _countries.length `AddedRestrictedCountry` events\"}},\"batchUnrestrictCountries(uint16[])\":{\"details\":\"Removes country restrictions in batch. Identities from those countries will again be authorised to manipulate Tokens linked to this Compliance.\",\"params\":{\"_countries\":\"Countries to be unrestricted, should be expressed by following numeric ISO 3166-1 standard Can be called only for a compliance contract that is bound to the CountryRestrict Module cannot unrestrict more than 195 countries in 1 batch Only the owner of the Compliance smart contract can call this function emits _countries.length `RemovedRestrictedCountry` events\"}},\"bindCompliance(address)\":{\"details\":\"See {IModule-bindCompliance}.\"},\"canComplianceBind(address)\":{\"details\":\"See {IModule-canComplianceBind}.\"},\"isComplianceBound(address)\":{\"details\":\"See {IModule-isComplianceBound}.\"},\"isCountryRestricted(address,uint16)\":{\"details\":\"Returns true if country is Restricted\",\"params\":{\"_country\":\", numeric ISO 3166-1 standard of the country to be checked\"}},\"isPlugAndPlay()\":{\"details\":\"See {IModule-isPlugAndPlay}.\"},\"moduleBurnAction(address,uint256)\":{\"details\":\"See {IModule-moduleBurnAction}. no burn action required in this module\"},\"moduleCheck(address,address,uint256,address)\":{\"details\":\"See {IModule-moduleCheck}. checks if the country of address _to is not restricted for this _compliance returns TRUE if the country of _to is not restricted for this _compliance returns FALSE if the country of _to is restricted for this _compliance\"},\"moduleMintAction(address,uint256)\":{\"details\":\"See {IModule-moduleMintAction}. no mint action required in this module\"},\"moduleTransferAction(address,address,uint256)\":{\"details\":\"See {IModule-moduleTransferAction}. no transfer action required in this module\"},\"name()\":{\"details\":\"See {IModule-name}.\"},\"removeCountryRestriction(uint16)\":{\"details\":\"Removes country restriction. Identities from those countries will again be authorised to manipulate Tokens linked to this Compliance.\",\"params\":{\"_country\":\"Country to be unrestricted, should be expressed by following numeric ISO 3166-1 standard Can be called only for a compliance contract that is bound to the CountryRestrict Module Only the owner of the Compliance smart contract can call this function emits an `RemovedRestrictedCountry` event\"}},\"unbindCompliance(address)\":{\"details\":\"See {IModule-unbindCompliance}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"AddedRestrictedCountry(address,uint16)\":{\"notice\":\"this event is emitted whenever a Country has been restricted. the event is emitted by 'addCountryRestriction' and 'batchRestrictCountries' functions. `_country` is the numeric ISO 3166-1 of the restricted country.\"},\"ComplianceBound(address)\":{\"notice\":\"this event is emitted when the compliance contract is bound to the module. the event is emitted by the bindCompliance function `_compliance` is the address of the compliance contract being bound\"},\"ComplianceUnbound(address)\":{\"notice\":\"this event is emitted when the compliance contract is unbound from the module. the event is emitted by the unbindCompliance function `_compliance` is the address of the compliance contract being unbound\"},\"RemovedRestrictedCountry(address,uint16)\":{\"notice\":\"this event is emitted whenever a Country has been unrestricted. the event is emitted by 'removeCountryRestriction' and 'batchUnrestrictCountries' functions. `_country` is the numeric ISO 3166-1 of the unrestricted country.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/modular/modules/CountryRestrictModule.sol\":\"CountryRestrictModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/compliance/modular/modules/AbstractModule.sol\":{\"keccak256\":\"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8\",\"dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu\"]},\"contracts/erc3643/compliance/modular/modules/CountryRestrictModule.sol\":{\"keccak256\":\"0x0fc736f20af77bc44f4306aae7cd560cc1c2d2fc60ce08b10d5ab0ded7988e1e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0af4593ca0812888b7cf0650182a131ef0a625bdc367d79d79419b3776eef56a\",\"dweb:/ipfs/QmZb3yH6DQ8FWvksFWGoYMkTRtRPnWdN3qwMqgjKRnTPnH\"]},\"contracts/erc3643/compliance/modular/modules/IModule.sol\":{\"keccak256\":\"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c\",\"dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true},{"internalType":"uint16","name":"_country","type":"uint16","indexed":false}],"type":"event","name":"AddedRestrictedCountry","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true},{"internalType":"uint16","name":"_country","type":"uint16","indexed":false}],"type":"event","name":"RemovedRestrictedCountry","anonymous":false},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"addCountryRestriction"},{"inputs":[{"internalType":"uint16[]","name":"_countries","type":"uint16[]"}],"stateMutability":"nonpayable","type":"function","name":"batchRestrictCountries"},{"inputs":[{"internalType":"uint16[]","name":"_countries","type":"uint16[]"}],"stateMutability":"nonpayable","type":"function","name":"batchUnrestrictCountries"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindCompliance"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"canComplianceBind","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"view","type":"function","name":"isCountryRestricted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPlugAndPlay","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleBurnAction"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"moduleCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleMintAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleTransferAction"},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"removeCountryRestriction"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindCompliance"}],"devdoc":{"kind":"dev","methods":{"addCountryRestriction(uint16)":{"details":"Adds country restriction. Identities from those countries will be forbidden to manipulate Tokens linked to this Compliance.","params":{"_country":"Country to be restricted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `AddedRestrictedCountry` event"}},"batchRestrictCountries(uint16[])":{"details":"Adds countries restriction in batch. Identities from those countries will be forbidden to manipulate Tokens linked to this Compliance.","params":{"_countries":"Countries to be restricted, should be expressed by following numeric ISO 3166-1 standard Can be called only for a compliance contract that is bound to the CountryRestrict Module Only the owner of the Compliance smart contract can call this function cannot restrict more than 195 countries in 1 batch emits _countries.length `AddedRestrictedCountry` events"}},"batchUnrestrictCountries(uint16[])":{"details":"Removes country restrictions in batch. Identities from those countries will again be authorised to manipulate Tokens linked to this Compliance.","params":{"_countries":"Countries to be unrestricted, should be expressed by following numeric ISO 3166-1 standard Can be called only for a compliance contract that is bound to the CountryRestrict Module cannot unrestrict more than 195 countries in 1 batch Only the owner of the Compliance smart contract can call this function emits _countries.length `RemovedRestrictedCountry` events"}},"bindCompliance(address)":{"details":"See {IModule-bindCompliance}."},"canComplianceBind(address)":{"details":"See {IModule-canComplianceBind}."},"isComplianceBound(address)":{"details":"See {IModule-isComplianceBound}."},"isCountryRestricted(address,uint16)":{"details":"Returns true if country is Restricted","params":{"_country":", numeric ISO 3166-1 standard of the country to be checked"}},"isPlugAndPlay()":{"details":"See {IModule-isPlugAndPlay}."},"moduleBurnAction(address,uint256)":{"details":"See {IModule-moduleBurnAction}. no burn action required in this module"},"moduleCheck(address,address,uint256,address)":{"details":"See {IModule-moduleCheck}. checks if the country of address _to is not restricted for this _compliance returns TRUE if the country of _to is not restricted for this _compliance returns FALSE if the country of _to is restricted for this _compliance"},"moduleMintAction(address,uint256)":{"details":"See {IModule-moduleMintAction}. no mint action required in this module"},"moduleTransferAction(address,address,uint256)":{"details":"See {IModule-moduleTransferAction}. no transfer action required in this module"},"name()":{"details":"See {IModule-name}."},"removeCountryRestriction(uint16)":{"details":"Removes country restriction. Identities from those countries will again be authorised to manipulate Tokens linked to this Compliance.","params":{"_country":"Country to be unrestricted, should be expressed by following numeric ISO 3166-1 standard Can be called only for a compliance contract that is bound to the CountryRestrict Module Only the owner of the Compliance smart contract can call this function emits an `RemovedRestrictedCountry` event"}},"unbindCompliance(address)":{"details":"See {IModule-unbindCompliance}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/modular/modules/CountryRestrictModule.sol":"CountryRestrictModule"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/AbstractModule.sol":{"keccak256":"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3","urls":["bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8","dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/CountryRestrictModule.sol":{"keccak256":"0x0fc736f20af77bc44f4306aae7cd560cc1c2d2fc60ce08b10d5ab0ded7988e1e","urls":["bzz-raw://0af4593ca0812888b7cf0650182a131ef0a625bdc367d79d79419b3776eef56a","dweb:/ipfs/QmZb3yH6DQ8FWvksFWGoYMkTRtRPnWdN3qwMqgjKRnTPnH"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/IModule.sol":{"keccak256":"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02","urls":["bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c","dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"}},"version":1},"id":47} \ No newline at end of file diff --git a/out/CountryRestrictions.sol/CountryRestrictions.json b/out/CountryRestrictions.sol/CountryRestrictions.json new file mode 100644 index 0000000..69b6f83 --- /dev/null +++ b/out/CountryRestrictions.sol/CountryRestrictions.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addCountryRestriction","inputs":[{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchRestrictCountries","inputs":[{"name":"_countries","type":"uint16[]","internalType":"uint16[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchUnrestrictCountries","inputs":[{"name":"_countries","type":"uint16[]","internalType":"uint16[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"complianceCheckOnCountryRestrictions","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isCountryRestricted","inputs":[{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenBound","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeCountryRestriction","inputs":[{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tokenBound","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IToken"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddedRestrictedCountry","inputs":[{"name":"_country","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RemovedRestrictedCountry","inputs":[{"name":"_country","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"TokenAgentAdded","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentRemoved","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","addCountryRestriction(uint16)":"0333ce24","addTokenAgent(address)":"ff3e6954","batchRestrictCountries(uint16[])":"bdf9a07e","batchUnrestrictCountries(uint16[])":"249c981d","bindToken(address)":"3ff5aa02","canTransfer(address,address,uint256)":"e46638e6","complianceCheckOnCountryRestrictions(address,address,uint256)":"c7a4ecf8","created(address,uint256)":"5f8dead3","destroyed(address,uint256)":"8d2ea772","isAgent(address)":"1ffbb064","isCountryRestricted(uint16)":"bc4c8552","isTokenAgent(address)":"346531fa","isTokenBound(address)":"993e8b95","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","removeCountryRestriction(uint16)":"6aae7b26","removeTokenAgent(address)":"cdde2932","renounceOwnership()":"715018a6","tokenBound()":"93e62f07","transferOwnership(address)":"f2fde38b","transferred(address,address,uint256)":"8baf29b4","unbindToken(address)":"40db3b50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"AddedRestrictedCountry\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"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\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"RemovedRestrictedCountry\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"addCountryRestriction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"addTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16[]\",\"name\":\"_countries\",\"type\":\"uint16[]\"}],\"name\":\"batchRestrictCountries\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16[]\",\"name\":\"_countries\",\"type\":\"uint16[]\"}],\"name\":\"batchUnrestrictCountries\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"complianceCheckOnCountryRestrictions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"isCountryRestricted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"isTokenAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"removeCountryRestriction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"removeTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenBound\",\"outputs\":[{\"internalType\":\"contract IToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addCountryRestriction(uint16)\":{\"details\":\"Adds country restriction. Identities from those countries will be forbidden to manipulate Tokens linked to this Compliance.\",\"params\":{\"_country\":\"Country to be restricted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `AddedRestrictedCountry` event\"}},\"addTokenAgent(address)\":{\"details\":\"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces\"},\"batchRestrictCountries(uint16[])\":{\"details\":\"Adds countries restriction in batch. Identities from those countries will be forbidden to manipulate Tokens linked to this Compliance.\",\"params\":{\"_countries\":\"Countries to be restricted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits _countries.length `AddedRestrictedCountry` events\"}},\"batchUnrestrictCountries(uint16[])\":{\"details\":\"Removes countries restriction in batch. Identities from those countries will again be authorised to manipulate Tokens linked to this Compliance.\",\"params\":{\"_countries\":\"Countries to be unrestricted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits _countries.length `RemovedRestrictedCountry` events\"}},\"bindToken(address)\":{\"details\":\"See {ICompliance-bindToken}.\"},\"canTransfer(address,address,uint256)\":{\"details\":\"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"complianceCheckOnCountryRestrictions(address,address,uint256)\":{\"details\":\"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the country of residence of `_to` is restricted or not, in case the country is restricted, this feature will block the transfer\",\"params\":{\"_to\":\"the address of the transfer receiver\"}},\"created(address,uint256)\":{\"details\":\"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_to\":\"The address of the receiver\"}},\"destroyed(address,uint256)\":{\"details\":\"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the receiver\"}},\"isCountryRestricted(uint16)\":{\"details\":\"Returns true if country is Restricted\",\"params\":{\"_country\":\", numeric ISO 3166-1 standard of the country to be checked\"}},\"isTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"isTokenBound(address)\":{\"details\":\"See {ICompliance-isTokenBound}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeCountryRestriction(uint16)\":{\"details\":\"Removes country restriction. Identities from those countries will again be authorised to manipulate Tokens linked to this Compliance.\",\"params\":{\"_country\":\"Country to be unrestricted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `RemovedRestrictedCountry` event\"}},\"removeTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"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.\"},\"transferred(address,address,uint256)\":{\"details\":\"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"unbindToken(address)\":{\"details\":\"See {ICompliance-unbindToken}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"AddedRestrictedCountry(uint16)\":{\"notice\":\"this event is emitted whenever a Country has been restricted. the event is emitted by 'addCountryRestriction' and 'batchRestrictCountries' functions. `_country` is the numeric ISO 3166-1 of the restricted country.\"},\"RemovedRestrictedCountry(uint16)\":{\"notice\":\"this event is emitted whenever a Country has been unrestricted. the event is emitted by 'removeCountryRestriction' and 'batchUnrestrictCountries' functions. `_country` is the numeric ISO 3166-1 of the unrestricted country.\"},\"TokenAgentAdded(address)\":{\"notice\":\"this event is emitted when the Agent has been added on the allowedList of this Compliance. the event is emitted by the Compliance constructor and by the addTokenAgent function `_agentAddress` is the address of the Agent to add\"},\"TokenAgentRemoved(address)\":{\"notice\":\"this event is emitted when the Agent has been removed from the agent list of this Compliance. the event is emitted by the Compliance constructor and by the removeTokenAgent function `_agentAddress` is the address of the Agent to remove\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"}},\"kind\":\"user\",\"methods\":{\"tokenBound()\":{\"notice\":\"Mapping of tokens linked to the compliance contract\"}},\"notice\":\"this feature allows to setup a blacklist of countries, investors with a blacklisted country of residence won't be allowed to receive tokens on their wallets\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/legacy/features/CountryRestrictions.sol\":\"CountryRestrictions\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/legacy/BasicCompliance.sol\":{\"keccak256\":\"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d\",\"dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4\"]},\"contracts/erc3643/compliance/legacy/ICompliance.sol\":{\"keccak256\":\"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e\",\"dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV\"]},\"contracts/erc3643/compliance/legacy/features/CountryRestrictions.sol\":{\"keccak256\":\"0x4aefe64889f7030bd782869fcf2c2261f9ebc3108ad23c0b6c055dcbe462d217\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://46af54a202190da3976f7fdd0f7390c5fdbcbbaa2bca592f4720e25953f5626b\",\"dweb:/ipfs/QmdaYogL1fKrLgxjVfAfw19qk47maTXwyvCQHkwPEA3vq8\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16","indexed":false}],"type":"event","name":"AddedRestrictedCountry","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16","indexed":false}],"type":"event","name":"RemovedRestrictedCountry","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"addCountryRestriction"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenAgent"},{"inputs":[{"internalType":"uint16[]","name":"_countries","type":"uint16[]"}],"stateMutability":"nonpayable","type":"function","name":"batchRestrictCountries"},{"inputs":[{"internalType":"uint16[]","name":"_countries","type":"uint16[]"}],"stateMutability":"nonpayable","type":"function","name":"batchUnrestrictCountries"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"complianceCheckOnCountryRestrictions","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"view","type":"function","name":"isCountryRestricted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"removeCountryRestriction"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenBound","outputs":[{"internalType":"contract IToken","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"}],"devdoc":{"kind":"dev","methods":{"addCountryRestriction(uint16)":{"details":"Adds country restriction. Identities from those countries will be forbidden to manipulate Tokens linked to this Compliance.","params":{"_country":"Country to be restricted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `AddedRestrictedCountry` event"}},"addTokenAgent(address)":{"details":"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces"},"batchRestrictCountries(uint16[])":{"details":"Adds countries restriction in batch. Identities from those countries will be forbidden to manipulate Tokens linked to this Compliance.","params":{"_countries":"Countries to be restricted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits _countries.length `AddedRestrictedCountry` events"}},"batchUnrestrictCountries(uint16[])":{"details":"Removes countries restriction in batch. Identities from those countries will again be authorised to manipulate Tokens linked to this Compliance.","params":{"_countries":"Countries to be unrestricted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits _countries.length `RemovedRestrictedCountry` events"}},"bindToken(address)":{"details":"See {ICompliance-bindToken}."},"canTransfer(address,address,uint256)":{"details":"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"complianceCheckOnCountryRestrictions(address,address,uint256)":{"details":"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the country of residence of `_to` is restricted or not, in case the country is restricted, this feature will block the transfer","params":{"_to":"the address of the transfer receiver"}},"created(address,uint256)":{"details":"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_to":"The address of the receiver"}},"destroyed(address,uint256)":{"details":"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the receiver"}},"isCountryRestricted(uint16)":{"details":"Returns true if country is Restricted","params":{"_country":", numeric ISO 3166-1 standard of the country to be checked"}},"isTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"isTokenBound(address)":{"details":"See {ICompliance-isTokenBound}."},"owner()":{"details":"Returns the address of the current owner."},"removeCountryRestriction(uint16)":{"details":"Removes country restriction. Identities from those countries will again be authorised to manipulate Tokens linked to this Compliance.","params":{"_country":"Country to be unrestricted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `RemovedRestrictedCountry` event"}},"removeTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"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."},"transferred(address,address,uint256)":{"details":"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"unbindToken(address)":{"details":"See {ICompliance-unbindToken}."}},"version":1},"userdoc":{"kind":"user","methods":{"tokenBound()":{"notice":"Mapping of tokens linked to the compliance contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/legacy/features/CountryRestrictions.sol":"CountryRestrictions"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/legacy/BasicCompliance.sol":{"keccak256":"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305","urls":["bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d","dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/ICompliance.sol":{"keccak256":"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7","urls":["bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e","dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/features/CountryRestrictions.sol":{"keccak256":"0x4aefe64889f7030bd782869fcf2c2261f9ebc3108ad23c0b6c055dcbe462d217","urls":["bzz-raw://46af54a202190da3976f7fdd0f7390c5fdbcbbaa2bca592f4720e25953f5626b","dweb:/ipfs/QmdaYogL1fKrLgxjVfAfw19qk47maTXwyvCQHkwPEA3vq8"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":28} \ No newline at end of file diff --git a/out/CountryRestrictionsTest.sol/CountryRestrictionsTest.json b/out/CountryRestrictionsTest.sol/CountryRestrictionsTest.json new file mode 100644 index 0000000..2771db3 --- /dev/null +++ b/out/CountryRestrictionsTest.sol/CountryRestrictionsTest.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addCountryRestriction","inputs":[{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchRestrictCountries","inputs":[{"name":"_countries","type":"uint16[]","internalType":"uint16[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchUnrestrictCountries","inputs":[{"name":"_countries","type":"uint16[]","internalType":"uint16[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"complianceCheckOnCountryRestrictions","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isCountryRestricted","inputs":[{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenBound","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeCountryRestriction","inputs":[{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tokenBound","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IToken"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddedRestrictedCountry","inputs":[{"name":"_country","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RemovedRestrictedCountry","inputs":[{"name":"_country","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"TokenAgentAdded","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentRemoved","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611101806100a56000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638d2ea772116100c3578063bdf9a07e1161007c578063bdf9a07e146102b4578063c7a4ecf8146102c7578063cdde2932146102da578063e46638e6146102ed578063f2fde38b14610300578063ff3e69541461031357600080fd5b80638d2ea772146101db5780638da5cb5b1461022f57806393e62f071461025457806397a6278e14610267578063993e8b951461027a578063bc4c85521461028d57600080fd5b806340db3b501161011557806340db3b50146101c85780635f8dead3146101db5780636aae7b26146101ee578063715018a61461020157806384e79842146102095780638baf29b41461021c57600080fd5b80630333ce24146101525780631ffbb06414610167578063249c981d1461018f578063346531fa146101a25780633ff5aa02146101b5575b600080fd5b610165610160366004610ebe565b610326565b005b61017a610175366004610ef0565b6103ed565b60405190151581526020015b60405180910390f35b61016561019d366004610f0d565b610400565b61017a6101b0366004610ef0565b610442565b6101656101c3366004610ef0565b6104eb565b6101656101d6366004610ef0565b6105c9565b6101656101e9366004610f82565b6106eb565b6101656101fc366004610ebe565b610713565b6101656107c3565b610165610217366004610ef0565b6107d7565b61016561022a366004610fae565b610877565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610186565b60035461023c906001600160a01b031681565b610165610275366004610ef0565b61089b565b61017a610288366004610ef0565b61093b565b61017a61029b366004610ebe565b61ffff1660009081526004602052604090205460ff1690565b6101656102c2366004610f0d565b61095b565b61017a6102d5366004610fae565b610998565b6101656102e8366004610ef0565b6109df565b61017a6102fb366004610fae565b610aa0565b61016561030e366004610ef0565b610ac3565b610165610321366004610ef0565b610b01565b61032e610bc6565b61ffff811660009081526004602052604090205460ff16156103975760405162461bcd60e51b815260206004820152601a60248201527f636f756e74727920616c7265616479207265737472696374656400000000000060448201526064015b60405180910390fd5b61ffff8116600081815260046020908152604091829020805460ff1916600117905590519182527f686ddf4acaa296f02dade9efd41d8a09a2eba14d730f9117404e6ffe6b96a01891015b60405180910390a150565b60006103fa600183610bf3565b92915050565b60005b8181101561043d5761043583838381811061042057610420610fef565b90506020020160208101906101fc9190610ebe565b600101610403565b505050565b6001600160a01b03811660009081526002602052604081205460ff161580156104d657506003546040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa1580156104b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d49190611005565b155b156104e357506000919050565b506001919050565b336104fe6000546001600160a01b031690565b6001600160a01b0316148061052f57506003546001600160a01b031615801561052f5750336001600160a01b038216145b61057b5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c00000000604482015260640161038e565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b906020016103e2565b336105dc6000546001600160a01b031690565b6001600160a01b031614806105f95750336001600160a01b038216145b6106455760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c00000000604482015260640161038e565b6003546001600160a01b038281169116146106a25760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e64000000000000000000604482015260640161038e565b600380546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a906020016103e2565b6106f3610c76565b61070f5760405162461bcd60e51b815260040161038e90611027565b5050565b61071b610bc6565b61ffff811660009081526004602052604090205460ff166107775760405162461bcd60e51b815260206004820152601660248201527518dbdd5b9d1c9e481b9bdd081c995cdd1c9a58dd195960521b604482015260640161038e565b61ffff8116600081815260046020908152604091829020805460ff1916905590519182527f7dad2e3bc77f5830a7421a19a06cee2e76fcd4bdbe0793f240b3cf094cebcceb91016103e2565b6107cb610bc6565b6107d56000610c86565b565b6107df610bc6565b6001600160a01b0381166108355760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161038e565b610840600182610cd6565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b61087f610c76565b61043d5760405162461bcd60e51b815260040161038e90611027565b6108a3610bc6565b6001600160a01b0381166108f95760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161038e565b610904600182610d52565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6003546000906001600160a01b038381169116146104e357506000919050565b60005b8181101561043d5761099083838381811061097b5761097b610fef565b90506020020160208101906101609190610ebe565b60010161095e565b6000806109a484610dd4565b90506109c38161ffff1660009081526004602052604090205460ff1690565b156109d25760009150506109d8565b60019150505b9392505050565b6109e7610bc6565b6001600160a01b03811660009081526002602052604090205460ff16610a4f5760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e74206973206e6f74207265676973746572656420796574604482015260640161038e565b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f6a659bb87bb23efbdc295f8eed8ae8c4379bfb77660ced2ef0f3d7d26b05c6a691016103e2565b6000610aad848484610998565b610ab9575060006109d8565b5060019392505050565b610acb610bc6565b6001600160a01b038116610af557604051631e4fbdf760e01b81526000600482015260240161038e565b610afe81610c86565b50565b610b09610bc6565b6001600160a01b03811660009081526002602052604090205460ff1615610b725760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e7420697320616c72656164792072656769737465726564604482015260640161038e565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fd62c45e13ac30396aceb3ad37c89bd1ba9048032fe61679000e92eb93dbfd67d91016103e2565b6000546001600160a01b031633146107d55760405163118cdaa760e01b815233600482015260240161038e565b60006001600160a01b038216610c565760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840161038e565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000610c813361093b565b905090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610ce08282610bf3565b15610d2d5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640161038e565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610d5c8282610bf3565b610db25760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b606482015260840161038e565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b600354604080516304d3863d60e21b815290516000926001600160a01b03169163134e18f49160048083019260209291908290030181865afa158015610e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e429190611091565b604051637e42683b60e01b81526001600160a01b0384811660048301529190911690637e42683b90602401602060405180830381865afa158015610e8a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fa91906110ae565b61ffff81168114610afe57600080fd5b600060208284031215610ed057600080fd5b81356109d881610eae565b6001600160a01b0381168114610afe57600080fd5b600060208284031215610f0257600080fd5b81356109d881610edb565b60008060208385031215610f2057600080fd5b823567ffffffffffffffff80821115610f3857600080fd5b818501915085601f830112610f4c57600080fd5b813581811115610f5b57600080fd5b8660208260051b8501011115610f7057600080fd5b60209290920196919550909350505050565b60008060408385031215610f9557600080fd5b8235610fa081610edb565b946020939093013593505050565b600080600060608486031215610fc357600080fd5b8335610fce81610edb565b92506020840135610fde81610edb565b929592945050506040919091013590565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561101757600080fd5b815180151581146109d857600080fd5b60208082526044908201527f6572726f72203a20746869732061646472657373206973206e6f74206120746f60408201527f6b656e20626f756e6420746f2074686520636f6d706c69616e636520636f6e746060820152631c9858dd60e21b608082015260a00190565b6000602082840312156110a357600080fd5b81516109d881610edb565b6000602082840312156110c057600080fd5b81516109d881610eae56fea264697066735822122061109dbcc22d93ccca41331fedd5be4fc91611a3de9c7b26c8e116f86ab2094064736f6c63430008180033","sourceMap":"3889:1017:35:-:0;;;;;;;;;;;;-1:-1:-1;4272:10:87;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;160:51:165;133:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;3889:1017:35;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:165:-;3889:1017:35;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80638d2ea772116100c3578063bdf9a07e1161007c578063bdf9a07e146102b4578063c7a4ecf8146102c7578063cdde2932146102da578063e46638e6146102ed578063f2fde38b14610300578063ff3e69541461031357600080fd5b80638d2ea772146101db5780638da5cb5b1461022f57806393e62f071461025457806397a6278e14610267578063993e8b951461027a578063bc4c85521461028d57600080fd5b806340db3b501161011557806340db3b50146101c85780635f8dead3146101db5780636aae7b26146101ee578063715018a61461020157806384e79842146102095780638baf29b41461021c57600080fd5b80630333ce24146101525780631ffbb06414610167578063249c981d1461018f578063346531fa146101a25780633ff5aa02146101b5575b600080fd5b610165610160366004610ebe565b610326565b005b61017a610175366004610ef0565b6103ed565b60405190151581526020015b60405180910390f35b61016561019d366004610f0d565b610400565b61017a6101b0366004610ef0565b610442565b6101656101c3366004610ef0565b6104eb565b6101656101d6366004610ef0565b6105c9565b6101656101e9366004610f82565b6106eb565b6101656101fc366004610ebe565b610713565b6101656107c3565b610165610217366004610ef0565b6107d7565b61016561022a366004610fae565b610877565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610186565b60035461023c906001600160a01b031681565b610165610275366004610ef0565b61089b565b61017a610288366004610ef0565b61093b565b61017a61029b366004610ebe565b61ffff1660009081526004602052604090205460ff1690565b6101656102c2366004610f0d565b61095b565b61017a6102d5366004610fae565b610998565b6101656102e8366004610ef0565b6109df565b61017a6102fb366004610fae565b610aa0565b61016561030e366004610ef0565b610ac3565b610165610321366004610ef0565b610b01565b61032e610bc6565b61ffff811660009081526004602052604090205460ff16156103975760405162461bcd60e51b815260206004820152601a60248201527f636f756e74727920616c7265616479207265737472696374656400000000000060448201526064015b60405180910390fd5b61ffff8116600081815260046020908152604091829020805460ff1916600117905590519182527f686ddf4acaa296f02dade9efd41d8a09a2eba14d730f9117404e6ffe6b96a01891015b60405180910390a150565b60006103fa600183610bf3565b92915050565b60005b8181101561043d5761043583838381811061042057610420610fef565b90506020020160208101906101fc9190610ebe565b600101610403565b505050565b6001600160a01b03811660009081526002602052604081205460ff161580156104d657506003546040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa1580156104b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d49190611005565b155b156104e357506000919050565b506001919050565b336104fe6000546001600160a01b031690565b6001600160a01b0316148061052f57506003546001600160a01b031615801561052f5750336001600160a01b038216145b61057b5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c00000000604482015260640161038e565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b906020016103e2565b336105dc6000546001600160a01b031690565b6001600160a01b031614806105f95750336001600160a01b038216145b6106455760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c00000000604482015260640161038e565b6003546001600160a01b038281169116146106a25760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e64000000000000000000604482015260640161038e565b600380546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a906020016103e2565b6106f3610c76565b61070f5760405162461bcd60e51b815260040161038e90611027565b5050565b61071b610bc6565b61ffff811660009081526004602052604090205460ff166107775760405162461bcd60e51b815260206004820152601660248201527518dbdd5b9d1c9e481b9bdd081c995cdd1c9a58dd195960521b604482015260640161038e565b61ffff8116600081815260046020908152604091829020805460ff1916905590519182527f7dad2e3bc77f5830a7421a19a06cee2e76fcd4bdbe0793f240b3cf094cebcceb91016103e2565b6107cb610bc6565b6107d56000610c86565b565b6107df610bc6565b6001600160a01b0381166108355760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161038e565b610840600182610cd6565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b61087f610c76565b61043d5760405162461bcd60e51b815260040161038e90611027565b6108a3610bc6565b6001600160a01b0381166108f95760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161038e565b610904600182610d52565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6003546000906001600160a01b038381169116146104e357506000919050565b60005b8181101561043d5761099083838381811061097b5761097b610fef565b90506020020160208101906101609190610ebe565b60010161095e565b6000806109a484610dd4565b90506109c38161ffff1660009081526004602052604090205460ff1690565b156109d25760009150506109d8565b60019150505b9392505050565b6109e7610bc6565b6001600160a01b03811660009081526002602052604090205460ff16610a4f5760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e74206973206e6f74207265676973746572656420796574604482015260640161038e565b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f6a659bb87bb23efbdc295f8eed8ae8c4379bfb77660ced2ef0f3d7d26b05c6a691016103e2565b6000610aad848484610998565b610ab9575060006109d8565b5060019392505050565b610acb610bc6565b6001600160a01b038116610af557604051631e4fbdf760e01b81526000600482015260240161038e565b610afe81610c86565b50565b610b09610bc6565b6001600160a01b03811660009081526002602052604090205460ff1615610b725760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e7420697320616c72656164792072656769737465726564604482015260640161038e565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fd62c45e13ac30396aceb3ad37c89bd1ba9048032fe61679000e92eb93dbfd67d91016103e2565b6000546001600160a01b031633146107d55760405163118cdaa760e01b815233600482015260240161038e565b60006001600160a01b038216610c565760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840161038e565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000610c813361093b565b905090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610ce08282610bf3565b15610d2d5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640161038e565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610d5c8282610bf3565b610db25760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b606482015260840161038e565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b600354604080516304d3863d60e21b815290516000926001600160a01b03169163134e18f49160048083019260209291908290030181865afa158015610e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e429190611091565b604051637e42683b60e01b81526001600160a01b0384811660048301529190911690637e42683b90602401602060405180830381865afa158015610e8a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fa91906110ae565b61ffff81168114610afe57600080fd5b600060208284031215610ed057600080fd5b81356109d881610eae565b6001600160a01b0381168114610afe57600080fd5b600060208284031215610f0257600080fd5b81356109d881610edb565b60008060208385031215610f2057600080fd5b823567ffffffffffffffff80821115610f3857600080fd5b818501915085601f830112610f4c57600080fd5b813581811115610f5b57600080fd5b8660208260051b8501011115610f7057600080fd5b60209290920196919550909350505050565b60008060408385031215610f9557600080fd5b8235610fa081610edb565b946020939093013593505050565b600080600060608486031215610fc357600080fd5b8335610fce81610edb565b92506020840135610fde81610edb565b929592945050506040919091013590565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561101757600080fd5b815180151581146109d857600080fd5b60208082526044908201527f6572726f72203a20746869732061646472657373206973206e6f74206120746f60408201527f6b656e20626f756e6420746f2074686520636f6d706c69616e636520636f6e746060820152631c9858dd60e21b608082015260a00190565b6000602082840312156110a357600080fd5b81516109d881610edb565b6000602082840312156110c057600080fd5b81516109d881610eae56fea264697066735822122061109dbcc22d93ccca41331fedd5be4fc91611a3de9c7b26c8e116f86ab2094064736f6c63430008180033","sourceMap":"3889:1017:35:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6520:246:28;;;;;;:::i;:::-;;:::i;:::-;;4700:103:87;;;;;;:::i;:::-;;:::i;:::-;;;939:14:165;;932:22;914:41;;902:2;887:18;4700:103:87;;;;;;;;5923:198:28;;;;;;:::i;:::-;;:::i;6271:253:24:-;;;;;;:::i;:::-;;:::i;5569:277::-;;;;;;:::i;:::-;;:::i;5910:296::-;;;;;;:::i;:::-;;:::i;4237:140:35:-;;;;;;:::i;:::-;;:::i;7185:247:28:-;;;;;;:::i;:::-;;:::i;2293:101:141:-;;;:::i;4292:194:87:-;;;;;;:::i;:::-;;:::i;4009:166:35:-;;;;;;:::i;:::-;;:::i;1638:85:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;1638:85;;;-1:-1:-1;;;;;2530:32:165;;;2512:51;;2500:2;2485:18;1638:85:141;2366:203:165;4173:24:24;;;;;-1:-1:-1;;;;;4173:24:24;;;4492:202:87;;;;;;:::i;:::-;;:::i;6589:182:24:-;;;;;;:::i;:::-;;:::i;7584:129:28:-;;;;;;:::i;:::-;7675:30;;7651:4;7675:30;;;:20;:30;;;;;;;;;7584:129;5280:193;;;;;;:::i;:::-;;:::i;8183:297::-;;;;;;:::i;:::-;;:::i;5239:266:24:-;;;;;;:::i;:::-;;:::i;4656:248:35:-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;4913:261:24:-;;;;;;:::i;:::-;;:::i;6520:246:28:-;1531:13:141;:11;:13::i;:::-;6604:30:28::1;::::0;::::1;;::::0;;;:20:::1;:30;::::0;;;;;::::1;;6603:31;6595:70;;;::::0;-1:-1:-1;;;6595:70:28;;3000:2:165;6595:70:28::1;::::0;::::1;2982:21:165::0;3039:2;3019:18;;;3012:30;3078:28;3058:18;;;3051:56;3124:18;;6595:70:28::1;;;;;;;;;6675:30;::::0;::::1;;::::0;;;:20:::1;:30;::::0;;;;;;;;:37;;-1:-1:-1;;6675:37:28::1;6708:4;6675:37;::::0;;6727:32;;3297:38:165;;;6727:32:28::1;::::0;3270:18:165;6727:32:28::1;;;;;;;;6520:246:::0;:::o;4700:103:87:-;4754:4;4777:19;:7;4789:6;4777:11;:19::i;:::-;4770:26;4700:103;-1:-1:-1;;4700:103:87:o;5923:198:28:-;6011:6;6006:109;6023:21;;;6006:109;;;6065:39;6090:10;;6101:1;6090:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;6065:39::-;6046:3;;6006:109;;;;5923:198;;:::o;6271:253:24:-;-1:-1:-1;;;;;6367:31:24;;6346:4;6367:31;;;:16;:31;;;;;;;;6366:32;:92;;;;-1:-1:-1;6422:10:24;;6403:55;;-1:-1:-1;;;6403:55:24;;-1:-1:-1;;;;;2530:32:165;;;6403:55:24;;;2512:51:165;6422:10:24;;;;6403:40;;2485:18:165;;6403:55:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6402:56;6366:92;6362:135;;;-1:-1:-1;6481:5:24;;6271:253;-1:-1:-1;6271:253:24:o;6362:135::-;-1:-1:-1;6513:4:24;;6271:253;-1:-1:-1;6271:253:24:o;5569:277::-;5651:10;5640:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;5640:7:24;-1:-1:-1;;;;;5640:21:24;;:84;;;-1:-1:-1;5674:10:24;;-1:-1:-1;;;;;5674:10:24;5666:33;:57;;;;-1:-1:-1;5703:10:24;-1:-1:-1;;;;;5703:20:24;;;5666:57;5632:137;;;;-1:-1:-1;;;5632:137:24;;3962:2:165;5632:137:24;;;3944:21:165;4001:2;3981:18;;;3974:30;4040;4020:18;;;4013:58;4088:18;;5632:137:24;3760:352:165;5632:137:24;5779:10;:27;;-1:-1:-1;;;;;;5779:27:24;-1:-1:-1;;;;;5779:27:24;;;;;;;;5821:18;;2512:51:165;;;5821:18:24;;2500:2:165;2485:18;5821::24;2366:203:165;5910:296:24;5994:10;5983:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;5983:7:24;-1:-1:-1;;;;;5983:21:24;;:45;;;-1:-1:-1;6008:10:24;-1:-1:-1;;;;;6008:20:24;;;5983:45;5975:87;;;;-1:-1:-1;;;5975:87:24;;3962:2:165;5975:87:24;;;3944:21:165;4001:2;3981:18;;;3974:30;4040;4020:18;;;4013:58;4088:18;;5975:87:24;3760:352:165;5975:87:24;6098:10;;-1:-1:-1;;;;;6080:29:24;;;6098:10;;6080:29;6072:65;;;;-1:-1:-1;;;6072:65:24;;4319:2:165;6072:65:24;;;4301:21:165;4358:2;4338:18;;;4331:30;4397:25;4377:18;;;4370:53;4440:18;;6072:65:24;4117:347:165;6072:65:24;6154:10;6147:17;;-1:-1:-1;;;;;;6147:17:24;;;6179:20;;-1:-1:-1;;;;;2530:32:165;;2512:51;;6179:20:24;;2500:2:165;2485:18;6179:20:24;2366:203:165;4237:140:35;4348:10:24;:8;:10::i;:::-;4340:91;;;;-1:-1:-1;;;4340:91:24;;;;;;;:::i;:::-;4237:140:35;;:::o;7185:247:28:-;1531:13:141;:11;:13::i;:::-;7271:30:28::1;::::0;::::1;;::::0;;;:20:::1;:30;::::0;;;;;::::1;;7263:65;;;::::0;-1:-1:-1;;;7263:65:28;;5148:2:165;7263:65:28::1;::::0;::::1;5130:21:165::0;5187:2;5167:18;;;5160:30;-1:-1:-1;;;5206:18:165;;;5199:52;5268:18;;7263:65:28::1;4946:346:165::0;7263:65:28::1;7338:30;::::0;::::1;7371:5;7338:30:::0;;;:20:::1;:30;::::0;;;;;;;;:38;;-1:-1:-1;;7338:38:28::1;::::0;;7391:34;;3297:38:165;;;7391:34:28::1;::::0;3270:18:165;7391:34:28::1;3153:188:165::0;2293:101:141;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;4292:194:87:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4361:20:87;::::1;4353:64;;;::::0;-1:-1:-1;;;4353:64:87;;5499:2:165;4353:64:87::1;::::0;::::1;5481:21:165::0;5538:2;5518:18;;;5511:30;5577:33;5557:18;;;5550:61;5628:18;;4353:64:87::1;5297:355:165::0;4353:64:87::1;4427:19;:7;4439:6:::0;4427:11:::1;:19::i;:::-;4461:18;::::0;-1:-1:-1;;;;;4461:18:87;::::1;::::0;::::1;::::0;;;::::1;4292:194:::0;:::o;4009:166:35:-;4348:10:24;:8;:10::i;:::-;4340:91;;;;-1:-1:-1;;;4340:91:24;;;;;;;:::i;4492:202:87:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4564:20:87;::::1;4556:64;;;::::0;-1:-1:-1;;;4556:64:87;;5499:2:165;4556:64:87::1;::::0;::::1;5481:21:165::0;5538:2;5518:18;;;5511:30;5577:33;5557:18;;;5550:61;5628:18;;4556:64:87::1;5297:355:165::0;4556:64:87::1;4630:22;:7;4645:6:::0;4630:14:::1;:22::i;:::-;4667:20;::::0;-1:-1:-1;;;;;4667:20:87;::::1;::::0;::::1;::::0;;;::::1;4492:202:::0;:::o;6589:182:24:-;6695:10;;6657:4;;-1:-1:-1;;;;;6677:29:24;;;6695:10;;6677:29;6673:71;;-1:-1:-1;6728:5:24;;6589:182;-1:-1:-1;6589:182:24:o;5280:193:28:-;5366:6;5361:106;5378:21;;;5361:106;;;5420:36;5442:10;;5453:1;5442:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;5420:36::-;5401:3;;5361:106;;8183:297;8307:4;8323:22;8348:16;8360:3;8348:11;:16::i;:::-;8323:41;;8378:36;8398:15;7675:30;;7651:4;7675:30;;;:20;:30;;;;;;;;;7584:129;8378:36;8374:79;;;8437:5;8430:12;;;;;8374:79;8469:4;8462:11;;;8183:297;;;;;;:::o;5239:266:24:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;5334:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;5326:76;;;::::0;-1:-1:-1;;;5326:76:24;;5859:2:165;5326:76:24::1;::::0;::::1;5841:21:165::0;;;5878:18;;;5871:30;5937:34;5917:18;;;5910:62;5989:18;;5326:76:24::1;5657:356:165::0;5326:76:24::1;-1:-1:-1::0;;;;;5412:31:24;::::1;5446:5;5412:31:::0;;;:16:::1;:31;::::0;;;;;;;;:39;;-1:-1:-1;;5412:39:24::1;::::0;;5466:32;;2512:51:165;;;5466:32:24::1;::::0;2485:18:165;5466:32:24::1;2366:203:165::0;4656:248:35;4753:4;4774:56;4811:5;4818:3;4823:6;4774:36;:56::i;:::-;4769:108;;-1:-1:-1;4861:5:35;4854:12;;4769:108;-1:-1:-1;4893:4:35;4656:248;;;;;:::o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;2512:51:165::0;2485:18;;2672:31:141::1;2366:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;4913:261:24:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;5006:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;5005:32;4997:77;;;::::0;-1:-1:-1;;;4997:77:24;;6220:2:165;4997:77:24::1;::::0;::::1;6202:21:165::0;;;6239:18;;;6232:30;6298:34;6278:18;;;6271:62;6350:18;;4997:77:24::1;6018:356:165::0;4997:77:24::1;-1:-1:-1::0;;;;;5084:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;;;;:38;;-1:-1:-1;;5084:38:24::1;5118:4;5084:38;::::0;;5137:30;;2512:51:165;;;5137:30:24::1;::::0;2485:18:165;5137:30:24::1;2366:203:165::0;1796:162:141;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;2512:51:165;2485:18;;1901:40:141;2366:203:165;4596:200:89;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;6581:2:165;4684:68:89;;;6563:21:165;6620:2;6600:18;;;6593:30;6659:34;6639:18;;;6632:62;-1:-1:-1;;;6710:18:165;;;6703:32;6752:19;;4684:68:89;6379:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;6897:97:24:-;6940:4;6963:24;6976:10;6963:12;:24::i;:::-;6956:31;;6897:97;:::o;2912:187:141:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;4077:175:89:-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;6984:2:165;4145:63:89;;;6966:21:165;7023:2;7003:18;;;6996:30;7062:33;7042:18;;;7035:61;7113:18;;4145:63:89;6782:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;4327:180::-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;7344:2:165;4398:64:89;;;7326:21:165;7383:2;7363:18;;;7356:30;7422:34;7402:18;;;7395:62;-1:-1:-1;;;7473:18:165;;;7466:31;7514:19;;4398:64:89;7142:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;7619:157:24:-;7710:10;;:29;;;-1:-1:-1;;;7710:29:24;;;;7685:6;;-1:-1:-1;;;;;7710:10:24;;:27;;:29;;;;;;;;;;;;;;:10;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:59;;-1:-1:-1;;;7710:59:24;;-1:-1:-1;;;;;2530:32:165;;;7710:59:24;;;2512:51:165;7710:45:24;;;;;;;2485:18:165;;7710:59:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:117:165:-;99:6;92:5;88:18;81:5;78:29;68:57;;121:1;118;111:12;136:245;194:6;247:2;235:9;226:7;222:23;218:32;215:52;;;263:1;260;253:12;215:52;302:9;289:23;321:30;345:5;321:30;:::i;386:131::-;-1:-1:-1;;;;;461:31:165;;451:42;;441:70;;507:1;504;497:12;522:247;581:6;634:2;622:9;613:7;609:23;605:32;602:52;;;650:1;647;640:12;602:52;689:9;676:23;708:31;733:5;708:31;:::i;966:614::-;1051:6;1059;1112:2;1100:9;1091:7;1087:23;1083:32;1080:52;;;1128:1;1125;1118:12;1080:52;1168:9;1155:23;1197:18;1238:2;1230:6;1227:14;1224:34;;;1254:1;1251;1244:12;1224:34;1292:6;1281:9;1277:22;1267:32;;1337:7;1330:4;1326:2;1322:13;1318:27;1308:55;;1359:1;1356;1349:12;1308:55;1399:2;1386:16;1425:2;1417:6;1414:14;1411:34;;;1441:1;1438;1431:12;1411:34;1494:7;1489:2;1479:6;1476:1;1472:14;1468:2;1464:23;1460:32;1457:45;1454:65;;;1515:1;1512;1505:12;1454:65;1546:2;1538:11;;;;;1568:6;;-1:-1:-1;966:614:165;;-1:-1:-1;;;;966:614:165:o;1585:315::-;1653:6;1661;1714:2;1702:9;1693:7;1689:23;1685:32;1682:52;;;1730:1;1727;1720:12;1682:52;1769:9;1756:23;1788:31;1813:5;1788:31;:::i;:::-;1838:5;1890:2;1875:18;;;;1862:32;;-1:-1:-1;;;1585:315:165:o;1905:456::-;1982:6;1990;1998;2051:2;2039:9;2030:7;2026:23;2022:32;2019:52;;;2067:1;2064;2057:12;2019:52;2106:9;2093:23;2125:31;2150:5;2125:31;:::i;:::-;2175:5;-1:-1:-1;2232:2:165;2217:18;;2204:32;2245:33;2204:32;2245:33;:::i;:::-;1905:456;;2297:7;;-1:-1:-1;;;2351:2:165;2336:18;;;;2323:32;;1905:456::o;3346:127::-;3407:10;3402:3;3398:20;3395:1;3388:31;3438:4;3435:1;3428:15;3462:4;3459:1;3452:15;3478:277;3545:6;3598:2;3586:9;3577:7;3573:23;3569:32;3566:52;;;3614:1;3611;3604:12;3566:52;3646:9;3640:16;3699:5;3692:13;3685:21;3678:5;3675:32;3665:60;;3721:1;3718;3711:12;4469:472;4671:2;4653:21;;;4710:2;4690:18;;;4683:30;4749:34;4744:2;4729:18;;4722:62;4820:34;4815:2;4800:18;;4793:62;-1:-1:-1;;;4886:3:165;4871:19;;4864:35;4931:3;4916:19;;4469:472::o;7544:278::-;7641:6;7694:2;7682:9;7673:7;7669:23;7665:32;7662:52;;;7710:1;7707;7700:12;7662:52;7742:9;7736:16;7761:31;7786:5;7761:31;:::i;7827:249::-;7896:6;7949:2;7937:9;7928:7;7924:23;7920:32;7917:52;;;7965:1;7962;7955:12;7917:52;7997:9;7991:16;8016:30;8040:5;8016:30;:::i","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","addCountryRestriction(uint16)":"0333ce24","addTokenAgent(address)":"ff3e6954","batchRestrictCountries(uint16[])":"bdf9a07e","batchUnrestrictCountries(uint16[])":"249c981d","bindToken(address)":"3ff5aa02","canTransfer(address,address,uint256)":"e46638e6","complianceCheckOnCountryRestrictions(address,address,uint256)":"c7a4ecf8","created(address,uint256)":"5f8dead3","destroyed(address,uint256)":"8d2ea772","isAgent(address)":"1ffbb064","isCountryRestricted(uint16)":"bc4c8552","isTokenAgent(address)":"346531fa","isTokenBound(address)":"993e8b95","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","removeCountryRestriction(uint16)":"6aae7b26","removeTokenAgent(address)":"cdde2932","renounceOwnership()":"715018a6","tokenBound()":"93e62f07","transferOwnership(address)":"f2fde38b","transferred(address,address,uint256)":"8baf29b4","unbindToken(address)":"40db3b50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"AddedRestrictedCountry\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"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\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"RemovedRestrictedCountry\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"addCountryRestriction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"addTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16[]\",\"name\":\"_countries\",\"type\":\"uint16[]\"}],\"name\":\"batchRestrictCountries\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16[]\",\"name\":\"_countries\",\"type\":\"uint16[]\"}],\"name\":\"batchUnrestrictCountries\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"complianceCheckOnCountryRestrictions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"isCountryRestricted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"isTokenAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"removeCountryRestriction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"removeTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenBound\",\"outputs\":[{\"internalType\":\"contract IToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addCountryRestriction(uint16)\":{\"details\":\"Adds country restriction. Identities from those countries will be forbidden to manipulate Tokens linked to this Compliance.\",\"params\":{\"_country\":\"Country to be restricted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `AddedRestrictedCountry` event\"}},\"addTokenAgent(address)\":{\"details\":\"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces\"},\"batchRestrictCountries(uint16[])\":{\"details\":\"Adds countries restriction in batch. Identities from those countries will be forbidden to manipulate Tokens linked to this Compliance.\",\"params\":{\"_countries\":\"Countries to be restricted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits _countries.length `AddedRestrictedCountry` events\"}},\"batchUnrestrictCountries(uint16[])\":{\"details\":\"Removes countries restriction in batch. Identities from those countries will again be authorised to manipulate Tokens linked to this Compliance.\",\"params\":{\"_countries\":\"Countries to be unrestricted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits _countries.length `RemovedRestrictedCountry` events\"}},\"bindToken(address)\":{\"details\":\"See {ICompliance-bindToken}.\"},\"canTransfer(address,address,uint256)\":{\"details\":\"See {ICompliance-canTransfer}.\"},\"complianceCheckOnCountryRestrictions(address,address,uint256)\":{\"details\":\"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the country of residence of `_to` is restricted or not, in case the country is restricted, this feature will block the transfer\",\"params\":{\"_to\":\"the address of the transfer receiver\"}},\"created(address,uint256)\":{\"details\":\"See {ICompliance-created}.\"},\"destroyed(address,uint256)\":{\"details\":\"See {ICompliance-destroyed}.\"},\"isCountryRestricted(uint16)\":{\"details\":\"Returns true if country is Restricted\",\"params\":{\"_country\":\", numeric ISO 3166-1 standard of the country to be checked\"}},\"isTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"isTokenBound(address)\":{\"details\":\"See {ICompliance-isTokenBound}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeCountryRestriction(uint16)\":{\"details\":\"Removes country restriction. Identities from those countries will again be authorised to manipulate Tokens linked to this Compliance.\",\"params\":{\"_country\":\"Country to be unrestricted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `RemovedRestrictedCountry` event\"}},\"removeTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"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.\"},\"transferred(address,address,uint256)\":{\"details\":\"See {ICompliance-transferred}.\"},\"unbindToken(address)\":{\"details\":\"See {ICompliance-unbindToken}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"AddedRestrictedCountry(uint16)\":{\"notice\":\"this event is emitted whenever a Country has been restricted. the event is emitted by 'addCountryRestriction' and 'batchRestrictCountries' functions. `_country` is the numeric ISO 3166-1 of the restricted country.\"},\"RemovedRestrictedCountry(uint16)\":{\"notice\":\"this event is emitted whenever a Country has been unrestricted. the event is emitted by 'removeCountryRestriction' and 'batchUnrestrictCountries' functions. `_country` is the numeric ISO 3166-1 of the unrestricted country.\"},\"TokenAgentAdded(address)\":{\"notice\":\"this event is emitted when the Agent has been added on the allowedList of this Compliance. the event is emitted by the Compliance constructor and by the addTokenAgent function `_agentAddress` is the address of the Agent to add\"},\"TokenAgentRemoved(address)\":{\"notice\":\"this event is emitted when the Agent has been removed from the agent list of this Compliance. the event is emitted by the Compliance constructor and by the removeTokenAgent function `_agentAddress` is the address of the Agent to remove\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"}},\"kind\":\"user\",\"methods\":{\"tokenBound()\":{\"notice\":\"Mapping of tokens linked to the compliance contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/legacy/test/CountryRestrictionsTest.sol\":\"CountryRestrictionsTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/legacy/BasicCompliance.sol\":{\"keccak256\":\"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d\",\"dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4\"]},\"contracts/erc3643/compliance/legacy/ICompliance.sol\":{\"keccak256\":\"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e\",\"dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV\"]},\"contracts/erc3643/compliance/legacy/features/CountryRestrictions.sol\":{\"keccak256\":\"0x4aefe64889f7030bd782869fcf2c2261f9ebc3108ad23c0b6c055dcbe462d217\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://46af54a202190da3976f7fdd0f7390c5fdbcbbaa2bca592f4720e25953f5626b\",\"dweb:/ipfs/QmdaYogL1fKrLgxjVfAfw19qk47maTXwyvCQHkwPEA3vq8\"]},\"contracts/erc3643/compliance/legacy/test/CountryRestrictionsTest.sol\":{\"keccak256\":\"0xd0f6ba4e5ddc957b0ae574076dc478c69cffc1dd6cc8adb37c81dedc3ea987d0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3abf4c0a8ea73e50c7a89774677c17864f478c550c546733fedc07d552f6ad86\",\"dweb:/ipfs/QmZf1ScFAHvr3Z5VnLps1gWcYHrqq3jyDyxNMDrg3UEySm\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16","indexed":false}],"type":"event","name":"AddedRestrictedCountry","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16","indexed":false}],"type":"event","name":"RemovedRestrictedCountry","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"addCountryRestriction"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenAgent"},{"inputs":[{"internalType":"uint16[]","name":"_countries","type":"uint16[]"}],"stateMutability":"nonpayable","type":"function","name":"batchRestrictCountries"},{"inputs":[{"internalType":"uint16[]","name":"_countries","type":"uint16[]"}],"stateMutability":"nonpayable","type":"function","name":"batchUnrestrictCountries"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"complianceCheckOnCountryRestrictions","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"view","type":"function","name":"isCountryRestricted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"removeCountryRestriction"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenBound","outputs":[{"internalType":"contract IToken","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"}],"devdoc":{"kind":"dev","methods":{"addCountryRestriction(uint16)":{"details":"Adds country restriction. Identities from those countries will be forbidden to manipulate Tokens linked to this Compliance.","params":{"_country":"Country to be restricted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `AddedRestrictedCountry` event"}},"addTokenAgent(address)":{"details":"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces"},"batchRestrictCountries(uint16[])":{"details":"Adds countries restriction in batch. Identities from those countries will be forbidden to manipulate Tokens linked to this Compliance.","params":{"_countries":"Countries to be restricted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits _countries.length `AddedRestrictedCountry` events"}},"batchUnrestrictCountries(uint16[])":{"details":"Removes countries restriction in batch. Identities from those countries will again be authorised to manipulate Tokens linked to this Compliance.","params":{"_countries":"Countries to be unrestricted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits _countries.length `RemovedRestrictedCountry` events"}},"bindToken(address)":{"details":"See {ICompliance-bindToken}."},"canTransfer(address,address,uint256)":{"details":"See {ICompliance-canTransfer}."},"complianceCheckOnCountryRestrictions(address,address,uint256)":{"details":"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the country of residence of `_to` is restricted or not, in case the country is restricted, this feature will block the transfer","params":{"_to":"the address of the transfer receiver"}},"created(address,uint256)":{"details":"See {ICompliance-created}."},"destroyed(address,uint256)":{"details":"See {ICompliance-destroyed}."},"isCountryRestricted(uint16)":{"details":"Returns true if country is Restricted","params":{"_country":", numeric ISO 3166-1 standard of the country to be checked"}},"isTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"isTokenBound(address)":{"details":"See {ICompliance-isTokenBound}."},"owner()":{"details":"Returns the address of the current owner."},"removeCountryRestriction(uint16)":{"details":"Removes country restriction. Identities from those countries will again be authorised to manipulate Tokens linked to this Compliance.","params":{"_country":"Country to be unrestricted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `RemovedRestrictedCountry` event"}},"removeTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"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."},"transferred(address,address,uint256)":{"details":"See {ICompliance-transferred}."},"unbindToken(address)":{"details":"See {ICompliance-unbindToken}."}},"version":1},"userdoc":{"kind":"user","methods":{"tokenBound()":{"notice":"Mapping of tokens linked to the compliance contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/legacy/test/CountryRestrictionsTest.sol":"CountryRestrictionsTest"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/legacy/BasicCompliance.sol":{"keccak256":"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305","urls":["bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d","dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/ICompliance.sol":{"keccak256":"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7","urls":["bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e","dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/features/CountryRestrictions.sol":{"keccak256":"0x4aefe64889f7030bd782869fcf2c2261f9ebc3108ad23c0b6c055dcbe462d217","urls":["bzz-raw://46af54a202190da3976f7fdd0f7390c5fdbcbbaa2bca592f4720e25953f5626b","dweb:/ipfs/QmdaYogL1fKrLgxjVfAfw19qk47maTXwyvCQHkwPEA3vq8"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/test/CountryRestrictionsTest.sol":{"keccak256":"0xd0f6ba4e5ddc957b0ae574076dc478c69cffc1dd6cc8adb37c81dedc3ea987d0","urls":["bzz-raw://3abf4c0a8ea73e50c7a89774677c17864f478c550c546733fedc07d552f6ad86","dweb:/ipfs/QmZf1ScFAHvr3Z5VnLps1gWcYHrqq3jyDyxNMDrg3UEySm"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":35} \ No newline at end of file diff --git a/out/CountryWhitelisting.sol/CountryWhitelisting.json b/out/CountryWhitelisting.sol/CountryWhitelisting.json new file mode 100644 index 0000000..477600e --- /dev/null +++ b/out/CountryWhitelisting.sol/CountryWhitelisting.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchUnWhitelistCountries","inputs":[{"name":"_countries","type":"uint16[]","internalType":"uint16[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchWhitelistCountries","inputs":[{"name":"_countries","type":"uint16[]","internalType":"uint16[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"complianceCheckOnCountryWhitelisting","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isCountryWhitelisted","inputs":[{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenBound","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tokenBound","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IToken"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unWhitelistCountry","inputs":[{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelistCountry","inputs":[{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentAdded","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentRemoved","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UnWhitelistedCountry","inputs":[{"name":"_country","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"WhitelistedCountry","inputs":[{"name":"_country","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","addTokenAgent(address)":"ff3e6954","batchUnWhitelistCountries(uint16[])":"07e8e344","batchWhitelistCountries(uint16[])":"aee250af","bindToken(address)":"3ff5aa02","canTransfer(address,address,uint256)":"e46638e6","complianceCheckOnCountryWhitelisting(address,address,uint256)":"3b0b83c0","created(address,uint256)":"5f8dead3","destroyed(address,uint256)":"8d2ea772","isAgent(address)":"1ffbb064","isCountryWhitelisted(uint16)":"97eab82b","isTokenAgent(address)":"346531fa","isTokenBound(address)":"993e8b95","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","removeTokenAgent(address)":"cdde2932","renounceOwnership()":"715018a6","tokenBound()":"93e62f07","transferOwnership(address)":"f2fde38b","transferred(address,address,uint256)":"8baf29b4","unWhitelistCountry(uint16)":"a1b01b4f","unbindToken(address)":"40db3b50","whitelistCountry(uint16)":"f393cbc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"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\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"UnWhitelistedCountry\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"WhitelistedCountry\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"addTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16[]\",\"name\":\"_countries\",\"type\":\"uint16[]\"}],\"name\":\"batchUnWhitelistCountries\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16[]\",\"name\":\"_countries\",\"type\":\"uint16[]\"}],\"name\":\"batchWhitelistCountries\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"complianceCheckOnCountryWhitelisting\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"isCountryWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"isTokenAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"removeTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenBound\",\"outputs\":[{\"internalType\":\"contract IToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"unWhitelistCountry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"whitelistCountry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addTokenAgent(address)\":{\"details\":\"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces\"},\"batchUnWhitelistCountries(uint16[])\":{\"details\":\"Removes countries from the whitelist in batch. Identities from those countries will be unwhitelisted.\",\"params\":{\"_countries\":\"Countries to be unwhitelisted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `UnwhitelistedCountry` event\"}},\"batchWhitelistCountries(uint16[])\":{\"details\":\"Adds countries to the whitelist in batch. Identities from those countries will be whitelisted & authorized to manipulate Tokens linked to this Compliance.\",\"params\":{\"_countries\":\"Countries to be whitelisted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `WhitelistedCountry` event\"}},\"bindToken(address)\":{\"details\":\"See {ICompliance-bindToken}.\"},\"canTransfer(address,address,uint256)\":{\"details\":\"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"complianceCheckOnCountryWhitelisting(address,address,uint256)\":{\"details\":\"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the country of residence of `_to` is whitelisted or not, in case the country is whitelisted, this feature will allow the transfer to pass, otherwise the transfer will be blocked\",\"params\":{\"_to\":\"the address of the transfer receiver\"}},\"created(address,uint256)\":{\"details\":\"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_to\":\"The address of the receiver\"}},\"destroyed(address,uint256)\":{\"details\":\"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the receiver\"}},\"isCountryWhitelisted(uint16)\":{\"details\":\"Returns true if country is whitelisted\",\"params\":{\"_country\":\", numeric ISO 3166-1 standard of the country to be checked\"}},\"isTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"isTokenBound(address)\":{\"details\":\"See {ICompliance-isTokenBound}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"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.\"},\"transferred(address,address,uint256)\":{\"details\":\"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"unWhitelistCountry(uint16)\":{\"details\":\"removes whitelisting status of a country. Identities from those countries will be de-whitelisted & forbidden to manipulate Tokens linked to this Compliance.\",\"params\":{\"_country\":\"Country to be de-whitelisted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `UnwhitelistedCountry` event\"}},\"unbindToken(address)\":{\"details\":\"See {ICompliance-unbindToken}.\"},\"whitelistCountry(uint16)\":{\"details\":\"whitelist country. Identities from those countries will be whitelisted & authorised to manipulate Tokens linked to this Compliance.\",\"params\":{\"_country\":\"Country to be whitelisted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `WhitelistedCountry` event\"}}},\"version\":1},\"userdoc\":{\"events\":{\"TokenAgentAdded(address)\":{\"notice\":\"this event is emitted when the Agent has been added on the allowedList of this Compliance. the event is emitted by the Compliance constructor and by the addTokenAgent function `_agentAddress` is the address of the Agent to add\"},\"TokenAgentRemoved(address)\":{\"notice\":\"this event is emitted when the Agent has been removed from the agent list of this Compliance. the event is emitted by the Compliance constructor and by the removeTokenAgent function `_agentAddress` is the address of the Agent to remove\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"},\"UnWhitelistedCountry(uint16)\":{\"notice\":\"this event is emitted whenever a Country has been removed from the whitelist. the event is emitted by 'unwhitelistCountry' and 'batchBlacklistCountries' functions. `_country` is the numeric ISO 3166-1 of the whitelisted country.\"},\"WhitelistedCountry(uint16)\":{\"notice\":\"this event is emitted whenever a Country has been whitelisted. the event is emitted by 'whitelistCountry' and 'batchWhitelistCountries' functions. `_country` is the numeric ISO 3166-1 of the whitelisted country.\"}},\"kind\":\"user\",\"methods\":{\"tokenBound()\":{\"notice\":\"Mapping of tokens linked to the compliance contract\"}},\"notice\":\"this feature allows to setup a whitelist of countries, only investors with a whitelisted country of residence will be allowed to receive tokens\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/legacy/features/CountryWhitelisting.sol\":\"CountryWhitelisting\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/legacy/BasicCompliance.sol\":{\"keccak256\":\"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d\",\"dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4\"]},\"contracts/erc3643/compliance/legacy/ICompliance.sol\":{\"keccak256\":\"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e\",\"dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV\"]},\"contracts/erc3643/compliance/legacy/features/CountryWhitelisting.sol\":{\"keccak256\":\"0x257b7a69f8efc59b4556e65f98eddff3bbd3bc4e7947b296921efbf129eaced4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://703a286451045aa8348eaa3d8d6555f3e531cb43ba6bd0913fa0546cd0a288af\",\"dweb:/ipfs/QmWwchJJGoz3b44aVq1WHeFBjGshTuPa73WUPxy568SAnZ\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16","indexed":false}],"type":"event","name":"UnWhitelistedCountry","anonymous":false},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16","indexed":false}],"type":"event","name":"WhitelistedCountry","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenAgent"},{"inputs":[{"internalType":"uint16[]","name":"_countries","type":"uint16[]"}],"stateMutability":"nonpayable","type":"function","name":"batchUnWhitelistCountries"},{"inputs":[{"internalType":"uint16[]","name":"_countries","type":"uint16[]"}],"stateMutability":"nonpayable","type":"function","name":"batchWhitelistCountries"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"complianceCheckOnCountryWhitelisting","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"view","type":"function","name":"isCountryWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenBound","outputs":[{"internalType":"contract IToken","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"unWhitelistCountry"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"whitelistCountry"}],"devdoc":{"kind":"dev","methods":{"addTokenAgent(address)":{"details":"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces"},"batchUnWhitelistCountries(uint16[])":{"details":"Removes countries from the whitelist in batch. Identities from those countries will be unwhitelisted.","params":{"_countries":"Countries to be unwhitelisted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `UnwhitelistedCountry` event"}},"batchWhitelistCountries(uint16[])":{"details":"Adds countries to the whitelist in batch. Identities from those countries will be whitelisted & authorized to manipulate Tokens linked to this Compliance.","params":{"_countries":"Countries to be whitelisted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `WhitelistedCountry` event"}},"bindToken(address)":{"details":"See {ICompliance-bindToken}."},"canTransfer(address,address,uint256)":{"details":"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"complianceCheckOnCountryWhitelisting(address,address,uint256)":{"details":"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the country of residence of `_to` is whitelisted or not, in case the country is whitelisted, this feature will allow the transfer to pass, otherwise the transfer will be blocked","params":{"_to":"the address of the transfer receiver"}},"created(address,uint256)":{"details":"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_to":"The address of the receiver"}},"destroyed(address,uint256)":{"details":"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the receiver"}},"isCountryWhitelisted(uint16)":{"details":"Returns true if country is whitelisted","params":{"_country":", numeric ISO 3166-1 standard of the country to be checked"}},"isTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"isTokenBound(address)":{"details":"See {ICompliance-isTokenBound}."},"owner()":{"details":"Returns the address of the current owner."},"removeTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"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."},"transferred(address,address,uint256)":{"details":"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"unWhitelistCountry(uint16)":{"details":"removes whitelisting status of a country. Identities from those countries will be de-whitelisted & forbidden to manipulate Tokens linked to this Compliance.","params":{"_country":"Country to be de-whitelisted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `UnwhitelistedCountry` event"}},"unbindToken(address)":{"details":"See {ICompliance-unbindToken}."},"whitelistCountry(uint16)":{"details":"whitelist country. Identities from those countries will be whitelisted & authorised to manipulate Tokens linked to this Compliance.","params":{"_country":"Country to be whitelisted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `WhitelistedCountry` event"}}},"version":1},"userdoc":{"kind":"user","methods":{"tokenBound()":{"notice":"Mapping of tokens linked to the compliance contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/legacy/features/CountryWhitelisting.sol":"CountryWhitelisting"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/legacy/BasicCompliance.sol":{"keccak256":"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305","urls":["bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d","dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/ICompliance.sol":{"keccak256":"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7","urls":["bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e","dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/features/CountryWhitelisting.sol":{"keccak256":"0x257b7a69f8efc59b4556e65f98eddff3bbd3bc4e7947b296921efbf129eaced4","urls":["bzz-raw://703a286451045aa8348eaa3d8d6555f3e531cb43ba6bd0913fa0546cd0a288af","dweb:/ipfs/QmWwchJJGoz3b44aVq1WHeFBjGshTuPa73WUPxy568SAnZ"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":29} \ No newline at end of file diff --git a/out/CountryWhitelistingTest.sol/CountryWhitelistingTest.json b/out/CountryWhitelistingTest.sol/CountryWhitelistingTest.json new file mode 100644 index 0000000..1e44d08 --- /dev/null +++ b/out/CountryWhitelistingTest.sol/CountryWhitelistingTest.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchUnWhitelistCountries","inputs":[{"name":"_countries","type":"uint16[]","internalType":"uint16[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchWhitelistCountries","inputs":[{"name":"_countries","type":"uint16[]","internalType":"uint16[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"complianceCheckOnCountryWhitelisting","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isCountryWhitelisted","inputs":[{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenBound","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tokenBound","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IToken"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unWhitelistCountry","inputs":[{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelistCountry","inputs":[{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentAdded","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentRemoved","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UnWhitelistedCountry","inputs":[{"name":"_country","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"WhitelistedCountry","inputs":[{"name":"_country","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611170806100a56000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638da5cb5b116100c3578063aee250af1161007c578063aee250af146102b4578063cdde2932146102c7578063e46638e6146102da578063f2fde38b146102ed578063f393cbc214610300578063ff3e69541461031357600080fd5b80638da5cb5b1461021c57806393e62f071461024157806397a6278e1461025457806397eab82b14610267578063993e8b951461028e578063a1b01b4f146102a157600080fd5b806340db3b501161011557806340db3b50146101c85780635f8dead3146101db578063715018a6146101ee57806384e79842146101f65780638baf29b4146102095780638d2ea772146101db57600080fd5b806307e8e344146101525780631ffbb06414610167578063346531fa1461018f5780633b0b83c0146101a25780633ff5aa02146101b5575b600080fd5b610165610160366004610edd565b610326565b005b61017a610175366004610fb7565b610360565b60405190151581526020015b60405180910390f35b61017a61019d366004610fb7565b610373565b61017a6101b0366004610fd4565b61041c565b6101656101c3366004610fb7565b610463565b6101656101d6366004610fb7565b61054d565b6101656101e9366004611015565b61066f565b610165610693565b610165610204366004610fb7565b6106a7565b610165610217366004610fd4565b610747565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610186565b600354610229906001600160a01b031681565b610165610262366004610fb7565b610770565b61017a610275366004611041565b61ffff1660009081526004602052604090205460ff1690565b61017a61029c366004610fb7565b610810565b6101656102af366004611041565b610830565b6101656102c2366004610edd565b6108e7565b6101656102d5366004610fb7565b61091d565b61017a6102e8366004610fd4565b6109de565b6101656102fb366004610fb7565b610a01565b61016561030e366004611041565b610a3f565b610165610321366004610fb7565b610afa565b60005b815181101561035c576103548282815181106103475761034761105e565b6020026020010151610830565b600101610329565b5050565b600061036d600183610bbf565b92915050565b6001600160a01b03811660009081526002602052604081205460ff1615801561040757506003546040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa1580156103e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104059190611074565b155b1561041457506000919050565b506001919050565b60008061042884610c42565b90506104478161ffff1660009081526004602052604090205460ff1690565b1561045657600191505061045c565b60009150505b9392505050565b336104766000546001600160a01b031690565b6001600160a01b031614806104a757506003546001600160a01b03161580156104a75750336001600160a01b038216145b6104f85760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c0000000060448201526064015b60405180910390fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b906020015b60405180910390a150565b336105606000546001600160a01b031690565b6001600160a01b0316148061057d5750336001600160a01b038216145b6105c95760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c0000000060448201526064016104ef565b6003546001600160a01b038281169116146106265760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e6400000000000000000060448201526064016104ef565b600380546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a90602001610542565b610677610d1c565b61035c5760405162461bcd60e51b81526004016104ef90611096565b61069b610d2c565b6106a56000610d59565b565b6106af610d2c565b6001600160a01b0381166107055760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016104ef565b610710600182610da9565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b61074f610d1c565b61076b5760405162461bcd60e51b81526004016104ef90611096565b505050565b610778610d2c565b6001600160a01b0381166107ce5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016104ef565b6107d9600182610e25565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6003546000906001600160a01b0383811691161461041457506000919050565b610838610d2c565b61ffff811660009081526004602052604090205460ff1661089b5760405162461bcd60e51b815260206004820152601760248201527f636f756e747279206e6f742077686974656c697374656400000000000000000060448201526064016104ef565b61ffff8116600081815260046020908152604091829020805460ff1916905590519182527f77bf94f96c0e8d724e02e1c5c7a219b0b078de66c992608a55e755a6384d1ee39101610542565b60005b815181101561035c576109158282815181106109085761090861105e565b6020026020010151610a3f565b6001016108ea565b610925610d2c565b6001600160a01b03811660009081526002602052604090205460ff1661098d5760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e74206973206e6f7420726567697374657265642079657460448201526064016104ef565b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f6a659bb87bb23efbdc295f8eed8ae8c4379bfb77660ced2ef0f3d7d26b05c6a69101610542565b60006109eb84848461041c565b6109f75750600061045c565b5060019392505050565b610a09610d2c565b6001600160a01b038116610a3357604051631e4fbdf760e01b8152600060048201526024016104ef565b610a3c81610d59565b50565b610a47610d2c565b61ffff811660009081526004602052604090205460ff1615610aab5760405162461bcd60e51b815260206004820152601b60248201527f636f756e74727920616c72656164792077686974656c6973746564000000000060448201526064016104ef565b61ffff8116600081815260046020908152604091829020805460ff1916600117905590519182527fd20535bfd780673cc88887ad4af967343e4e8e088062aa936fea2de79d10de289101610542565b610b02610d2c565b6001600160a01b03811660009081526002602052604090205460ff1615610b6b5760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e7420697320616c7265616479207265676973746572656460448201526064016104ef565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fd62c45e13ac30396aceb3ad37c89bd1ba9048032fe61679000e92eb93dbfd67d9101610542565b60006001600160a01b038216610c225760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b60648201526084016104ef565b506001600160a01b03166000908152602091909152604090205460ff1690565b600354604080516304d3863d60e21b815290516000926001600160a01b03169163134e18f49160048083019260209291908290030181865afa158015610c8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb09190611100565b604051637e42683b60e01b81526001600160a01b0384811660048301529190911690637e42683b90602401602060405180830381865afa158015610cf8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036d919061111d565b6000610d2733610810565b905090565b6000546001600160a01b031633146106a55760405163118cdaa760e01b81523360048201526024016104ef565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610db38282610bbf565b15610e005760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650060448201526064016104ef565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610e2f8282610bbf565b610e855760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b60648201526084016104ef565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b634e487b7160e01b600052604160045260246000fd5b61ffff81168114610a3c57600080fd5b8035610ed881610ebd565b919050565b60006020808385031215610ef057600080fd5b823567ffffffffffffffff80821115610f0857600080fd5b818501915085601f830112610f1c57600080fd5b813581811115610f2e57610f2e610ea7565b8060051b604051601f19603f83011681018181108582111715610f5357610f53610ea7565b604052918252848201925083810185019188831115610f7157600080fd5b938501935b82851015610f9657610f8785610ecd565b84529385019392850192610f76565b98975050505050505050565b6001600160a01b0381168114610a3c57600080fd5b600060208284031215610fc957600080fd5b813561045c81610fa2565b600080600060608486031215610fe957600080fd5b8335610ff481610fa2565b9250602084013561100481610fa2565b929592945050506040919091013590565b6000806040838503121561102857600080fd5b823561103381610fa2565b946020939093013593505050565b60006020828403121561105357600080fd5b813561045c81610ebd565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561108657600080fd5b8151801515811461045c57600080fd5b60208082526044908201527f6572726f72203a20746869732061646472657373206973206e6f74206120746f60408201527f6b656e20626f756e6420746f2074686520636f6d706c69616e636520636f6e746060820152631c9858dd60e21b608082015260a00190565b60006020828403121561111257600080fd5b815161045c81610fa2565b60006020828403121561112f57600080fd5b815161045c81610ebd56fea26469706673582212204f1b4a02f976e1cddff5ca8e6d2efc39ba3aceb159ae43b9cbd0a414c677635c64736f6c63430008180033","sourceMap":"3889:1017:36:-:0;;;;;;;;;;;;-1:-1:-1;4272:10:87;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;160:51:165;133:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;3889:1017:36;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:165:-;3889:1017:36;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80638da5cb5b116100c3578063aee250af1161007c578063aee250af146102b4578063cdde2932146102c7578063e46638e6146102da578063f2fde38b146102ed578063f393cbc214610300578063ff3e69541461031357600080fd5b80638da5cb5b1461021c57806393e62f071461024157806397a6278e1461025457806397eab82b14610267578063993e8b951461028e578063a1b01b4f146102a157600080fd5b806340db3b501161011557806340db3b50146101c85780635f8dead3146101db578063715018a6146101ee57806384e79842146101f65780638baf29b4146102095780638d2ea772146101db57600080fd5b806307e8e344146101525780631ffbb06414610167578063346531fa1461018f5780633b0b83c0146101a25780633ff5aa02146101b5575b600080fd5b610165610160366004610edd565b610326565b005b61017a610175366004610fb7565b610360565b60405190151581526020015b60405180910390f35b61017a61019d366004610fb7565b610373565b61017a6101b0366004610fd4565b61041c565b6101656101c3366004610fb7565b610463565b6101656101d6366004610fb7565b61054d565b6101656101e9366004611015565b61066f565b610165610693565b610165610204366004610fb7565b6106a7565b610165610217366004610fd4565b610747565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610186565b600354610229906001600160a01b031681565b610165610262366004610fb7565b610770565b61017a610275366004611041565b61ffff1660009081526004602052604090205460ff1690565b61017a61029c366004610fb7565b610810565b6101656102af366004611041565b610830565b6101656102c2366004610edd565b6108e7565b6101656102d5366004610fb7565b61091d565b61017a6102e8366004610fd4565b6109de565b6101656102fb366004610fb7565b610a01565b61016561030e366004611041565b610a3f565b610165610321366004610fb7565b610afa565b60005b815181101561035c576103548282815181106103475761034761105e565b6020026020010151610830565b600101610329565b5050565b600061036d600183610bbf565b92915050565b6001600160a01b03811660009081526002602052604081205460ff1615801561040757506003546040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa1580156103e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104059190611074565b155b1561041457506000919050565b506001919050565b60008061042884610c42565b90506104478161ffff1660009081526004602052604090205460ff1690565b1561045657600191505061045c565b60009150505b9392505050565b336104766000546001600160a01b031690565b6001600160a01b031614806104a757506003546001600160a01b03161580156104a75750336001600160a01b038216145b6104f85760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c0000000060448201526064015b60405180910390fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b906020015b60405180910390a150565b336105606000546001600160a01b031690565b6001600160a01b0316148061057d5750336001600160a01b038216145b6105c95760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c0000000060448201526064016104ef565b6003546001600160a01b038281169116146106265760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e6400000000000000000060448201526064016104ef565b600380546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a90602001610542565b610677610d1c565b61035c5760405162461bcd60e51b81526004016104ef90611096565b61069b610d2c565b6106a56000610d59565b565b6106af610d2c565b6001600160a01b0381166107055760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016104ef565b610710600182610da9565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b61074f610d1c565b61076b5760405162461bcd60e51b81526004016104ef90611096565b505050565b610778610d2c565b6001600160a01b0381166107ce5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016104ef565b6107d9600182610e25565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6003546000906001600160a01b0383811691161461041457506000919050565b610838610d2c565b61ffff811660009081526004602052604090205460ff1661089b5760405162461bcd60e51b815260206004820152601760248201527f636f756e747279206e6f742077686974656c697374656400000000000000000060448201526064016104ef565b61ffff8116600081815260046020908152604091829020805460ff1916905590519182527f77bf94f96c0e8d724e02e1c5c7a219b0b078de66c992608a55e755a6384d1ee39101610542565b60005b815181101561035c576109158282815181106109085761090861105e565b6020026020010151610a3f565b6001016108ea565b610925610d2c565b6001600160a01b03811660009081526002602052604090205460ff1661098d5760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e74206973206e6f7420726567697374657265642079657460448201526064016104ef565b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f6a659bb87bb23efbdc295f8eed8ae8c4379bfb77660ced2ef0f3d7d26b05c6a69101610542565b60006109eb84848461041c565b6109f75750600061045c565b5060019392505050565b610a09610d2c565b6001600160a01b038116610a3357604051631e4fbdf760e01b8152600060048201526024016104ef565b610a3c81610d59565b50565b610a47610d2c565b61ffff811660009081526004602052604090205460ff1615610aab5760405162461bcd60e51b815260206004820152601b60248201527f636f756e74727920616c72656164792077686974656c6973746564000000000060448201526064016104ef565b61ffff8116600081815260046020908152604091829020805460ff1916600117905590519182527fd20535bfd780673cc88887ad4af967343e4e8e088062aa936fea2de79d10de289101610542565b610b02610d2c565b6001600160a01b03811660009081526002602052604090205460ff1615610b6b5760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e7420697320616c7265616479207265676973746572656460448201526064016104ef565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fd62c45e13ac30396aceb3ad37c89bd1ba9048032fe61679000e92eb93dbfd67d9101610542565b60006001600160a01b038216610c225760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b60648201526084016104ef565b506001600160a01b03166000908152602091909152604090205460ff1690565b600354604080516304d3863d60e21b815290516000926001600160a01b03169163134e18f49160048083019260209291908290030181865afa158015610c8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb09190611100565b604051637e42683b60e01b81526001600160a01b0384811660048301529190911690637e42683b90602401602060405180830381865afa158015610cf8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036d919061111d565b6000610d2733610810565b905090565b6000546001600160a01b031633146106a55760405163118cdaa760e01b81523360048201526024016104ef565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610db38282610bbf565b15610e005760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650060448201526064016104ef565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610e2f8282610bbf565b610e855760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b60648201526084016104ef565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b634e487b7160e01b600052604160045260246000fd5b61ffff81168114610a3c57600080fd5b8035610ed881610ebd565b919050565b60006020808385031215610ef057600080fd5b823567ffffffffffffffff80821115610f0857600080fd5b818501915085601f830112610f1c57600080fd5b813581811115610f2e57610f2e610ea7565b8060051b604051601f19603f83011681018181108582111715610f5357610f53610ea7565b604052918252848201925083810185019188831115610f7157600080fd5b938501935b82851015610f9657610f8785610ecd565b84529385019392850192610f76565b98975050505050505050565b6001600160a01b0381168114610a3c57600080fd5b600060208284031215610fc957600080fd5b813561045c81610fa2565b600080600060608486031215610fe957600080fd5b8335610ff481610fa2565b9250602084013561100481610fa2565b929592945050506040919091013590565b6000806040838503121561102857600080fd5b823561103381610fa2565b946020939093013593505050565b60006020828403121561105357600080fd5b813561045c81610ebd565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561108657600080fd5b8151801515811461045c57600080fd5b60208082526044908201527f6572726f72203a20746869732061646472657373206973206e6f74206120746f60408201527f6b656e20626f756e6420746f2074686520636f6d706c69616e636520636f6e746060820152631c9858dd60e21b608082015260a00190565b60006020828403121561111257600080fd5b815161045c81610fa2565b60006020828403121561112f57600080fd5b815161045c81610ebd56fea26469706673582212204f1b4a02f976e1cddff5ca8e6d2efc39ba3aceb159ae43b9cbd0a414c677635c64736f6c63430008180033","sourceMap":"3889:1017:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5838:191:29;;;;;;:::i;:::-;;:::i;:::-;;4700:103:87;;;;;;:::i;:::-;;:::i;:::-;;;2082:14:165;;2075:22;2057:41;;2045:2;2030:18;4700:103:87;;;;;;;;6271:253:24;;;;;;:::i;:::-;;:::i;8165:298:29:-;;;;;;:::i;:::-;;:::i;5569:277:24:-;;;;;;:::i;:::-;;:::i;5910:296::-;;;;;;:::i;:::-;;:::i;4237:140:36:-;;;;;;:::i;:::-;;:::i;2293:101:141:-;;;:::i;4292:194:87:-;;;;;;:::i;:::-;;:::i;4009:166:36:-;;;;;;:::i;:::-;;:::i;1638:85:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;1638:85;;;-1:-1:-1;;;;;3054:32:165;;;3036:51;;3024:2;3009:18;1638:85:141;2890:203:165;4173:24:24;;;;;-1:-1:-1;;;;;4173:24:24;;;4492:202:87;;;;;;:::i;:::-;;:::i;7514:131:29:-;;;;;;:::i;:::-;7606:31;;7582:4;7606:31;;;:21;:31;;;;;;;;;7514:131;6589:182:24;;;;;;:::i;:::-;;:::i;7121:240:29:-;;;;;;:::i;:::-;;:::i;5263:187::-;;;;;;:::i;:::-;;:::i;5239:266:24:-;;;;;;:::i;:::-;;:::i;4656:248:36:-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;6433:240:29:-;;;;;;:::i;:::-;;:::i;4913:261:24:-;;;;;;:::i;:::-;;:::i;5838:191:29:-;5925:6;5920:103;5941:10;:17;5937:1;:21;5920:103;;;5979:33;5998:10;6009:1;5998:13;;;;;;;;:::i;:::-;;;;;;;5979:18;:33::i;:::-;5960:3;;5920:103;;;;5838:191;:::o;4700:103:87:-;4754:4;4777:19;:7;4789:6;4777:11;:19::i;:::-;4770:26;4700:103;-1:-1:-1;;4700:103:87:o;6271:253:24:-;-1:-1:-1;;;;;6367:31:24;;6346:4;6367:31;;;:16;:31;;;;;;;;6366:32;:92;;;;-1:-1:-1;6422:10:24;;6403:55;;-1:-1:-1;;;6403:55:24;;-1:-1:-1;;;;;3054:32:165;;;6403:55:24;;;3036:51:165;6422:10:24;;;;6403:40;;3009:18:165;;6403:55:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6402:56;6366:92;6362:135;;;-1:-1:-1;6481:5:24;;6271:253;-1:-1:-1;6271:253:24:o;6362:135::-;-1:-1:-1;6513:4:24;;6271:253;-1:-1:-1;6271:253:24:o;8165:298:29:-;8289:4;8305:22;8330:16;8342:3;8330:11;:16::i;:::-;8305:41;;8360:37;8381:15;7606:31;;7582:4;7606:31;;;:21;:31;;;;;;;;;7514:131;8360:37;8356:79;;;8420:4;8413:11;;;;;8356:79;8451:5;8444:12;;;8165:298;;;;;;:::o;5569:277:24:-;5651:10;5640:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;5640:7:24;-1:-1:-1;;;;;5640:21:24;;:84;;;-1:-1:-1;5674:10:24;;-1:-1:-1;;;;;5674:10:24;5666:33;:57;;;;-1:-1:-1;5703:10:24;-1:-1:-1;;;;;5703:20:24;;;5666:57;5632:137;;;;-1:-1:-1;;;5632:137:24;;4188:2:165;5632:137:24;;;4170:21:165;4227:2;4207:18;;;4200:30;4266;4246:18;;;4239:58;4314:18;;5632:137:24;;;;;;;;;5779:10;:27;;-1:-1:-1;;;;;;5779:27:24;-1:-1:-1;;;;;5779:27:24;;;;;;;;5821:18;;3036:51:165;;;5821:18:24;;3024:2:165;3009:18;5821::24;;;;;;;;5569:277;:::o;5910:296::-;5994:10;5983:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;5983:7:24;-1:-1:-1;;;;;5983:21:24;;:45;;;-1:-1:-1;6008:10:24;-1:-1:-1;;;;;6008:20:24;;;5983:45;5975:87;;;;-1:-1:-1;;;5975:87:24;;4188:2:165;5975:87:24;;;4170:21:165;4227:2;4207:18;;;4200:30;4266;4246:18;;;4239:58;4314:18;;5975:87:24;3986:352:165;5975:87:24;6098:10;;-1:-1:-1;;;;;6080:29:24;;;6098:10;;6080:29;6072:65;;;;-1:-1:-1;;;6072:65:24;;4545:2:165;6072:65:24;;;4527:21:165;4584:2;4564:18;;;4557:30;4623:25;4603:18;;;4596:53;4666:18;;6072:65:24;4343:347:165;6072:65:24;6154:10;6147:17;;-1:-1:-1;;;;;;6147:17:24;;;6179:20;;-1:-1:-1;;;;;3054:32:165;;3036:51;;6179:20:24;;3024:2:165;3009:18;6179:20:24;2890:203:165;4237:140:36;4348:10:24;:8;:10::i;:::-;4340:91;;;;-1:-1:-1;;;4340:91:24;;;;;;;:::i;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;4292:194:87:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4361:20:87;::::1;4353:64;;;::::0;-1:-1:-1;;;4353:64:87;;5374:2:165;4353:64:87::1;::::0;::::1;5356:21:165::0;5413:2;5393:18;;;5386:30;5452:33;5432:18;;;5425:61;5503:18;;4353:64:87::1;5172:355:165::0;4353:64:87::1;4427:19;:7;4439:6:::0;4427:11:::1;:19::i;:::-;4461:18;::::0;-1:-1:-1;;;;;4461:18:87;::::1;::::0;::::1;::::0;;;::::1;4292:194:::0;:::o;4009:166:36:-;4348:10:24;:8;:10::i;:::-;4340:91;;;;-1:-1:-1;;;4340:91:24;;;;;;;:::i;:::-;4009:166:36;;;:::o;4492:202:87:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4564:20:87;::::1;4556:64;;;::::0;-1:-1:-1;;;4556:64:87;;5374:2:165;4556:64:87::1;::::0;::::1;5356:21:165::0;5413:2;5393:18;;;5386:30;5452:33;5432:18;;;5425:61;5503:18;;4556:64:87::1;5172:355:165::0;4556:64:87::1;4630:22;:7;4645:6:::0;4630:14:::1;:22::i;:::-;4667:20;::::0;-1:-1:-1;;;;;4667:20:87;::::1;::::0;::::1;::::0;;;::::1;4492:202:::0;:::o;6589:182:24:-;6695:10;;6657:4;;-1:-1:-1;;;;;6677:29:24;;;6695:10;;6677:29;6673:71;;-1:-1:-1;6728:5:24;;6589:182;-1:-1:-1;6589:182:24:o;7121:240:29:-;1531:13:141;:11;:13::i;:::-;7201:31:29::1;::::0;::::1;;::::0;;;:21:::1;:31;::::0;;;;;::::1;;7193:67;;;::::0;-1:-1:-1;;;7193:67:29;;5734:2:165;7193:67:29::1;::::0;::::1;5716:21:165::0;5773:2;5753:18;;;5746:30;5812:25;5792:18;;;5785:53;5855:18;;7193:67:29::1;5532:347:165::0;7193:67:29::1;7270:31;::::0;::::1;7304:5;7270:31:::0;;;:21:::1;:31;::::0;;;;;;;;:39;;-1:-1:-1;;7270:39:29::1;::::0;;7324:30;;6028:38:165;;;7324:30:29::1;::::0;6001:18:165;7324:30:29::1;5884:188:165::0;5263:187:29;5348:6;5343:101;5364:10;:17;5360:1;:21;5343:101;;;5402:31;5419:10;5430:1;5419:13;;;;;;;;:::i;:::-;;;;;;;5402:16;:31::i;:::-;5383:3;;5343:101;;5239:266:24;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;5334:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;5326:76;;;::::0;-1:-1:-1;;;5326:76:24;;6279:2:165;5326:76:24::1;::::0;::::1;6261:21:165::0;;;6298:18;;;6291:30;6357:34;6337:18;;;6330:62;6409:18;;5326:76:24::1;6077:356:165::0;5326:76:24::1;-1:-1:-1::0;;;;;5412:31:24;::::1;5446:5;5412:31:::0;;;:16:::1;:31;::::0;;;;;;;;:39;;-1:-1:-1;;5412:39:24::1;::::0;;5466:32;;3036:51:165;;;5466:32:24::1;::::0;3009:18:165;5466:32:24::1;2890:203:165::0;4656:248:36;4753:4;4774:56;4811:5;4818:3;4823:6;4774:36;:56::i;:::-;4769:108;;-1:-1:-1;4861:5:36;4854:12;;4769:108;-1:-1:-1;4893:4:36;4656:248;;;;;:::o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;3036:51:165::0;3009:18;;2672:31:141::1;2890:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;6433:240:29:-;1531:13:141;:11;:13::i;:::-;6512:31:29::1;::::0;::::1;;::::0;;;:21:::1;:31;::::0;;;;;::::1;;6511:32;6503:72;;;::::0;-1:-1:-1;;;6503:72:29;;6640:2:165;6503:72:29::1;::::0;::::1;6622:21:165::0;6679:2;6659:18;;;6652:30;6718:29;6698:18;;;6691:57;6765:18;;6503:72:29::1;6438:351:165::0;6503:72:29::1;6585:31;::::0;::::1;;::::0;;;:21:::1;:31;::::0;;;;;;;;:38;;-1:-1:-1;;6585:38:29::1;6619:4;6585:38;::::0;;6638:28;;6028:38:165;;;6638:28:29::1;::::0;6001:18:165;6638:28:29::1;5884:188:165::0;4913:261:24;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;5006:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;5005:32;4997:77;;;::::0;-1:-1:-1;;;4997:77:24;;6996:2:165;4997:77:24::1;::::0;::::1;6978:21:165::0;;;7015:18;;;7008:30;7074:34;7054:18;;;7047:62;7126:18;;4997:77:24::1;6794:356:165::0;4997:77:24::1;-1:-1:-1::0;;;;;5084:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;;;;:38;;-1:-1:-1;;5084:38:24::1;5118:4;5084:38;::::0;;5137:30;;3036:51:165;;;5137:30:24::1;::::0;3009:18:165;5137:30:24::1;2890:203:165::0;4596:200:89;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;7357:2:165;4684:68:89;;;7339:21:165;7396:2;7376:18;;;7369:30;7435:34;7415:18;;;7408:62;-1:-1:-1;;;7486:18:165;;;7479:32;7528:19;;4684:68:89;7155:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;7619:157:24:-;7710:10;;:29;;;-1:-1:-1;;;7710:29:24;;;;7685:6;;-1:-1:-1;;;;;7710:10:24;;:27;;:29;;;;;;;;;;;;;;:10;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:59;;-1:-1:-1;;;7710:59:24;;-1:-1:-1;;;;;3054:32:165;;;7710:59:24;;;3036:51:165;7710:45:24;;;;;;;3009:18:165;;7710:59:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6897:97::-;6940:4;6963:24;6976:10;6963:12;:24::i;:::-;6956:31;;6897:97;:::o;1796:162:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;3036:51:165;3009:18;;1901:40:141;2890:203:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;4077:175:89:-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;8297:2:165;4145:63:89;;;8279:21:165;8336:2;8316:18;;;8309:30;8375:33;8355:18;;;8348:61;8426:18;;4145:63:89;8095:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;4327:180::-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;8657:2:165;4398:64:89;;;8639:21:165;8696:2;8676:18;;;8669:30;8735:34;8715:18;;;8708:62;-1:-1:-1;;;8786:18:165;;;8779:31;8827:19;;4398:64:89;8455:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;14:127:165:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:117;231:6;224:5;220:18;213:5;210:29;200:57;;253:1;250;243:12;268:132;335:20;;364:30;335:20;364:30;:::i;:::-;268:132;;;:::o;405:1119::-;488:6;519:2;562;550:9;541:7;537:23;533:32;530:52;;;578:1;575;568:12;530:52;618:9;605:23;647:18;688:2;680:6;677:14;674:34;;;704:1;701;694:12;674:34;742:6;731:9;727:22;717:32;;787:7;780:4;776:2;772:13;768:27;758:55;;809:1;806;799:12;758:55;845:2;832:16;867:2;863;860:10;857:36;;;873:18;;:::i;:::-;919:2;916:1;912:10;951:2;945:9;1014:2;1010:7;1005:2;1001;997:11;993:25;985:6;981:38;1069:6;1057:10;1054:22;1049:2;1037:10;1034:18;1031:46;1028:72;;;1080:18;;:::i;:::-;1116:2;1109:22;1166:18;;;1200:15;;;;-1:-1:-1;1242:11:165;;;1238:20;;;1270:19;;;1267:39;;;1302:1;1299;1292:12;1267:39;1326:11;;;;1346:147;1362:6;1357:3;1354:15;1346:147;;;1428:22;1446:3;1428:22;:::i;:::-;1416:35;;1379:12;;;;1471;;;;1346:147;;;1512:6;405:1119;-1:-1:-1;;;;;;;;405:1119:165:o;1529:131::-;-1:-1:-1;;;;;1604:31:165;;1594:42;;1584:70;;1650:1;1647;1640:12;1665:247;1724:6;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;2109:456::-;2186:6;2194;2202;2255:2;2243:9;2234:7;2230:23;2226:32;2223:52;;;2271:1;2268;2261:12;2223:52;2310:9;2297:23;2329:31;2354:5;2329:31;:::i;:::-;2379:5;-1:-1:-1;2436:2:165;2421:18;;2408:32;2449:33;2408:32;2449:33;:::i;:::-;2109:456;;2501:7;;-1:-1:-1;;;2555:2:165;2540:18;;;;2527:32;;2109:456::o;2570:315::-;2638:6;2646;2699:2;2687:9;2678:7;2674:23;2670:32;2667:52;;;2715:1;2712;2705:12;2667:52;2754:9;2741:23;2773:31;2798:5;2773:31;:::i;:::-;2823:5;2875:2;2860:18;;;;2847:32;;-1:-1:-1;;;2570:315:165:o;3322:245::-;3380:6;3433:2;3421:9;3412:7;3408:23;3404:32;3401:52;;;3449:1;3446;3439:12;3401:52;3488:9;3475:23;3507:30;3531:5;3507:30;:::i;3572:127::-;3633:10;3628:3;3624:20;3621:1;3614:31;3664:4;3661:1;3654:15;3688:4;3685:1;3678:15;3704:277;3771:6;3824:2;3812:9;3803:7;3799:23;3795:32;3792:52;;;3840:1;3837;3830:12;3792:52;3872:9;3866:16;3925:5;3918:13;3911:21;3904:5;3901:32;3891:60;;3947:1;3944;3937:12;4695:472;4897:2;4879:21;;;4936:2;4916:18;;;4909:30;4975:34;4970:2;4955:18;;4948:62;5046:34;5041:2;5026:18;;5019:62;-1:-1:-1;;;5112:3:165;5097:19;;5090:35;5157:3;5142:19;;4695:472::o;7558:278::-;7655:6;7708:2;7696:9;7687:7;7683:23;7679:32;7676:52;;;7724:1;7721;7714:12;7676:52;7756:9;7750:16;7775:31;7800:5;7775:31;:::i;7841:249::-;7910:6;7963:2;7951:9;7942:7;7938:23;7934:32;7931:52;;;7979:1;7976;7969:12;7931:52;8011:9;8005:16;8030:30;8054:5;8030:30;:::i","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","addTokenAgent(address)":"ff3e6954","batchUnWhitelistCountries(uint16[])":"07e8e344","batchWhitelistCountries(uint16[])":"aee250af","bindToken(address)":"3ff5aa02","canTransfer(address,address,uint256)":"e46638e6","complianceCheckOnCountryWhitelisting(address,address,uint256)":"3b0b83c0","created(address,uint256)":"5f8dead3","destroyed(address,uint256)":"8d2ea772","isAgent(address)":"1ffbb064","isCountryWhitelisted(uint16)":"97eab82b","isTokenAgent(address)":"346531fa","isTokenBound(address)":"993e8b95","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","removeTokenAgent(address)":"cdde2932","renounceOwnership()":"715018a6","tokenBound()":"93e62f07","transferOwnership(address)":"f2fde38b","transferred(address,address,uint256)":"8baf29b4","unWhitelistCountry(uint16)":"a1b01b4f","unbindToken(address)":"40db3b50","whitelistCountry(uint16)":"f393cbc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"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\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"UnWhitelistedCountry\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"WhitelistedCountry\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"addTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16[]\",\"name\":\"_countries\",\"type\":\"uint16[]\"}],\"name\":\"batchUnWhitelistCountries\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16[]\",\"name\":\"_countries\",\"type\":\"uint16[]\"}],\"name\":\"batchWhitelistCountries\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"complianceCheckOnCountryWhitelisting\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"isCountryWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"isTokenAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"removeTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenBound\",\"outputs\":[{\"internalType\":\"contract IToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"unWhitelistCountry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"whitelistCountry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addTokenAgent(address)\":{\"details\":\"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces\"},\"batchUnWhitelistCountries(uint16[])\":{\"details\":\"Removes countries from the whitelist in batch. Identities from those countries will be unwhitelisted.\",\"params\":{\"_countries\":\"Countries to be unwhitelisted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `UnwhitelistedCountry` event\"}},\"batchWhitelistCountries(uint16[])\":{\"details\":\"Adds countries to the whitelist in batch. Identities from those countries will be whitelisted & authorized to manipulate Tokens linked to this Compliance.\",\"params\":{\"_countries\":\"Countries to be whitelisted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `WhitelistedCountry` event\"}},\"bindToken(address)\":{\"details\":\"See {ICompliance-bindToken}.\"},\"canTransfer(address,address,uint256)\":{\"details\":\"See {ICompliance-canTransfer}.\"},\"complianceCheckOnCountryWhitelisting(address,address,uint256)\":{\"details\":\"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the country of residence of `_to` is whitelisted or not, in case the country is whitelisted, this feature will allow the transfer to pass, otherwise the transfer will be blocked\",\"params\":{\"_to\":\"the address of the transfer receiver\"}},\"created(address,uint256)\":{\"details\":\"See {ICompliance-created}.\"},\"destroyed(address,uint256)\":{\"details\":\"See {ICompliance-destroyed}.\"},\"isCountryWhitelisted(uint16)\":{\"details\":\"Returns true if country is whitelisted\",\"params\":{\"_country\":\", numeric ISO 3166-1 standard of the country to be checked\"}},\"isTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"isTokenBound(address)\":{\"details\":\"See {ICompliance-isTokenBound}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"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.\"},\"transferred(address,address,uint256)\":{\"details\":\"See {ICompliance-transferred}.\"},\"unWhitelistCountry(uint16)\":{\"details\":\"removes whitelisting status of a country. Identities from those countries will be de-whitelisted & forbidden to manipulate Tokens linked to this Compliance.\",\"params\":{\"_country\":\"Country to be de-whitelisted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `UnwhitelistedCountry` event\"}},\"unbindToken(address)\":{\"details\":\"See {ICompliance-unbindToken}.\"},\"whitelistCountry(uint16)\":{\"details\":\"whitelist country. Identities from those countries will be whitelisted & authorised to manipulate Tokens linked to this Compliance.\",\"params\":{\"_country\":\"Country to be whitelisted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `WhitelistedCountry` event\"}}},\"version\":1},\"userdoc\":{\"events\":{\"TokenAgentAdded(address)\":{\"notice\":\"this event is emitted when the Agent has been added on the allowedList of this Compliance. the event is emitted by the Compliance constructor and by the addTokenAgent function `_agentAddress` is the address of the Agent to add\"},\"TokenAgentRemoved(address)\":{\"notice\":\"this event is emitted when the Agent has been removed from the agent list of this Compliance. the event is emitted by the Compliance constructor and by the removeTokenAgent function `_agentAddress` is the address of the Agent to remove\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"},\"UnWhitelistedCountry(uint16)\":{\"notice\":\"this event is emitted whenever a Country has been removed from the whitelist. the event is emitted by 'unwhitelistCountry' and 'batchBlacklistCountries' functions. `_country` is the numeric ISO 3166-1 of the whitelisted country.\"},\"WhitelistedCountry(uint16)\":{\"notice\":\"this event is emitted whenever a Country has been whitelisted. the event is emitted by 'whitelistCountry' and 'batchWhitelistCountries' functions. `_country` is the numeric ISO 3166-1 of the whitelisted country.\"}},\"kind\":\"user\",\"methods\":{\"tokenBound()\":{\"notice\":\"Mapping of tokens linked to the compliance contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/legacy/test/CountryWhitelistingTest.sol\":\"CountryWhitelistingTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/legacy/BasicCompliance.sol\":{\"keccak256\":\"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d\",\"dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4\"]},\"contracts/erc3643/compliance/legacy/ICompliance.sol\":{\"keccak256\":\"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e\",\"dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV\"]},\"contracts/erc3643/compliance/legacy/features/CountryWhitelisting.sol\":{\"keccak256\":\"0x257b7a69f8efc59b4556e65f98eddff3bbd3bc4e7947b296921efbf129eaced4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://703a286451045aa8348eaa3d8d6555f3e531cb43ba6bd0913fa0546cd0a288af\",\"dweb:/ipfs/QmWwchJJGoz3b44aVq1WHeFBjGshTuPa73WUPxy568SAnZ\"]},\"contracts/erc3643/compliance/legacy/test/CountryWhitelistingTest.sol\":{\"keccak256\":\"0x804d24f0549b6e93f765ec8c2290f3c72eba070f3e3d74ae34209c9a18d2e730\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://229a2cb8ec7e2ecacb8b21932307f69bf31eda6baa47a8579b795066d1a5cdd3\",\"dweb:/ipfs/QmRPuY7pyBHX19j93kVTbF7LSLReTVCEZoFP7EarCUziPH\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16","indexed":false}],"type":"event","name":"UnWhitelistedCountry","anonymous":false},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16","indexed":false}],"type":"event","name":"WhitelistedCountry","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenAgent"},{"inputs":[{"internalType":"uint16[]","name":"_countries","type":"uint16[]"}],"stateMutability":"nonpayable","type":"function","name":"batchUnWhitelistCountries"},{"inputs":[{"internalType":"uint16[]","name":"_countries","type":"uint16[]"}],"stateMutability":"nonpayable","type":"function","name":"batchWhitelistCountries"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"complianceCheckOnCountryWhitelisting","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"view","type":"function","name":"isCountryWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenBound","outputs":[{"internalType":"contract IToken","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"unWhitelistCountry"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"whitelistCountry"}],"devdoc":{"kind":"dev","methods":{"addTokenAgent(address)":{"details":"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces"},"batchUnWhitelistCountries(uint16[])":{"details":"Removes countries from the whitelist in batch. Identities from those countries will be unwhitelisted.","params":{"_countries":"Countries to be unwhitelisted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `UnwhitelistedCountry` event"}},"batchWhitelistCountries(uint16[])":{"details":"Adds countries to the whitelist in batch. Identities from those countries will be whitelisted & authorized to manipulate Tokens linked to this Compliance.","params":{"_countries":"Countries to be whitelisted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `WhitelistedCountry` event"}},"bindToken(address)":{"details":"See {ICompliance-bindToken}."},"canTransfer(address,address,uint256)":{"details":"See {ICompliance-canTransfer}."},"complianceCheckOnCountryWhitelisting(address,address,uint256)":{"details":"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the country of residence of `_to` is whitelisted or not, in case the country is whitelisted, this feature will allow the transfer to pass, otherwise the transfer will be blocked","params":{"_to":"the address of the transfer receiver"}},"created(address,uint256)":{"details":"See {ICompliance-created}."},"destroyed(address,uint256)":{"details":"See {ICompliance-destroyed}."},"isCountryWhitelisted(uint16)":{"details":"Returns true if country is whitelisted","params":{"_country":", numeric ISO 3166-1 standard of the country to be checked"}},"isTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"isTokenBound(address)":{"details":"See {ICompliance-isTokenBound}."},"owner()":{"details":"Returns the address of the current owner."},"removeTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"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."},"transferred(address,address,uint256)":{"details":"See {ICompliance-transferred}."},"unWhitelistCountry(uint16)":{"details":"removes whitelisting status of a country. Identities from those countries will be de-whitelisted & forbidden to manipulate Tokens linked to this Compliance.","params":{"_country":"Country to be de-whitelisted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `UnwhitelistedCountry` event"}},"unbindToken(address)":{"details":"See {ICompliance-unbindToken}."},"whitelistCountry(uint16)":{"details":"whitelist country. Identities from those countries will be whitelisted & authorised to manipulate Tokens linked to this Compliance.","params":{"_country":"Country to be whitelisted, should be expressed by following numeric ISO 3166-1 standard Only the owner of the Compliance smart contract can call this function emits an `WhitelistedCountry` event"}}},"version":1},"userdoc":{"kind":"user","methods":{"tokenBound()":{"notice":"Mapping of tokens linked to the compliance contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/legacy/test/CountryWhitelistingTest.sol":"CountryWhitelistingTest"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/legacy/BasicCompliance.sol":{"keccak256":"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305","urls":["bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d","dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/ICompliance.sol":{"keccak256":"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7","urls":["bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e","dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/features/CountryWhitelisting.sol":{"keccak256":"0x257b7a69f8efc59b4556e65f98eddff3bbd3bc4e7947b296921efbf129eaced4","urls":["bzz-raw://703a286451045aa8348eaa3d8d6555f3e531cb43ba6bd0913fa0546cd0a288af","dweb:/ipfs/QmWwchJJGoz3b44aVq1WHeFBjGshTuPa73WUPxy568SAnZ"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/test/CountryWhitelistingTest.sol":{"keccak256":"0x804d24f0549b6e93f765ec8c2290f3c72eba070f3e3d74ae34209c9a18d2e730","urls":["bzz-raw://229a2cb8ec7e2ecacb8b21932307f69bf31eda6baa47a8579b795066d1a5cdd3","dweb:/ipfs/QmRPuY7pyBHX19j93kVTbF7LSLReTVCEZoFP7EarCUziPH"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":36} \ No newline at end of file diff --git a/out/DVATransferManager.sol/DVATransferManager.json b/out/DVATransferManager.sol/DVATransferManager.json new file mode 100644 index 0000000..e0609f4 --- /dev/null +++ b/out/DVATransferManager.sol/DVATransferManager.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approveTransfer","inputs":[{"name":"transferID","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"calculateTransferID","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_recipient","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"cancelTransfer","inputs":[{"name":"transferID","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegateApproveTransfer","inputs":[{"name":"transferID","type":"bytes32","internalType":"bytes32"},{"name":"signatures","type":"tuple[]","internalType":"struct IDVATransferManager.Signature[]","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getApprovalCriteria","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IDVATransferManager.ApprovalCriteria","components":[{"name":"includeRecipientApprover","type":"bool","internalType":"bool"},{"name":"includeAgentApprover","type":"bool","internalType":"bool"},{"name":"sequentialApproval","type":"bool","internalType":"bool"},{"name":"additionalApprovers","type":"address[]","internalType":"address[]"},{"name":"hash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getNextApprover","inputs":[{"name":"transferID","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nextApprover","type":"address","internalType":"address"},{"name":"anyTokenAgent","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getNextTxNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTransfer","inputs":[{"name":"transferID","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IDVATransferManager.Transfer","components":[{"name":"tokenAddress","type":"address","internalType":"address"},{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"status","type":"uint8","internalType":"enum IDVATransferManager.TransferStatus"},{"name":"approvers","type":"tuple[]","internalType":"struct IDVATransferManager.Approver[]","components":[{"name":"wallet","type":"address","internalType":"address"},{"name":"anyTokenAgent","type":"bool","internalType":"bool"},{"name":"approved","type":"bool","internalType":"bool"}]},{"name":"approvalCriteriaHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"initiateTransfer","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"rejectTransfer","inputs":[{"name":"transferID","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalCriteria","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"},{"name":"includeRecipientApprover","type":"bool","internalType":"bool"},{"name":"includeAgentApprover","type":"bool","internalType":"bool"},{"name":"sequentialApproval","type":"bool","internalType":"bool"},{"name":"additionalApprovers","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ApprovalCriteriaSet","inputs":[{"name":"tokenAddress","type":"address","indexed":false,"internalType":"address"},{"name":"includeRecipientApprover","type":"bool","indexed":false,"internalType":"bool"},{"name":"includeAgentApprover","type":"bool","indexed":false,"internalType":"bool"},{"name":"sequentialApproval","type":"bool","indexed":false,"internalType":"bool"},{"name":"additionalApprovers","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"hash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"TransferApprovalStateReset","inputs":[{"name":"transferID","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"approvalCriteriaHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"TransferApproved","inputs":[{"name":"transferID","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"approver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TransferCancelled","inputs":[{"name":"transferID","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"TransferCompleted","inputs":[{"name":"transferID","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"tokenAddress","type":"address","indexed":false,"internalType":"address"},{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TransferInitiated","inputs":[{"name":"transferID","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"tokenAddress","type":"address","indexed":false,"internalType":"address"},{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"approvalCriteriaHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"TransferRejected","inputs":[{"name":"transferID","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"rejectedBy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ApprovalsMustBeSequential","inputs":[{"name":"_transferID","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ApproverNotFound","inputs":[{"name":"_transferID","type":"bytes32","internalType":"bytes32"},{"name":"_approver","type":"address","internalType":"address"}]},{"type":"error","name":"DVAManagerIsNotVerifiedForTheToken","inputs":[{"name":"_tokenAddress","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidTransferID","inputs":[{"name":"_transferID","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OnlyTokenAgentCanCall","inputs":[{"name":"_tokenAddress","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyTransferSenderCanCall","inputs":[{"name":"_transferID","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"RecipientIsNotVerified","inputs":[{"name":"_tokenAddress","type":"address","internalType":"address"},{"name":"_recipient","type":"address","internalType":"address"}]},{"type":"error","name":"SignaturesCanNotBeEmpty","inputs":[{"name":"_transferID","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"TokenIsNotRegistered","inputs":[{"name":"_tokenAddress","type":"address","internalType":"address"}]},{"type":"error","name":"TransferIsNotInPendingStatus","inputs":[{"name":"_transferID","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060006002556123aa806100256000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063b329bf5c11610071578063b329bf5c14610170578063ba33984a14610183578063bc0755e114610196578063c341a1c2146101a9578063c38756cc146101bc578063dd1db9cf146101ee57600080fd5b806306fdde03146100b9578063260958a5146100f65780636e710bf3146101165780637087dbf91461012b5780637fbeb89c1461013d57806390906f9d14610150575b600080fd5b6040805180820182526012815271222b20aa3930b739b332b926b0b730b3b2b960711b602082015290516100ed9190611d46565b60405180910390f35b610109610104366004611d95565b610201565b6040516100ed9190611e23565b610129610124366004611f6d565b610389565b005b6002545b6040519081526020016100ed565b61012961014b366004611d95565b61062a565b61016361015e366004612059565b610a43565b6040516100ed91906120b7565b61012961017e366004611d95565b610b53565b610129610191366004611d95565b610ccc565b6101296101a436600461210d565b610d10565b61012f6101b736600461214e565b611078565b6101cf6101ca366004611d95565b6110d4565b604080516001600160a01b0390931683529015156020830152016100ed565b6101296101fc366004612196565b611193565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082015260c08101919091526000828152600160208181526040808420815160e08101835281546001600160a01b0390811682529482015485169381019390935260028101549093169082015260038083015460608301526004830154919291608084019160ff909116908111156102a7576102a7611dae565b60038111156102b8576102b8611dae565b815260200160058201805480602002602001604051908101604052809291908181526020016000905b8282101561033c57600084815260209081902060408051606081018252918501546001600160a01b038116835260ff600160a01b82048116151584860152600160a81b909104161515908201528252600190920191016102e1565b505050908252506006919091015460209091015280519091506001600160a01b03166103835760405163026c8dbb60e11b8152600481018490526024015b60405180910390fd5b92915050565b6040516307feec1960e21b81523360048201526001600160a01b03861690631ffbb06490602401602060405180830381865afa1580156103cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f19190612270565b61041957604051636d0fd92960e01b81526001600160a01b038616600482015260240161037a565b846001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610457573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047b919061228d565b60405163b9209e3360e01b81523060048201526001600160a01b03919091169063b9209e3390602401602060405180830381865afa1580156104c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e59190612270565b61050d576040516379a7abb760e01b81526001600160a01b038616600482015260240161037a565b60008585858460405160200161052694939291906122aa565b60408051601f19818403018152828252805160209182012060a084018352881515845287151584830190815287151585850190815260608601888152608087018490526001600160a01b038d1660009081528086529590952086518154935192511515620100000262ff0000199315156101000261ff00199215159290921661ffff19909516949094171791909116919091178155925180519195506105d3926001850192910190611c8c565b50608082015181600201559050507f690b0e7ac1907911c2428d54c3bdcaccd20f5c78b030cb2f008a75e590e99ac286868686868660405161061a969594939291906122e8565b60405180910390a1505050505050565b600061063582611311565b90506106418282611386565b1561064a575050565b80546001600160a01b0316600090815260208181526040808320815160a081018352815460ff80821615158352610100820481161515838701526201000090910416151581840152600182018054845181870281018701909552808552869592946060860193909291908301828280156106ed57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106cf575b50505050508152602001600282015481525050905060005b60058401548110156108da57600084600501828154811061072857610728612337565b60009182526020909120018054909150600160a81b900460ff161561074d57506108d2565b6040805160e08101825286546001600160a01b039081168252600188015481166020830152600288015416918101919091526003808701546060830152600487015461089b92918891608084019160ff909116908111156107b0576107b0611dae565b60038111156107c1576107c1611dae565b815260200160058201805480602002602001604051908101604052809291908181526020016000905b8282101561084557600084815260209081902060408051606081018252918501546001600160a01b038116835260ff600160a01b82048116151584860152600160a81b909104161515908201528252600190920191016107ea565b50505090825250600691909101546020918201526040805160608101825285546001600160a01b038116825260ff600160a01b82048116151594830194909452600160a81b9004909216151590820152336114bf565b156108aa5760019350506108da565b8260400151156108d05760405163112e219560e31b81526004810187905260240161037a565b505b600101610705565b508161090257604051635788a87b60e01b81526004810185905233602482015260440161037a565b60048301805460ff191660039081179091556040805160e08101825285546001600160a01b03908116825260018701548116602083015260028701541691810191909152818501546060820152610a059185906080830190815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156109de57600084815260209081902060408051606081018252918501546001600160a01b038116835260ff600160a01b82048116151584860152600160a81b90910416151590820152825260019092019101610983565b505050908252506006919091015460209091015260018501546001600160a01b0316611575565b604080518581523360208201527fa42ddc86614a20e359b00eb1ed42b716b911ca4c69b6af8044306d7de36b35e4910160405180910390a150505050565b6040805160a08101825260008082526020820181905291810182905260608082015260808101919091526001600160a01b038216600090815260208181526040808320815160a081018352815460ff80821615158352610100820481161515838701526201000090910416151581840152600182018054845181870281018701909552808552919492936060860193909290830182828015610b0e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610af0575b505050918352505060029190910154602090910152608081015190915061038357604051635c1b86b760e11b81526001600160a01b038416600482015260240161037a565b6000610b5e82611311565b60018101549091506001600160a01b03163314610b915760405163a859598f60e01b81526004810183905260240161037a565b60048101805460ff191660029081179091556040805160e08101825283546001600160a01b03908116825260018501548116602083015283850154169181019190915260038301546060820152610c949183906080830190815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015610c6d57600084815260209081902060408051606081018252918501546001600160a01b038116835260ff600160a01b82048116151584860152600160a81b90910416151590820152825260019092019101610c12565b505050908252506006919091015460209091015260018301546001600160a01b0316611575565b6040518281527f2e936050b1807500251bb54605979b74ee4e0e31a0fcba9f12b51d99496c20fa906020015b60405180910390a15050565b6000610cd782611311565b9050610ce38282611386565b15610cec575050565b6000610cf98383336115f0565b90508015610d0b57610d0b8383611960565b505050565b6001600160a01b038316600090815260208181526040808320815160a081018352815460ff80821615158352610100820481161515838701526201000090910416151581840152600182018054845181870281018701909552808552919492936060860193909290830182828015610db157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d93575b5050509183525050600291909101546020909101526080810151909150610df657604051635c1b86b760e11b81526001600160a01b038516600482015260240161037a565b6000849050806001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5d919061228d565b60405163b9209e3360e01b81526001600160a01b038681166004830152919091169063b9209e3390602401602060405180830381865afa158015610ea5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec99190612270565b610ef957604051636178e7e560e11b81526001600160a01b0380871660048301528516602482015260440161037a565b6040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b038216906323b872dd906064016020604051808303816000875af1158015610f4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f709190612270565b506002805460009182610f828361234d565b9190505590506000610f9682338888611078565b600081815260016020819052604090912080546001600160a01b038b81166001600160a01b03199283161783559282018054821633179055600282018054938b1693909116929092179091556003810187905560048101805460ff191690556080860151600682015590915061100c8186611acb565b608085810151604080518581526001600160a01b038c8116602083015233828401528b16606082015292830189905260a0830191909152517f6bb4a01617c492fa626ed5665cf4a461d4c1c6eeb7f3d910b41b47667348882d9181900360c00190a15050505050505050565b600080858585856040516020016110b294939291909384526001600160a01b03928316602085015291166040830152606082015260800190565b60408051808303601f1901815291905280516020909101209695505050505050565b60008060006110e284611311565b905060005b600582015481101561118c5781600501818154811061110857611108612337565b600091825260209091200154600160a81b900460ff166111845781600501818154811061113757611137612337565b6000918252602090912001546005830180546001600160a01b039092169550908290811061116757611167612337565b600091825260209091200154600160a01b900460ff16925061118c565b6001016110e7565b5050915091565b80516000036111b857604051631b53ee4d60e01b81526004810183905260240161037a565b60006111c383611311565b90506111cf8382611386565b156111d957505050565b6000611232846040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b905060005b835181101561130a57600084828151811061125457611254612337565b602002602001015190506000600184836000015184602001518560400151604051600081526020016040526040516112a8949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa1580156112ca573d6000803e3d6000fd5b50505060206040510351905060006112e38887846115f0565b905080156112ff576112f58887611960565b5050505050505050565b505050600101611237565b5050505050565b600081815260016020526040812080546001600160a01b031661134a5760405163026c8dbb60e11b81526004810184905260240161037a565b6000600482015460ff16600381111561136557611365611dae565b146103835760405163aafa536960e01b81526004810184905260240161037a565b80546001600160a01b0316600090815260208181526040808320815160a081018352815460ff808216151583526101008204811615158387015262010000909104161515818401526001820180548451818702810187019095528085528695929460608601939092919083018282801561142957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161140b575b5050505050815260200160028201548152505090508060800151836006015403611457576000915050610383565b611465600584016000611cf1565b61146f8382611acb565b6080810151600684018190556040805186815260208101929092527fb96b527e72b94fc460a27b6679a9f99a936d3e470a8666177a51e5b7652428b3910160405180910390a15060019392505050565b6000816001600160a01b031683600001516001600160a01b0316148061156d5750826020015180156114f9575082516001600160a01b0316155b801561156d575083516040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa158015611549573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156d9190612270565b949350505050565b8151606083015160405163a9059cbb60e01b81526001600160a01b038481166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af11580156115cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0b9190612270565b81546001600160a01b0316600090815260208181526040808320815160a081018352815460ff80821615158352610100820481161515838701526201000090910416151581840152600182018054845181870281018701909552808552869586958695936060860193919290919083018282801561169757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611679575b50505050508152602001600282015481525050905060005b60058701548110156119245760008760050182815481106116d2576116d2612337565b60009182526020909120018054909150600160a81b900460ff16156116f7575061191c565b841561171057836117078161234d565b94505050611924565b6040805160e08101825289546001600160a01b03908116825260018b01548116602083015260028b015416918101919091526003808a0154606083015260048a015461185e92918b91608084019160ff9091169081111561177357611773611dae565b600381111561178457611784611dae565b815260200160058201805480602002602001604051908101604052809291908181526020016000905b8282101561180857600084815260209081902060408051606081018252918501546001600160a01b038116835260ff600160a01b82048116151584860152600160a81b909104161515908201528252600190920191016117ad565b50505090825250600691909101546020918201526040805160608101825285546001600160a01b038116825260ff600160a01b82048116151594830194909452600160a81b9004909216151590820152896114bf565b156118e757805460ff60a81b198116600160a81b178255600195506001600160a01b03166118a05780546001600160a01b0319166001600160a01b0388161781555b604080518a81526001600160a01b03891660208201527fbe292cd4d4b5b62de3d9d1c3884be547205570b87a04717068601ba0c765eb79910160405180910390a15061191c565b82604001511561190d5760405163112e219560e31b8152600481018a905260240161037a565b836119178161234d565b945050505b6001016116af565b508261195557604051635788a87b60e01b8152600481018890526001600160a01b038616602482015260440161037a565b501595945050505050565b60048101805460ff191660019081179091556040805160e08101825283546001600160a01b03908116825283850154811660208301526002850154169181019190915260038301546060820152611a639183906080830190815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015611a3c57600084815260209081902060408051606081018252918501546001600160a01b038116835260ff600160a01b82048116151584860152600160a81b909104161515908201528252600190920191016119e1565b505050908252506006919091015460209091015260028301546001600160a01b0316611575565b8054600182015460028301546003840154604080518781526001600160a01b039586166020820152938516908401529216606082015260808101919091527fede11861efc96225b5c38ea18f4f95678cd9a04edd36b31e24b257c5b91f3bed9060a001610cc0565b805115611b55576040805160608101825260028401546001600160a01b0390811682526000602080840182815294840182815260058801805460018101825590845291909220935193018054945191511515600160a81b0260ff60a81b19921515600160a01b026001600160a81b0319909616949093169390931793909317929092169190911790555b806020015115611bd35760408051606081018252600080825260016020808401828152948401838152600588018054938401815584529220925192018054935191511515600160a81b0260ff60a81b19921515600160a01b026001600160a81b03199095166001600160a01b03949094169390931793909317161790555b60005b816060015151811015610d0b5782600501604051806060016040528084606001518481518110611c0857611c08612337565b6020908102919091018101516001600160a01b03908116835260008383018190526040938401819052855460018181018855968252908390208551910180549386015195909401511515600160a81b0260ff60a81b19951515600160a01b026001600160a81b03199094169190921617919091179290921691909117905501611bd6565b828054828255906000526020600020908101928215611ce1579160200282015b82811115611ce157825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611cac565b50611ced929150611d12565b5090565b5080546000825590600052602060002090810190611d0f9190611d27565b50565b5b80821115611ced5760008155600101611d13565b5b80821115611ced5780546001600160b01b0319168155600101611d28565b60006020808352835180602085015260005b81811015611d7457858101830151858201604001528201611d58565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215611da757600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60008151808452602080850194506020840160005b83811015611e1857815180516001600160a01b031688528381015115158489015260409081015115159088015260609096019590820190600101611dd9565b509495945050505050565b60208152600060018060a01b038084511660208401528060208501511660408401528060408501511660608401525060608301516080830152608083015160048110611e7f57634e487b7160e01b600052602160045260246000fd5b8060a08401525060a083015160e060c0840152611ea0610100840182611dc4565b905060c084015160e08401528091505092915050565b6001600160a01b0381168114611d0f57600080fd5b8015158114611d0f57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611f1257611f12611ed9565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611f4157611f41611ed9565b604052919050565b600067ffffffffffffffff821115611f6357611f63611ed9565b5060051b60200190565b600080600080600060a08688031215611f8557600080fd5b8535611f9081611eb6565b9450602086810135611fa181611ecb565b94506040870135611fb181611ecb565b93506060870135611fc181611ecb565b9250608087013567ffffffffffffffff811115611fdd57600080fd5b8701601f81018913611fee57600080fd5b8035612001611ffc82611f49565b611f18565b81815260059190911b8201830190838101908b83111561202057600080fd5b928401925b8284101561204757833561203881611eb6565b82529284019290840190612025565b80955050505050509295509295909350565b60006020828403121561206b57600080fd5b813561207681611eb6565b9392505050565b60008151808452602080850194506020840160005b83811015611e185781516001600160a01b031687529582019590820190600101612092565b602081528151151560208201526020820151151560408201526040820151151560608201526000606083015160a060808401526120f760c084018261207d565b9050608084015160a08401528091505092915050565b60008060006060848603121561212257600080fd5b833561212d81611eb6565b9250602084013561213d81611eb6565b929592945050506040919091013590565b6000806000806080858703121561216457600080fd5b84359350602085013561217681611eb6565b9250604085013561218681611eb6565b9396929550929360600135925050565b60008060408084860312156121aa57600080fd5b8335925060208085013567ffffffffffffffff8111156121c957600080fd5b8501601f810187136121da57600080fd5b80356121e8611ffc82611f49565b8181526060918202830184019184820191908a84111561220757600080fd5b938501935b8385101561225f5780858c0312156122245760008081fd5b61222c611eef565b853560ff8116811461223e5760008081fd5b8152858701358782015287860135888201528352938401939185019161220c565b508096505050505050509250929050565b60006020828403121561228257600080fd5b815161207681611ecb565b60006020828403121561229f57600080fd5b815161207681611eb6565b6001600160a01b0385168152831515602082015282151560408201526080606082018190526000906122de9083018461207d565b9695505050505050565b6001600160a01b038716815285151560208201528415156040820152831515606082015260c0608082018190526000906123249083018561207d565b90508260a0830152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b60006001820161236d57634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220b89b2175e9299b354982a70717c16e92a84b35b1c879253baa9d69031df736ef64736f6c63430008180033","sourceMap":"3942:12304:13:-:0;;;4309:42;;;;;;;;;-1:-1:-1;4343:1:13;4332:8;:12;3942:12304;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100b45760003560e01c8063b329bf5c11610071578063b329bf5c14610170578063ba33984a14610183578063bc0755e114610196578063c341a1c2146101a9578063c38756cc146101bc578063dd1db9cf146101ee57600080fd5b806306fdde03146100b9578063260958a5146100f65780636e710bf3146101165780637087dbf91461012b5780637fbeb89c1461013d57806390906f9d14610150575b600080fd5b6040805180820182526012815271222b20aa3930b739b332b926b0b730b3b2b960711b602082015290516100ed9190611d46565b60405180910390f35b610109610104366004611d95565b610201565b6040516100ed9190611e23565b610129610124366004611f6d565b610389565b005b6002545b6040519081526020016100ed565b61012961014b366004611d95565b61062a565b61016361015e366004612059565b610a43565b6040516100ed91906120b7565b61012961017e366004611d95565b610b53565b610129610191366004611d95565b610ccc565b6101296101a436600461210d565b610d10565b61012f6101b736600461214e565b611078565b6101cf6101ca366004611d95565b6110d4565b604080516001600160a01b0390931683529015156020830152016100ed565b6101296101fc366004612196565b611193565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082015260c08101919091526000828152600160208181526040808420815160e08101835281546001600160a01b0390811682529482015485169381019390935260028101549093169082015260038083015460608301526004830154919291608084019160ff909116908111156102a7576102a7611dae565b60038111156102b8576102b8611dae565b815260200160058201805480602002602001604051908101604052809291908181526020016000905b8282101561033c57600084815260209081902060408051606081018252918501546001600160a01b038116835260ff600160a01b82048116151584860152600160a81b909104161515908201528252600190920191016102e1565b505050908252506006919091015460209091015280519091506001600160a01b03166103835760405163026c8dbb60e11b8152600481018490526024015b60405180910390fd5b92915050565b6040516307feec1960e21b81523360048201526001600160a01b03861690631ffbb06490602401602060405180830381865afa1580156103cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f19190612270565b61041957604051636d0fd92960e01b81526001600160a01b038616600482015260240161037a565b846001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610457573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047b919061228d565b60405163b9209e3360e01b81523060048201526001600160a01b03919091169063b9209e3390602401602060405180830381865afa1580156104c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e59190612270565b61050d576040516379a7abb760e01b81526001600160a01b038616600482015260240161037a565b60008585858460405160200161052694939291906122aa565b60408051601f19818403018152828252805160209182012060a084018352881515845287151584830190815287151585850190815260608601888152608087018490526001600160a01b038d1660009081528086529590952086518154935192511515620100000262ff0000199315156101000261ff00199215159290921661ffff19909516949094171791909116919091178155925180519195506105d3926001850192910190611c8c565b50608082015181600201559050507f690b0e7ac1907911c2428d54c3bdcaccd20f5c78b030cb2f008a75e590e99ac286868686868660405161061a969594939291906122e8565b60405180910390a1505050505050565b600061063582611311565b90506106418282611386565b1561064a575050565b80546001600160a01b0316600090815260208181526040808320815160a081018352815460ff80821615158352610100820481161515838701526201000090910416151581840152600182018054845181870281018701909552808552869592946060860193909291908301828280156106ed57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106cf575b50505050508152602001600282015481525050905060005b60058401548110156108da57600084600501828154811061072857610728612337565b60009182526020909120018054909150600160a81b900460ff161561074d57506108d2565b6040805160e08101825286546001600160a01b039081168252600188015481166020830152600288015416918101919091526003808701546060830152600487015461089b92918891608084019160ff909116908111156107b0576107b0611dae565b60038111156107c1576107c1611dae565b815260200160058201805480602002602001604051908101604052809291908181526020016000905b8282101561084557600084815260209081902060408051606081018252918501546001600160a01b038116835260ff600160a01b82048116151584860152600160a81b909104161515908201528252600190920191016107ea565b50505090825250600691909101546020918201526040805160608101825285546001600160a01b038116825260ff600160a01b82048116151594830194909452600160a81b9004909216151590820152336114bf565b156108aa5760019350506108da565b8260400151156108d05760405163112e219560e31b81526004810187905260240161037a565b505b600101610705565b508161090257604051635788a87b60e01b81526004810185905233602482015260440161037a565b60048301805460ff191660039081179091556040805160e08101825285546001600160a01b03908116825260018701548116602083015260028701541691810191909152818501546060820152610a059185906080830190815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156109de57600084815260209081902060408051606081018252918501546001600160a01b038116835260ff600160a01b82048116151584860152600160a81b90910416151590820152825260019092019101610983565b505050908252506006919091015460209091015260018501546001600160a01b0316611575565b604080518581523360208201527fa42ddc86614a20e359b00eb1ed42b716b911ca4c69b6af8044306d7de36b35e4910160405180910390a150505050565b6040805160a08101825260008082526020820181905291810182905260608082015260808101919091526001600160a01b038216600090815260208181526040808320815160a081018352815460ff80821615158352610100820481161515838701526201000090910416151581840152600182018054845181870281018701909552808552919492936060860193909290830182828015610b0e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610af0575b505050918352505060029190910154602090910152608081015190915061038357604051635c1b86b760e11b81526001600160a01b038416600482015260240161037a565b6000610b5e82611311565b60018101549091506001600160a01b03163314610b915760405163a859598f60e01b81526004810183905260240161037a565b60048101805460ff191660029081179091556040805160e08101825283546001600160a01b03908116825260018501548116602083015283850154169181019190915260038301546060820152610c949183906080830190815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015610c6d57600084815260209081902060408051606081018252918501546001600160a01b038116835260ff600160a01b82048116151584860152600160a81b90910416151590820152825260019092019101610c12565b505050908252506006919091015460209091015260018301546001600160a01b0316611575565b6040518281527f2e936050b1807500251bb54605979b74ee4e0e31a0fcba9f12b51d99496c20fa906020015b60405180910390a15050565b6000610cd782611311565b9050610ce38282611386565b15610cec575050565b6000610cf98383336115f0565b90508015610d0b57610d0b8383611960565b505050565b6001600160a01b038316600090815260208181526040808320815160a081018352815460ff80821615158352610100820481161515838701526201000090910416151581840152600182018054845181870281018701909552808552919492936060860193909290830182828015610db157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d93575b5050509183525050600291909101546020909101526080810151909150610df657604051635c1b86b760e11b81526001600160a01b038516600482015260240161037a565b6000849050806001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5d919061228d565b60405163b9209e3360e01b81526001600160a01b038681166004830152919091169063b9209e3390602401602060405180830381865afa158015610ea5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec99190612270565b610ef957604051636178e7e560e11b81526001600160a01b0380871660048301528516602482015260440161037a565b6040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b038216906323b872dd906064016020604051808303816000875af1158015610f4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f709190612270565b506002805460009182610f828361234d565b9190505590506000610f9682338888611078565b600081815260016020819052604090912080546001600160a01b038b81166001600160a01b03199283161783559282018054821633179055600282018054938b1693909116929092179091556003810187905560048101805460ff191690556080860151600682015590915061100c8186611acb565b608085810151604080518581526001600160a01b038c8116602083015233828401528b16606082015292830189905260a0830191909152517f6bb4a01617c492fa626ed5665cf4a461d4c1c6eeb7f3d910b41b47667348882d9181900360c00190a15050505050505050565b600080858585856040516020016110b294939291909384526001600160a01b03928316602085015291166040830152606082015260800190565b60408051808303601f1901815291905280516020909101209695505050505050565b60008060006110e284611311565b905060005b600582015481101561118c5781600501818154811061110857611108612337565b600091825260209091200154600160a81b900460ff166111845781600501818154811061113757611137612337565b6000918252602090912001546005830180546001600160a01b039092169550908290811061116757611167612337565b600091825260209091200154600160a01b900460ff16925061118c565b6001016110e7565b5050915091565b80516000036111b857604051631b53ee4d60e01b81526004810183905260240161037a565b60006111c383611311565b90506111cf8382611386565b156111d957505050565b6000611232846040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b905060005b835181101561130a57600084828151811061125457611254612337565b602002602001015190506000600184836000015184602001518560400151604051600081526020016040526040516112a8949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa1580156112ca573d6000803e3d6000fd5b50505060206040510351905060006112e38887846115f0565b905080156112ff576112f58887611960565b5050505050505050565b505050600101611237565b5050505050565b600081815260016020526040812080546001600160a01b031661134a5760405163026c8dbb60e11b81526004810184905260240161037a565b6000600482015460ff16600381111561136557611365611dae565b146103835760405163aafa536960e01b81526004810184905260240161037a565b80546001600160a01b0316600090815260208181526040808320815160a081018352815460ff808216151583526101008204811615158387015262010000909104161515818401526001820180548451818702810187019095528085528695929460608601939092919083018282801561142957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161140b575b5050505050815260200160028201548152505090508060800151836006015403611457576000915050610383565b611465600584016000611cf1565b61146f8382611acb565b6080810151600684018190556040805186815260208101929092527fb96b527e72b94fc460a27b6679a9f99a936d3e470a8666177a51e5b7652428b3910160405180910390a15060019392505050565b6000816001600160a01b031683600001516001600160a01b0316148061156d5750826020015180156114f9575082516001600160a01b0316155b801561156d575083516040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa158015611549573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156d9190612270565b949350505050565b8151606083015160405163a9059cbb60e01b81526001600160a01b038481166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af11580156115cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0b9190612270565b81546001600160a01b0316600090815260208181526040808320815160a081018352815460ff80821615158352610100820481161515838701526201000090910416151581840152600182018054845181870281018701909552808552869586958695936060860193919290919083018282801561169757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611679575b50505050508152602001600282015481525050905060005b60058701548110156119245760008760050182815481106116d2576116d2612337565b60009182526020909120018054909150600160a81b900460ff16156116f7575061191c565b841561171057836117078161234d565b94505050611924565b6040805160e08101825289546001600160a01b03908116825260018b01548116602083015260028b015416918101919091526003808a0154606083015260048a015461185e92918b91608084019160ff9091169081111561177357611773611dae565b600381111561178457611784611dae565b815260200160058201805480602002602001604051908101604052809291908181526020016000905b8282101561180857600084815260209081902060408051606081018252918501546001600160a01b038116835260ff600160a01b82048116151584860152600160a81b909104161515908201528252600190920191016117ad565b50505090825250600691909101546020918201526040805160608101825285546001600160a01b038116825260ff600160a01b82048116151594830194909452600160a81b9004909216151590820152896114bf565b156118e757805460ff60a81b198116600160a81b178255600195506001600160a01b03166118a05780546001600160a01b0319166001600160a01b0388161781555b604080518a81526001600160a01b03891660208201527fbe292cd4d4b5b62de3d9d1c3884be547205570b87a04717068601ba0c765eb79910160405180910390a15061191c565b82604001511561190d5760405163112e219560e31b8152600481018a905260240161037a565b836119178161234d565b945050505b6001016116af565b508261195557604051635788a87b60e01b8152600481018890526001600160a01b038616602482015260440161037a565b501595945050505050565b60048101805460ff191660019081179091556040805160e08101825283546001600160a01b03908116825283850154811660208301526002850154169181019190915260038301546060820152611a639183906080830190815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015611a3c57600084815260209081902060408051606081018252918501546001600160a01b038116835260ff600160a01b82048116151584860152600160a81b909104161515908201528252600190920191016119e1565b505050908252506006919091015460209091015260028301546001600160a01b0316611575565b8054600182015460028301546003840154604080518781526001600160a01b039586166020820152938516908401529216606082015260808101919091527fede11861efc96225b5c38ea18f4f95678cd9a04edd36b31e24b257c5b91f3bed9060a001610cc0565b805115611b55576040805160608101825260028401546001600160a01b0390811682526000602080840182815294840182815260058801805460018101825590845291909220935193018054945191511515600160a81b0260ff60a81b19921515600160a01b026001600160a81b0319909616949093169390931793909317929092169190911790555b806020015115611bd35760408051606081018252600080825260016020808401828152948401838152600588018054938401815584529220925192018054935191511515600160a81b0260ff60a81b19921515600160a01b026001600160a81b03199095166001600160a01b03949094169390931793909317161790555b60005b816060015151811015610d0b5782600501604051806060016040528084606001518481518110611c0857611c08612337565b6020908102919091018101516001600160a01b03908116835260008383018190526040938401819052855460018181018855968252908390208551910180549386015195909401511515600160a81b0260ff60a81b19951515600160a01b026001600160a81b03199094169190921617919091179290921691909117905501611bd6565b828054828255906000526020600020908101928215611ce1579160200282015b82811115611ce157825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611cac565b50611ced929150611d12565b5090565b5080546000825590600052602060002090810190611d0f9190611d27565b50565b5b80821115611ced5760008155600101611d13565b5b80821115611ced5780546001600160b01b0319168155600101611d28565b60006020808352835180602085015260005b81811015611d7457858101830151858201604001528201611d58565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215611da757600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60008151808452602080850194506020840160005b83811015611e1857815180516001600160a01b031688528381015115158489015260409081015115159088015260609096019590820190600101611dd9565b509495945050505050565b60208152600060018060a01b038084511660208401528060208501511660408401528060408501511660608401525060608301516080830152608083015160048110611e7f57634e487b7160e01b600052602160045260246000fd5b8060a08401525060a083015160e060c0840152611ea0610100840182611dc4565b905060c084015160e08401528091505092915050565b6001600160a01b0381168114611d0f57600080fd5b8015158114611d0f57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611f1257611f12611ed9565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611f4157611f41611ed9565b604052919050565b600067ffffffffffffffff821115611f6357611f63611ed9565b5060051b60200190565b600080600080600060a08688031215611f8557600080fd5b8535611f9081611eb6565b9450602086810135611fa181611ecb565b94506040870135611fb181611ecb565b93506060870135611fc181611ecb565b9250608087013567ffffffffffffffff811115611fdd57600080fd5b8701601f81018913611fee57600080fd5b8035612001611ffc82611f49565b611f18565b81815260059190911b8201830190838101908b83111561202057600080fd5b928401925b8284101561204757833561203881611eb6565b82529284019290840190612025565b80955050505050509295509295909350565b60006020828403121561206b57600080fd5b813561207681611eb6565b9392505050565b60008151808452602080850194506020840160005b83811015611e185781516001600160a01b031687529582019590820190600101612092565b602081528151151560208201526020820151151560408201526040820151151560608201526000606083015160a060808401526120f760c084018261207d565b9050608084015160a08401528091505092915050565b60008060006060848603121561212257600080fd5b833561212d81611eb6565b9250602084013561213d81611eb6565b929592945050506040919091013590565b6000806000806080858703121561216457600080fd5b84359350602085013561217681611eb6565b9250604085013561218681611eb6565b9396929550929360600135925050565b60008060408084860312156121aa57600080fd5b8335925060208085013567ffffffffffffffff8111156121c957600080fd5b8501601f810187136121da57600080fd5b80356121e8611ffc82611f49565b8181526060918202830184019184820191908a84111561220757600080fd5b938501935b8385101561225f5780858c0312156122245760008081fd5b61222c611eef565b853560ff8116811461223e5760008081fd5b8152858701358782015287860135888201528352938401939185019161220c565b508096505050505050509250929050565b60006020828403121561228257600080fd5b815161207681611ecb565b60006020828403121561229f57600080fd5b815161207681611eb6565b6001600160a01b0385168152831515602082015282151560408201526080606082018190526000906122de9083018461207d565b9695505050505050565b6001600160a01b038716815285151560208201528415156040820152831515606082015260c0608082018190526000906123249083018561207d565b90508260a0830152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b60006001820161236d57634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220b89b2175e9299b354982a70717c16e92a84b35b1c879253baa9d69031df736ef64736f6c63430008180033","sourceMap":"3942:12304:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11716:104;11786:27;;;;;;;;;;;-1:-1:-1;;;11786:27:13;;;;11716:104;;;;11786:27;11716:104;:::i;:::-;;;;;;;;10582:284;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4432:1195::-;;;;;;:::i;:::-;;:::i;:::-;;11560:90;11635:8;;11560:90;;;5371:25:165;;;5359:2;5344:18;11560:90:13;5225:177:165;8932:1086:13;;;;;;:::i;:::-;;:::i;10099:340::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8463:393::-;;;;;;:::i;:::-;;:::i;7045:392::-;;;;;;:::i;:::-;;:::i;5705:1263::-;;;;;;:::i;:::-;;:::i;11901:312::-;;;;;;:::i;:::-;;:::i;10943:541::-;;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;8181:32:165;;;8163:51;;8257:14;;8250:22;8245:2;8230:18;;8223:50;8136:18;10943:541:13;7995:284:165;7522:865:13;;;;;;:::i;:::-;;:::i;10582:284::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10673:24:13;10700:22;;;:10;:22;;;;;;;;10673:49;;;;;;;;;-1:-1:-1;;;;;10673:49:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10700:22;10673:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10673:49:13;;;;;-1:-1:-1;;;10673:49:13;;;;;;;;;;-1:-1:-1;;;10673:49:13;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10673:49:13;;;-1:-1:-1;10673:49:13;;;;;;;;;;;10736:21;;10673:49;;-1:-1:-1;;;;;;10736:35:13;10732:102;;10794:29;;-1:-1:-1;;;10794:29:13;;;;;5371:25:165;;;5344:18;;10794:29:13;;;;;;;;10732:102;10851:8;10582:284;-1:-1:-1;;10582:284:13:o;4432:1195::-;4674:43;;-1:-1:-1;;;4674:43:13;;4706:10;4674:43;;;9982:51:165;-1:-1:-1;;;;;4674:31:13;;;;;9955:18:165;;4674:43:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4669:117;;4740:35;;-1:-1:-1;;;4740:35:13;;-1:-1:-1;;;;;10000:32:165;;4740:35:13;;;9982:51:165;9955:18;;4740:35:13;9836:203:165;4669:117:13;4808:12;-1:-1:-1;;;;;4801:37:13;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:65;;-1:-1:-1;;;4801:65:13;;4860:4;4801:65;;;9982:51:165;-1:-1:-1;;;;;4801:50:13;;;;;;;9955:18:165;;4801:65:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4796:152;;4889:48;;-1:-1:-1;;;4889:48:13;;-1:-1:-1;;;;;10000:32:165;;4889:48:13;;;9982:51:165;9955:18;;4889:48:13;9836:203:165;4796:152:13;4958:12;5024;5054:24;5096:20;5134:19;4996:171;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4996:171:13;;;;;;;;;4973:204;;4996:171;4973:204;;;;5222:172;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5188:31:13;;-1:-1:-1;5188:31:13;;;;;;;;;;:206;;;;;;;;;;;;-1:-1:-1;;5188:206:13;;;;;-1:-1:-1;;5188:206:13;;;;;;;-1:-1:-1;;5188:206:13;;;;;;;;;;;;;;;;;;;;;;4973:204;;-1:-1:-1;5188:206:13;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5410:210;5443:12;5469:24;5507:20;5541:18;5573:19;5606:4;5410:210;;;;;;;;;;;:::i;:::-;;;;;;;;4659:968;4432:1195;;;;;:::o;8932:1086::-;8995:25;9023:31;9043:10;9023:19;:31::i;:::-;8995:59;;9068:46;9093:10;9105:8;9068:24;:46::i;:::-;9064:83;;;9130:7;8932:1086;:::o;9064:83::-;9249:21;;-1:-1:-1;;;;;9249:21:13;9157:13;9231:40;;;;;;;;;;;9188:83;;;;;;;;;;;;;;;;;9249:21;9188:83;;;;;;;;;;;;;;;;;;;;;9249:21;9188:83;;;;;;;;;;;;;;;;;;;9157:13;;9188:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9188:83:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9286:9;9281:473;9305:18;;;:25;9301:29;;9281:473;;;9351:25;9379:8;:18;;9398:1;9379:21;;;;;;;;:::i;:::-;;;;;;;;;;9418:17;;9379:21;;-1:-1:-1;;;;9418:17:13;;;;9414:64;;;9455:8;;;9414:64;9496:43;;;;;;;;;;-1:-1:-1;;;;;9496:43:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9508:8;;9496:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9496:43:13;;;;;-1:-1:-1;;;9496:43:13;;;;;;;;;;-1:-1:-1;;;9496:43:13;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9496:43:13;;;-1:-1:-1;9496:43:13;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9496:43:13;;;;;-1:-1:-1;;;9496:43:13;;;;;;;;;;;;;-1:-1:-1;;;9496:43:13;;;;;;;;;;;9528:10;9496:11;:43::i;:::-;9492:120;;;9570:4;9559:15;;9592:5;;;9492:120;9630:16;:35;;;9626:118;;;9692:37;;-1:-1:-1;;;9692:37:13;;;;;5371:25:165;;;5344:18;;9692:37:13;5225:177:165;9626:118:13;9337:417;9281:473;9332:3;;9281:473;;;;9769:8;9764:87;;9800:40;;-1:-1:-1;;;9800:40:13;;;;;12091:25:165;;;9829:10:13;12132:18:165;;;12125:60;12064:18;;9800:40:13;11917:274:165;9764:87:13;9861:15;;;:41;;-1:-1:-1;;9861:41:13;9879:23;9861:41;;;;;;9912:44;;;;;;;;;;-1:-1:-1;;;;;9912:44:13;;;;;-1:-1:-1;9912:44:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9861:15;;9912:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9912:44:13;;;;;-1:-1:-1;;;9912:44:13;;;;;;;;;;-1:-1:-1;;;9912:44:13;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9912:44:13;;;-1:-1:-1;9912:44:13;;;;;;;;;;;9940:15;;;;-1:-1:-1;;;;;9940:15:13;9912:17;:44::i;:::-;9971:40;;;12091:25:165;;;10000:10:13;12147:2:165;12132:18;;12125:60;9971:40:13;;12064:18:165;9971:40:13;;;;;;;8985:1033;;;8932:1086;:::o;10099:340::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10251:31:13;;10208:40;10251:31;;;;;;;;;;;10208:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10251:31;;10208:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10208:74:13;;;;;;;;;;;;;;;;-1:-1:-1;;;10208:74:13;;;-1:-1:-1;;10208:74:13;;;;;;;;;;;10296:21;;;;10208:74;;-1:-1:-1;10292:107:13;;10354:34;;-1:-1:-1;;;10354:34:13;;-1:-1:-1;;;;;10000:32:165;;10354:34:13;;;9982:51:165;9955:18;;10354:34:13;9836:203:165;8463:393:13;8526:25;8554:31;8574:10;8554:19;:31::i;:::-;8613:15;;;;;;-1:-1:-1;;;;;;8613:15:13;8599:10;:29;8595:104;;8651:37;;-1:-1:-1;;;8651:37:13;;;;;5371:25:165;;;5344:18;;8651:37:13;5225:177:165;8595:104:13;8709:15;;;:42;;-1:-1:-1;;8709:42:13;8727:24;8709:42;;;;;;8761:44;;;;;;;;;;-1:-1:-1;;;;;8761:44:13;;;;;-1:-1:-1;8761:44:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8709:15;;8761:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8761:44:13;;;;;-1:-1:-1;;;8761:44:13;;;;;;;;;;-1:-1:-1;;;8761:44:13;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8761:44:13;;;-1:-1:-1;8761:44:13;;;;;;;;;;;8789:15;;;;-1:-1:-1;;;;;8789:15:13;8761:17;:44::i;:::-;8820:29;;5371:25:165;;;8820:29:13;;5359:2:165;5344:18;8820:29:13;;;;;;;;8516:340;8463:393;:::o;7045:392::-;7109:25;7137:31;7157:10;7137:19;:31::i;:::-;7109:59;;7182:46;7207:10;7219:8;7182:24;:46::i;:::-;7178:83;;;7244:7;7045:392;:::o;7178:83::-;7271:16;7290:50;7307:10;7319:8;7329:10;7290:16;:50::i;:::-;7271:69;;7354:11;7350:81;;;7381:39;7399:10;7411:8;7381:17;:39::i;:::-;7099:338;;7045:392;:::o;5705:1263::-;-1:-1:-1;;;;;5850:31:13;;5807:40;5850:31;;;;;;;;;;;5807:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5850:31;;5807:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5807:74:13;;;;;;;;;;;;;;;;-1:-1:-1;;;5807:74:13;;;-1:-1:-1;;5807:74:13;;;;;;;;;;;5895:21;;;;5807:74;;-1:-1:-1;5891:107:13;;5953:34;;-1:-1:-1;;;5953:34:13;;-1:-1:-1;;;;;10000:32:165;;5953:34:13;;;9982:51:165;9955:18;;5953:34:13;9836:203:165;5891:107:13;6008:12;6030;6008:35;;6058:5;-1:-1:-1;;;;;6058:22:13;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:46;;-1:-1:-1;;;6058:46:13;;-1:-1:-1;;;;;10000:32:165;;;6058:46:13;;;9982:51:165;6058:35:13;;;;;;;9955:18:165;;6058:46:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6053:132;;6127:47;;-1:-1:-1;;;6127:47:13;;-1:-1:-1;;;;;12426:15:165;;;6127:47:13;;;12408:34:165;12478:15;;12458:18;;;12451:43;12343:18;;6127:47:13;12196:304:165;6053:132:13;6195:53;;-1:-1:-1;;;6195:53:13;;6214:10;6195:53;;;12745:34:165;6234:4:13;12795:18:165;;;12788:43;12847:18;;;12840:34;;;-1:-1:-1;;;;;6195:18:13;;;;;12680::165;;6195:53:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6275:8:13;:10;;6259:13;;;6275:10;;;:::i;:::-;;;;;6259:26;;6295:18;6316:57;6336:5;6343:10;6355:9;6366:6;6316:19;:57::i;:::-;6384:25;6412:22;;;:10;:22;;;;;;;;6444:36;;-1:-1:-1;;;;;6444:36:13;;;-1:-1:-1;;;;;;6444:36:13;;;;;;6490:15;;;:28;;;;6508:10;6490:28;;;6528:18;;;:30;;;;;;;;;;;;;;;;6568:15;;;:24;;;6602:15;;;:40;;-1:-1:-1;;6602:40:13;;;6684:21;;;;6652:29;;;:53;6412:22;;-1:-1:-1;6716:51:13;6412:22;6684:21;6716:23;:51::i;:::-;6930:21;;;;;6782:179;;;13409:25:165;;;-1:-1:-1;;;;;13508:15:165;;;13503:2;13488:18;;13481:43;6863:10:13;13540:18:165;;;13533:43;13612:15;;13607:2;13592:18;;13585:43;13644:19;;;13637:35;;;13461:3;13688:19;;13681:35;;;;6782:179:13;;;;;;13396:3:165;6782:179:13;;;5797:1171;;;;;5705:1263;;;:::o;11901:312::-;12059:7;12077:18;12132:6;12140:7;12149:10;12161:7;12108:70;;;;;;;;;;13958:25:165;;;-1:-1:-1;;;;;14057:15:165;;;14052:2;14037:18;;14030:43;14109:15;;14104:2;14089:18;;14082:43;14156:2;14141:18;;14134:34;13945:3;13930:19;;13727:447;12108:70:13;;;;;;;-1:-1:-1;;12108:70:13;;;;;;12098:81;;12108:70;12098:81;;;;;11901:312;-1:-1:-1;;;;;;11901:312:13:o;10943:541::-;11011:20;11033:18;11063:25;11091:31;11111:10;11091:19;:31::i;:::-;11063:59;;11137:9;11132:299;11156:18;;;:25;11152:29;;11132:299;;;11206:8;:18;;11225:1;11206:21;;;;;;;;:::i;:::-;;;;;;;;;;:30;-1:-1:-1;;;11206:30:13;;;;11256:8;11202:77;11308:8;:18;;11327:1;11308:21;;;;;;;;:::i;:::-;;;;;;;;;;:28;11366:18;;;:21;;-1:-1:-1;;;;;11308:28:13;;;;-1:-1:-1;11366:18:13;11385:1;;11366:21;;;;;;:::i;:::-;;;;;;;;;;:35;-1:-1:-1;;;11366:35:13;;;;;-1:-1:-1;11415:5:13;;11132:299;11183:3;;11132:299;;;;11441:36;10943:541;;;:::o;7522:865::-;7629:10;:17;7650:1;7629:22;7625:95;;7674:35;;-1:-1:-1;;;7674:35:13;;;;;5371:25:165;;;5344:18;;7674:35:13;5225:177:165;7625:95:13;7730:25;7758:31;7778:10;7758:19;:31::i;:::-;7730:59;;7803:46;7828:10;7840:8;7803:24;:46::i;:::-;7799:83;;;7865:7;7522:865;;:::o;7799:83::-;7892:20;7915:42;7946:10;16172:64;;15889:66:165;16172:64:13;;;15877:79:165;15972:12;;;15965:28;;;16136:7:13;;16009:12:165;;16172:64:13;;;;;;;;;;;;16162:75;;;;;;16155:82;;16053:191;;;;7915:42;7892:65;;7972:9;7967:414;7991:10;:17;7987:1;:21;7967:414;;;8029:26;8058:10;8069:1;8058:13;;;;;;;;:::i;:::-;;;;;;;8029:42;;8085:14;8102:62;8112:12;8126:9;:11;;;8139:9;:11;;;8152:9;:11;;;8102:62;;;;;;;;;;;;;;;;;14406:25:165;;;14479:4;14467:17;;;;14462:2;14447:18;;14440:45;14516:2;14501:18;;14494:34;14559:2;14544:18;;14537:34;14393:3;14378:19;;14179:398;8102:62:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8085:79;;8179:16;8198:46;8215:10;8227:8;8237:6;8198:16;:46::i;:::-;8179:65;;8262:11;8258:113;;;8293:39;8311:10;8323:8;8293:17;:39::i;:::-;8350:7;;;;;;7522:865;;:::o;8258:113::-;-1:-1:-1;;;8010:3:13;;7967:414;;;;7615:772;;7522:865;;:::o;15624:423::-;15696:16;15752:22;;;:10;:22;;;;;15788:21;;-1:-1:-1;;;;;15788:21:13;15784:102;;15846:29;;-1:-1:-1;;;15846:29:13;;;;;5371:25:165;;;5344:18;;15846:29:13;5225:177:165;15784:102:13;15919:22;15900:15;;;;;;:41;;;;;;;;:::i;:::-;;15896:119;;15964:40;;-1:-1:-1;;;15964:40:13;;;;;5371:25:165;;;5344:18;;15964:40:13;5225:177:165;13948:611:13;14124:21;;-1:-1:-1;;;;;14124:21:13;14047:4;14106:40;;;;;;;;;;;14063:83;;;;;;;;;;;;;;;;;14124:21;14063:83;;;;;;;;;;;;;;;;;;;;;14124:21;14063:83;;;;;;;;;;;;;;;;;;;14047:4;;14063:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14063:83:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14193:16;:21;;;14160:8;:29;;;:54;14156:97;;14237:5;14230:12;;;;;14156:97;14263:25;14270:18;;;;14263:25;:::i;:::-;14298:51;14322:8;14332:16;14298:23;:51::i;:::-;14391:21;;;;14359:29;;;:53;;;14427:103;;;14756:25:165;;;14812:2;14797:18;;14790:34;;;;14427:103:13;;14729:18:165;14427:103:13;;;;;;;-1:-1:-1;14548:4:13;;13948:611;-1:-1:-1;;;13948:611:13:o;15326:292::-;15438:4;15480:6;-1:-1:-1;;;;;15461:25:13;:8;:15;;;-1:-1:-1;;;;;15461:25:13;;:150;;;;15503:8;:22;;;:55;;;;-1:-1:-1;15529:15:13;;-1:-1:-1;;;;;15529:29:13;;15503:55;:107;;;;-1:-1:-1;15572:21:13;;15562:48;;-1:-1:-1;;;15562:48:13;;-1:-1:-1;;;;;10000:32:165;;;15562:48:13;;;9982:51:165;15562:40:13;;;;;;9955:18:165;;15562:48:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15454:157;15326:292;-1:-1:-1;;;;15326:292:13:o;15170:150::-;15261:21;;15297:15;;;;15254:59;;-1:-1:-1;;;15254:59:13;;-1:-1:-1;;;;;15027:32:165;;;15254:59:13;;;15009:51:165;15076:18;;;15069:34;;;;15254:38:13;;;;;14982:18:165;;15254:59:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12268:1278::-;12537:21;;-1:-1:-1;;;;;12537:21:13;12375:16;12519:40;;;;;;;;;;;12476:83;;;;;;;;;;;;;;;;;12537:21;12476:83;;;;;;;;;;;;;;;;;;;;;12537:21;12476:83;;;;;;;;;;;;;;;;;;;12375:16;;;;;;12519:40;12476:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12476:83:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12574:9;12569:835;12593:18;;;:25;12589:29;;12569:835;;;12639:25;12667:8;:18;;12686:1;12667:21;;;;;;;;:::i;:::-;;;;;;;;;;12706:17;;12667:21;;-1:-1:-1;;;;12706:17:13;;;;12702:64;;;12743:8;;;12702:64;12784:8;12780:92;;;12812:22;;;;:::i;:::-;;;;12852:5;;;12780:92;12890:39;;;;;;;;;;-1:-1:-1;;;;;12890:39:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12902:8;;12890:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12890:39:13;;;;;-1:-1:-1;;;12890:39:13;;;;;;;;;;-1:-1:-1;;;12890:39:13;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12890:39:13;;;-1:-1:-1;12890:39:13;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12890:39:13;;;;;-1:-1:-1;;;12890:39:13;;;;;;;;;;;;;-1:-1:-1;;;12890:39:13;;;;;;;;;;;12922:6;12890:11;:39::i;:::-;12886:339;;;12982:24;;-1:-1:-1;;;;12982:24:13;;-1:-1:-1;;;12982:24:13;;;12960:4;;-1:-1:-1;;;;;;13029:15:13;13025:100;;13082:24;;-1:-1:-1;;;;;;13082:24:13;-1:-1:-1;;;;;13082:24:13;;;;;13025:100;13148:36;;;12091:25:165;;;-1:-1:-1;;;;;12152:32:165;;12147:2;12132:18;;12125:60;13148:36:13;;12064:18:165;13148:36:13;;;;;;;13202:8;;;12886:339;13243:16;:35;;;13239:118;;;13305:37;;-1:-1:-1;;;13305:37:13;;;;;5371:25:165;;;5344:18;;13305:37:13;5225:177:165;13239:118:13;13371:22;;;;:::i;:::-;;;;12625:779;12569:835;12620:3;;12569:835;;;;13419:8;13414:83;;13450:36;;-1:-1:-1;;;13450:36:13;;;;;12091:25:165;;;-1:-1:-1;;;;;12152:32:165;;12132:18;;;12125:60;12064:18;;13450:36:13;11917:274:165;13414:83:13;-1:-1:-1;13514:25:13;;12268:1278;-1:-1:-1;;;;;12268:1278:13:o;13552:390::-;13645:15;;;:42;;-1:-1:-1;;13645:42:13;13663:24;13645:42;;;;;;13697:47;;;;;;;;;;-1:-1:-1;;;;;13697:47:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13645:15;;13697:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13697:47:13;;;;;-1:-1:-1;;;13697:47:13;;;;;;;;;;-1:-1:-1;;;13697:47:13;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;13697:47:13;;;-1:-1:-1;13697:47:13;;;;;;;;;;;13725:18;;;;-1:-1:-1;;;;;13725:18:13;13697:17;:47::i;:::-;13814:21;;;13849:15;;;13878:18;;;;13910:15;;;;13759:176;;;15373:25:165;;;-1:-1:-1;;;;;13814:21:13;;;15467:2:165;15452:18;;15445:43;13849:15:13;;;15504:18:165;;;15497:43;13878:18:13;;15571:2:165;15556:18;;15549:43;15623:3;15608:19;;15601:35;;;;13759:176:13;;15360:3:165;15345:19;13759:176:13;15114:528:165;14565:599:13;14690:41;;14686:139;;;14771:42;;;;;;;;14780:18;;;;-1:-1:-1;;;;;14780:18:13;;;14771:42;;-1:-1:-1;14771:42:13;;;;;;;;;;;;;14747:18;;;:67;;14780:18;14747:67;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14747:67:13;-1:-1:-1;;;;14747:67:13;;;-1:-1:-1;;;14747:67:13;-1:-1:-1;;;;;;14747:67:13;;;;;;;;;;;;;;;;;;;;;;;;;14686:139;14839:16;:37;;;14835:126;;;14916:33;;;;;;;;-1:-1:-1;14916:33:13;;;14937:4;14916:33;;;;;;;;;;;;;14892:18;;;:58;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14892:58:13;-1:-1:-1;;;;14892:58:13;;;-1:-1:-1;;;14892:58:13;-1:-1:-1;;;;;;14892:58:13;;;-1:-1:-1;;;;;14892:58:13;;;;;;;;;;;;;;;;14835:126;14976:9;14971:187;14995:16;:36;;;:43;14991:1;:47;14971:187;;;15059:8;:18;;15083:63;;;;;;;;15092:16;:36;;;15129:1;15092:39;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;15083:63:13;;;;;15133:5;15083:63;;;;;;;;;;;;;15059:88;;15083:63;15059:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15059:88:13;-1:-1:-1;;;;15059:88:13;;;-1:-1:-1;;;15059:88:13;-1:-1:-1;;;;;;15059:88:13;;;;;;;;;;;;;;;;;;;;;;15040:3;14971:187;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:548:165;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:180::-;626:6;679:2;667:9;658:7;654:23;650:32;647:52;;;695:1;692;685:12;647:52;-1:-1:-1;718:23:165;;567:180;-1:-1:-1;567:180:165:o;752:127::-;813:10;808:3;804:20;801:1;794:31;844:4;841:1;834:15;868:4;865:1;858:15;884:672;945:3;983:5;977:12;1010:6;1005:3;998:19;1036:4;1065;1060:3;1056:14;1049:21;;1104:4;1097:5;1093:16;1127:1;1137:394;1151:6;1148:1;1145:13;1137:394;;;1210:13;;1252:9;;-1:-1:-1;;;;;1248:35:165;1236:48;;1338:11;;;1332:18;1325:26;1318:34;1304:12;;;1297:56;1376:4;1434:11;;;1428:18;1421:26;1414:34;1400:12;;;1393:56;1478:4;1469:14;;;;1506:15;;;;1280:1;1166:9;1137:394;;;-1:-1:-1;1547:3:165;;884:672;-1:-1:-1;;;;;884:672:165:o;1561:1023::-;1744:2;1733:9;1726:21;1707:4;1783:1;1779;1774:3;1770:11;1766:19;1840:2;1831:6;1825:13;1821:22;1816:2;1805:9;1801:18;1794:50;1908:2;1902;1894:6;1890:15;1884:22;1880:31;1875:2;1864:9;1860:18;1853:59;1976:2;1970;1962:6;1958:15;1952:22;1948:31;1943:2;1932:9;1928:18;1921:59;;2035:2;2027:6;2023:15;2017:22;2011:3;2000:9;1996:19;1989:51;2087:3;2079:6;2075:16;2069:23;2128:1;2114:12;2111:19;2101:150;;2173:10;2168:3;2164:20;2161:1;2154:31;2208:4;2205:1;2198:15;2236:4;2233:1;2226:15;2101:150;2288:12;2282:3;2271:9;2267:19;2260:41;;2350:3;2342:6;2338:16;2332:23;2392:4;2386:3;2375:9;2371:19;2364:33;2420:73;2488:3;2477:9;2473:19;2457:14;2420:73;:::i;:::-;2406:87;;2549:3;2541:6;2537:16;2531:23;2524:4;2513:9;2509:20;2502:53;2572:6;2564:14;;;1561:1023;;;;:::o;2589:131::-;-1:-1:-1;;;;;2664:31:165;;2654:42;;2644:70;;2710:1;2707;2700:12;2725:118;2811:5;2804:13;2797:21;2790:5;2787:32;2777:60;;2833:1;2830;2823:12;2848:127;2909:10;2904:3;2900:20;2897:1;2890:31;2940:4;2937:1;2930:15;2964:4;2961:1;2954:15;2980:253;3052:2;3046:9;3094:4;3082:17;;3129:18;3114:34;;3150:22;;;3111:62;3108:88;;;3176:18;;:::i;:::-;3212:2;3205:22;2980:253;:::o;3238:275::-;3309:2;3303:9;3374:2;3355:13;;-1:-1:-1;;3351:27:165;3339:40;;3409:18;3394:34;;3430:22;;;3391:62;3388:88;;;3456:18;;:::i;:::-;3492:2;3485:22;3238:275;;-1:-1:-1;3238:275:165:o;3518:183::-;3578:4;3611:18;3603:6;3600:30;3597:56;;;3633:18;;:::i;:::-;-1:-1:-1;3678:1:165;3674:14;3690:4;3670:25;;3518:183::o;3706:1514::-;3817:6;3825;3833;3841;3849;3902:3;3890:9;3881:7;3877:23;3873:33;3870:53;;;3919:1;3916;3909:12;3870:53;3958:9;3945:23;3977:31;4002:5;3977:31;:::i;:::-;4027:5;-1:-1:-1;4051:2:165;4090:18;;;4077:32;4118:30;4077:32;4118:30;:::i;:::-;4167:7;-1:-1:-1;4226:2:165;4211:18;;4198:32;4239:30;4198:32;4239:30;:::i;:::-;4288:7;-1:-1:-1;4347:2:165;4332:18;;4319:32;4360:30;4319:32;4360:30;:::i;:::-;4409:7;-1:-1:-1;4467:3:165;4452:19;;4439:33;4495:18;4484:30;;4481:50;;;4527:1;4524;4517:12;4481:50;4550:22;;4603:4;4595:13;;4591:27;-1:-1:-1;4581:55:165;;4632:1;4629;4622:12;4581:55;4668:2;4655:16;4691:60;4707:43;4747:2;4707:43;:::i;:::-;4691:60;:::i;:::-;4785:15;;;4867:1;4863:10;;;;4855:19;;4851:28;;;4816:12;;;;4891:19;;;4888:39;;;4923:1;4920;4913:12;4888:39;4947:11;;;;4967:223;4983:6;4978:3;4975:15;4967:223;;;5065:3;5052:17;5082:33;5107:7;5082:33;:::i;:::-;5128:20;;5000:12;;;;5168;;;;4967:223;;;5209:5;5199:15;;;;;;;3706:1514;;;;;;;;:::o;5407:247::-;5466:6;5519:2;5507:9;5498:7;5494:23;5490:32;5487:52;;;5535:1;5532;5525:12;5487:52;5574:9;5561:23;5593:31;5618:5;5593:31;:::i;:::-;5643:5;5407:247;-1:-1:-1;;;5407:247:165:o;5659:465::-;5712:3;5750:5;5744:12;5777:6;5772:3;5765:19;5803:4;5832;5827:3;5823:14;5816:21;;5871:4;5864:5;5860:16;5894:1;5904:195;5918:6;5915:1;5912:13;5904:195;;;5983:13;;-1:-1:-1;;;;;5979:39:165;5967:52;;6039:12;;;;6074:15;;;;6015:1;5933:9;5904:195;;6129:688;6328:2;6317:9;6310:21;6387:6;6381:13;6374:21;6367:29;6362:2;6351:9;6347:18;6340:57;6465:2;6457:6;6453:15;6447:22;6440:30;6433:38;6428:2;6417:9;6413:18;6406:66;6540:2;6532:6;6528:15;6522:22;6515:30;6508:38;6503:2;6492:9;6488:18;6481:66;6291:4;6594:2;6586:6;6582:15;6576:22;6635:4;6629:3;6618:9;6614:19;6607:33;6663:63;6721:3;6710:9;6706:19;6692:12;6663:63;:::i;:::-;6649:77;;6782:3;6774:6;6770:16;6764:23;6757:4;6746:9;6742:20;6735:53;6805:6;6797:14;;;6129:688;;;;:::o;6822:456::-;6899:6;6907;6915;6968:2;6956:9;6947:7;6943:23;6939:32;6936:52;;;6984:1;6981;6974:12;6936:52;7023:9;7010:23;7042:31;7067:5;7042:31;:::i;:::-;7092:5;-1:-1:-1;7149:2:165;7134:18;;7121:32;7162:33;7121:32;7162:33;:::i;:::-;6822:456;;7214:7;;-1:-1:-1;;;7268:2:165;7253:18;;;;7240:32;;6822:456::o;7283:525::-;7369:6;7377;7385;7393;7446:3;7434:9;7425:7;7421:23;7417:33;7414:53;;;7463:1;7460;7453:12;7414:53;7499:9;7486:23;7476:33;;7559:2;7548:9;7544:18;7531:32;7572:31;7597:5;7572:31;:::i;:::-;7622:5;-1:-1:-1;7679:2:165;7664:18;;7651:32;7692:33;7651:32;7692:33;:::i;:::-;7283:525;;;;-1:-1:-1;7744:7:165;;7798:2;7783:18;7770:32;;-1:-1:-1;;7283:525:165:o;8284:1547::-;8405:6;8413;8444:2;8487;8475:9;8466:7;8462:23;8458:32;8455:52;;;8503:1;8500;8493:12;8455:52;8539:9;8526:23;8516:33;;8568:2;8621;8610:9;8606:18;8593:32;8648:18;8640:6;8637:30;8634:50;;;8680:1;8677;8670:12;8634:50;8703:22;;8756:4;8748:13;;8744:27;-1:-1:-1;8734:55:165;;8785:1;8782;8775:12;8734:55;8821:2;8808:16;8844:60;8860:43;8900:2;8860:43;:::i;8844:60::-;8938:15;;;9000:4;9039:13;;;9031:22;;9027:31;;;8969:12;;;;8926:3;9070:19;;;9067:39;;;9102:1;9099;9092:12;9067:39;9126:11;;;;9146:655;9162:6;9157:3;9154:15;9146:655;;;9242:2;9236:3;9227:7;9223:17;9219:26;9216:116;;;9286:1;9315:2;9311;9304:14;9216:116;9358:22;;:::i;:::-;9421:3;9408:17;9473:4;9464:7;9460:18;9451:7;9448:31;9438:129;;9521:1;9550:2;9546;9539:14;9438:129;9580:22;;9651:12;;;9638:26;9622:14;;;9615:50;9714:12;;;9701:26;9685:14;;;9678:50;9741:18;;9179:12;;;;9779;;;;9146:655;;;9150:3;9820:5;9810:15;;;;;;;;8284:1547;;;;;:::o;10044:245::-;10111:6;10164:2;10152:9;10143:7;10139:23;10135:32;10132:52;;;10180:1;10177;10170:12;10132:52;10212:9;10206:16;10231:28;10253:5;10231:28;:::i;10294:278::-;10391:6;10444:2;10432:9;10423:7;10419:23;10415:32;10412:52;;;10460:1;10457;10450:12;10412:52;10492:9;10486:16;10511:31;10536:5;10511:31;:::i;10577:522::-;-1:-1:-1;;;;;10828:32:165;;10810:51;;10904:14;;10897:22;10892:2;10877:18;;10870:50;10963:14;;10956:22;10951:2;10936:18;;10929:50;11015:3;11010:2;10995:18;;10988:31;;;-1:-1:-1;;11036:57:165;;11073:19;;11065:6;11036:57;:::i;:::-;11028:65;10577:522;-1:-1:-1;;;;;;10577:522:165:o;11104:676::-;-1:-1:-1;;;;;11405:32:165;;11387:51;;11481:14;;11474:22;11469:2;11454:18;;11447:50;11540:14;;11533:22;11528:2;11513:18;;11506:50;11599:14;;11592:22;11587:2;11572:18;;11565:50;11652:3;11646;11631:19;;11624:32;;;-1:-1:-1;;11673:57:165;;11710:19;;11702:6;11673:57;:::i;:::-;11665:65;;11767:6;11761:3;11750:9;11746:19;11739:35;11104:676;;;;;;;;;:::o;11785:127::-;11846:10;11841:3;11837:20;11834:1;11827:31;11877:4;11874:1;11867:15;11901:4;11898:1;11891:15;12885:232;12924:3;12945:17;;;12942:140;;13004:10;12999:3;12995:20;12992:1;12985:31;13039:4;13036:1;13029:15;13067:4;13064:1;13057:15;12942:140;-1:-1:-1;13109:1:165;13098:13;;12885:232::o","linkReferences":{}},"methodIdentifiers":{"approveTransfer(bytes32)":"ba33984a","calculateTransferID(uint256,address,address,uint256)":"c341a1c2","cancelTransfer(bytes32)":"b329bf5c","delegateApproveTransfer(bytes32,(uint8,bytes32,bytes32)[])":"dd1db9cf","getApprovalCriteria(address)":"90906f9d","getNextApprover(bytes32)":"c38756cc","getNextTxNonce()":"7087dbf9","getTransfer(bytes32)":"260958a5","initiateTransfer(address,address,uint256)":"bc0755e1","name()":"06fdde03","rejectTransfer(bytes32)":"7fbeb89c","setApprovalCriteria(address,bool,bool,bool,address[])":"6e710bf3"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_transferID\",\"type\":\"bytes32\"}],\"name\":\"ApprovalsMustBeSequential\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_transferID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_approver\",\"type\":\"address\"}],\"name\":\"ApproverNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddress\",\"type\":\"address\"}],\"name\":\"DVAManagerIsNotVerifiedForTheToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_transferID\",\"type\":\"bytes32\"}],\"name\":\"InvalidTransferID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddress\",\"type\":\"address\"}],\"name\":\"OnlyTokenAgentCanCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_transferID\",\"type\":\"bytes32\"}],\"name\":\"OnlyTransferSenderCanCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"RecipientIsNotVerified\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_transferID\",\"type\":\"bytes32\"}],\"name\":\"SignaturesCanNotBeEmpty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddress\",\"type\":\"address\"}],\"name\":\"TokenIsNotRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_transferID\",\"type\":\"bytes32\"}],\"name\":\"TransferIsNotInPendingStatus\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"includeRecipientApprover\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"includeAgentApprover\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"sequentialApproval\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"additionalApprovers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"ApprovalCriteriaSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"approvalCriteriaHash\",\"type\":\"bytes32\"}],\"name\":\"TransferApprovalStateReset\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"TransferApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"}],\"name\":\"TransferCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"approvalCriteriaHash\",\"type\":\"bytes32\"}],\"name\":\"TransferInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rejectedBy\",\"type\":\"address\"}],\"name\":\"TransferRejected\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"}],\"name\":\"approveTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"calculateTransferID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"}],\"name\":\"cancelTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct IDVATransferManager.Signature[]\",\"name\":\"signatures\",\"type\":\"tuple[]\"}],\"name\":\"delegateApproveTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"getApprovalCriteria\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"includeRecipientApprover\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"includeAgentApprover\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"sequentialApproval\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"additionalApprovers\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"internalType\":\"struct IDVATransferManager.ApprovalCriteria\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"}],\"name\":\"getNextApprover\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"nextApprover\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"anyTokenAgent\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextTxNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"}],\"name\":\"getTransfer\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"enum IDVATransferManager.TransferStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"anyTokenAgent\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"internalType\":\"struct IDVATransferManager.Approver[]\",\"name\":\"approvers\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"approvalCriteriaHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct IDVATransferManager.Transfer\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"initiateTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"}],\"name\":\"rejectTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"includeRecipientApprover\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"includeAgentApprover\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"sequentialApproval\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"additionalApprovers\",\"type\":\"address[]\"}],\"name\":\"setApprovalCriteria\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approveTransfer(bytes32)\":{\"details\":\"See {IDVATransferManager-approveTransfer}\"},\"calculateTransferID(uint256,address,address,uint256)\":{\"details\":\"See {IDVATransferManager-calculateTransferID}\"},\"cancelTransfer(bytes32)\":{\"details\":\"See {IDVATransferManager-cancelTransfer}\"},\"delegateApproveTransfer(bytes32,(uint8,bytes32,bytes32)[])\":{\"details\":\"See {IDVATransferManager-delegateApproveTransfer}\"},\"getApprovalCriteria(address)\":{\"details\":\"See {IDVATransferManager-getApprovalCriteria}\"},\"getNextApprover(bytes32)\":{\"details\":\"See {IDVATransferManager-getNextApprover}\"},\"getNextTxNonce()\":{\"details\":\"See {IDVATransferManager-getNextTxNonce}\"},\"getTransfer(bytes32)\":{\"details\":\"getter for the transfer\",\"params\":{\"transferID\":\"is the unique ID of the transfer returns transfer\"}},\"initiateTransfer(address,address,uint256)\":{\"details\":\"See {IDVATransferManager-initiateTransfer}\"},\"name()\":{\"details\":\"See {IDVATransferManager-name}\"},\"rejectTransfer(bytes32)\":{\"details\":\"See {IDVATransferManager-rejectTransfer}\"},\"setApprovalCriteria(address,bool,bool,bool,address[])\":{\"details\":\"See {IDVATransferManager-setApprovalCriteria}\"}},\"version\":1},\"userdoc\":{\"events\":{\"ApprovalCriteriaSet(address,bool,bool,bool,address[],bytes32)\":{\"notice\":\"this event is emitted whenever an approval criteria of a token is modified. the event is emitted by 'setApprovalCriteria' function. `tokenAddress` is the token address. `includeRecipientApprover` determines whether the recipient is included in the approver list `includeAgentApprover` determines whether the agent is included in the approver list `sequentialApproval` determines whether approvals must be sequential `additionalApprovers` are the addresses of additional approvers to be added to the approver list `hash` is the approval criteria hash\"},\"TransferApprovalStateReset(bytes32,bytes32)\":{\"notice\":\"this event is emitted whenever a transfer approval criteria are reset the event is emitted by 'approveTransfer' and 'rejectTransfer' functions. `transferID` is the unique ID of the transfer `approvers` is the list of approvers `approvalCriteriaHash` is the approval criteria hash\"},\"TransferApproved(bytes32,address)\":{\"notice\":\"this event is emitted whenever a transfer is approved by an approver the event is emitted by 'approveTransfer' function. `transferID` is the unique ID of the transfer `approver` is the approver address\"},\"TransferCancelled(bytes32)\":{\"notice\":\"this event is emitted whenever a transfer is cancelled by the sender the event is emitted by 'cancelTransfer' function. `transferID` is the unique ID of the transfer\"},\"TransferCompleted(bytes32,address,address,address,uint256)\":{\"notice\":\"this event is emitted whenever all approvers approve a transfer the event is emitted by 'approveTransfer' function. `transferID` is the unique ID of the transfer `tokenAddress` is the token address `sender` is the address of the sender `recipient` is the address of the recipient `amount` is the amount of the transfer\"},\"TransferInitiated(bytes32,address,address,address,uint256,bytes32)\":{\"notice\":\"this event is emitted whenever a transfer is initiated the event is emitted by 'initiateTransfer' function. `transferID` is the unique ID of the transfer `tokenAddress` is the token address `sender` is the address of the sender `recipient` is the address of the recipient `amount` is the amount of the transfer `approvers` is the list of approvers `approvalCriteriaHash` is the approval criteria hash\"},\"TransferRejected(bytes32,address)\":{\"notice\":\"this event is emitted whenever a transfer is rejected by an approver the event is emitted by 'rejectTransfer' function. `transferID` is the unique ID of the transfer `rejectedBy` is the approver address\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/DVA/DVATransferManager.sol\":\"DVATransferManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/DVA/DVATransferManager.sol\":{\"keccak256\":\"0x3144b66fd3e93f9d61ce28a62a989c39f3366848328f19e1070c3e63956ac964\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://51807c9105040bd30fb1a1dc0a9a49711ab9ad0fdfcae7d5a1410e6c7f31d7b2\",\"dweb:/ipfs/QmZethwU2kG6937WC9XwWyFpuX6Mh4g2q6AhMj1t8Jqtoa\"]},\"contracts/erc3643/DVA/IDVATransferManager.sol\":{\"keccak256\":\"0xf2455e9def4225009ec29dcdd1487e184db0d2bc2572501031ed02e209dfa4ad\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dce26ae2b1eee4b2e7ca5a94807b4bca9ab08e0a7a01a5e8ac57fa9a9a1b30f0\",\"dweb:/ipfs/QmZsvjDLn8SeNJhB15TxNmRD9xbVMVijTmu21j5HbWbkbn\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"_transferID","type":"bytes32"}],"type":"error","name":"ApprovalsMustBeSequential"},{"inputs":[{"internalType":"bytes32","name":"_transferID","type":"bytes32"},{"internalType":"address","name":"_approver","type":"address"}],"type":"error","name":"ApproverNotFound"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"type":"error","name":"DVAManagerIsNotVerifiedForTheToken"},{"inputs":[{"internalType":"bytes32","name":"_transferID","type":"bytes32"}],"type":"error","name":"InvalidTransferID"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"type":"error","name":"OnlyTokenAgentCanCall"},{"inputs":[{"internalType":"bytes32","name":"_transferID","type":"bytes32"}],"type":"error","name":"OnlyTransferSenderCanCall"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"type":"error","name":"RecipientIsNotVerified"},{"inputs":[{"internalType":"bytes32","name":"_transferID","type":"bytes32"}],"type":"error","name":"SignaturesCanNotBeEmpty"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"type":"error","name":"TokenIsNotRegistered"},{"inputs":[{"internalType":"bytes32","name":"_transferID","type":"bytes32"}],"type":"error","name":"TransferIsNotInPendingStatus"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address","indexed":false},{"internalType":"bool","name":"includeRecipientApprover","type":"bool","indexed":false},{"internalType":"bool","name":"includeAgentApprover","type":"bool","indexed":false},{"internalType":"bool","name":"sequentialApproval","type":"bool","indexed":false},{"internalType":"address[]","name":"additionalApprovers","type":"address[]","indexed":false},{"internalType":"bytes32","name":"hash","type":"bytes32","indexed":false}],"type":"event","name":"ApprovalCriteriaSet","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"approvalCriteriaHash","type":"bytes32","indexed":false}],"type":"event","name":"TransferApprovalStateReset","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32","indexed":false},{"internalType":"address","name":"approver","type":"address","indexed":false}],"type":"event","name":"TransferApproved","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32","indexed":false}],"type":"event","name":"TransferCancelled","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32","indexed":false},{"internalType":"address","name":"tokenAddress","type":"address","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"address","name":"recipient","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"TransferCompleted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32","indexed":false},{"internalType":"address","name":"tokenAddress","type":"address","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"address","name":"recipient","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes32","name":"approvalCriteriaHash","type":"bytes32","indexed":false}],"type":"event","name":"TransferInitiated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32","indexed":false},{"internalType":"address","name":"rejectedBy","type":"address","indexed":false}],"type":"event","name":"TransferRejected","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"approveTransfer"},{"inputs":[{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"pure","type":"function","name":"calculateTransferID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"cancelTransfer"},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32"},{"internalType":"struct IDVATransferManager.Signature[]","name":"signatures","type":"tuple[]","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"delegateApproveTransfer"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getApprovalCriteria","outputs":[{"internalType":"struct IDVATransferManager.ApprovalCriteria","name":"","type":"tuple","components":[{"internalType":"bool","name":"includeRecipientApprover","type":"bool"},{"internalType":"bool","name":"includeAgentApprover","type":"bool"},{"internalType":"bool","name":"sequentialApproval","type":"bool"},{"internalType":"address[]","name":"additionalApprovers","type":"address[]"},{"internalType":"bytes32","name":"hash","type":"bytes32"}]}]},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getNextApprover","outputs":[{"internalType":"address","name":"nextApprover","type":"address"},{"internalType":"bool","name":"anyTokenAgent","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getNextTxNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getTransfer","outputs":[{"internalType":"struct IDVATransferManager.Transfer","name":"","type":"tuple","components":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum IDVATransferManager.TransferStatus","name":"status","type":"uint8"},{"internalType":"struct IDVATransferManager.Approver[]","name":"approvers","type":"tuple[]","components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"anyTokenAgent","type":"bool"},{"internalType":"bool","name":"approved","type":"bool"}]},{"internalType":"bytes32","name":"approvalCriteriaHash","type":"bytes32"}]}]},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initiateTransfer"},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"rejectTransfer"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"bool","name":"includeRecipientApprover","type":"bool"},{"internalType":"bool","name":"includeAgentApprover","type":"bool"},{"internalType":"bool","name":"sequentialApproval","type":"bool"},{"internalType":"address[]","name":"additionalApprovers","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalCriteria"}],"devdoc":{"kind":"dev","methods":{"approveTransfer(bytes32)":{"details":"See {IDVATransferManager-approveTransfer}"},"calculateTransferID(uint256,address,address,uint256)":{"details":"See {IDVATransferManager-calculateTransferID}"},"cancelTransfer(bytes32)":{"details":"See {IDVATransferManager-cancelTransfer}"},"delegateApproveTransfer(bytes32,(uint8,bytes32,bytes32)[])":{"details":"See {IDVATransferManager-delegateApproveTransfer}"},"getApprovalCriteria(address)":{"details":"See {IDVATransferManager-getApprovalCriteria}"},"getNextApprover(bytes32)":{"details":"See {IDVATransferManager-getNextApprover}"},"getNextTxNonce()":{"details":"See {IDVATransferManager-getNextTxNonce}"},"getTransfer(bytes32)":{"details":"getter for the transfer","params":{"transferID":"is the unique ID of the transfer returns transfer"}},"initiateTransfer(address,address,uint256)":{"details":"See {IDVATransferManager-initiateTransfer}"},"name()":{"details":"See {IDVATransferManager-name}"},"rejectTransfer(bytes32)":{"details":"See {IDVATransferManager-rejectTransfer}"},"setApprovalCriteria(address,bool,bool,bool,address[])":{"details":"See {IDVATransferManager-setApprovalCriteria}"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/DVA/DVATransferManager.sol":"DVATransferManager"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/DVA/DVATransferManager.sol":{"keccak256":"0x3144b66fd3e93f9d61ce28a62a989c39f3366848328f19e1070c3e63956ac964","urls":["bzz-raw://51807c9105040bd30fb1a1dc0a9a49711ab9ad0fdfcae7d5a1410e6c7f31d7b2","dweb:/ipfs/QmZethwU2kG6937WC9XwWyFpuX6Mh4g2q6AhMj1t8Jqtoa"],"license":"GPL-3.0"},"contracts/erc3643/DVA/IDVATransferManager.sol":{"keccak256":"0xf2455e9def4225009ec29dcdd1487e184db0d2bc2572501031ed02e209dfa4ad","urls":["bzz-raw://dce26ae2b1eee4b2e7ca5a94807b4bca9ab08e0a7a01a5e8ac57fa9a9a1b30f0","dweb:/ipfs/QmZsvjDLn8SeNJhB15TxNmRD9xbVMVijTmu21j5HbWbkbn"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":13} \ No newline at end of file diff --git a/out/DVDTransferManager.sol/DVDTransferManager.json b/out/DVDTransferManager.sol/DVDTransferManager.json new file mode 100644 index 0000000..79fa767 --- /dev/null +++ b/out/DVDTransferManager.sol/DVDTransferManager.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"calculateFee","inputs":[{"name":"_transferID","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct DVDTransferManager.TxFees","components":[{"name":"txFee1","type":"uint256","internalType":"uint256"},{"name":"txFee2","type":"uint256","internalType":"uint256"},{"name":"fee1Wallet","type":"address","internalType":"address"},{"name":"fee2Wallet","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"calculateParity","inputs":[{"name":"_token1","type":"address","internalType":"address"},{"name":"_token2","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"calculateTransferID","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_maker","type":"address","internalType":"address"},{"name":"_token1","type":"address","internalType":"address"},{"name":"_token1Amount","type":"uint256","internalType":"uint256"},{"name":"_taker","type":"address","internalType":"address"},{"name":"_token2","type":"address","internalType":"address"},{"name":"_token2Amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"cancelDVDTransfer","inputs":[{"name":"_transferID","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fee","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"token1Fee","type":"uint256","internalType":"uint256"},{"name":"token2Fee","type":"uint256","internalType":"uint256"},{"name":"feeBase","type":"uint256","internalType":"uint256"},{"name":"fee1Wallet","type":"address","internalType":"address"},{"name":"fee2Wallet","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initiateDVDTransfer","inputs":[{"name":"_token1","type":"address","internalType":"address"},{"name":"_token1Amount","type":"uint256","internalType":"uint256"},{"name":"_counterpart","type":"address","internalType":"address"},{"name":"_token2","type":"address","internalType":"address"},{"name":"_token2Amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isTREX","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTREXAgent","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTREXOwner","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"modifyFee","inputs":[{"name":"_token1","type":"address","internalType":"address"},{"name":"_token2","type":"address","internalType":"address"},{"name":"_fee1","type":"uint256","internalType":"uint256"},{"name":"_fee2","type":"uint256","internalType":"uint256"},{"name":"_feeBase","type":"uint256","internalType":"uint256"},{"name":"_fee1Wallet","type":"address","internalType":"address"},{"name":"_fee2Wallet","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"takeDVDTransfer","inputs":[{"name":"_transferID","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token1ToDeliver","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"counterpart","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"token2ToDeliver","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"counterpart","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"txNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"DVDTransferCancelled","inputs":[{"name":"transferID","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"DVDTransferExecuted","inputs":[{"name":"transferID","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"DVDTransferInitiated","inputs":[{"name":"transferID","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"maker","type":"address","indexed":false,"internalType":"address"},{"name":"token1","type":"address","indexed":true,"internalType":"address"},{"name":"token1Amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"taker","type":"address","indexed":false,"internalType":"address"},{"name":"token2","type":"address","indexed":true,"internalType":"address"},{"name":"token2Amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FeeModified","inputs":[{"name":"parity","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"token1","type":"address","indexed":false,"internalType":"address"},{"name":"token2","type":"address","indexed":false,"internalType":"address"},{"name":"fee1","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fee2","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"feeBase","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fee1Wallet","type":"address","indexed":false,"internalType":"address"},{"name":"fee2Wallet","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100408161004b565b50600060045561009b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611ecd806100aa6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063715018a6116100a2578063c66323e511610071578063c66323e514610327578063e722e60314610330578063eb08e26114610343578063f2fde38b14610356578063ff4ca3751461036957600080fd5b8063715018a6146102b357806377722075146102bb5780638da5cb5b146102f9578063afc991411461031457600080fd5b8063344ae659116100de578063344ae659146102195780634dc55ea31461023a5780634f8468641461024d5780636e4d26e4146102a057600080fd5b80630f7f681114610110578063158db45014610164578063233792511461017957806327cdab061461019c575b600080fd5b61014c61011e366004611a15565b6003602052600090815260409020805460018201546002909201546001600160a01b03918216929091169083565b60405161015b93929190611a2e565b60405180910390f35b610177610172366004611a15565b61037c565b005b61018c610187366004611a67565b610a1e565b604051901515815260200161015b565b6101e56101aa366004611a15565b600160208190526000918252604090912080549181015460028201546003830154600490930154919290916001600160a01b03918216911685565b604080519586526020860194909452928401919091526001600160a01b03908116606084015216608082015260a00161015b565b61022c610227366004611a67565b610aa9565b60405190815260200161015b565b61022c610248366004611aa0565b610af4565b61026061025b366004611a15565b610b53565b604080518251815260208084015190820152828201516001600160a01b03908116928201929092526060928301519091169181019190915260800161015b565b6101776102ae366004611b1b565b610d92565b610177611150565b61014c6102c9366004611a15565b60026020819052600091825260409091208054600182015491909201546001600160a01b03928316929091169083565b6000546040516001600160a01b03909116815260200161015b565b61018c610322366004611a67565b611164565b61022c60045481565b61017761033e366004611b76565b6111f1565b61018c610351366004611bf1565b611683565b610177610364366004611bf1565b611703565b610177610377366004611a15565b611741565b600081815260026020818152604080842081516060808201845282546001600160a01b039081168352600180850154821684880152938701548386015288885260038652968490208451918201855280548816825292830154871694810194909452930154908201528151919290911615801590610403575080516001600160a01b031615155b6104285760405162461bcd60e51b815260040161041f90611c15565b60405180910390fd5b6020828101519082015182516001600160a01b03163314806104535750610453846020015133610a1e565b806104675750610467836020015133610a1e565b6104d25760405162461bcd60e51b815260206004820152603660248201527f7472616e736665722068617320746f20626520646f6e6520627920746865206360448201527537bab73a32b93830b93a1037b910313c9037bbb732b960511b606482015260840161041f565b604083810151845191516370a0823160e01b81526001600160a01b03928316600482015290918316906370a0823190602401602060405180830381865afa158015610521573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105459190611c4c565b10156105935760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420656e6f75676820746f6b656e7320696e2062616c616e636500000000604482015260640161041f565b60408381015184519151636eb1769f60e11b81526001600160a01b039283166004820152306024820152909183169063dd62ed3e90604401602060405180830381865afa1580156105e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060c9190611c4c565b101561065a5760405162461bcd60e51b815260206004820181905260248201527f6e6f7420656e6f75676820616c6c6f77616e636520746f207472616e73666572604482015260640161041f565b600061066586610b53565b80519091501561077857826001600160a01b03166323b872dd866000015186600001518460000151896040015161069c9190611c7b565b6040518463ffffffff1660e01b81526004016106ba93929190611a2e565b6020604051808303816000875af11580156106d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fd9190611c8e565b508451604080830151835191516323b872dd60e01b81526001600160a01b038716936323b872dd93610733939192600401611a2e565b6020604051808303816000875af1158015610752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107769190611c8e565b505b80516000036107fe578451845160408088015190516323b872dd60e01b81526001600160a01b038716936323b872dd936107b9939192909190600401611a2e565b6020604051808303816000875af11580156107d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fc9190611c8e565b505b60208101511561091757816001600160a01b03166323b872dd85600001518760000151846020015188604001516108359190611c7b565b6040518463ffffffff1660e01b815260040161085393929190611a2e565b6020604051808303816000875af1158015610872573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108969190611c8e565b508351606082015160208301516040516323b872dd60e01b81526001600160a01b038616936323b872dd936108d2939192909190600401611a2e565b6020604051808303816000875af11580156108f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109159190611c8e565b505b80602001516000036109a0578351855160408087015190516323b872dd60e01b81526001600160a01b038616936323b872dd9361095b939192909190600401611a2e565b6020604051808303816000875af115801561097a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099e9190611c8e565b505b600086815260026020818152604080842080546001600160a01b0319908116825560018083018054831690559185018690556003909352818520805484168155908101805490931690925591018290555187917f094682e7da443a5bb6ea2c900d20d36aaff04228fe22fc6dd65a58a37695be8b91a2505050505050565b6000610a2983611683565b15610a9f576040516307feec1960e21b81526001600160a01b038381166004830152841690631ffbb06490602401602060405180830381865afa158015610a74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a989190611c8e565b9050610aa3565b5060005b92915050565b6000808383604051602001610ad49291906001600160a01b0392831681529116602082015260400190565b60408051808303601f190181529190528051602090910120949350505050565b604080516020808201999099526001600160a01b03978816818301529587166060870152608086019490945291851660a085015290931660c083015260e080830193909352805180830390930183526101009091019052805191012090565b610b5b61199a565b610b6361199a565b600083815260026020818152604080842081516060808201845282546001600160a01b03908116835260018085015482168488015293870154838601528a885260038652968490208451918201855280548816825292830154871694810194909452930154908201528151919290911615801590610bea575080516001600160a01b031615155b610c065760405162461bcd60e51b815260040161041f90611c15565b6000610c1a83602001518360200151610aa9565b600081815260016020818152604092839020835160a0810185528154808252938201549281019290925260028101549382019390935260038301546001600160a01b039081166060830152600490930154909216608083015291925090151580610c875750602081015115155b15610d6f5760008160400151600a610c9f9190611d94565b60028360400151610cb09190611c7b565b610cbb90600a611d94565b83516040880151610ccc9190611da0565b610cd69190611da0565b610ce09190611db7565b905060008260400151600a610cf59190611d94565b60028460400151610d069190611c7b565b610d1190600a611d94565b84602001518760400151610d259190611da0565b610d2f9190611da0565b610d399190611db7565b9187525060208601526060808201516001600160a01b039081166040880152608090920151909116908501525091949350505050565b505060008084526020840181905260408401819052606084015250909392505050565b6040516370a0823160e01b815233600482015284906001600160a01b038716906370a0823190602401602060405180830381865afa158015610dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfc9190611c4c565b1015610e4a5760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420656e6f75676820746f6b656e7320696e2062616c616e636500000000604482015260640161041f565b604051636eb1769f60e11b815233600482015230602482015284906001600160a01b0387169063dd62ed3e90604401602060405180830381865afa158015610e96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eba9190611c4c565b1015610f1a5760405162461bcd60e51b815260206004820152602960248201527f6e6f7420656e6f75676820616c6c6f77616e636520746f20696e697469617465604482015268103a3930b739b332b960b91b606482015260840161041f565b6001600160a01b038316610f705760405162461bcd60e51b815260206004820152601a60248201527f636f756e746572706172742063616e6e6f74206265206e756c6c000000000000604482015260640161041f565b816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd29190611c4c565b600003610ff15760405162461bcd60e51b815260040161041f90611dd9565b60408051606080820183523382526001600160a01b0388811660208085019182528486018a81528651948501875289841680865293891691850182905295840187905260045485519251965195969495600095611054959294939092908a610af4565b6000818152600260208181526040808420885181546001600160a01b039182166001600160a01b03199182161783558a8501805160018086018054928616928516929092179091558c860180519589019590955560038752978590208b518154908516908416811782558c88015199820180549a86169a9094168a179093558b8601519701879055518b51935185519484168552958401959095528284015260608201949094529051949550929391169184917f1eff5dd2c180a5889d45725b98546e9d8c28331caac1c279a0fdc3fe18eb29e59181900360800190a46004805490600061114183611e22565b91905055505050505050505050565b61115861191d565b611162600061194a565b565b600061116f83611683565b15610a9f57816001600160a01b0316836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e09190611e3b565b6001600160a01b0316149050610aa3565b6000546001600160a01b031633148061120f575061120f8733611164565b8061121f575061121f8633611164565b61126b5760405162461bcd60e51b815260206004820152601c60248201527f4f776e61626c653a206f6e6c79206f776e65722063616e2063616c6c00000000604482015260640161041f565b866001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cd9190611c4c565b1580159061133b5750856001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611314573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113389190611c4c565b15155b6113575760405162461bcd60e51b815260040161041f90611dd9565b61136283600a611d94565b851115801561136f575060015b8015611385575061138183600a611d94565b8411155b801561138f575060015b801561139c575060058311155b80156113a9575060028310155b6113ec5760405162461bcd60e51b8152602060048201526014602482015273696e76616c6964206665652073657474696e677360601b604482015260640161041f565b8415611454576001600160a01b0382166114545760405162461bcd60e51b815260206004820152602360248201527f6665652077616c6c657420312063616e6e6f74206265207a65726f206164647260448201526265737360e81b606482015260840161041f565b83156114bc576001600160a01b0381166114bc5760405162461bcd60e51b815260206004820152602360248201527f6665652077616c6c657420322063616e6e6f74206265207a65726f206164647260448201526265737360e81b606482015260840161041f565b60006114c88888610aa9565b90506114d26119d4565b868152602080820187815260408084018881526001600160a01b0380891660608701908152888216608088019081526000898152600197889052859020885181559551968601969096559151600285015590516003840180549183166001600160a01b03199283161790559351600490930180549390911692909316919091179091555182907f2a53ccababe5ceadaebcbb25eb002de52dd1042821dee5cd6dd890c0651c535f90611591908c908c908c908c908c908c908c90611e58565b60405180910390a260006115a5898b610aa9565b90506115af6119d4565b87815260208082018a815260408084018a81526001600160a01b03808a16606087019081528b8216608088019081526000898152600197889052859020885181559551968601969096559151600285015590516003840180549183166001600160a01b03199283161790559351600490930180549390911692909316919091179091555182907f2a53ccababe5ceadaebcbb25eb002de52dd1042821dee5cd6dd890c0651c535f9061166e908d908f908d908f908e908d908f90611e58565b60405180910390a25050505050505050505050565b6000816001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156116df575060408051601f3d908101601f191682019092526116dc91810190611e3b565b60015b6116eb57506000919050565b6001600160a01b03811615610a9f5750600192915050565b61170b61191d565b6001600160a01b03811661173557604051631e4fbdf760e01b81526000600482015260240161041f565b61173e8161194a565b50565b600081815260026020818152604080842081516060808201845282546001600160a01b0390811683526001808501548216848801529387015483860152888852600386529684902084519182018552805488168252928301548716948101949094529301549082015281519192909116158015906117c8575080516001600160a01b031615155b6117e45760405162461bcd60e51b815260040161041f90611c15565b80516001600160a01b0316331480611805575081516001600160a01b031633145b8061181a57506000546001600160a01b031633145b8061182e575061182e826020015133610a1e565b806118425750611842816020015133610a1e565b6118a25760405162461bcd60e51b815260206004820152602b60248201527f796f7520617265206e6f7420616c6c6f77656420746f2063616e63656c20746860448201526a34b9903a3930b739b332b960a91b606482015260840161041f565b600083815260026020818152604080842080546001600160a01b0319908116825560018083018054831690559185018690556003909352818520805484168155908101805490931690925591018290555184917fb34dd23f375e48f42dfe5fbb1f8945e706c80dbfaec32c6e978fcf70091306c991a2505050565b6000546001600160a01b031633146111625760405163118cdaa760e01b815233600482015260240161041f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040518060800160405280600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b031681525090565b6040518060a0016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b031681525090565b600060208284031215611a2757600080fd5b5035919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b038116811461173e57600080fd5b60008060408385031215611a7a57600080fd5b8235611a8581611a52565b91506020830135611a9581611a52565b809150509250929050565b600080600080600080600060e0888a031215611abb57600080fd5b873596506020880135611acd81611a52565b95506040880135611add81611a52565b9450606088013593506080880135611af481611a52565b925060a0880135611b0481611a52565b8092505060c0880135905092959891949750929550565b600080600080600060a08688031215611b3357600080fd5b8535611b3e81611a52565b9450602086013593506040860135611b5581611a52565b92506060860135611b6581611a52565b949793965091946080013592915050565b600080600080600080600060e0888a031215611b9157600080fd5b8735611b9c81611a52565b96506020880135611bac81611a52565b955060408801359450606088013593506080880135925060a0880135611bd181611a52565b915060c0880135611be181611a52565b8091505092959891949750929550565b600060208284031215611c0357600080fd5b8135611c0e81611a52565b9392505050565b6020808252601a908201527f7472616e7366657220494420646f6573206e6f74206578697374000000000000604082015260600190565b600060208284031215611c5e57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610aa357610aa3611c65565b600060208284031215611ca057600080fd5b81518015158114611c0e57600080fd5b600181815b80851115611ceb578160001904821115611cd157611cd1611c65565b80851615611cde57918102915b93841c9390800290611cb5565b509250929050565b600082611d0257506001610aa3565b81611d0f57506000610aa3565b8160018114611d255760028114611d2f57611d4b565b6001915050610aa3565b60ff841115611d4057611d40611c65565b50506001821b610aa3565b5060208310610133831016604e8410600b8410161715611d6e575081810a610aa3565b611d788383611cb0565b8060001904821115611d8c57611d8c611c65565b029392505050565b6000611c0e8383611cf3565b8082028115828204841417610aa357610aa3611c65565b600082611dd457634e487b7160e01b600052601260045260246000fd5b500490565b60208082526029908201527f696e76616c69642061646472657373203a2061646472657373206973206e6f74604082015268020616e2045524332360bc1b606082015260800190565b600060018201611e3457611e34611c65565b5060010190565b600060208284031215611e4d57600080fd5b8151611c0e81611a52565b6001600160a01b0397881681529587166020870152604086019490945260608501929092526080840152831660a083015290911660c082015260e0019056fea2646970667358221220ee9fcd04defc6618bba47862e875f9b9a343a5d844f3051cb1f5604acb8dbf9a64736f6c63430008180033","sourceMap":"3907:18776:15:-:0;;;6221:62;;;;;;;;;-1:-1:-1;6243:10:15;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;160:51:165;133:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;6275:1:15::1;6265:7;:11:::0;3907:18776;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:165:-;3907:18776:15;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061010b5760003560e01c8063715018a6116100a2578063c66323e511610071578063c66323e514610327578063e722e60314610330578063eb08e26114610343578063f2fde38b14610356578063ff4ca3751461036957600080fd5b8063715018a6146102b357806377722075146102bb5780638da5cb5b146102f9578063afc991411461031457600080fd5b8063344ae659116100de578063344ae659146102195780634dc55ea31461023a5780634f8468641461024d5780636e4d26e4146102a057600080fd5b80630f7f681114610110578063158db45014610164578063233792511461017957806327cdab061461019c575b600080fd5b61014c61011e366004611a15565b6003602052600090815260409020805460018201546002909201546001600160a01b03918216929091169083565b60405161015b93929190611a2e565b60405180910390f35b610177610172366004611a15565b61037c565b005b61018c610187366004611a67565b610a1e565b604051901515815260200161015b565b6101e56101aa366004611a15565b600160208190526000918252604090912080549181015460028201546003830154600490930154919290916001600160a01b03918216911685565b604080519586526020860194909452928401919091526001600160a01b03908116606084015216608082015260a00161015b565b61022c610227366004611a67565b610aa9565b60405190815260200161015b565b61022c610248366004611aa0565b610af4565b61026061025b366004611a15565b610b53565b604080518251815260208084015190820152828201516001600160a01b03908116928201929092526060928301519091169181019190915260800161015b565b6101776102ae366004611b1b565b610d92565b610177611150565b61014c6102c9366004611a15565b60026020819052600091825260409091208054600182015491909201546001600160a01b03928316929091169083565b6000546040516001600160a01b03909116815260200161015b565b61018c610322366004611a67565b611164565b61022c60045481565b61017761033e366004611b76565b6111f1565b61018c610351366004611bf1565b611683565b610177610364366004611bf1565b611703565b610177610377366004611a15565b611741565b600081815260026020818152604080842081516060808201845282546001600160a01b039081168352600180850154821684880152938701548386015288885260038652968490208451918201855280548816825292830154871694810194909452930154908201528151919290911615801590610403575080516001600160a01b031615155b6104285760405162461bcd60e51b815260040161041f90611c15565b60405180910390fd5b6020828101519082015182516001600160a01b03163314806104535750610453846020015133610a1e565b806104675750610467836020015133610a1e565b6104d25760405162461bcd60e51b815260206004820152603660248201527f7472616e736665722068617320746f20626520646f6e6520627920746865206360448201527537bab73a32b93830b93a1037b910313c9037bbb732b960511b606482015260840161041f565b604083810151845191516370a0823160e01b81526001600160a01b03928316600482015290918316906370a0823190602401602060405180830381865afa158015610521573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105459190611c4c565b10156105935760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420656e6f75676820746f6b656e7320696e2062616c616e636500000000604482015260640161041f565b60408381015184519151636eb1769f60e11b81526001600160a01b039283166004820152306024820152909183169063dd62ed3e90604401602060405180830381865afa1580156105e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060c9190611c4c565b101561065a5760405162461bcd60e51b815260206004820181905260248201527f6e6f7420656e6f75676820616c6c6f77616e636520746f207472616e73666572604482015260640161041f565b600061066586610b53565b80519091501561077857826001600160a01b03166323b872dd866000015186600001518460000151896040015161069c9190611c7b565b6040518463ffffffff1660e01b81526004016106ba93929190611a2e565b6020604051808303816000875af11580156106d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fd9190611c8e565b508451604080830151835191516323b872dd60e01b81526001600160a01b038716936323b872dd93610733939192600401611a2e565b6020604051808303816000875af1158015610752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107769190611c8e565b505b80516000036107fe578451845160408088015190516323b872dd60e01b81526001600160a01b038716936323b872dd936107b9939192909190600401611a2e565b6020604051808303816000875af11580156107d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fc9190611c8e565b505b60208101511561091757816001600160a01b03166323b872dd85600001518760000151846020015188604001516108359190611c7b565b6040518463ffffffff1660e01b815260040161085393929190611a2e565b6020604051808303816000875af1158015610872573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108969190611c8e565b508351606082015160208301516040516323b872dd60e01b81526001600160a01b038616936323b872dd936108d2939192909190600401611a2e565b6020604051808303816000875af11580156108f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109159190611c8e565b505b80602001516000036109a0578351855160408087015190516323b872dd60e01b81526001600160a01b038616936323b872dd9361095b939192909190600401611a2e565b6020604051808303816000875af115801561097a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099e9190611c8e565b505b600086815260026020818152604080842080546001600160a01b0319908116825560018083018054831690559185018690556003909352818520805484168155908101805490931690925591018290555187917f094682e7da443a5bb6ea2c900d20d36aaff04228fe22fc6dd65a58a37695be8b91a2505050505050565b6000610a2983611683565b15610a9f576040516307feec1960e21b81526001600160a01b038381166004830152841690631ffbb06490602401602060405180830381865afa158015610a74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a989190611c8e565b9050610aa3565b5060005b92915050565b6000808383604051602001610ad49291906001600160a01b0392831681529116602082015260400190565b60408051808303601f190181529190528051602090910120949350505050565b604080516020808201999099526001600160a01b03978816818301529587166060870152608086019490945291851660a085015290931660c083015260e080830193909352805180830390930183526101009091019052805191012090565b610b5b61199a565b610b6361199a565b600083815260026020818152604080842081516060808201845282546001600160a01b03908116835260018085015482168488015293870154838601528a885260038652968490208451918201855280548816825292830154871694810194909452930154908201528151919290911615801590610bea575080516001600160a01b031615155b610c065760405162461bcd60e51b815260040161041f90611c15565b6000610c1a83602001518360200151610aa9565b600081815260016020818152604092839020835160a0810185528154808252938201549281019290925260028101549382019390935260038301546001600160a01b039081166060830152600490930154909216608083015291925090151580610c875750602081015115155b15610d6f5760008160400151600a610c9f9190611d94565b60028360400151610cb09190611c7b565b610cbb90600a611d94565b83516040880151610ccc9190611da0565b610cd69190611da0565b610ce09190611db7565b905060008260400151600a610cf59190611d94565b60028460400151610d069190611c7b565b610d1190600a611d94565b84602001518760400151610d259190611da0565b610d2f9190611da0565b610d399190611db7565b9187525060208601526060808201516001600160a01b039081166040880152608090920151909116908501525091949350505050565b505060008084526020840181905260408401819052606084015250909392505050565b6040516370a0823160e01b815233600482015284906001600160a01b038716906370a0823190602401602060405180830381865afa158015610dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfc9190611c4c565b1015610e4a5760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420656e6f75676820746f6b656e7320696e2062616c616e636500000000604482015260640161041f565b604051636eb1769f60e11b815233600482015230602482015284906001600160a01b0387169063dd62ed3e90604401602060405180830381865afa158015610e96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eba9190611c4c565b1015610f1a5760405162461bcd60e51b815260206004820152602960248201527f6e6f7420656e6f75676820616c6c6f77616e636520746f20696e697469617465604482015268103a3930b739b332b960b91b606482015260840161041f565b6001600160a01b038316610f705760405162461bcd60e51b815260206004820152601a60248201527f636f756e746572706172742063616e6e6f74206265206e756c6c000000000000604482015260640161041f565b816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd29190611c4c565b600003610ff15760405162461bcd60e51b815260040161041f90611dd9565b60408051606080820183523382526001600160a01b0388811660208085019182528486018a81528651948501875289841680865293891691850182905295840187905260045485519251965195969495600095611054959294939092908a610af4565b6000818152600260208181526040808420885181546001600160a01b039182166001600160a01b03199182161783558a8501805160018086018054928616928516929092179091558c860180519589019590955560038752978590208b518154908516908416811782558c88015199820180549a86169a9094168a179093558b8601519701879055518b51935185519484168552958401959095528284015260608201949094529051949550929391169184917f1eff5dd2c180a5889d45725b98546e9d8c28331caac1c279a0fdc3fe18eb29e59181900360800190a46004805490600061114183611e22565b91905055505050505050505050565b61115861191d565b611162600061194a565b565b600061116f83611683565b15610a9f57816001600160a01b0316836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e09190611e3b565b6001600160a01b0316149050610aa3565b6000546001600160a01b031633148061120f575061120f8733611164565b8061121f575061121f8633611164565b61126b5760405162461bcd60e51b815260206004820152601c60248201527f4f776e61626c653a206f6e6c79206f776e65722063616e2063616c6c00000000604482015260640161041f565b866001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cd9190611c4c565b1580159061133b5750856001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611314573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113389190611c4c565b15155b6113575760405162461bcd60e51b815260040161041f90611dd9565b61136283600a611d94565b851115801561136f575060015b8015611385575061138183600a611d94565b8411155b801561138f575060015b801561139c575060058311155b80156113a9575060028310155b6113ec5760405162461bcd60e51b8152602060048201526014602482015273696e76616c6964206665652073657474696e677360601b604482015260640161041f565b8415611454576001600160a01b0382166114545760405162461bcd60e51b815260206004820152602360248201527f6665652077616c6c657420312063616e6e6f74206265207a65726f206164647260448201526265737360e81b606482015260840161041f565b83156114bc576001600160a01b0381166114bc5760405162461bcd60e51b815260206004820152602360248201527f6665652077616c6c657420322063616e6e6f74206265207a65726f206164647260448201526265737360e81b606482015260840161041f565b60006114c88888610aa9565b90506114d26119d4565b868152602080820187815260408084018881526001600160a01b0380891660608701908152888216608088019081526000898152600197889052859020885181559551968601969096559151600285015590516003840180549183166001600160a01b03199283161790559351600490930180549390911692909316919091179091555182907f2a53ccababe5ceadaebcbb25eb002de52dd1042821dee5cd6dd890c0651c535f90611591908c908c908c908c908c908c908c90611e58565b60405180910390a260006115a5898b610aa9565b90506115af6119d4565b87815260208082018a815260408084018a81526001600160a01b03808a16606087019081528b8216608088019081526000898152600197889052859020885181559551968601969096559151600285015590516003840180549183166001600160a01b03199283161790559351600490930180549390911692909316919091179091555182907f2a53ccababe5ceadaebcbb25eb002de52dd1042821dee5cd6dd890c0651c535f9061166e908d908f908d908f908e908d908f90611e58565b60405180910390a25050505050505050505050565b6000816001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156116df575060408051601f3d908101601f191682019092526116dc91810190611e3b565b60015b6116eb57506000919050565b6001600160a01b03811615610a9f5750600192915050565b61170b61191d565b6001600160a01b03811661173557604051631e4fbdf760e01b81526000600482015260240161041f565b61173e8161194a565b50565b600081815260026020818152604080842081516060808201845282546001600160a01b0390811683526001808501548216848801529387015483860152888852600386529684902084519182018552805488168252928301548716948101949094529301549082015281519192909116158015906117c8575080516001600160a01b031615155b6117e45760405162461bcd60e51b815260040161041f90611c15565b80516001600160a01b0316331480611805575081516001600160a01b031633145b8061181a57506000546001600160a01b031633145b8061182e575061182e826020015133610a1e565b806118425750611842816020015133610a1e565b6118a25760405162461bcd60e51b815260206004820152602b60248201527f796f7520617265206e6f7420616c6c6f77656420746f2063616e63656c20746860448201526a34b9903a3930b739b332b960a91b606482015260840161041f565b600083815260026020818152604080842080546001600160a01b0319908116825560018083018054831690559185018690556003909352818520805484168155908101805490931690925591018290555184917fb34dd23f375e48f42dfe5fbb1f8945e706c80dbfaec32c6e978fcf70091306c991a2505050565b6000546001600160a01b031633146111625760405163118cdaa760e01b815233600482015260240161041f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040518060800160405280600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b031681525090565b6040518060a0016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b031681525090565b600060208284031215611a2757600080fd5b5035919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b038116811461173e57600080fd5b60008060408385031215611a7a57600080fd5b8235611a8581611a52565b91506020830135611a9581611a52565b809150509250929050565b600080600080600080600060e0888a031215611abb57600080fd5b873596506020880135611acd81611a52565b95506040880135611add81611a52565b9450606088013593506080880135611af481611a52565b925060a0880135611b0481611a52565b8092505060c0880135905092959891949750929550565b600080600080600060a08688031215611b3357600080fd5b8535611b3e81611a52565b9450602086013593506040860135611b5581611a52565b92506060860135611b6581611a52565b949793965091946080013592915050565b600080600080600080600060e0888a031215611b9157600080fd5b8735611b9c81611a52565b96506020880135611bac81611a52565b955060408801359450606088013593506080880135925060a0880135611bd181611a52565b915060c0880135611be181611a52565b8091505092959891949750929550565b600060208284031215611c0357600080fd5b8135611c0e81611a52565b9392505050565b6020808252601a908201527f7472616e7366657220494420646f6573206e6f74206578697374000000000000604082015260600190565b600060208284031215611c5e57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610aa357610aa3611c65565b600060208284031215611ca057600080fd5b81518015158114611c0e57600080fd5b600181815b80851115611ceb578160001904821115611cd157611cd1611c65565b80851615611cde57918102915b93841c9390800290611cb5565b509250929050565b600082611d0257506001610aa3565b81611d0f57506000610aa3565b8160018114611d255760028114611d2f57611d4b565b6001915050610aa3565b60ff841115611d4057611d40611c65565b50506001821b610aa3565b5060208310610133831016604e8410600b8410161715611d6e575081810a610aa3565b611d788383611cb0565b8060001904821115611d8c57611d8c611c65565b029392505050565b6000611c0e8383611cf3565b8082028115828204841417610aa357610aa3611c65565b600082611dd457634e487b7160e01b600052601260045260246000fd5b500490565b60208082526029908201527f696e76616c69642061646472657373203a2061646472657373206973206e6f74604082015268020616e2045524332360bc1b606082015260800190565b600060018201611e3457611e34611c65565b5060010190565b600060208284031215611e4d57600080fd5b8151611c0e81611a52565b6001600160a01b0397881681529587166020870152604086019490945260608501929092526080840152831660a083015290911660c082015260e0019056fea2646970667358221220ee9fcd04defc6618bba47862e875f9b9a343a5d844f3051cb1f5604acb8dbf9a64736f6c63430008180033","sourceMap":"3907:18776:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4608:51;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4608:51:15;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;14031:1935;;;;;;:::i;:::-;;:::i;:::-;;18615:200;;;;;;:::i;:::-;;:::i;:::-;;;1273:14:165;;1266:22;1248:41;;1236:2;1221:18;18615:200:15;1108:187:165;4415:34:15;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4415:34:15;;;;;;;;;;;1559:25:165;;;1615:2;1600:18;;1593:34;;;;1643:18;;;1636:34;;;;-1:-1:-1;;;;;1744:15:165;;;1739:2;1724:18;;1717:43;1797:15;1791:3;1776:19;;1769:44;1546:3;1531:19;4415:34:15;1300:519:165;21329:186:15;;;;;;:::i;:::-;;:::i;:::-;;;1970:25:165;;;1958:2;1943:18;21329:186:15;1824:177:165;22244:437:15;;;;;;:::i;:::-;;:::i;19856:1240::-;;;;;;:::i;:::-;;:::i;:::-;;;;3104:13:165;;3086:32;;3174:4;3162:17;;;3156:24;3134:20;;;3127:54;3216:17;;;3210:24;-1:-1:-1;;;;;3310:21:165;;;3288:20;;;3281:51;;;;3392:4;3380:17;;;3374:24;3370:33;;;3348:20;;;3341:63;;;;3073:3;3058:19;19856:1240:15;2889:521:165;10762:1563:15;;;;;;:::i;:::-;;:::i;2293:101:141:-;;;:::i;4503:51:15:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4503:51:15;;;;;;;;;;1638:85:141;1684:7;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:141;;;4233:51:165;;4221:2;4206:18;1638:85:141;4087:203:165;19168:200:15;;;;;;:::i;:::-;;:::i;4741:22::-;;;;;;7742:1958;;;;;;:::i;:::-;;:::i;17943:319::-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;16700:761:15:-;;;;;;:::i;:::-;;:::i;14031:1935::-;14096:22;14121:28;;;:15;:28;;;;;;;;14096:53;;;;;;;;;;-1:-1:-1;;;;;14096:53:15;;;;;;;;;;;;;;;;;;;;;;;;14184:28;;;:15;:28;;;;;;14159:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14243:18;;14096:53;;14159;;14243:32;;;;;:68;;-1:-1:-1;14279:18:15;;-1:-1:-1;;;;;14279:32:15;;;14243:68;14222:133;;;;-1:-1:-1;;;14222:133:15;;;;;;;:::i;:::-;;;;;;;;;14396:12;;;;;14450;;;;14509:18;;-1:-1:-1;;;;;14495:32:15;:10;:32;;:85;;;14543:37;14555:6;:12;;;14569:10;14543:11;:37::i;:::-;14495:138;;;;14596:37;14608:6;:12;;;14622:10;14596:11;:37::i;:::-;14473:232;;;;-1:-1:-1;;;14473:232:15;;6169:2:165;14473:232:15;;;6151:21:165;6208:2;6188:18;;;6181:30;6247:34;6227:18;;;6220:62;-1:-1:-1;;;6298:18:165;;;6291:52;6360:19;;14473:232:15;5967:418:165;14473:232:15;14784:13;;;;;14761:18;;14736:44;;-1:-1:-1;;;14736:44:15;;-1:-1:-1;;;;;4251:32:165;;;14736:44:15;;;4233:51:165;14784:13:15;;14736:24;;;;;4206:18:165;;14736:44:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:61;;14715:128;;;;-1:-1:-1;;;14715:128:15;;6781:2:165;14715:128:15;;;6763:21:165;6820:2;6800:18;;;6793:30;6859;6839:18;;;6832:58;6907:18;;14715:128:15;6579:352:165;14715:128:15;14937:13;;;;;14899:18;;14874:59;;-1:-1:-1;;;14874:59:15;;-1:-1:-1;;;;;7166:15:165;;;14874:59:15;;;7148:34:165;14927:4:15;7198:18:165;;;7191:43;14937:13:15;;14874:24;;;;;7083:18:165;;14874:59:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:76;;14853:147;;;;-1:-1:-1;;;14853:147:15;;7447:2:165;14853:147:15;;;7429:21:165;;;7466:18;;;7459:30;7525:34;7505:18;;;7498:62;7577:18;;14853:147:15;7245:356:165;14853:147:15;15010:18;15031:25;15044:11;15031:12;:25::i;:::-;15070:11;;15010:46;;-1:-1:-1;15070:16:15;15066:236;;15102:14;-1:-1:-1;;;;;15102:27:15;;15130:6;:18;;;15150:6;:18;;;15187:4;:11;;;15171:6;:13;;;:27;;;;:::i;:::-;15102:98;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;15242:18:15;;15262:15;;;;;15279:11;;15214:77;;-1:-1:-1;;;15214:77:15;;-1:-1:-1;;;;;15214:27:15;;;;;:77;;15242:18;;15214:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15066:236;15315:11;;;:16;15311:129;;15375:18;;15395;;15415:13;;;;;15347:82;;-1:-1:-1;;;15347:82:15;;-1:-1:-1;;;;;15347:27:15;;;;;:82;;15375:18;;15395;;15415:13;15347:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15311:129;15453:11;;;;:16;15449:236;;15485:14;-1:-1:-1;;;;;15485:27:15;;15513:6;:18;;;15533:6;:18;;;15570:4;:11;;;15554:6;:13;;;:27;;;;:::i;:::-;15485:98;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;15625:18:15;;15645:15;;;;15662:11;;;;15597:77;;-1:-1:-1;;;15597:77:15;;-1:-1:-1;;;;;15597:27:15;;;;;:77;;15625:18;;15645:15;;15662:11;15597:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15449:236;15698:4;:11;;;15713:1;15698:16;15694:129;;15758:18;;15778;;15798:13;;;;;15730:82;;-1:-1:-1;;;15730:82:15;;-1:-1:-1;;;;;15730:27:15;;;;;:82;;15758:18;;15778;;15798:13;15730:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15694:129;15839:28;;;;:15;:28;;;;;;;;15832:35;;-1:-1:-1;;;;;;15832:35:15;;;;;;;;;;;;;;;;;;;;;15884:15;:28;;;;;;15877:35;;;;;;;;;;;;;;;;;;;;;;15927:32;15855:11;;15927:32;;;14086:1880;;;;;14031:1935;:::o;18615:200::-;18688:4;18708:14;18715:6;18708;:14::i;:::-;18704:83;;;18744:32;;-1:-1:-1;;;18744:32:15;;-1:-1:-1;;;;;4251:32:165;;;18744::15;;;4233:51:165;18744:25:15;;;;;4206:18:165;;18744:32:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18737:39;;;;18704:83;-1:-1:-1;18803:5:15;18615:200;;;;;:::o;21329:186::-;21410:7;21429:14;21467:7;21476;21456:28;;;;;;;;-1:-1:-1;;;;;7166:15:165;;;7148:34;;7218:15;;7213:2;7198:18;;7191:43;7098:2;7083:18;;6936:304;21456:28:15;;;;;;;-1:-1:-1;;21456:28:15;;;;;;21446:39;;21456:28;21446:39;;;;;21329:186;-1:-1:-1;;;;21329:186:15:o;22244:437::-;22534:112;;;;;;;8468:25:165;;;;-1:-1:-1;;;;;8567:15:165;;;8547:18;;;8540:43;8619:15;;;8599:18;;;8592:43;8651:18;;;8644:34;;;;8715:15;;;8694:19;;;8687:44;8768:15;;;8747:19;;;8740:44;8800:19;;;;8793:35;;;;22534:112:15;;;;;;;;;;8440:19:165;;;;22534:112:15;;22524:123;;;;;;22244:437::o;19856:1240::-;19919:13;;:::i;:::-;19944:18;;:::i;:::-;19972:22;19997:28;;;:15;:28;;;;;;;;19972:53;;;;;;;;;;-1:-1:-1;;;;;19972:53:15;;;;;;;;;;;;;;;;;;;;;;;;20060:28;;;:15;:28;;;;;;20035:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20119:18;;19972:53;;20035;;20119:32;;;;;:68;;-1:-1:-1;20155:18:15;;-1:-1:-1;;;;;20155:32:15;;;20119:68;20098:129;;;;-1:-1:-1;;;20098:129:15;;;;;;;:::i;:::-;20237:14;20254:43;20270:6;:12;;;20284:6;:12;;;20254:15;:43::i;:::-;20307:21;20331:11;;;:3;:11;;;;;;;;;20307:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20307:35:15;;;;;;;;;;;;;;;;;;;20237:60;;-1:-1:-1;20307:35:15;20356:25;;;:54;;-1:-1:-1;20385:20:15;;;;:25;;20356:54;20352:738;;;20426:12;20530:10;:18;;;20526:2;:22;;;;:::i;:::-;20519:1;20498:10;:18;;;:22;;;;:::i;:::-;20493:28;;:2;:28;:::i;:::-;20470:20;;20454:13;;;;:36;;20470:20;20454:36;:::i;:::-;:67;;;;:::i;:::-;20453:96;;;;:::i;:::-;20426:123;;20563:12;20667:10;:18;;;20663:2;:22;;;;:::i;:::-;20656:1;20635:10;:18;;;:22;;;;:::i;:::-;20630:28;;:2;:28;:::i;:::-;20607:10;:20;;;20591:6;:13;;;:36;;;;:::i;:::-;:67;;;;:::i;:::-;20590:96;;;;:::i;:::-;20700:21;;;-1:-1:-1;20735:11:15;;;:21;20788;;;;;-1:-1:-1;;;;;20770:39:15;;;:15;;;:39;20841:21;;;;;20823:39;;;:15;;;:39;-1:-1:-1;20700:4:15;;19856:1240;-1:-1:-1;;;;19856:1240:15:o;20352:738::-;-1:-1:-1;;20940:1:15;20926:15;;;20955:11;;;:15;;;20984;;;:28;;;21026:15;;;:28;-1:-1:-1;20926:4:15;;19856:1240;-1:-1:-1;;;19856:1240:15:o;10762:1563::-;10961:37;;-1:-1:-1;;;10961:37:15;;10987:10;10961:37;;;4233:51:165;11002:13:15;;-1:-1:-1;;;;;10961:25:15;;;;;4206:18:165;;10961:37:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:54;;10953:95;;;;-1:-1:-1;;;10953:95:15;;6781:2:165;10953:95:15;;;6763:21:165;6820:2;6800:18;;;6793:30;6859;6839:18;;;6832:58;6907:18;;10953:95:15;6579:352:165;10953:95:15;11079:52;;-1:-1:-1;;;11079:52:15;;11105:10;11079:52;;;7148:34:165;11125:4:15;7198:18:165;;;7191:43;11135:13:15;;-1:-1:-1;;;;;11079:25:15;;;;;7083:18:165;;11079:52:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:69;;11058:149;;;;-1:-1:-1;;;11058:149:15;;10804:2:165;11058:149:15;;;10786:21:165;10843:2;10823:18;;;10816:30;10882:34;10862:18;;;10855:62;-1:-1:-1;;;10933:18:165;;;10926:39;10982:19;;11058:149:15;10602:405:165;11058:149:15;-1:-1:-1;;;;;11226:26:15;;11217:66;;;;-1:-1:-1;;;11217:66:15;;11214:2:165;11217:66:15;;;11196:21:165;11253:2;11233:18;;;11226:30;11292:28;11272:18;;;11265:56;11338:18;;11217:66:15;11012:350:165;11217:66:15;11308:7;-1:-1:-1;;;;;11301:27:15;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11334:1;11301:34;11293:88;;;;-1:-1:-1;;;11293:88:15;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;11444:10:15;11423:31;;-1:-1:-1;;;;;11464:22:15;;;-1:-1:-1;;;;11464:22:15;;;-1:-1:-1;;;11496:29:15;;;-1:-1:-1;;;;;;;11567:33:15;;;;;;11610:22;;;-1:-1:-1;;;11610:22:15;;;-1:-1:-1;;;11642:29:15;;;11747:7;;11772:18;;11808:12;;11838:13;;-1:-1:-1;;;;;;11710:239:15;;11747:7;;11772:18;11808:12;;11567:33;11642:29;11710:19;:239::i;:::-;11959:27;;;;:15;:27;;;;;;;;:36;;;;-1:-1:-1;;;;;11959:36:15;;;-1:-1:-1;;;;;;11959:36:15;;;;;;;;;;;-1:-1:-1;11959:36:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12005:15;:27;;;;;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12158:12;12122:18;;12188:13;;12056:243;;12064:15:165;;;12046:34;;12096:18;;;12089:34;;;;12139:18;;;12132:43;12206:2;12191:18;;12184:34;;;;12056:243:15;;11959:27;;-1:-1:-1;12005:36:15;;12056:243;;;11959:27;;12056:243;;;;;11995:3:165;12056:243:15;;;12309:7;:9;;;:7;:9;;;:::i;:::-;;;;;;10943:1382;;;10762:1563;;;;;:::o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;19168:200:15:-;19241:4;19261:14;19268:6;19261;:14::i;:::-;19257:83;;;19324:5;-1:-1:-1;;;;;19297:32:15;19305:6;-1:-1:-1;;;;;19297:21:15;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19297:32:15;;19290:39;;;;7742:1958;1684:7:141;1710:6;-1:-1:-1;;;;;1710:6:141;7973:10:15;:21;;:69;;;8010:32;8022:7;8031:10;8010:11;:32::i;:::-;7973:117;;;;8058:32;8070:7;8079:10;8058:11;:32::i;:::-;7952:184;;;;-1:-1:-1;;;7952:184:15;;12827:2:165;7952:184:15;;;12809:21:165;12866:2;12846:18;;;12839:30;12905;12885:18;;;12878:58;12953:18;;7952:184:15;12625:352:165;7952:184:15;8174:7;-1:-1:-1;;;;;8167:27:15;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:34;;;;:84;;;8224:7;-1:-1:-1;;;;;8217:27:15;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:34;;8167:84;8146:164;;;;-1:-1:-1;;;8146:164:15;;;;;;;:::i;:::-;8350:12;8354:8;8350:2;:12;:::i;:::-;8341:5;:21;;:35;;;;-1:-1:-1;8366:10:15;8341:35;:72;;;;-1:-1:-1;8401:12:15;8405:8;8401:2;:12;:::i;:::-;8392:5;:21;;8341:72;:86;;;;-1:-1:-1;8417:10:15;8341:86;:115;;;;;8455:1;8443:8;:13;;8341:115;:144;;;;;8484:1;8472:8;:13;;8341:144;8320:203;;;;-1:-1:-1;;;8320:203:15;;13184:2:165;8320:203:15;;;13166:21:165;13223:2;13203:18;;;13196:30;-1:-1:-1;;;13242:18:165;;;13235:50;13302:18;;8320:203:15;12982:344:165;8320:203:15;8537:9;;8533:113;;-1:-1:-1;;;;;8570:25:15;;8562:73;;;;-1:-1:-1;;;8562:73:15;;13533:2:165;8562:73:15;;;13515:21:165;13572:2;13552:18;;;13545:30;13611:34;13591:18;;;13584:62;-1:-1:-1;;;13662:18:165;;;13655:33;13705:19;;8562:73:15;13331:399:165;8562:73:15;8659:9;;8655:113;;-1:-1:-1;;;;;8692:25:15;;8684:73;;;;-1:-1:-1;;;8684:73:15;;13937:2:165;8684:73:15;;;13919:21:165;13976:2;13956:18;;;13949:30;14015:34;13995:18;;;13988:62;-1:-1:-1;;;14066:18:165;;;14059:33;14109:19;;8684:73:15;13735:399:165;8684:73:15;8777:15;8795:33;8811:7;8820;8795:15;:33::i;:::-;8777:51;;8838:20;;:::i;:::-;8868:27;;;8905:19;;;;:27;;;8942:17;;;;:28;;;-1:-1:-1;;;;;8980:34:15;;;:20;;;:34;;;9024;;;:20;;;:34;;;8868:19;9068:12;;;:3;:12;;;;;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9068:24:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9107:88;9072:7;;9107:88;;;;9128:7;;9137;;8890:5;;8927;;8962:8;;9003:11;;9047;;9107:88;:::i;:::-;;;;;;;;9205:22;9230:33;9246:7;9255;9230:15;:33::i;:::-;9205:58;;9273:27;;:::i;:::-;9310:34;;;9354:26;;;;:34;;;9398:24;;;;:35;;;-1:-1:-1;;;;;9443:41:15;;;:27;;;:41;;;9494;;;:27;;;:41;;;9310:26;9545:19;;;:3;:19;;;;;;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9545:38:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9598:95;9549:14;;9598:95;;;;9626:7;;9635;;9339:5;;9383;;9425:8;;9473:11;;9524;;9598:95;:::i;:::-;;;;;;;;7942:1758;;;;7742:1958;;;;;;;:::o;17943:319::-;17996:4;18023:6;-1:-1:-1;;;;;18016:31:15;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18016:33:15;;;;;;;;-1:-1:-1;;18016:33:15;;;;;;;;;;;;:::i;:::-;;;18012:244;;-1:-1:-1;18240:5:15;;17943:319;-1:-1:-1;17943:319:15:o;18012:244::-;-1:-1:-1;;;;;18100:26:15;;;18096:76;;-1:-1:-1;18153:4:15;;17943:319;-1:-1:-1;;17943:319:15:o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;4233:51:165::0;4206:18;;2672:31:141::1;4087:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;16700:761:15:-;16767:22;16792:28;;;:15;:28;;;;;;;;16767:53;;;;;;;;;;-1:-1:-1;;;;;16767:53:15;;;;;;;;;;;;;;;;;;;;;;;;16855:28;;;:15;:28;;;;;;16830:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16901:18;;16767:53;;16830;;16901:32;;;;;:68;;-1:-1:-1;16937:18:15;;-1:-1:-1;;;;;16937:32:15;;;16901:68;16893:107;;;;-1:-1:-1;;;16893:107:15;;;;;;;:::i;:::-;17046:18;;-1:-1:-1;;;;;17032:32:15;:10;:32;;:80;;-1:-1:-1;17094:18:15;;-1:-1:-1;;;;;17080:32:15;:10;:32;17032:80;:117;;;-1:-1:-1;1684:7:141;1710:6;-1:-1:-1;;;;;1710:6:141;17128:10:15;:21;17032:117;:170;;;;17165:37;17177:6;:12;;;17191:10;17165:11;:37::i;:::-;17032:223;;;;17218:37;17230:6;:12;;;17244:10;17218:11;:37::i;:::-;17010:306;;;;-1:-1:-1;;;17010:306:15;;15310:2:165;17010:306:15;;;15292:21:165;15349:2;15329:18;;;15322:30;15388:34;15368:18;;;15361:62;-1:-1:-1;;;15439:18:165;;;15432:41;15490:19;;17010:306:15;15108:407:165;17010:306:15;17333:28;;;;:15;:28;;;;;;;;17326:35;;-1:-1:-1;;;;;;17326:35:15;;;;;;;;;;;;;;;;;;;;;17378:15;:28;;;;;;17371:35;;;;;;;;;;;;;;;;;;;;;;17421:33;17349:11;;17421:33;;;16757:704;;16700:761;:::o;1796:162:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;4233:51:165;4206:18;;1901:40:141;4087:203:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:165:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:165;;14:180;-1:-1:-1;14:180:165:o;199:375::-;-1:-1:-1;;;;;457:15:165;;;439:34;;509:15;;;;504:2;489:18;;482:43;556:2;541:18;;534:34;;;;389:2;374:18;;199:375::o;579:131::-;-1:-1:-1;;;;;654:31:165;;644:42;;634:70;;700:1;697;690:12;715:388;783:6;791;844:2;832:9;823:7;819:23;815:32;812:52;;;860:1;857;850:12;812:52;899:9;886:23;918:31;943:5;918:31;:::i;:::-;968:5;-1:-1:-1;1025:2:165;1010:18;;997:32;1038:33;997:32;1038:33;:::i;:::-;1090:7;1080:17;;;715:388;;;;;:::o;2006:878::-;2119:6;2127;2135;2143;2151;2159;2167;2220:3;2208:9;2199:7;2195:23;2191:33;2188:53;;;2237:1;2234;2227:12;2188:53;2273:9;2260:23;2250:33;;2333:2;2322:9;2318:18;2305:32;2346:31;2371:5;2346:31;:::i;:::-;2396:5;-1:-1:-1;2453:2:165;2438:18;;2425:32;2466:33;2425:32;2466:33;:::i;:::-;2518:7;-1:-1:-1;2572:2:165;2557:18;;2544:32;;-1:-1:-1;2628:3:165;2613:19;;2600:33;2642;2600;2642;:::i;:::-;2694:7;-1:-1:-1;2753:3:165;2738:19;;2725:33;2767;2725;2767;:::i;:::-;2819:7;2809:17;;;2873:3;2862:9;2858:19;2845:33;2835:43;;2006:878;;;;;;;;;;:::o;3415:667::-;3510:6;3518;3526;3534;3542;3595:3;3583:9;3574:7;3570:23;3566:33;3563:53;;;3612:1;3609;3602:12;3563:53;3651:9;3638:23;3670:31;3695:5;3670:31;:::i;:::-;3720:5;-1:-1:-1;3772:2:165;3757:18;;3744:32;;-1:-1:-1;3828:2:165;3813:18;;3800:32;3841:33;3800:32;3841:33;:::i;:::-;3893:7;-1:-1:-1;3952:2:165;3937:18;;3924:32;3965:33;3924:32;3965:33;:::i;:::-;3415:667;;;;-1:-1:-1;3415:667:165;;4071:3;4056:19;4043:33;;3415:667;-1:-1:-1;;3415:667:165:o;4477:878::-;4590:6;4598;4606;4614;4622;4630;4638;4691:3;4679:9;4670:7;4666:23;4662:33;4659:53;;;4708:1;4705;4698:12;4659:53;4747:9;4734:23;4766:31;4791:5;4766:31;:::i;:::-;4816:5;-1:-1:-1;4873:2:165;4858:18;;4845:32;4886:33;4845:32;4886:33;:::i;:::-;4938:7;-1:-1:-1;4992:2:165;4977:18;;4964:32;;-1:-1:-1;5043:2:165;5028:18;;5015:32;;-1:-1:-1;5094:3:165;5079:19;;5066:33;;-1:-1:-1;5151:3:165;5136:19;;5123:33;5165;5123;5165;:::i;:::-;5217:7;-1:-1:-1;5276:3:165;5261:19;;5248:33;5290;5248;5290;:::i;:::-;5342:7;5332:17;;;4477:878;;;;;;;;;;:::o;5360:247::-;5419:6;5472:2;5460:9;5451:7;5447:23;5443:32;5440:52;;;5488:1;5485;5478:12;5440:52;5527:9;5514:23;5546:31;5571:5;5546:31;:::i;:::-;5596:5;5360:247;-1:-1:-1;;;5360:247:165:o;5612:350::-;5814:2;5796:21;;;5853:2;5833:18;;;5826:30;5892:28;5887:2;5872:18;;5865:56;5953:2;5938:18;;5612:350::o;6390:184::-;6460:6;6513:2;6501:9;6492:7;6488:23;6484:32;6481:52;;;6529:1;6526;6519:12;6481:52;-1:-1:-1;6552:16:165;;6390:184;-1:-1:-1;6390:184:165:o;7606:127::-;7667:10;7662:3;7658:20;7655:1;7648:31;7698:4;7695:1;7688:15;7722:4;7719:1;7712:15;7738:128;7805:9;;;7826:11;;;7823:37;;;7840:18;;:::i;7871:277::-;7938:6;7991:2;7979:9;7970:7;7966:23;7962:32;7959:52;;;8007:1;8004;7997:12;7959:52;8039:9;8033:16;8092:5;8085:13;8078:21;8071:5;8068:32;8058:60;;8114:1;8111;8104:12;8839:416;8928:1;8965:5;8928:1;8979:270;9000:7;8990:8;8987:21;8979:270;;;9059:4;9055:1;9051:6;9047:17;9041:4;9038:27;9035:53;;;9068:18;;:::i;:::-;9118:7;9108:8;9104:22;9101:55;;;9138:16;;;;9101:55;9217:22;;;;9177:15;;;;8979:270;;;8983:3;8839:416;;;;;:::o;9260:806::-;9309:5;9339:8;9329:80;;-1:-1:-1;9380:1:165;9394:5;;9329:80;9428:4;9418:76;;-1:-1:-1;9465:1:165;9479:5;;9418:76;9510:4;9528:1;9523:59;;;;9596:1;9591:130;;;;9503:218;;9523:59;9553:1;9544:10;;9567:5;;;9591:130;9628:3;9618:8;9615:17;9612:43;;;9635:18;;:::i;:::-;-1:-1:-1;;9691:1:165;9677:16;;9706:5;;9503:218;;9805:2;9795:8;9792:16;9786:3;9780:4;9777:13;9773:36;9767:2;9757:8;9754:16;9749:2;9743:4;9740:12;9736:35;9733:77;9730:159;;;-1:-1:-1;9842:19:165;;;9874:5;;9730:159;9921:34;9946:8;9940:4;9921:34;:::i;:::-;9991:6;9987:1;9983:6;9979:19;9970:7;9967:32;9964:58;;;10002:18;;:::i;:::-;10040:20;;9260:806;-1:-1:-1;;;9260:806:165:o;10071:131::-;10131:5;10160:36;10187:8;10181:4;10160:36;:::i;10207:168::-;10280:9;;;10311;;10328:15;;;10322:22;;10308:37;10298:71;;10349:18;;:::i;10380:217::-;10420:1;10446;10436:132;;10490:10;10485:3;10481:20;10478:1;10471:31;10525:4;10522:1;10515:15;10553:4;10550:1;10543:15;10436:132;-1:-1:-1;10582:9:165;;10380:217::o;11367:405::-;11569:2;11551:21;;;11608:2;11588:18;;;11581:30;11647:34;11642:2;11627:18;;11620:62;-1:-1:-1;;;11713:2:165;11698:18;;11691:39;11762:3;11747:19;;11367:405::o;12229:135::-;12268:3;12289:17;;;12286:43;;12309:18;;:::i;:::-;-1:-1:-1;12356:1:165;12345:13;;12229:135::o;12369:251::-;12439:6;12492:2;12480:9;12471:7;12467:23;12463:32;12460:52;;;12508:1;12505;12498:12;12460:52;12540:9;12534:16;12559:31;12584:5;12559:31;:::i;14139:681::-;-1:-1:-1;;;;;14510:15:165;;;14492:34;;14562:15;;;14557:2;14542:18;;14535:43;14609:2;14594:18;;14587:34;;;;14652:2;14637:18;;14630:34;;;;14695:3;14680:19;;14673:35;14745:15;;14472:3;14724:19;;14717:44;14798:15;;;14792:3;14777:19;;14770:44;14441:3;14426:19;;14139:681::o","linkReferences":{}},"methodIdentifiers":{"calculateFee(bytes32)":"4f846864","calculateParity(address,address)":"344ae659","calculateTransferID(uint256,address,address,uint256,address,address,uint256)":"4dc55ea3","cancelDVDTransfer(bytes32)":"ff4ca375","fee(bytes32)":"27cdab06","initiateDVDTransfer(address,uint256,address,address,uint256)":"6e4d26e4","isTREX(address)":"eb08e261","isTREXAgent(address,address)":"23379251","isTREXOwner(address,address)":"afc99141","modifyFee(address,address,uint256,uint256,uint256,address,address)":"e722e603","owner()":"8da5cb5b","renounceOwnership()":"715018a6","takeDVDTransfer(bytes32)":"158db450","token1ToDeliver(bytes32)":"77722075","token2ToDeliver(bytes32)":"0f7f6811","transferOwnership(address)":"f2fde38b","txNonce()":"c66323e5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"}],\"name\":\"DVDTransferCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"}],\"name\":\"DVDTransferExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"token1Amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"taker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token2\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"token2Amount\",\"type\":\"uint256\"}],\"name\":\"DVDTransferInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"parity\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token2\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee1\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee2\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"feeBase\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"fee1Wallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"fee2Wallet\",\"type\":\"address\"}],\"name\":\"FeeModified\",\"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\":[{\"internalType\":\"bytes32\",\"name\":\"_transferID\",\"type\":\"bytes32\"}],\"name\":\"calculateFee\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"txFee1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"txFee2\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"fee1Wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fee2Wallet\",\"type\":\"address\"}],\"internalType\":\"struct DVDTransferManager.TxFees\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token2\",\"type\":\"address\"}],\"name\":\"calculateParity\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_maker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token1\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_token1Amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_taker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token2\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_token2Amount\",\"type\":\"uint256\"}],\"name\":\"calculateTransferID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_transferID\",\"type\":\"bytes32\"}],\"name\":\"cancelDVDTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"token1Fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"token2Fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"feeBase\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"fee1Wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fee2Wallet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token1\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_token1Amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_counterpart\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token2\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_token2Amount\",\"type\":\"uint256\"}],\"name\":\"initiateDVDTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTREX\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"isTREXAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"isTREXOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token2\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_fee1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_fee2\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_feeBase\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_fee1Wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_fee2Wallet\",\"type\":\"address\"}],\"name\":\"modifyFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_transferID\",\"type\":\"bytes32\"}],\"name\":\"takeDVDTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"token1ToDeliver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"counterpart\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"token2ToDeliver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"counterpart\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"txNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"DVDTransferCancelled(bytes32)\":{\"details\":\"Emitted when a DVD transfer is cancelled this event is emitted by the `cancelDVDTransfer` function\"},\"DVDTransferExecuted(bytes32)\":{\"details\":\"Emitted when a DVD transfer is validated by `taker` and executed either by `taker` either by the agent of the TREX token if the TREX token is subject to conditional transfers this event is emitted by the `takeDVDTransfer` function\"},\"DVDTransferInitiated(bytes32,address,address,uint256,address,address,uint256)\":{\"details\":\"Emitted when a DVD transfer is initiated by `maker` to swap `token1Amount` tokens `token1` (TREX or not) for `token2Amount` tokens `token2` with `taker` this event is emitted by the `initiateDVDTransfer` function\"},\"FeeModified(bytes32,address,address,uint256,uint256,uint256,address,address)\":{\"details\":\"Emitted when a DVD transfer is cancelled this event is emitted by the `cancelDVDTransfer` function\"}},\"kind\":\"dev\",\"methods\":{\"calculateFee(bytes32)\":{\"details\":\"calculates the fees to apply to a specific transfer depending on the fees applied to the parity used in the transfer\",\"params\":{\"_transferID\":\"the DVD transfer identifier as calculated through the `calculateTransferID` function for the transfer to calculate fees on requires `_transferID` to exist (DVD transfer has to be initiated) returns the fees to apply on each leg of the transfer in the form of a `TxFees` struct\"}},\"calculateParity(address,address)\":{\"details\":\"calculates the parity byte signature\",\"params\":{\"_token1\":\"the address of the base token\",\"_token2\":\"the address of the counterpart token return the byte signature of the parity\"}},\"calculateTransferID(uint256,address,address,uint256,address,address,uint256)\":{\"details\":\"calculates the transferID depending on DVD transfer parameters\",\"params\":{\"_maker\":\"the address of the DVD transfer maker (initiator of the transfer)\",\"_nonce\":\"the nonce of the transfer on the smart contract\",\"_taker\":\"the address of the DVD transfer taker (executor of the transfer)\",\"_token1\":\"the address of the token that the maker is providing\",\"_token1Amount\":\"the amount of tokens `_token1` provided by the maker\",\"_token2\":\"the address of the token that the taker is providing\",\"_token2Amount\":\"the amount of tokens `_token2` provided by the taker return the identifier of the DVD transfer as a byte signature\"}},\"cancelDVDTransfer(bytes32)\":{\"details\":\"delete a pending DVD transfer that was previously initiated through the `initiateDVDTransfer` function from the pool\",\"params\":{\"_transferID\":\"the DVD transfer identifier as calculated through the `calculateTransferID` function for the initiated DVD transfer to delete requires `_transferID` to exist (DVD transfer has to be initiated) requires that `msg.sender` is the taker or the maker or the `DVDTransferManager` contract owner or the TREX agent in case a TREX token is involved in the transfer once the `cancelDVDTransfer` is executed the `_transferID` is removed from the pending `_transferID` pool emits a `DVDTransferCancelled` event\"}},\"initiateDVDTransfer(address,uint256,address,address,uint256)\":{\"details\":\"initiates a DVD transfer between `msg.sender` & `_counterpart`\",\"params\":{\"_counterpart\":\"the address of the counterpart, which will receive `_token1Amount` of `_token1` in exchange for `_token2Amount` of `_token2`\",\"_token1\":\"the address of the token (ERC20 or TREX) provided by `msg.sender`\",\"_token1Amount\":\"the amount of `_token1` that `msg.sender` will send to `_counterpart` at DVD execution time\",\"_token2\":\"the address of the token (ERC20 or TREX) provided by `_counterpart`\",\"_token2Amount\":\"the amount of `_token2` that `_counterpart` will send to `msg.sender` at DVD execution time requires `msg.sender` to have enough `_token1` tokens to process the DVD transfer requires `DVDTransferManager` contract to have the necessary allowance to process the DVD transfer on `msg.sender` requires `_counterpart` to not be the 0 address requires `_token1` & `_token2` to be valid token addresses emits a `DVDTransferInitiated` event\"}},\"isTREX(address)\":{\"details\":\"check if `_token` corresponds to a functional TREX token (with identity registry initiated)\",\"params\":{\"_token\":\"the address token to check the function will try to call `identityRegistry()` on the address, which is a getter specific to TREX tokens if the call pass and returns an address it means that the token is a TREX, otherwise it's not a TREX return `true` if the token is a TREX, `false` otherwise\"}},\"isTREXAgent(address,address)\":{\"details\":\"check if `_user` is a TREX agent of `_token`\",\"params\":{\"_token\":\"the address token to check\",\"_user\":\"the wallet address if `_token` is a TREX token this function will check if `_user` is registered as an agent on it return `true` if `_user` is agent of `_token`, return `false` otherwise\"}},\"isTREXOwner(address,address)\":{\"details\":\"check if `_user` is a TREX owner of `_token`\",\"params\":{\"_token\":\"the address token to check\",\"_user\":\"the wallet address if `_token` is a TREX token this function will check if `_user` is registered as an owner on it return `true` if `_user` is owner of `_token`, return `false` otherwise\"}},\"modifyFee(address,address,uint256,uint256,uint256,address,address)\":{\"details\":\"modify the fees applied to a parity of tokens (tokens can be TREX or ERC20)\",\"params\":{\"_fee1\":\"the fee to apply on `_token1` leg of the DVD transfer per 10^`_feeBase`\",\"_fee1Wallet\":\"the wallet address receiving fees applied on `_token1`\",\"_fee2\":\"the fee to apply on `_token2` leg of the DVD transfer per 10^`_feeBase`\",\"_fee2Wallet\":\"the wallet address receiving fees applied on `_token2` `_token1` and `_token2` need to be ERC20 or TREX tokens addresses, otherwise the transaction will fail `msg.sender` has to be owner of the DVD contract or the owner of the TREX token involved in the parity (if any) requires fees to be lower than 100% requires `_feeBase` to be higher or equal to 2 (precision 10^2) requires `_feeBase` to be lower or equal to 5 (precision 10^5) to avoid overflows requires `_fee1Wallet` & `_fee2Wallet` to be non empty addresses if `_fee1` & `_fee2` are respectively set note that if fees are not set for a parity the default fee is basically 0% emits a `FeeModified` event\",\"_feeBase\":\"the precision of the fee setting, e.g. if `_feeBase` == 2 then `_fee1` and `_fee2` are in % (fee/10^`_feeBase`)\",\"_token1\":\"the address of the base token for the parity `_token1`/`_token2`\",\"_token2\":\"the address of the counterpart token for the parity `_token1`/`_token2`\"}},\"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.\"},\"takeDVDTransfer(bytes32)\":{\"details\":\"execute a DVD transfer that was previously initiated through the `initiateDVDTransfer` function\",\"params\":{\"_transferID\":\"the DVD transfer identifier as calculated through the `calculateTransferID` function for the initiated DVD transfer to execute requires `_transferID` to exist (DVD transfer has to be initiated) requires that taker (counterpart sending token2) has enough tokens in balance to process the DVD transfer requires that `DVDTransferManager` contract has enough allowance to process the `token2` leg of the DVD transfer requires that `msg.sender` is the taker OR the TREX agent in case a TREX token is involved in the transfer (in case of conditional transfer the agent can call the function when the transfer has been approved) if fees apply on one side or both sides of the transfer the fees will be sent, at transaction time, to the fees wallet previously set in case fees apply the counterparts will receive less than the amounts included in the DVD transfer as part of the transfer is redirected to the fee wallet at transfer execution time if one or both legs of the transfer are TREX, then all the relevant checks apply on the transaction (compliance + identity checks) and the transaction WILL FAIL if the TREX conditions of transfer are not respected, please refer to {Token-transfer} and {Token-transferFrom} to know more about TREX conditions for transfers once the DVD transfer is executed the `_transferID` is removed from the pending `_transferID` pool emits a `DVDTransferExecuted` event\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"functions\"},\"fee(bytes32)\":{\"notice\":\"variables\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/DVD/DVDTransferManager.sol\":\"DVDTransferManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/DVD/DVDTransferManager.sol\":{\"keccak256\":\"0x7d620a154d8b632bffb74b45e606fa16e0f3ec76a1165d34108eded547588aea\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://fcb2be7eb7f6116010d716a5aa787baed989c192d36d6ccbd48470bc9c010ffb\",\"dweb:/ipfs/QmVbrQMXUwHDbdx9me8tFPdvrSoEePhLMCwQ8W8E4kqQMZ\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32","indexed":true}],"type":"event","name":"DVDTransferCancelled","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32","indexed":true}],"type":"event","name":"DVDTransferExecuted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32","indexed":true},{"internalType":"address","name":"maker","type":"address","indexed":false},{"internalType":"address","name":"token1","type":"address","indexed":true},{"internalType":"uint256","name":"token1Amount","type":"uint256","indexed":false},{"internalType":"address","name":"taker","type":"address","indexed":false},{"internalType":"address","name":"token2","type":"address","indexed":true},{"internalType":"uint256","name":"token2Amount","type":"uint256","indexed":false}],"type":"event","name":"DVDTransferInitiated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"parity","type":"bytes32","indexed":true},{"internalType":"address","name":"token1","type":"address","indexed":false},{"internalType":"address","name":"token2","type":"address","indexed":false},{"internalType":"uint256","name":"fee1","type":"uint256","indexed":false},{"internalType":"uint256","name":"fee2","type":"uint256","indexed":false},{"internalType":"uint256","name":"feeBase","type":"uint256","indexed":false},{"internalType":"address","name":"fee1Wallet","type":"address","indexed":false},{"internalType":"address","name":"fee2Wallet","type":"address","indexed":false}],"type":"event","name":"FeeModified","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"_transferID","type":"bytes32"}],"stateMutability":"view","type":"function","name":"calculateFee","outputs":[{"internalType":"struct DVDTransferManager.TxFees","name":"","type":"tuple","components":[{"internalType":"uint256","name":"txFee1","type":"uint256"},{"internalType":"uint256","name":"txFee2","type":"uint256"},{"internalType":"address","name":"fee1Wallet","type":"address"},{"internalType":"address","name":"fee2Wallet","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"_token1","type":"address"},{"internalType":"address","name":"_token2","type":"address"}],"stateMutability":"pure","type":"function","name":"calculateParity","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_maker","type":"address"},{"internalType":"address","name":"_token1","type":"address"},{"internalType":"uint256","name":"_token1Amount","type":"uint256"},{"internalType":"address","name":"_taker","type":"address"},{"internalType":"address","name":"_token2","type":"address"},{"internalType":"uint256","name":"_token2Amount","type":"uint256"}],"stateMutability":"pure","type":"function","name":"calculateTransferID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_transferID","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"cancelDVDTransfer"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"fee","outputs":[{"internalType":"uint256","name":"token1Fee","type":"uint256"},{"internalType":"uint256","name":"token2Fee","type":"uint256"},{"internalType":"uint256","name":"feeBase","type":"uint256"},{"internalType":"address","name":"fee1Wallet","type":"address"},{"internalType":"address","name":"fee2Wallet","type":"address"}]},{"inputs":[{"internalType":"address","name":"_token1","type":"address"},{"internalType":"uint256","name":"_token1Amount","type":"uint256"},{"internalType":"address","name":"_counterpart","type":"address"},{"internalType":"address","name":"_token2","type":"address"},{"internalType":"uint256","name":"_token2Amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initiateDVDTransfer"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"isTREX","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_user","type":"address"}],"stateMutability":"view","type":"function","name":"isTREXAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_user","type":"address"}],"stateMutability":"view","type":"function","name":"isTREXOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token1","type":"address"},{"internalType":"address","name":"_token2","type":"address"},{"internalType":"uint256","name":"_fee1","type":"uint256"},{"internalType":"uint256","name":"_fee2","type":"uint256"},{"internalType":"uint256","name":"_feeBase","type":"uint256"},{"internalType":"address","name":"_fee1Wallet","type":"address"},{"internalType":"address","name":"_fee2Wallet","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"modifyFee"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"_transferID","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"takeDVDTransfer"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"token1ToDeliver","outputs":[{"internalType":"address","name":"counterpart","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"token2ToDeliver","outputs":[{"internalType":"address","name":"counterpart","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"txNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"calculateFee(bytes32)":{"details":"calculates the fees to apply to a specific transfer depending on the fees applied to the parity used in the transfer","params":{"_transferID":"the DVD transfer identifier as calculated through the `calculateTransferID` function for the transfer to calculate fees on requires `_transferID` to exist (DVD transfer has to be initiated) returns the fees to apply on each leg of the transfer in the form of a `TxFees` struct"}},"calculateParity(address,address)":{"details":"calculates the parity byte signature","params":{"_token1":"the address of the base token","_token2":"the address of the counterpart token return the byte signature of the parity"}},"calculateTransferID(uint256,address,address,uint256,address,address,uint256)":{"details":"calculates the transferID depending on DVD transfer parameters","params":{"_maker":"the address of the DVD transfer maker (initiator of the transfer)","_nonce":"the nonce of the transfer on the smart contract","_taker":"the address of the DVD transfer taker (executor of the transfer)","_token1":"the address of the token that the maker is providing","_token1Amount":"the amount of tokens `_token1` provided by the maker","_token2":"the address of the token that the taker is providing","_token2Amount":"the amount of tokens `_token2` provided by the taker return the identifier of the DVD transfer as a byte signature"}},"cancelDVDTransfer(bytes32)":{"details":"delete a pending DVD transfer that was previously initiated through the `initiateDVDTransfer` function from the pool","params":{"_transferID":"the DVD transfer identifier as calculated through the `calculateTransferID` function for the initiated DVD transfer to delete requires `_transferID` to exist (DVD transfer has to be initiated) requires that `msg.sender` is the taker or the maker or the `DVDTransferManager` contract owner or the TREX agent in case a TREX token is involved in the transfer once the `cancelDVDTransfer` is executed the `_transferID` is removed from the pending `_transferID` pool emits a `DVDTransferCancelled` event"}},"initiateDVDTransfer(address,uint256,address,address,uint256)":{"details":"initiates a DVD transfer between `msg.sender` & `_counterpart`","params":{"_counterpart":"the address of the counterpart, which will receive `_token1Amount` of `_token1` in exchange for `_token2Amount` of `_token2`","_token1":"the address of the token (ERC20 or TREX) provided by `msg.sender`","_token1Amount":"the amount of `_token1` that `msg.sender` will send to `_counterpart` at DVD execution time","_token2":"the address of the token (ERC20 or TREX) provided by `_counterpart`","_token2Amount":"the amount of `_token2` that `_counterpart` will send to `msg.sender` at DVD execution time requires `msg.sender` to have enough `_token1` tokens to process the DVD transfer requires `DVDTransferManager` contract to have the necessary allowance to process the DVD transfer on `msg.sender` requires `_counterpart` to not be the 0 address requires `_token1` & `_token2` to be valid token addresses emits a `DVDTransferInitiated` event"}},"isTREX(address)":{"details":"check if `_token` corresponds to a functional TREX token (with identity registry initiated)","params":{"_token":"the address token to check the function will try to call `identityRegistry()` on the address, which is a getter specific to TREX tokens if the call pass and returns an address it means that the token is a TREX, otherwise it's not a TREX return `true` if the token is a TREX, `false` otherwise"}},"isTREXAgent(address,address)":{"details":"check if `_user` is a TREX agent of `_token`","params":{"_token":"the address token to check","_user":"the wallet address if `_token` is a TREX token this function will check if `_user` is registered as an agent on it return `true` if `_user` is agent of `_token`, return `false` otherwise"}},"isTREXOwner(address,address)":{"details":"check if `_user` is a TREX owner of `_token`","params":{"_token":"the address token to check","_user":"the wallet address if `_token` is a TREX token this function will check if `_user` is registered as an owner on it return `true` if `_user` is owner of `_token`, return `false` otherwise"}},"modifyFee(address,address,uint256,uint256,uint256,address,address)":{"details":"modify the fees applied to a parity of tokens (tokens can be TREX or ERC20)","params":{"_fee1":"the fee to apply on `_token1` leg of the DVD transfer per 10^`_feeBase`","_fee1Wallet":"the wallet address receiving fees applied on `_token1`","_fee2":"the fee to apply on `_token2` leg of the DVD transfer per 10^`_feeBase`","_fee2Wallet":"the wallet address receiving fees applied on `_token2` `_token1` and `_token2` need to be ERC20 or TREX tokens addresses, otherwise the transaction will fail `msg.sender` has to be owner of the DVD contract or the owner of the TREX token involved in the parity (if any) requires fees to be lower than 100% requires `_feeBase` to be higher or equal to 2 (precision 10^2) requires `_feeBase` to be lower or equal to 5 (precision 10^5) to avoid overflows requires `_fee1Wallet` & `_fee2Wallet` to be non empty addresses if `_fee1` & `_fee2` are respectively set note that if fees are not set for a parity the default fee is basically 0% emits a `FeeModified` event","_feeBase":"the precision of the fee setting, e.g. if `_feeBase` == 2 then `_fee1` and `_fee2` are in % (fee/10^`_feeBase`)","_token1":"the address of the base token for the parity `_token1`/`_token2`","_token2":"the address of the counterpart token for the parity `_token1`/`_token2`"}},"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."},"takeDVDTransfer(bytes32)":{"details":"execute a DVD transfer that was previously initiated through the `initiateDVDTransfer` function","params":{"_transferID":"the DVD transfer identifier as calculated through the `calculateTransferID` function for the initiated DVD transfer to execute requires `_transferID` to exist (DVD transfer has to be initiated) requires that taker (counterpart sending token2) has enough tokens in balance to process the DVD transfer requires that `DVDTransferManager` contract has enough allowance to process the `token2` leg of the DVD transfer requires that `msg.sender` is the taker OR the TREX agent in case a TREX token is involved in the transfer (in case of conditional transfer the agent can call the function when the transfer has been approved) if fees apply on one side or both sides of the transfer the fees will be sent, at transaction time, to the fees wallet previously set in case fees apply the counterparts will receive less than the amounts included in the DVD transfer as part of the transfer is redirected to the fee wallet at transfer execution time if one or both legs of the transfer are TREX, then all the relevant checks apply on the transaction (compliance + identity checks) and the transaction WILL FAIL if the TREX conditions of transfer are not respected, please refer to {Token-transfer} and {Token-transferFrom} to know more about TREX conditions for transfers once the DVD transfer is executed the `_transferID` is removed from the pending `_transferID` pool emits a `DVDTransferExecuted` event"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"functions"},"fee(bytes32)":{"notice":"variables"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/DVD/DVDTransferManager.sol":"DVDTransferManager"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/DVD/DVDTransferManager.sol":{"keccak256":"0x7d620a154d8b632bffb74b45e606fa16e0f3ec76a1165d34108eded547588aea","urls":["bzz-raw://fcb2be7eb7f6116010d716a5aa787baed989c192d36d6ccbd48470bc9c010ffb","dweb:/ipfs/QmVbrQMXUwHDbdx9me8tFPdvrSoEePhLMCwQ8W8E4kqQMZ"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":15} \ No newline at end of file diff --git a/out/DayMonthLimits.sol/DayMonthLimits.json b/out/DayMonthLimits.sol/DayMonthLimits.json new file mode 100644 index 0000000..20bb9ce --- /dev/null +++ b/out/DayMonthLimits.sol/DayMonthLimits.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"complianceCheckOnDayMonthLimits","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"dailyLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenBound","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"monthlyLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDailyLimit","inputs":[{"name":"_newDailyLimit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMonthlyLimit","inputs":[{"name":"_newMonthlyLimit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tokenBound","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IToken"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"usersCounters","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"dailyCount","type":"uint256","internalType":"uint256"},{"name":"monthlyCount","type":"uint256","internalType":"uint256"},{"name":"dailyTimer","type":"uint256","internalType":"uint256"},{"name":"monthlyTimer","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DailyLimitUpdated","inputs":[{"name":"_newDailyLimit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MonthlyLimitUpdated","inputs":[{"name":"_newMonthlyLimit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentAdded","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentRemoved","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","addTokenAgent(address)":"ff3e6954","bindToken(address)":"3ff5aa02","canTransfer(address,address,uint256)":"e46638e6","complianceCheckOnDayMonthLimits(address,address,uint256)":"5786cdd1","created(address,uint256)":"5f8dead3","dailyLimit()":"67eeba0c","destroyed(address,uint256)":"8d2ea772","isAgent(address)":"1ffbb064","isTokenAgent(address)":"346531fa","isTokenBound(address)":"993e8b95","monthlyLimit()":"0a6005da","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","removeTokenAgent(address)":"cdde2932","renounceOwnership()":"715018a6","setDailyLimit(uint256)":"b20d30a9","setMonthlyLimit(uint256)":"f3533c35","tokenBound()":"93e62f07","transferOwnership(address)":"f2fde38b","transferred(address,address,uint256)":"8baf29b4","unbindToken(address)":"40db3b50","usersCounters(address)":"3eb33f18"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newDailyLimit\",\"type\":\"uint256\"}],\"name\":\"DailyLimitUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newMonthlyLimit\",\"type\":\"uint256\"}],\"name\":\"MonthlyLimitUpdated\",\"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\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"addTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"complianceCheckOnDayMonthLimits\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dailyLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"isTokenAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"monthlyLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"removeTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newDailyLimit\",\"type\":\"uint256\"}],\"name\":\"setDailyLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newMonthlyLimit\",\"type\":\"uint256\"}],\"name\":\"setMonthlyLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenBound\",\"outputs\":[{\"internalType\":\"contract IToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"usersCounters\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"dailyCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"monthlyCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dailyTimer\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"monthlyTimer\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addTokenAgent(address)\":{\"details\":\"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces\"},\"bindToken(address)\":{\"details\":\"See {ICompliance-bindToken}.\"},\"canTransfer(address,address,uint256)\":{\"details\":\"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"complianceCheckOnDayMonthLimits(address,address,uint256)\":{\"details\":\"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the transfer is exceeding the limits (daily and/or monthly) If the transfer exceeds the limits, the check returns false and the transfer is blocked otherwise it returns true. Agents bypass this compliance feature\",\"params\":{\"_from\":\"the address of the transfer sender\",\"_value\":\"the amount of tokens that `_from` would send to `_to`\"}},\"created(address,uint256)\":{\"details\":\"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_to\":\"The address of the receiver\"}},\"destroyed(address,uint256)\":{\"details\":\"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the receiver\"}},\"isTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"isTokenBound(address)\":{\"details\":\"See {ICompliance-isTokenBound}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"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.\"},\"setDailyLimit(uint256)\":{\"details\":\"Set the limit of tokens allowed to be transferred daily.\",\"params\":{\"_newDailyLimit\":\"The new daily limit of tokens Only the owner of the Compliance smart contract can call this function\"}},\"setMonthlyLimit(uint256)\":{\"details\":\"Set the limit of tokens allowed to be transferred monthly.\",\"params\":{\"_newMonthlyLimit\":\"The new monthly limit of tokens Only the owner of the Compliance smart contract can call this function\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferred(address,address,uint256)\":{\"details\":\"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"unbindToken(address)\":{\"details\":\"See {ICompliance-unbindToken}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"DailyLimitUpdated(uint256)\":{\"notice\":\"this event is emitted whenever a DailyLimit has been updated. the event is emitted by 'setDailyLimit' and by Compliance's constructor. `_newDailyLimit` is the amount Limit of tokens to be transferred daily.\"},\"MonthlyLimitUpdated(uint256)\":{\"notice\":\"this event is emitted whenever a MonthlyLimit has been updated. the event is emitted by 'setMonthlyLimit' and by Compliance's constructor. `_newMonthlyLimit` is the amount Limit of tokens to be transferred monthly.\"},\"TokenAgentAdded(address)\":{\"notice\":\"this event is emitted when the Agent has been added on the allowedList of this Compliance. the event is emitted by the Compliance constructor and by the addTokenAgent function `_agentAddress` is the address of the Agent to add\"},\"TokenAgentRemoved(address)\":{\"notice\":\"this event is emitted when the Agent has been removed from the agent list of this Compliance. the event is emitted by the Compliance constructor and by the removeTokenAgent function `_agentAddress` is the address of the Agent to remove\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"}},\"kind\":\"user\",\"methods\":{\"dailyLimit()\":{\"notice\":\"Getter for Tokens dailyLimit\"},\"monthlyLimit()\":{\"notice\":\"Getter for Tokens monthlyLimit\"},\"tokenBound()\":{\"notice\":\"Mapping of tokens linked to the compliance contract\"},\"usersCounters(address)\":{\"notice\":\"Mapping for users Counters\"}},\"notice\":\"this feature allows to put a limits on transfer volumes on a daily basis as well as on a monthly basis Investors will not be allowed to send more tokens than the fixed limit per day/month\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/legacy/features/DayMonthLimits.sol\":\"DayMonthLimits\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/legacy/BasicCompliance.sol\":{\"keccak256\":\"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d\",\"dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4\"]},\"contracts/erc3643/compliance/legacy/ICompliance.sol\":{\"keccak256\":\"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e\",\"dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV\"]},\"contracts/erc3643/compliance/legacy/features/DayMonthLimits.sol\":{\"keccak256\":\"0x52fcc802874cf61ae5d64c00f8458d792686b4e6c079ed782345fbed82ea7946\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://204a682500981129698bc8760c9ac490ffad5aa1ca0029dba46ee380fa3f655c\",\"dweb:/ipfs/QmNk1bKJECbHeY6GND29pRhjzcKErBpJR5YUCi65ZYV5MV\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_newDailyLimit","type":"uint256","indexed":false}],"type":"event","name":"DailyLimitUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_newMonthlyLimit","type":"uint256","indexed":false}],"type":"event","name":"MonthlyLimitUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenAgent"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"view","type":"function","name":"complianceCheckOnDayMonthLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[],"stateMutability":"view","type":"function","name":"dailyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"monthlyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"_newDailyLimit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDailyLimit"},{"inputs":[{"internalType":"uint256","name":"_newMonthlyLimit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMonthlyLimit"},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenBound","outputs":[{"internalType":"contract IToken","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"usersCounters","outputs":[{"internalType":"uint256","name":"dailyCount","type":"uint256"},{"internalType":"uint256","name":"monthlyCount","type":"uint256"},{"internalType":"uint256","name":"dailyTimer","type":"uint256"},{"internalType":"uint256","name":"monthlyTimer","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"addTokenAgent(address)":{"details":"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces"},"bindToken(address)":{"details":"See {ICompliance-bindToken}."},"canTransfer(address,address,uint256)":{"details":"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"complianceCheckOnDayMonthLimits(address,address,uint256)":{"details":"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the transfer is exceeding the limits (daily and/or monthly) If the transfer exceeds the limits, the check returns false and the transfer is blocked otherwise it returns true. Agents bypass this compliance feature","params":{"_from":"the address of the transfer sender","_value":"the amount of tokens that `_from` would send to `_to`"}},"created(address,uint256)":{"details":"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_to":"The address of the receiver"}},"destroyed(address,uint256)":{"details":"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the receiver"}},"isTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"isTokenBound(address)":{"details":"See {ICompliance-isTokenBound}."},"owner()":{"details":"Returns the address of the current owner."},"removeTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"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."},"setDailyLimit(uint256)":{"details":"Set the limit of tokens allowed to be transferred daily.","params":{"_newDailyLimit":"The new daily limit of tokens Only the owner of the Compliance smart contract can call this function"}},"setMonthlyLimit(uint256)":{"details":"Set the limit of tokens allowed to be transferred monthly.","params":{"_newMonthlyLimit":"The new monthly limit of tokens Only the owner of the Compliance smart contract can call this function"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"transferred(address,address,uint256)":{"details":"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"unbindToken(address)":{"details":"See {ICompliance-unbindToken}."}},"version":1},"userdoc":{"kind":"user","methods":{"dailyLimit()":{"notice":"Getter for Tokens dailyLimit"},"monthlyLimit()":{"notice":"Getter for Tokens monthlyLimit"},"tokenBound()":{"notice":"Mapping of tokens linked to the compliance contract"},"usersCounters(address)":{"notice":"Mapping for users Counters"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/legacy/features/DayMonthLimits.sol":"DayMonthLimits"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/legacy/BasicCompliance.sol":{"keccak256":"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305","urls":["bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d","dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/ICompliance.sol":{"keccak256":"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7","urls":["bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e","dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/features/DayMonthLimits.sol":{"keccak256":"0x52fcc802874cf61ae5d64c00f8458d792686b4e6c079ed782345fbed82ea7946","urls":["bzz-raw://204a682500981129698bc8760c9ac490ffad5aa1ca0029dba46ee380fa3f655c","dweb:/ipfs/QmNk1bKJECbHeY6GND29pRhjzcKErBpJR5YUCi65ZYV5MV"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":30} \ No newline at end of file diff --git a/out/DayMonthLimitsTest.sol/DayMonthLimitsTest.json b/out/DayMonthLimitsTest.sol/DayMonthLimitsTest.json new file mode 100644 index 0000000..fe6037e --- /dev/null +++ b/out/DayMonthLimitsTest.sol/DayMonthLimitsTest.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"complianceCheckOnDayMonthLimits","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"dailyLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenBound","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"monthlyLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDailyLimit","inputs":[{"name":"_newDailyLimit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMonthlyLimit","inputs":[{"name":"_newMonthlyLimit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tokenBound","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IToken"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"usersCounters","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"dailyCount","type":"uint256","internalType":"uint256"},{"name":"monthlyCount","type":"uint256","internalType":"uint256"},{"name":"dailyTimer","type":"uint256","internalType":"uint256"},{"name":"monthlyTimer","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DailyLimitUpdated","inputs":[{"name":"_newDailyLimit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MonthlyLimitUpdated","inputs":[{"name":"_newMonthlyLimit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentAdded","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentRemoved","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6111bf806100a56000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638baf29b4116100c3578063b20d30a91161007c578063b20d30a9146102dc578063cdde2932146102ef578063e46638e614610302578063f2fde38b14610315578063f3533c3514610328578063ff3e69541461033b57600080fd5b80638baf29b41461026b5780638d2ea772146102345780638da5cb5b1461027e57806393e62f07146102a357806397a6278e146102b6578063993e8b95146102c957600080fd5b806340db3b501161011557806340db3b501461020e5780635786cdd1146102215780635f8dead31461023457806367eeba0c14610247578063715018a61461025057806384e798421461025857600080fd5b80630a6005da146101525780631ffbb0641461016e578063346531fa146101915780633eb33f18146101a45780633ff5aa02146101f9575b600080fd5b61015b60055481565b6040519081526020015b60405180910390f35b61018161017c36600461101c565b61034e565b6040519015158152602001610165565b61018161019f36600461101c565b610361565b6101d96101b236600461101c565b60066020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610165565b61020c61020736600461101c565b61040a565b005b61020c61021c36600461101c565b6104f4565b61018161022f366004611039565b610616565b61020c61024236600461107a565b61075b565b61015b60045481565b61020c610783565b61020c61026636600461101c565b610797565b61020c610279366004611039565b610837565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610165565b60035461028b906001600160a01b031681565b61020c6102c436600461101c565b61086b565b6101816102d736600461101c565b61090b565b61020c6102ea3660046110a6565b61092b565b61020c6102fd36600461101c565b610968565b610181610310366004611039565b610a29565b61020c61032336600461101c565b610a4c565b61020c6103363660046110a6565b610a8a565b61020c61034936600461101c565b610ac7565b600061035b600183610b8c565b92915050565b6001600160a01b03811660009081526002602052604081205460ff161580156103f557506003546040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa1580156103cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f391906110bf565b155b1561040257506000919050565b506001919050565b3361041d6000546001600160a01b031690565b6001600160a01b0316148061044e57506003546001600160a01b031615801561044e5750336001600160a01b038216145b61049f5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c0000000060448201526064015b60405180910390fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b906020015b60405180910390a150565b336105076000546001600160a01b031690565b6001600160a01b031614806105245750336001600160a01b038216145b6105705760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c000000006044820152606401610496565b6003546001600160a01b038281169116146105cd5760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e640000000000000000006044820152606401610496565b600380546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a906020016104e9565b60008061062285610c0f565b905061062d85610361565b61074e57600454831115610645576000915050610754565b6001600160a01b038116600090815260066020526040902060020154421080156106c457506004546001600160a01b0382166000908152600660205260409020546106919085906110e1565b11806106c457506005546001600160a01b0382166000908152600660205260409020600101546106c29085906110e1565b115b156106d3576000915050610754565b6001600160a01b038116600090815260066020526040902060020154421015801561072457506005546001600160a01b03821660009081526006602052604090206001015461072290856110e1565b115b1561074e576001600160a01b03166000908152600660205260409020600301544210159050610754565b60019150505b9392505050565b610763610ce9565b61077f5760405162461bcd60e51b815260040161049690611102565b5050565b61078b610cf9565b6107956000610d26565b565b61079f610cf9565b6001600160a01b0381166107f55760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610496565b610800600182610d76565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b61083f610ce9565b61085b5760405162461bcd60e51b815260040161049690611102565b610866838383610df2565b505050565b610873610cf9565b6001600160a01b0381166108c95760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610496565b6108d4600182610dfc565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6003546000906001600160a01b0383811691161461040257506000919050565b610933610cf9565b60048190556040518181527f6cd8635c4285386b9de2e59a4c1eaf32ad41f28ae64c308280217d7af51464e0906020016104e9565b610970610cf9565b6001600160a01b03811660009081526002602052604090205460ff166109d85760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e74206973206e6f742072656769737465726564207965746044820152606401610496565b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f6a659bb87bb23efbdc295f8eed8ae8c4379bfb77660ced2ef0f3d7d26b05c6a691016104e9565b6000610a36848484610616565b610a4257506000610754565b5060019392505050565b610a54610cf9565b6001600160a01b038116610a7e57604051631e4fbdf760e01b815260006004820152602401610496565b610a8781610d26565b50565b610a92610cf9565b60058190556040518181527fa07146b9a6c51d225299132338965ae84effc4d198b875827574655eb59eb2a8906020016104e9565b610acf610cf9565b6001600160a01b03811660009081526002602052604090205460ff1615610b385760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e7420697320616c726561647920726567697374657265646044820152606401610496565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fd62c45e13ac30396aceb3ad37c89bd1ba9048032fe61679000e92eb93dbfd67d91016104e9565b60006001600160a01b038216610bef5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610496565b506001600160a01b03166000908152602091909152604090205460ff1690565b600354604080516304d3863d60e21b815290516000926001600160a01b03169163134e18f49160048083019260209291908290030181865afa158015610c59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7d919061116c565b604051633c3ad79560e21b81526001600160a01b038481166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610cc5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035b919061116c565b6000610cf43361090b565b905090565b6000546001600160a01b031633146107955760405163118cdaa760e01b8152336004820152602401610496565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610d808282610b8c565b15610dcd5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610496565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6108668382610e7e565b610e068282610b8c565b610e5c5760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610496565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6000610e8983610c0f565b9050610e9481610f5b565b610e9d81610faf565b6004546001600160a01b038216600090815260066020526040902054610ec49084906110e1565b11610ef7576001600160a01b03811660009081526006602052604081208054849290610ef19084906110e1565b90915550505b6005546001600160a01b038216600090815260066020526040902060010154610f219084906110e1565b11610866576001600160a01b03811660009081526006602052604081206001018054849290610f519084906110e1565b9091555050505050565b6001600160a01b0381166000908152600660205260409020600201544210610a8757610f8a42620151806110e1565b6001600160a01b03821660009081526006602052604081206002810192909255905550565b6001600160a01b0381166000908152600660205260409020600301544210610a8757610fde4262278d006110e1565b6001600160a01b0382166000908152600660205260408120600381019290925560019091015550565b6001600160a01b0381168114610a8757600080fd5b60006020828403121561102e57600080fd5b813561075481611007565b60008060006060848603121561104e57600080fd5b833561105981611007565b9250602084013561106981611007565b929592945050506040919091013590565b6000806040838503121561108d57600080fd5b823561109881611007565b946020939093013593505050565b6000602082840312156110b857600080fd5b5035919050565b6000602082840312156110d157600080fd5b8151801515811461075457600080fd5b8082018082111561035b57634e487b7160e01b600052601160045260246000fd5b60208082526044908201527f6572726f72203a20746869732061646472657373206973206e6f74206120746f60408201527f6b656e20626f756e6420746f2074686520636f6d706c69616e636520636f6e746060820152631c9858dd60e21b608082015260a00190565b60006020828403121561117e57600080fd5b81516107548161100756fea26469706673582212204e0a43d2f69724f88abc96a3ad3a970644578e5fa96d4b1701e08c01992b5bbb64736f6c63430008180033","sourceMap":"3884:987:37:-:0;;;;;;;;;;;;-1:-1:-1;4272:10:87;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;160:51:165;133:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;3884:987:37;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:165:-;3884:987:37;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80638baf29b4116100c3578063b20d30a91161007c578063b20d30a9146102dc578063cdde2932146102ef578063e46638e614610302578063f2fde38b14610315578063f3533c3514610328578063ff3e69541461033b57600080fd5b80638baf29b41461026b5780638d2ea772146102345780638da5cb5b1461027e57806393e62f07146102a357806397a6278e146102b6578063993e8b95146102c957600080fd5b806340db3b501161011557806340db3b501461020e5780635786cdd1146102215780635f8dead31461023457806367eeba0c14610247578063715018a61461025057806384e798421461025857600080fd5b80630a6005da146101525780631ffbb0641461016e578063346531fa146101915780633eb33f18146101a45780633ff5aa02146101f9575b600080fd5b61015b60055481565b6040519081526020015b60405180910390f35b61018161017c36600461101c565b61034e565b6040519015158152602001610165565b61018161019f36600461101c565b610361565b6101d96101b236600461101c565b60066020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610165565b61020c61020736600461101c565b61040a565b005b61020c61021c36600461101c565b6104f4565b61018161022f366004611039565b610616565b61020c61024236600461107a565b61075b565b61015b60045481565b61020c610783565b61020c61026636600461101c565b610797565b61020c610279366004611039565b610837565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610165565b60035461028b906001600160a01b031681565b61020c6102c436600461101c565b61086b565b6101816102d736600461101c565b61090b565b61020c6102ea3660046110a6565b61092b565b61020c6102fd36600461101c565b610968565b610181610310366004611039565b610a29565b61020c61032336600461101c565b610a4c565b61020c6103363660046110a6565b610a8a565b61020c61034936600461101c565b610ac7565b600061035b600183610b8c565b92915050565b6001600160a01b03811660009081526002602052604081205460ff161580156103f557506003546040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa1580156103cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f391906110bf565b155b1561040257506000919050565b506001919050565b3361041d6000546001600160a01b031690565b6001600160a01b0316148061044e57506003546001600160a01b031615801561044e5750336001600160a01b038216145b61049f5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c0000000060448201526064015b60405180910390fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b906020015b60405180910390a150565b336105076000546001600160a01b031690565b6001600160a01b031614806105245750336001600160a01b038216145b6105705760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c000000006044820152606401610496565b6003546001600160a01b038281169116146105cd5760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e640000000000000000006044820152606401610496565b600380546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a906020016104e9565b60008061062285610c0f565b905061062d85610361565b61074e57600454831115610645576000915050610754565b6001600160a01b038116600090815260066020526040902060020154421080156106c457506004546001600160a01b0382166000908152600660205260409020546106919085906110e1565b11806106c457506005546001600160a01b0382166000908152600660205260409020600101546106c29085906110e1565b115b156106d3576000915050610754565b6001600160a01b038116600090815260066020526040902060020154421015801561072457506005546001600160a01b03821660009081526006602052604090206001015461072290856110e1565b115b1561074e576001600160a01b03166000908152600660205260409020600301544210159050610754565b60019150505b9392505050565b610763610ce9565b61077f5760405162461bcd60e51b815260040161049690611102565b5050565b61078b610cf9565b6107956000610d26565b565b61079f610cf9565b6001600160a01b0381166107f55760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610496565b610800600182610d76565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b61083f610ce9565b61085b5760405162461bcd60e51b815260040161049690611102565b610866838383610df2565b505050565b610873610cf9565b6001600160a01b0381166108c95760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610496565b6108d4600182610dfc565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6003546000906001600160a01b0383811691161461040257506000919050565b610933610cf9565b60048190556040518181527f6cd8635c4285386b9de2e59a4c1eaf32ad41f28ae64c308280217d7af51464e0906020016104e9565b610970610cf9565b6001600160a01b03811660009081526002602052604090205460ff166109d85760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e74206973206e6f742072656769737465726564207965746044820152606401610496565b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f6a659bb87bb23efbdc295f8eed8ae8c4379bfb77660ced2ef0f3d7d26b05c6a691016104e9565b6000610a36848484610616565b610a4257506000610754565b5060019392505050565b610a54610cf9565b6001600160a01b038116610a7e57604051631e4fbdf760e01b815260006004820152602401610496565b610a8781610d26565b50565b610a92610cf9565b60058190556040518181527fa07146b9a6c51d225299132338965ae84effc4d198b875827574655eb59eb2a8906020016104e9565b610acf610cf9565b6001600160a01b03811660009081526002602052604090205460ff1615610b385760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e7420697320616c726561647920726567697374657265646044820152606401610496565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fd62c45e13ac30396aceb3ad37c89bd1ba9048032fe61679000e92eb93dbfd67d91016104e9565b60006001600160a01b038216610bef5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610496565b506001600160a01b03166000908152602091909152604090205460ff1690565b600354604080516304d3863d60e21b815290516000926001600160a01b03169163134e18f49160048083019260209291908290030181865afa158015610c59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7d919061116c565b604051633c3ad79560e21b81526001600160a01b038481166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610cc5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035b919061116c565b6000610cf43361090b565b905090565b6000546001600160a01b031633146107955760405163118cdaa760e01b8152336004820152602401610496565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610d808282610b8c565b15610dcd5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610496565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6108668382610e7e565b610e068282610b8c565b610e5c5760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610496565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6000610e8983610c0f565b9050610e9481610f5b565b610e9d81610faf565b6004546001600160a01b038216600090815260066020526040902054610ec49084906110e1565b11610ef7576001600160a01b03811660009081526006602052604081208054849290610ef19084906110e1565b90915550505b6005546001600160a01b038216600090815260066020526040902060010154610f219084906110e1565b11610866576001600160a01b03811660009081526006602052604081206001018054849290610f519084906110e1565b9091555050505050565b6001600160a01b0381166000908152600660205260409020600201544210610a8757610f8a42620151806110e1565b6001600160a01b03821660009081526006602052604081206002810192909255905550565b6001600160a01b0381166000908152600660205260409020600301544210610a8757610fde4262278d006110e1565b6001600160a01b0382166000908152600660205260408120600381019290925560019091015550565b6001600160a01b0381168114610a8757600080fd5b60006020828403121561102e57600080fd5b813561075481611007565b60008060006060848603121561104e57600080fd5b833561105981611007565b9250602084013561106981611007565b929592945050506040919091013590565b6000806040838503121561108d57600080fd5b823561109881611007565b946020939093013593505050565b6000602082840312156110b857600080fd5b5035919050565b6000602082840312156110d157600080fd5b8151801515811461075457600080fd5b8082018082111561035b57634e487b7160e01b600052601160045260246000fd5b60208082526044908201527f6572726f72203a20746869732061646472657373206973206e6f74206120746f60408201527f6b656e20626f756e6420746f2074686520636f6d706c69616e636520636f6e746060820152631c9858dd60e21b608082015260a00190565b60006020828403121561117e57600080fd5b81516107548161100756fea26469706673582212204e0a43d2f69724f88abc96a3ad3a970644578e5fa96d4b1701e08c01992b5bbb64736f6c63430008180033","sourceMap":"3884:987:37:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4435:27:30;;;;;;;;;160:25:165;;;148:2;133:18;4435:27:30;;;;;;;;4700:103:87;;;;;;:::i;:::-;;:::i;:::-;;;749:14:165;;742:22;724:41;;712:2;697:18;4700:103:87;584:187:165;6271:253:24;;;;;;:::i;:::-;;:::i;4504:56:30:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1007:25:165;;;1063:2;1048:18;;1041:34;;;;1091:18;;;1084:34;1149:2;1134:18;;1127:34;994:3;979:19;4504:56:30;776:391:165;5569:277:24;;;;;;:::i;:::-;;:::i;:::-;;5910:296;;;;;;:::i;:::-;;:::i;6598:780:30:-;;;;;;:::i;:::-;;:::i;4217:135:37:-;;;;;;:::i;:::-;;:::i;4364:25:30:-;;;;;;2293:101:141;;;:::i;4292:194:87:-;;;;;;:::i;:::-;;:::i;3994:161:37:-;;;;;;:::i;:::-;;:::i;1638:85:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;1638:85;;;-1:-1:-1;;;;;2117:32:165;;;2099:51;;2087:2;2072:18;1638:85:141;1953:203:165;4173:24:24;;;;;-1:-1:-1;;;;;4173:24:24;;;4492:202:87;;;;;;:::i;:::-;;:::i;6589:182:24:-;;;;;;:::i;:::-;;:::i;5396:158:30:-;;;;;;:::i;:::-;;:::i;5239:266:24:-;;;;;;:::i;:::-;;:::i;4626:243:37:-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;5791:170:30:-;;;;;;:::i;:::-;;:::i;4913:261:24:-;;;;;;:::i;:::-;;:::i;4700:103:87:-;4754:4;4777:19;:7;4789:6;4777:11;:19::i;:::-;4770:26;4700:103;-1:-1:-1;;4700:103:87:o;6271:253:24:-;-1:-1:-1;;;;;6367:31:24;;6346:4;6367:31;;;:16;:31;;;;;;;;6366:32;:92;;;;-1:-1:-1;6422:10:24;;6403:55;;-1:-1:-1;;;6403:55:24;;-1:-1:-1;;;;;2117:32:165;;;6403:55:24;;;2099:51:165;6422:10:24;;;;6403:40;;2072:18:165;;6403:55:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6402:56;6366:92;6362:135;;;-1:-1:-1;6481:5:24;;6271:253;-1:-1:-1;6271:253:24:o;6362:135::-;-1:-1:-1;6513:4:24;;6271:253;-1:-1:-1;6271:253:24:o;5569:277::-;5651:10;5640:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;5640:7:24;-1:-1:-1;;;;;5640:21:24;;:84;;;-1:-1:-1;5674:10:24;;-1:-1:-1;;;;;5674:10:24;5666:33;:57;;;;-1:-1:-1;5703:10:24;-1:-1:-1;;;;;5703:20:24;;;5666:57;5632:137;;;;-1:-1:-1;;;5632:137:24;;3054:2:165;5632:137:24;;;3036:21:165;3093:2;3073:18;;;3066:30;3132;3112:18;;;3105:58;3180:18;;5632:137:24;;;;;;;;;5779:10;:27;;-1:-1:-1;;;;;;5779:27:24;-1:-1:-1;;;;;5779:27:24;;;;;;;;5821:18;;2099:51:165;;;5821:18:24;;2087:2:165;2072:18;5821::24;;;;;;;;5569:277;:::o;5910:296::-;5994:10;5983:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;5983:7:24;-1:-1:-1;;;;;5983:21:24;;:45;;;-1:-1:-1;6008:10:24;-1:-1:-1;;;;;6008:20:24;;;5983:45;5975:87;;;;-1:-1:-1;;;5975:87:24;;3054:2:165;5975:87:24;;;3036:21:165;3093:2;3073:18;;;3066:30;3132;3112:18;;;3105:58;3180:18;;5975:87:24;2852:352:165;5975:87:24;6098:10;;-1:-1:-1;;;;;6080:29:24;;;6098:10;;6080:29;6072:65;;;;-1:-1:-1;;;6072:65:24;;3411:2:165;6072:65:24;;;3393:21:165;3450:2;3430:18;;;3423:30;3489:25;3469:18;;;3462:53;3532:18;;6072:65:24;3209:347:165;6072:65:24;6154:10;6147:17;;-1:-1:-1;;;;;;6147:17:24;;;6179:20;;-1:-1:-1;;;;;2117:32:165;;2099:51;;6179:20:24;;2087:2:165;2072:18;6179:20:24;1953:203:165;6598:780:30;6708:4;6724:22;6749:19;6762:5;6749:12;:19::i;:::-;6724:44;;6783:19;6796:5;6783:12;:19::i;:::-;6778:573;;6831:10;;6822:6;:19;6818:70;;;6868:5;6861:12;;;;;6818:70;-1:-1:-1;;;;;10825:24:30;;10801:4;10825:24;;;:13;:24;;;;;:35;;;10864:15;-1:-1:-1;10825:54:30;;6905:197;;-1:-1:-1;7006:10:30;;-1:-1:-1;;;;;6954:29:30;;;;;;:13;:29;;;;;:40;:49;;6997:6;;6954:49;:::i;:::-;:62;6953:148;;;-1:-1:-1;7088:12:30;;-1:-1:-1;;;;;7034:29:30;;;;;;:13;:29;;;;;:42;;;:51;;7079:6;;7034:51;:::i;:::-;:66;6953:148;6901:248;;;7129:5;7122:12;;;;;6901:248;-1:-1:-1;;;;;10825:24:30;;10801:4;10825:24;;;:13;:24;;;;;:35;;;10864:15;-1:-1:-1;10825:54:30;7166:100;;;;-1:-1:-1;7254:12:30;;-1:-1:-1;;;;;7209:29:30;;;;;;:13;:29;;;;;:42;;;7200:51;;:6;:51;:::i;:::-;:66;7166:100;7162:179;;;-1:-1:-1;;;;;11149:24:30;11125:4;11149:24;;;:13;:24;;;;;:37;;;11190:15;-1:-1:-1;11149:56:30;;-1:-1:-1;7286:40:30;;7162:179;7367:4;7360:11;;;6598:780;;;;;;:::o;4217:135:37:-;4348:10:24;:8;:10::i;:::-;4340:91;;;;-1:-1:-1;;;4340:91:24;;;;;;;:::i;:::-;4217:135:37;;:::o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;4292:194:87:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4361:20:87;::::1;4353:64;;;::::0;-1:-1:-1;;;4353:64:87;;4467:2:165;4353:64:87::1;::::0;::::1;4449:21:165::0;4506:2;4486:18;;;4479:30;4545:33;4525:18;;;4518:61;4596:18;;4353:64:87::1;4265:355:165::0;4353:64:87::1;4427:19;:7;4439:6:::0;4427:11:::1;:19::i;:::-;4461:18;::::0;-1:-1:-1;;;;;4461:18:87;::::1;::::0;::::1;::::0;;;::::1;4292:194:::0;:::o;3994:161:37:-;4348:10:24;:8;:10::i;:::-;4340:91;;;;-1:-1:-1;;;4340:91:24;;;;;;;:::i;:::-;4097:51:37::1;4129:5;4136:3;4141:6;4097:31;:51::i;:::-;3994:161:::0;;;:::o;4492:202:87:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4564:20:87;::::1;4556:64;;;::::0;-1:-1:-1;;;4556:64:87;;4467:2:165;4556:64:87::1;::::0;::::1;4449:21:165::0;4506:2;4486:18;;;4479:30;4545:33;4525:18;;;4518:61;4596:18;;4556:64:87::1;4265:355:165::0;4556:64:87::1;4630:22;:7;4645:6:::0;4630:14:::1;:22::i;:::-;4667:20;::::0;-1:-1:-1;;;;;4667:20:87;::::1;::::0;::::1;::::0;;;::::1;4492:202:::0;:::o;6589:182:24:-;6695:10;;6657:4;;-1:-1:-1;;;;;6677:29:24;;;6695:10;;6677:29;6673:71;;-1:-1:-1;6728:5:24;;6589:182;-1:-1:-1;6589:182:24:o;5396:158:30:-;1531:13:141;:11;:13::i;:::-;5472:10:30::1;:27:::0;;;5514:33:::1;::::0;160:25:165;;;5514:33:30::1;::::0;148:2:165;133:18;5514:33:30::1;14:177:165::0;5239:266:24;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;5334:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;5326:76;;;::::0;-1:-1:-1;;;5326:76:24;;4827:2:165;5326:76:24::1;::::0;::::1;4809:21:165::0;;;4846:18;;;4839:30;4905:34;4885:18;;;4878:62;4957:18;;5326:76:24::1;4625:356:165::0;5326:76:24::1;-1:-1:-1::0;;;;;5412:31:24;::::1;5446:5;5412:31:::0;;;:16:::1;:31;::::0;;;;;;;;:39;;-1:-1:-1;;5412:39:24::1;::::0;;5466:32;;2099:51:165;;;5466:32:24::1;::::0;2072:18:165;5466:32:24::1;1953:203:165::0;4626:243:37;4723:4;4744:51;4776:5;4783:3;4788:6;4744:31;:51::i;:::-;4739:103;;-1:-1:-1;4826:5:37;4819:12;;4739:103;-1:-1:-1;4858:4:37;4626:243;;;;;:::o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;2099:51:165::0;2072:18;;2672:31:141::1;1953:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;5791:170:30:-;1531:13:141;:11;:13::i;:::-;5871:12:30::1;:31:::0;;;5917:37:::1;::::0;160:25:165;;;5917:37:30::1;::::0;148:2:165;133:18;5917:37:30::1;14:177:165::0;4913:261:24;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;5006:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;5005:32;4997:77;;;::::0;-1:-1:-1;;;4997:77:24;;5188:2:165;4997:77:24::1;::::0;::::1;5170:21:165::0;;;5207:18;;;5200:30;5266:34;5246:18;;;5239:62;5318:18;;4997:77:24::1;4986:356:165::0;4997:77:24::1;-1:-1:-1::0;;;;;5084:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;;;;:38;;-1:-1:-1;;5084:38:24::1;5118:4;5084:38;::::0;;5137:30;;2099:51:165;;;5137:30:24::1;::::0;2072:18:165;5137:30:24::1;1953:203:165::0;4596:200:89;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;5549:2:165;4684:68:89;;;5531:21:165;5588:2;5568:18;;;5561:30;5627:34;5607:18;;;5600:62;-1:-1:-1;;;5678:18:165;;;5671:32;5720:19;;4684:68:89;5347:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;7226:161:24:-;7327:10;;:29;;;-1:-1:-1;;;7327:29:24;;;;7293:7;;-1:-1:-1;;;;;7327:10:24;;:27;;:29;;;;;;;;;;;;;;:10;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;;-1:-1:-1;;;7327:52:24;;-1:-1:-1;;;;;2117:32:165;;;7327:52:24;;;2099:51:165;7327:38:24;;;;;;;2072:18:165;;7327:52:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6897:97::-;6940:4;6963:24;6976:10;6963:12;:24::i;:::-;6956:31;;6897:97;:::o;1796:162:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;2099:51:165;2072:18;;1901:40:141;1953:203:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;4077:175:89:-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;6510:2:165;4145:63:89;;;6492:21:165;6549:2;6529:18;;;6522:30;6588:33;6568:18;;;6561:61;6639:18;;4145:63:89;6308:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;7759:147:30:-;7867:32;7885:5;7892:6;7867:17;:32::i;4327:180:89:-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;6870:2:165;4398:64:89;;;6852:21:165;6909:2;6889:18;;;6882:30;6948:34;6928:18;;;6921:62;-1:-1:-1;;;6999:18:165;;;6992:31;7040:19;;4398:64:89;6668:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;9249:508:30:-;9333:16;9352:26;9365:12;9352;:26::i;:::-;9333:45;;9388:29;9408:8;9388:19;:29::i;:::-;9427:31;9449:8;9427:21;:31::i;:::-;9521:10;;-1:-1:-1;;;;;9473:23:30;;;;;;:13;:23;;;;;:34;:43;;9510:6;;9473:43;:::i;:::-;9472:59;9468:134;;-1:-1:-1;;;;;9547:23:30;;;;;;:13;:23;;;;;:44;;9585:6;;9547:23;:44;;9585:6;;9547:44;:::i;:::-;;;;-1:-1:-1;;9468:134:30;9666:12;;-1:-1:-1;;;;;9616:23:30;;;;;;:13;:23;;;;;:36;;;:45;;9655:6;;9616:45;:::i;:::-;9615:63;9611:140;;-1:-1:-1;;;;;9694:23:30;;;;;;:13;:23;;;;;:36;;:46;;9734:6;;9694:23;:46;;9734:6;;9694:46;:::i;:::-;;;;-1:-1:-1;;9323:434:30;9249:508;;:::o;9910:244::-;-1:-1:-1;;;;;10825:24:30;;10801:4;10825:24;;;:13;:24;;;;;:35;;;10864:15;-1:-1:-1;9977:171:30;;10060:24;:15;10078:6;10060:24;:::i;:::-;-1:-1:-1;;;;;10022:24:30;;;;;;:13;:24;;;;;:35;;;:62;;;;10098:39;;9910:244;:::o;10314:253::-;-1:-1:-1;;;;;11149:24:30;;11125:4;11149:24;;;:13;:24;;;;;:37;;;11190:15;-1:-1:-1;10383:178:30;;10470:25;:15;10488:7;10470:25;:::i;:::-;-1:-1:-1;;;;;10430:24:30;;;;;;:13;:24;;;;;:37;;;:65;;;;10509:37;;;;:41;10314:253;:::o;196:131:165:-;-1:-1:-1;;;;;271:31:165;;261:42;;251:70;;317:1;314;307:12;332:247;391:6;444:2;432:9;423:7;419:23;415:32;412:52;;;460:1;457;450:12;412:52;499:9;486:23;518:31;543:5;518:31;:::i;1172:456::-;1249:6;1257;1265;1318:2;1306:9;1297:7;1293:23;1289:32;1286:52;;;1334:1;1331;1324:12;1286:52;1373:9;1360:23;1392:31;1417:5;1392:31;:::i;:::-;1442:5;-1:-1:-1;1499:2:165;1484:18;;1471:32;1512:33;1471:32;1512:33;:::i;:::-;1172:456;;1564:7;;-1:-1:-1;;;1618:2:165;1603:18;;;;1590:32;;1172:456::o;1633:315::-;1701:6;1709;1762:2;1750:9;1741:7;1737:23;1733:32;1730:52;;;1778:1;1775;1768:12;1730:52;1817:9;1804:23;1836:31;1861:5;1836:31;:::i;:::-;1886:5;1938:2;1923:18;;;;1910:32;;-1:-1:-1;;;1633:315:165:o;2385:180::-;2444:6;2497:2;2485:9;2476:7;2472:23;2468:32;2465:52;;;2513:1;2510;2503:12;2465:52;-1:-1:-1;2536:23:165;;2385:180;-1:-1:-1;2385:180:165:o;2570:277::-;2637:6;2690:2;2678:9;2669:7;2665:23;2661:32;2658:52;;;2706:1;2703;2696:12;2658:52;2738:9;2732:16;2791:5;2784:13;2777:21;2770:5;2767:32;2757:60;;2813:1;2810;2803:12;3561:222;3626:9;;;3647:10;;;3644:133;;;3699:10;3694:3;3690:20;3687:1;3680:31;3734:4;3731:1;3724:15;3762:4;3759:1;3752:15;3788:472;3990:2;3972:21;;;4029:2;4009:18;;;4002:30;4068:34;4063:2;4048:18;;4041:62;4139:34;4134:2;4119:18;;4112:62;-1:-1:-1;;;4205:3:165;4190:19;;4183:35;4250:3;4235:19;;3788:472::o;5750:278::-;5847:6;5900:2;5888:9;5879:7;5875:23;5871:32;5868:52;;;5916:1;5913;5906:12;5868:52;5948:9;5942:16;5967:31;5992:5;5967:31;:::i","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","addTokenAgent(address)":"ff3e6954","bindToken(address)":"3ff5aa02","canTransfer(address,address,uint256)":"e46638e6","complianceCheckOnDayMonthLimits(address,address,uint256)":"5786cdd1","created(address,uint256)":"5f8dead3","dailyLimit()":"67eeba0c","destroyed(address,uint256)":"8d2ea772","isAgent(address)":"1ffbb064","isTokenAgent(address)":"346531fa","isTokenBound(address)":"993e8b95","monthlyLimit()":"0a6005da","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","removeTokenAgent(address)":"cdde2932","renounceOwnership()":"715018a6","setDailyLimit(uint256)":"b20d30a9","setMonthlyLimit(uint256)":"f3533c35","tokenBound()":"93e62f07","transferOwnership(address)":"f2fde38b","transferred(address,address,uint256)":"8baf29b4","unbindToken(address)":"40db3b50","usersCounters(address)":"3eb33f18"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newDailyLimit\",\"type\":\"uint256\"}],\"name\":\"DailyLimitUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newMonthlyLimit\",\"type\":\"uint256\"}],\"name\":\"MonthlyLimitUpdated\",\"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\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"addTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"complianceCheckOnDayMonthLimits\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dailyLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"isTokenAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"monthlyLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"removeTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newDailyLimit\",\"type\":\"uint256\"}],\"name\":\"setDailyLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newMonthlyLimit\",\"type\":\"uint256\"}],\"name\":\"setMonthlyLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenBound\",\"outputs\":[{\"internalType\":\"contract IToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"usersCounters\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"dailyCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"monthlyCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dailyTimer\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"monthlyTimer\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addTokenAgent(address)\":{\"details\":\"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces\"},\"bindToken(address)\":{\"details\":\"See {ICompliance-bindToken}.\"},\"canTransfer(address,address,uint256)\":{\"details\":\"See {ICompliance-canTransfer}.\"},\"complianceCheckOnDayMonthLimits(address,address,uint256)\":{\"details\":\"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the transfer is exceeding the limits (daily and/or monthly) If the transfer exceeds the limits, the check returns false and the transfer is blocked otherwise it returns true. Agents bypass this compliance feature\",\"params\":{\"_from\":\"the address of the transfer sender\",\"_value\":\"the amount of tokens that `_from` would send to `_to`\"}},\"created(address,uint256)\":{\"details\":\"See {ICompliance-created}.\"},\"destroyed(address,uint256)\":{\"details\":\"See {ICompliance-destroyed}.\"},\"isTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"isTokenBound(address)\":{\"details\":\"See {ICompliance-isTokenBound}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"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.\"},\"setDailyLimit(uint256)\":{\"details\":\"Set the limit of tokens allowed to be transferred daily.\",\"params\":{\"_newDailyLimit\":\"The new daily limit of tokens Only the owner of the Compliance smart contract can call this function\"}},\"setMonthlyLimit(uint256)\":{\"details\":\"Set the limit of tokens allowed to be transferred monthly.\",\"params\":{\"_newMonthlyLimit\":\"The new monthly limit of tokens Only the owner of the Compliance smart contract can call this function\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferred(address,address,uint256)\":{\"details\":\"See {ICompliance-transferred}.\"},\"unbindToken(address)\":{\"details\":\"See {ICompliance-unbindToken}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"DailyLimitUpdated(uint256)\":{\"notice\":\"this event is emitted whenever a DailyLimit has been updated. the event is emitted by 'setDailyLimit' and by Compliance's constructor. `_newDailyLimit` is the amount Limit of tokens to be transferred daily.\"},\"MonthlyLimitUpdated(uint256)\":{\"notice\":\"this event is emitted whenever a MonthlyLimit has been updated. the event is emitted by 'setMonthlyLimit' and by Compliance's constructor. `_newMonthlyLimit` is the amount Limit of tokens to be transferred monthly.\"},\"TokenAgentAdded(address)\":{\"notice\":\"this event is emitted when the Agent has been added on the allowedList of this Compliance. the event is emitted by the Compliance constructor and by the addTokenAgent function `_agentAddress` is the address of the Agent to add\"},\"TokenAgentRemoved(address)\":{\"notice\":\"this event is emitted when the Agent has been removed from the agent list of this Compliance. the event is emitted by the Compliance constructor and by the removeTokenAgent function `_agentAddress` is the address of the Agent to remove\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"}},\"kind\":\"user\",\"methods\":{\"dailyLimit()\":{\"notice\":\"Getter for Tokens dailyLimit\"},\"monthlyLimit()\":{\"notice\":\"Getter for Tokens monthlyLimit\"},\"tokenBound()\":{\"notice\":\"Mapping of tokens linked to the compliance contract\"},\"usersCounters(address)\":{\"notice\":\"Mapping for users Counters\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/legacy/test/DayMonthLimitsTest.sol\":\"DayMonthLimitsTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/legacy/BasicCompliance.sol\":{\"keccak256\":\"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d\",\"dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4\"]},\"contracts/erc3643/compliance/legacy/ICompliance.sol\":{\"keccak256\":\"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e\",\"dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV\"]},\"contracts/erc3643/compliance/legacy/features/DayMonthLimits.sol\":{\"keccak256\":\"0x52fcc802874cf61ae5d64c00f8458d792686b4e6c079ed782345fbed82ea7946\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://204a682500981129698bc8760c9ac490ffad5aa1ca0029dba46ee380fa3f655c\",\"dweb:/ipfs/QmNk1bKJECbHeY6GND29pRhjzcKErBpJR5YUCi65ZYV5MV\"]},\"contracts/erc3643/compliance/legacy/test/DayMonthLimitsTest.sol\":{\"keccak256\":\"0xf208bc23988f0ccbc1a759b5fbda1b452c734060f3de432151c9f1b09ee8fd98\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3cd267f2f7148c1c3f50747eb06aa9aa8536f67f6a2a566381549ce56327c22a\",\"dweb:/ipfs/Qme2FuVKcGnpVbqz2SjWqYW4s8KySGs8CBmBmPnwJbc8xh\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_newDailyLimit","type":"uint256","indexed":false}],"type":"event","name":"DailyLimitUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_newMonthlyLimit","type":"uint256","indexed":false}],"type":"event","name":"MonthlyLimitUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenAgent"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"view","type":"function","name":"complianceCheckOnDayMonthLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[],"stateMutability":"view","type":"function","name":"dailyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"monthlyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"_newDailyLimit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDailyLimit"},{"inputs":[{"internalType":"uint256","name":"_newMonthlyLimit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMonthlyLimit"},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenBound","outputs":[{"internalType":"contract IToken","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"usersCounters","outputs":[{"internalType":"uint256","name":"dailyCount","type":"uint256"},{"internalType":"uint256","name":"monthlyCount","type":"uint256"},{"internalType":"uint256","name":"dailyTimer","type":"uint256"},{"internalType":"uint256","name":"monthlyTimer","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"addTokenAgent(address)":{"details":"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces"},"bindToken(address)":{"details":"See {ICompliance-bindToken}."},"canTransfer(address,address,uint256)":{"details":"See {ICompliance-canTransfer}."},"complianceCheckOnDayMonthLimits(address,address,uint256)":{"details":"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the transfer is exceeding the limits (daily and/or monthly) If the transfer exceeds the limits, the check returns false and the transfer is blocked otherwise it returns true. Agents bypass this compliance feature","params":{"_from":"the address of the transfer sender","_value":"the amount of tokens that `_from` would send to `_to`"}},"created(address,uint256)":{"details":"See {ICompliance-created}."},"destroyed(address,uint256)":{"details":"See {ICompliance-destroyed}."},"isTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"isTokenBound(address)":{"details":"See {ICompliance-isTokenBound}."},"owner()":{"details":"Returns the address of the current owner."},"removeTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"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."},"setDailyLimit(uint256)":{"details":"Set the limit of tokens allowed to be transferred daily.","params":{"_newDailyLimit":"The new daily limit of tokens Only the owner of the Compliance smart contract can call this function"}},"setMonthlyLimit(uint256)":{"details":"Set the limit of tokens allowed to be transferred monthly.","params":{"_newMonthlyLimit":"The new monthly limit of tokens Only the owner of the Compliance smart contract can call this function"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"transferred(address,address,uint256)":{"details":"See {ICompliance-transferred}."},"unbindToken(address)":{"details":"See {ICompliance-unbindToken}."}},"version":1},"userdoc":{"kind":"user","methods":{"dailyLimit()":{"notice":"Getter for Tokens dailyLimit"},"monthlyLimit()":{"notice":"Getter for Tokens monthlyLimit"},"tokenBound()":{"notice":"Mapping of tokens linked to the compliance contract"},"usersCounters(address)":{"notice":"Mapping for users Counters"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/legacy/test/DayMonthLimitsTest.sol":"DayMonthLimitsTest"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/legacy/BasicCompliance.sol":{"keccak256":"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305","urls":["bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d","dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/ICompliance.sol":{"keccak256":"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7","urls":["bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e","dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/features/DayMonthLimits.sol":{"keccak256":"0x52fcc802874cf61ae5d64c00f8458d792686b4e6c079ed782345fbed82ea7946","urls":["bzz-raw://204a682500981129698bc8760c9ac490ffad5aa1ca0029dba46ee380fa3f655c","dweb:/ipfs/QmNk1bKJECbHeY6GND29pRhjzcKErBpJR5YUCi65ZYV5MV"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/test/DayMonthLimitsTest.sol":{"keccak256":"0xf208bc23988f0ccbc1a759b5fbda1b452c734060f3de432151c9f1b09ee8fd98","urls":["bzz-raw://3cd267f2f7148c1c3f50747eb06aa9aa8536f67f6a2a566381549ce56327c22a","dweb:/ipfs/Qme2FuVKcGnpVbqz2SjWqYW4s8KySGs8CBmBmPnwJbc8xh"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":37} \ No newline at end of file diff --git a/out/DefaultCompliance.sol/DefaultCompliance.json b/out/DefaultCompliance.sol/DefaultCompliance.json new file mode 100644 index 0000000..76bbc21 --- /dev/null +++ b/out/DefaultCompliance.sol/DefaultCompliance.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenBound","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tokenBound","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IToken"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentAdded","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentRemoved","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610b5b806100a56000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80638d2ea772116100a2578063993e8b9511610071578063993e8b95146101fe578063cdde293214610211578063e46638e614610224578063f2fde38b1461023b578063ff3e69541461024e57600080fd5b80638d2ea772146101735780638da5cb5b146101b357806393e62f07146101d857806397a6278e146101eb57600080fd5b80635f8dead3116100de5780635f8dead314610173578063715018a61461018557806384e798421461018d5780638baf29b4146101a057600080fd5b80631ffbb06414610110578063346531fa146101385780633ff5aa021461014b57806340db3b5014610160575b600080fd5b61012361011e366004610a7b565b610261565b60405190151581526020015b60405180910390f35b610123610146366004610a7b565b610274565b61015e610159366004610a7b565b61031d565b005b61015e61016e366004610a7b565b610407565b61015e610181366004610a9d565b5050565b61015e610529565b61015e61019b366004610a7b565b61053d565b61015e6101ae366004610ac7565b505050565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161012f565b6003546101c0906001600160a01b031681565b61015e6101f9366004610a7b565b6105dd565b61012361020c366004610a7b565b61067d565b61015e61021f366004610a7b565b61069d565b610123610232366004610ac7565b60019392505050565b61015e610249366004610a7b565b61075e565b61015e61025c366004610a7b565b61079c565b600061026e600183610861565b92915050565b6001600160a01b03811660009081526002602052604081205460ff1615801561030857506003546040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa1580156102e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103069190610b03565b155b1561031557506000919050565b506001919050565b336103306000546001600160a01b031690565b6001600160a01b0316148061036157506003546001600160a01b03161580156103615750336001600160a01b038216145b6103b25760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c0000000060448201526064015b60405180910390fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b906020015b60405180910390a150565b3361041a6000546001600160a01b031690565b6001600160a01b031614806104375750336001600160a01b038216145b6104835760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c0000000060448201526064016103a9565b6003546001600160a01b038281169116146104e05760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e6400000000000000000060448201526064016103a9565b600380546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a906020016103fc565b6105316108e4565b61053b6000610911565b565b6105456108e4565b6001600160a01b03811661059b5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016103a9565b6105a6600182610961565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b6105e56108e4565b6001600160a01b03811661063b5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016103a9565b6106466001826109dd565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6003546000906001600160a01b0383811691161461031557506000919050565b6106a56108e4565b6001600160a01b03811660009081526002602052604090205460ff1661070d5760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e74206973206e6f7420726567697374657265642079657460448201526064016103a9565b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f6a659bb87bb23efbdc295f8eed8ae8c4379bfb77660ced2ef0f3d7d26b05c6a691016103fc565b6107666108e4565b6001600160a01b03811661079057604051631e4fbdf760e01b8152600060048201526024016103a9565b61079981610911565b50565b6107a46108e4565b6001600160a01b03811660009081526002602052604090205460ff161561080d5760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e7420697320616c7265616479207265676973746572656460448201526064016103a9565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fd62c45e13ac30396aceb3ad37c89bd1ba9048032fe61679000e92eb93dbfd67d91016103fc565b60006001600160a01b0382166108c45760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b60648201526084016103a9565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000546001600160a01b0316331461053b5760405163118cdaa760e01b81523360048201526024016103a9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61096b8282610861565b156109b85760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650060448201526064016103a9565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6109e78282610861565b610a3d5760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b60648201526084016103a9565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b80356001600160a01b0381168114610a7657600080fd5b919050565b600060208284031215610a8d57600080fd5b610a9682610a5f565b9392505050565b60008060408385031215610ab057600080fd5b610ab983610a5f565b946020939093013593505050565b600080600060608486031215610adc57600080fd5b610ae584610a5f565b9250610af360208501610a5f565b9150604084013590509250925092565b600060208284031215610b1557600080fd5b81518015158114610a9657600080fdfea2646970667358221220cef02e9bedfe06f5af99ae06856b6339e66a48fdfee080a0960f5553023d067064736f6c63430008180033","sourceMap":"3875:830:25:-:0;;;;;;;;;;;;-1:-1:-1;4272:10:87;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;160:51:165;133:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;3875:830:25;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:165:-;3875:830:25;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80638d2ea772116100a2578063993e8b9511610071578063993e8b95146101fe578063cdde293214610211578063e46638e614610224578063f2fde38b1461023b578063ff3e69541461024e57600080fd5b80638d2ea772146101735780638da5cb5b146101b357806393e62f07146101d857806397a6278e146101eb57600080fd5b80635f8dead3116100de5780635f8dead314610173578063715018a61461018557806384e798421461018d5780638baf29b4146101a057600080fd5b80631ffbb06414610110578063346531fa146101385780633ff5aa021461014b57806340db3b5014610160575b600080fd5b61012361011e366004610a7b565b610261565b60405190151581526020015b60405180910390f35b610123610146366004610a7b565b610274565b61015e610159366004610a7b565b61031d565b005b61015e61016e366004610a7b565b610407565b61015e610181366004610a9d565b5050565b61015e610529565b61015e61019b366004610a7b565b61053d565b61015e6101ae366004610ac7565b505050565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161012f565b6003546101c0906001600160a01b031681565b61015e6101f9366004610a7b565b6105dd565b61012361020c366004610a7b565b61067d565b61015e61021f366004610a7b565b61069d565b610123610232366004610ac7565b60019392505050565b61015e610249366004610a7b565b61075e565b61015e61025c366004610a7b565b61079c565b600061026e600183610861565b92915050565b6001600160a01b03811660009081526002602052604081205460ff1615801561030857506003546040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa1580156102e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103069190610b03565b155b1561031557506000919050565b506001919050565b336103306000546001600160a01b031690565b6001600160a01b0316148061036157506003546001600160a01b03161580156103615750336001600160a01b038216145b6103b25760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c0000000060448201526064015b60405180910390fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b906020015b60405180910390a150565b3361041a6000546001600160a01b031690565b6001600160a01b031614806104375750336001600160a01b038216145b6104835760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c0000000060448201526064016103a9565b6003546001600160a01b038281169116146104e05760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e6400000000000000000060448201526064016103a9565b600380546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a906020016103fc565b6105316108e4565b61053b6000610911565b565b6105456108e4565b6001600160a01b03811661059b5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016103a9565b6105a6600182610961565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b6105e56108e4565b6001600160a01b03811661063b5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016103a9565b6106466001826109dd565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6003546000906001600160a01b0383811691161461031557506000919050565b6106a56108e4565b6001600160a01b03811660009081526002602052604090205460ff1661070d5760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e74206973206e6f7420726567697374657265642079657460448201526064016103a9565b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f6a659bb87bb23efbdc295f8eed8ae8c4379bfb77660ced2ef0f3d7d26b05c6a691016103fc565b6107666108e4565b6001600160a01b03811661079057604051631e4fbdf760e01b8152600060048201526024016103a9565b61079981610911565b50565b6107a46108e4565b6001600160a01b03811660009081526002602052604090205460ff161561080d5760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e7420697320616c7265616479207265676973746572656460448201526064016103a9565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fd62c45e13ac30396aceb3ad37c89bd1ba9048032fe61679000e92eb93dbfd67d91016103fc565b60006001600160a01b0382166108c45760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b60648201526084016103a9565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000546001600160a01b0316331461053b5760405163118cdaa760e01b81523360048201526024016103a9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61096b8282610861565b156109b85760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650060448201526064016103a9565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6109e78282610861565b610a3d5760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b60648201526084016103a9565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b80356001600160a01b0381168114610a7657600080fd5b919050565b600060208284031215610a8d57600080fd5b610a9682610a5f565b9392505050565b60008060408385031215610ab057600080fd5b610ab983610a5f565b946020939093013593505050565b600080600060608486031215610adc57600080fd5b610ae584610a5f565b9250610af360208501610a5f565b9150604084013590509250925092565b600060208284031215610b1557600080fd5b81518015158114610a9657600080fdfea2646970667358221220cef02e9bedfe06f5af99ae06856b6339e66a48fdfee080a0960f5553023d067064736f6c63430008180033","sourceMap":"3875:830:25:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4700:103:87;;;;;;:::i;:::-;;:::i;:::-;;;548:14:165;;541:22;523:41;;511:2;496:18;4700:103:87;;;;;;;;6271:253:24;;;;;;:::i;:::-;;:::i;5569:277::-;;;;;;:::i;:::-;;:::i;:::-;;5910:296;;;;;;:::i;:::-;;:::i;4235:71:25:-;;;;;;:::i;:::-;;;;2293:101:141;;;:::i;4292:194:87:-;;;;;;:::i;:::-;;:::i;4034:90:25:-;;;;;;:::i;:::-;;;;;1638:85:141;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;1638:85;;;-1:-1:-1;;;;;1331:32:165;;;1313:51;;1301:2;1286:18;1638:85:141;1167:203:165;4173:24:24;;;;;-1:-1:-1;;;;;4173:24:24;;;4492:202:87;;;;;;:::i;:::-;;:::i;6589:182:24:-;;;;;;:::i;:::-;;:::i;5239:266::-;;;;;;:::i;:::-;;:::i;4560:143:25:-;;;;;;:::i;:::-;4692:4;4560:143;;;;;;2543:215:141;;;;;;:::i;:::-;;:::i;4913:261:24:-;;;;;;:::i;:::-;;:::i;4700:103:87:-;4754:4;4777:19;:7;4789:6;4777:11;:19::i;:::-;4770:26;4700:103;-1:-1:-1;;4700:103:87:o;6271:253:24:-;-1:-1:-1;;;;;6367:31:24;;6346:4;6367:31;;;:16;:31;;;;;;;;6366:32;:92;;;;-1:-1:-1;6422:10:24;;6403:55;;-1:-1:-1;;;6403:55:24;;-1:-1:-1;;;;;1331:32:165;;;6403:55:24;;;1313:51:165;6422:10:24;;;;6403:40;;1286:18:165;;6403:55:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6402:56;6366:92;6362:135;;;-1:-1:-1;6481:5:24;;6271:253;-1:-1:-1;6271:253:24:o;6362:135::-;-1:-1:-1;6513:4:24;;6271:253;-1:-1:-1;6271:253:24:o;5569:277::-;5651:10;5640:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;5640:7:24;-1:-1:-1;;;;;5640:21:24;;:84;;;-1:-1:-1;5674:10:24;;-1:-1:-1;;;;;5674:10:24;5666:33;:57;;;;-1:-1:-1;5703:10:24;-1:-1:-1;;;;;5703:20:24;;;5666:57;5632:137;;;;-1:-1:-1;;;5632:137:24;;2083:2:165;5632:137:24;;;2065:21:165;2122:2;2102:18;;;2095:30;2161;2141:18;;;2134:58;2209:18;;5632:137:24;;;;;;;;;5779:10;:27;;-1:-1:-1;;;;;;5779:27:24;-1:-1:-1;;;;;5779:27:24;;;;;;;;5821:18;;1313:51:165;;;5821:18:24;;1301:2:165;1286:18;5821::24;;;;;;;;5569:277;:::o;5910:296::-;5994:10;5983:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;5983:7:24;-1:-1:-1;;;;;5983:21:24;;:45;;;-1:-1:-1;6008:10:24;-1:-1:-1;;;;;6008:20:24;;;5983:45;5975:87;;;;-1:-1:-1;;;5975:87:24;;2083:2:165;5975:87:24;;;2065:21:165;2122:2;2102:18;;;2095:30;2161;2141:18;;;2134:58;2209:18;;5975:87:24;1881:352:165;5975:87:24;6098:10;;-1:-1:-1;;;;;6080:29:24;;;6098:10;;6080:29;6072:65;;;;-1:-1:-1;;;6072:65:24;;2440:2:165;6072:65:24;;;2422:21:165;2479:2;2459:18;;;2452:30;2518:25;2498:18;;;2491:53;2561:18;;6072:65:24;2238:347:165;6072:65:24;6154:10;6147:17;;-1:-1:-1;;;;;;6147:17:24;;;6179:20;;-1:-1:-1;;;;;1331:32:165;;1313:51;;6179:20:24;;1301:2:165;1286:18;6179:20:24;1167:203:165;2293:101:141;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;4292:194:87:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4361:20:87;::::1;4353:64;;;::::0;-1:-1:-1;;;4353:64:87;;2792:2:165;4353:64:87::1;::::0;::::1;2774:21:165::0;2831:2;2811:18;;;2804:30;2870:33;2850:18;;;2843:61;2921:18;;4353:64:87::1;2590:355:165::0;4353:64:87::1;4427:19;:7;4439:6:::0;4427:11:::1;:19::i;:::-;4461:18;::::0;-1:-1:-1;;;;;4461:18:87;::::1;::::0;::::1;::::0;;;::::1;4292:194:::0;:::o;4492:202::-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4564:20:87;::::1;4556:64;;;::::0;-1:-1:-1;;;4556:64:87;;2792:2:165;4556:64:87::1;::::0;::::1;2774:21:165::0;2831:2;2811:18;;;2804:30;2870:33;2850:18;;;2843:61;2921:18;;4556:64:87::1;2590:355:165::0;4556:64:87::1;4630:22;:7;4645:6:::0;4630:14:::1;:22::i;:::-;4667:20;::::0;-1:-1:-1;;;;;4667:20:87;::::1;::::0;::::1;::::0;;;::::1;4492:202:::0;:::o;6589:182:24:-;6695:10;;6657:4;;-1:-1:-1;;;;;6677:29:24;;;6695:10;;6677:29;6673:71;;-1:-1:-1;6728:5:24;;6589:182;-1:-1:-1;6589:182:24:o;5239:266::-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;5334:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;5326:76;;;::::0;-1:-1:-1;;;5326:76:24;;3152:2:165;5326:76:24::1;::::0;::::1;3134:21:165::0;;;3171:18;;;3164:30;3230:34;3210:18;;;3203:62;3282:18;;5326:76:24::1;2950:356:165::0;5326:76:24::1;-1:-1:-1::0;;;;;5412:31:24;::::1;5446:5;5412:31:::0;;;:16:::1;:31;::::0;;;;;;;;:39;;-1:-1:-1;;5412:39:24::1;::::0;;5466:32;;1313:51:165;;;5466:32:24::1;::::0;1286:18:165;5466:32:24::1;1167:203:165::0;2543:215:141;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;1313:51:165::0;1286:18;;2672:31:141::1;1167:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;4913:261:24:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;5006:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;5005:32;4997:77;;;::::0;-1:-1:-1;;;4997:77:24;;3513:2:165;4997:77:24::1;::::0;::::1;3495:21:165::0;;;3532:18;;;3525:30;3591:34;3571:18;;;3564:62;3643:18;;4997:77:24::1;3311:356:165::0;4997:77:24::1;-1:-1:-1::0;;;;;5084:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;;;;:38;;-1:-1:-1;;5084:38:24::1;5118:4;5084:38;::::0;;5137:30;;1313:51:165;;;5137:30:24::1;::::0;1286:18:165;5137:30:24::1;1167:203:165::0;4596:200:89;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;3874:2:165;4684:68:89;;;3856:21:165;3913:2;3893:18;;;3886:30;3952:34;3932:18;;;3925:62;-1:-1:-1;;;4003:18:165;;;3996:32;4045:19;;4684:68:89;3672:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;1796:162:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;1313:51:165;1286:18;;1901:40:141;1167:203:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;4077:175:89:-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;4277:2:165;4145:63:89;;;4259:21:165;4316:2;4296:18;;;4289:30;4355:33;4335:18;;;4328:61;4406:18;;4145:63:89;4075:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;4327:180::-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;4637:2:165;4398:64:89;;;4619:21:165;4676:2;4656:18;;;4649:30;4715:34;4695:18;;;4688:62;-1:-1:-1;;;4766:18:165;;;4759:31;4807:19;;4398:64:89;4435:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;14:173:165:-;82:20;;-1:-1:-1;;;;;131:31:165;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:165:o;575:254::-;643:6;651;704:2;692:9;683:7;679:23;675:32;672:52;;;720:1;717;710:12;672:52;743:29;762:9;743:29;:::i;:::-;733:39;819:2;804:18;;;;791:32;;-1:-1:-1;;;575:254:165:o;834:328::-;911:6;919;927;980:2;968:9;959:7;955:23;951:32;948:52;;;996:1;993;986:12;948:52;1019:29;1038:9;1019:29;:::i;:::-;1009:39;;1067:38;1101:2;1090:9;1086:18;1067:38;:::i;:::-;1057:48;;1152:2;1141:9;1137:18;1124:32;1114:42;;834:328;;;;;:::o;1599:277::-;1666:6;1719:2;1707:9;1698:7;1694:23;1690:32;1687:52;;;1735:1;1732;1725:12;1687:52;1767:9;1761:16;1820:5;1813:13;1806:21;1799:5;1796:32;1786:60;;1842:1;1839;1832:12","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","addTokenAgent(address)":"ff3e6954","bindToken(address)":"3ff5aa02","canTransfer(address,address,uint256)":"e46638e6","created(address,uint256)":"5f8dead3","destroyed(address,uint256)":"8d2ea772","isAgent(address)":"1ffbb064","isTokenAgent(address)":"346531fa","isTokenBound(address)":"993e8b95","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","removeTokenAgent(address)":"cdde2932","renounceOwnership()":"715018a6","tokenBound()":"93e62f07","transferOwnership(address)":"f2fde38b","transferred(address,address,uint256)":"8baf29b4","unbindToken(address)":"40db3b50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"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\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"addTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"isTokenAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"removeTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenBound\",\"outputs\":[{\"internalType\":\"contract IToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addTokenAgent(address)\":{\"details\":\"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces\"},\"bindToken(address)\":{\"details\":\"See {ICompliance-bindToken}.\"},\"canTransfer(address,address,uint256)\":{\"details\":\"See {ICompliance-canTransfer}.\"},\"created(address,uint256)\":{\"details\":\"See {ICompliance-created}.\"},\"destroyed(address,uint256)\":{\"details\":\"See {ICompliance-destroyed}.\"},\"isTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"isTokenBound(address)\":{\"details\":\"See {ICompliance-isTokenBound}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"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.\"},\"transferred(address,address,uint256)\":{\"details\":\"See {ICompliance-transferred}.\"},\"unbindToken(address)\":{\"details\":\"See {ICompliance-unbindToken}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"TokenAgentAdded(address)\":{\"notice\":\"this event is emitted when the Agent has been added on the allowedList of this Compliance. the event is emitted by the Compliance constructor and by the addTokenAgent function `_agentAddress` is the address of the Agent to add\"},\"TokenAgentRemoved(address)\":{\"notice\":\"this event is emitted when the Agent has been removed from the agent list of this Compliance. the event is emitted by the Compliance constructor and by the removeTokenAgent function `_agentAddress` is the address of the Agent to remove\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"}},\"kind\":\"user\",\"methods\":{\"tokenBound()\":{\"notice\":\"Mapping of tokens linked to the compliance contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/legacy/DefaultCompliance.sol\":\"DefaultCompliance\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/legacy/BasicCompliance.sol\":{\"keccak256\":\"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d\",\"dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4\"]},\"contracts/erc3643/compliance/legacy/DefaultCompliance.sol\":{\"keccak256\":\"0x7db92b6092fc754bda29f84c5f7933efaf45959ab994d6ad884fb3512150917b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d504662fabdc237299bf1804374a6f1dec162e818842acea4531259b218d560e\",\"dweb:/ipfs/QmYjwc2ew7EQ3biVpzCWG3fMvmw31he4de26vXeJe3P1LS\"]},\"contracts/erc3643/compliance/legacy/ICompliance.sol\":{\"keccak256\":\"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e\",\"dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenAgent"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenBound","outputs":[{"internalType":"contract IToken","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"}],"devdoc":{"kind":"dev","methods":{"addTokenAgent(address)":{"details":"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces"},"bindToken(address)":{"details":"See {ICompliance-bindToken}."},"canTransfer(address,address,uint256)":{"details":"See {ICompliance-canTransfer}."},"created(address,uint256)":{"details":"See {ICompliance-created}."},"destroyed(address,uint256)":{"details":"See {ICompliance-destroyed}."},"isTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"isTokenBound(address)":{"details":"See {ICompliance-isTokenBound}."},"owner()":{"details":"Returns the address of the current owner."},"removeTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"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."},"transferred(address,address,uint256)":{"details":"See {ICompliance-transferred}."},"unbindToken(address)":{"details":"See {ICompliance-unbindToken}."}},"version":1},"userdoc":{"kind":"user","methods":{"tokenBound()":{"notice":"Mapping of tokens linked to the compliance contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/legacy/DefaultCompliance.sol":"DefaultCompliance"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/legacy/BasicCompliance.sol":{"keccak256":"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305","urls":["bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d","dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/DefaultCompliance.sol":{"keccak256":"0x7db92b6092fc754bda29f84c5f7933efaf45959ab994d6ad884fb3512150917b","urls":["bzz-raw://d504662fabdc237299bf1804374a6f1dec162e818842acea4531259b218d560e","dweb:/ipfs/QmYjwc2ew7EQ3biVpzCWG3fMvmw31he4de26vXeJe3P1LS"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/ICompliance.sol":{"keccak256":"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7","urls":["bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e","dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":25} \ No newline at end of file diff --git a/out/ECDSA.sol/ECDSA.json b/out/ECDSA.sol/ECDSA.json new file mode 100644 index 0000000..dc9d28c --- /dev/null +++ b/out/ECDSA.sol/ECDSA.json @@ -0,0 +1 @@ +{"abi":[{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200788e465956ce2ab8e2ee11957d9e7222027b089ff957daacf959c131cbc5f0564736f6c63430008180033","sourceMap":"344:7386:156:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;344:7386:156;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200788e465956ce2ab8e2ee11957d9e7222027b089ff957daacf959c131cbc5f0564736f6c63430008180033","sourceMap":"344:7386:156:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Elliptic Curve Digital Signature Algorithm (ECDSA) operations. These functions can be used to verify that a message was signed by the holder of the private keys of a given address.\",\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":\"ECDSA\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol":"ECDSA"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"}},"version":1},"id":156} \ No newline at end of file diff --git a/out/ERC165.sol/ERC165.json b/out/ERC165.sol/ERC165.json new file mode 100644 index 0000000..92a8b17 --- /dev/null +++ b/out/ERC165.sol/ERC165.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":"ERC165"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":158} \ No newline at end of file diff --git a/out/ERC20.sol/ERC20.json b/out/ERC20.sol/ERC20.json new file mode 100644 index 0000000..5a95fd3 --- /dev/null +++ b/out/ERC20.sol/ERC20.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"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\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"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\":{\"author\":\"Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)\",\"details\":\"Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Modern and gas efficient ERC20 + EIP-2612 implementation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc4626/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc4626/ERC20.sol\":{\"keccak256\":\"0x33fe85bf9c3a26cc53c74f425a248df6664a2c85c7b872ce9567a8b785619879\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://b42e32a0a88263829f727e8cc5efae644c89db3ad3900daad3918aa75bea756f\",\"dweb:/ipfs/QmQC7KSYBVuNnojtMrJ99rcSsfBhBAK5wSjuTVjANxLvCB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc4626/ERC20.sol":"ERC20"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc4626/ERC20.sol":{"keccak256":"0x33fe85bf9c3a26cc53c74f425a248df6664a2c85c7b872ce9567a8b785619879","urls":["bzz-raw://b42e32a0a88263829f727e8cc5efae644c89db3ad3900daad3918aa75bea756f","dweb:/ipfs/QmQC7KSYBVuNnojtMrJ99rcSsfBhBAK5wSjuTVjANxLvCB"],"license":"AGPL-3.0-only"}},"version":1},"id":99} \ No newline at end of file diff --git a/out/ERC20/ERC20.sol/ERC20.json b/out/ERC20/ERC20.sol/ERC20.json new file mode 100644 index 0000000..6f912fc --- /dev/null +++ b/out/ERC20/ERC20.sol/ERC20.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"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\":\"value\",\"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\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"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\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"constructor":{"details":"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol":"ERC20"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80","urls":["bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229","dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":143} \ No newline at end of file diff --git a/out/ERC20/IERC20.sol/IERC20.json b/out/ERC20/IERC20.sol/IERC20.json new file mode 100644 index 0000000..97308e1 --- /dev/null +++ b/out/ERC20/IERC20.sol/IERC20.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"value\",\"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\":\"value\",\"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\":\"value\",\"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 a `value` amount of tokens 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 value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of 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 a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` 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\":{\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"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 a `value` amount of tokens 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 value of tokens owned by `account`."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of 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 a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` 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":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":"IERC20"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"}},"version":1},"id":144} \ No newline at end of file diff --git a/out/ERC20Pausable.sol/ERC20Pausable.json b/out/ERC20Pausable.sol/ERC20Pausable.json new file mode 100644 index 0000000..405abb5 --- /dev/null +++ b/out/ERC20Pausable.sol/ERC20Pausable.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","paused()":"5c975abb","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"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\":\"value\",\"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\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC20 token with pausable token transfers, minting and burning. Useful for scenarios such as preventing trades until the end of an evaluation period, or having an emergency switch for freezing all token transfers in the event of a large bug. IMPORTANT: This contract does not include public pause and unpause functions. In addition to inheriting this contract, you must define both functions, invoking the {Pausable-_pause} and {Pausable-_unpause} internal functions, with appropriate access control, e.g. using {AccessControl} or {Ownable}. Not doing so will make the contract pause mechanism of the contract unreachable, and thus unusable.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}]},\"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.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol\":\"ERC20Pausable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol\":{\"keccak256\":\"0xb18c53aecf95e53339972e3d496a56c42e6b60a03a49ce8e6a37d3bd9d5d0a67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a8e54b0924a1acd92806a843998568d6bec01798c550bc440a85cfcd9cfba99\",\"dweb:/ipfs/QmZ26Y3ibYPbCRVB65NAQrGBF1UKDEu2fB8CHHMhYbBqmV\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"name()":{"details":"Returns the name of the token."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol":"ERC20Pausable"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80","urls":["bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229","dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol":{"keccak256":"0xb18c53aecf95e53339972e3d496a56c42e6b60a03a49ce8e6a37d3bd9d5d0a67","urls":["bzz-raw://4a8e54b0924a1acd92806a843998568d6bec01798c550bc440a85cfcd9cfba99","dweb:/ipfs/QmZ26Y3ibYPbCRVB65NAQrGBF1UKDEu2fB8CHHMhYbBqmV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Pausable.sol":{"keccak256":"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd","urls":["bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc","dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc"],"license":"MIT"}},"version":1},"id":145} \ No newline at end of file diff --git a/out/ERC721.sol/ERC721.json b/out/ERC721.sol/ERC721.json new file mode 100644 index 0000000..7bb2635 --- /dev/null +++ b/out/ERC721.sol/ERC721.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"constructor":{"details":"Initializes the contract by setting a `name` and a `symbol` to the token collection."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol":"ERC721"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784","urls":["bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd","dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"}},"version":1},"id":147} \ No newline at end of file diff --git a/out/ERC721/IERC721.sol/IERC721.json b/out/ERC721/IERC721.sol/IERC721.json new file mode 100644 index 0000000..c5b08fc --- /dev/null +++ b/out/ERC721/IERC721.sol/IERC721.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":"IERC721"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":148} \ No newline at end of file diff --git a/out/Exchange.sol/Exchange.json b/out/Exchange.sol/Exchange.json new file mode 100644 index 0000000..688f213 --- /dev/null +++ b/out/Exchange.sol/Exchange.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_tokenA","type":"address","internalType":"address"},{"name":"_tokenB","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"buyOrders","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"price","type":"uint256","internalType":"uint256"},{"name":"volume","type":"uint256","internalType":"uint256"},{"name":"trader","type":"address","internalType":"address"},{"name":"next","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cancelOrder","inputs":[{"name":"orderId","type":"uint256","internalType":"uint256"},{"name":"isBuyOrder","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"currentOrderId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"firstBuyOrderId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"firstSellOrderId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"placeBuyOrder","inputs":[{"name":"price","type":"uint256","internalType":"uint256"},{"name":"volume","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"placeSellOrder","inputs":[{"name":"price","type":"uint256","internalType":"uint256"},{"name":"volume","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"sellOrders","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"price","type":"uint256","internalType":"uint256"},{"name":"volume","type":"uint256","internalType":"uint256"},{"name":"trader","type":"address","internalType":"address"},{"name":"next","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokenA","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"tokenB","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Deposit","inputs":[{"name":"trader","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NewOrder","inputs":[{"name":"isBuy","type":"bool","indexed":false,"internalType":"bool"},{"name":"orderId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"trader","type":"address","indexed":false,"internalType":"address"},{"name":"price","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"volume","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OrderCanceled","inputs":[{"name":"isBuy","type":"bool","indexed":false,"internalType":"bool"},{"name":"orderId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"trader","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Trade","inputs":[{"name":"tradedVolume","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"price","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"buyer","type":"address","indexed":true,"internalType":"address"},{"name":"seller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"trader","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162001a2b38038062001a2b833981016040819052620000349162000087565b60016008819055600080546001600160a01b03199081166001600160a01b039586161790915581541691909216179055620000bf565b80516001600160a01b03811681146200008257600080fd5b919050565b600080604083850312156200009b57600080fd5b620000a6836200006a565b9150620000b6602084016200006a565b90509250929050565b61195c80620000cf6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063925931fc1161008c578063ee36d4ab11610066578063ee36d4ab1461022c578063f3fef3a31461023f578063f7888aec14610252578063f88d20471461027d57600080fd5b8063925931fc14610207578063a4406bcd14610210578063bb110bf91461022357600080fd5b80630fc63d10146100d457806335cea2881461010457806347e7ef241461017e5780634a8393f3146101935780635f64b55b146101dd57806372fb0777146101f0575b600080fd5b6000546100e7906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61014d610112366004611631565b60026020819052600091825260409091208054600182015492820154600383015460049093015491939290916001600160a01b039091169085565b604080519586526020860194909452928401919091526001600160a01b03166060830152608082015260a0016100fb565b61019161018c366004611666565b610290565b005b61014d6101a1366004611631565b6003602081905260009182526040909120805460018201546002830154938301546004909301549193909290916001600160a01b039091169085565b6001546100e7906001600160a01b031681565b6101f960065481565b6040519081526020016100fb565b6101f960075481565b6101f961021e366004611690565b61035c565b6101f960055481565b6101f961023a366004611690565b610460565b61019161024d366004611666565b6105e3565b6101f96102603660046116b2565b600460209081526000928352604080842090915290825290205481565b61019161028b3660046116f6565b6106df565b61029861085b565b6000546001600160a01b03838116911614806102c157506001546001600160a01b038381169116145b6103025760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b60448201526064015b60405180910390fd5b600081116103435760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b60448201526064016102f9565b61034e338383610885565b6103586001600855565b5050565b600061036661085b565b600083116103a65760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420507269636560981b60448201526064016102f9565b600082116103e75760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420566f6c756d6560901b60448201526064016102f9565b33600090815260046020908152604080832083546001600160a01b0316845290915290205482111561042b5760405162461bcd60e51b81526004016102f990611726565b6000610438338585610987565b9050801561044b5761044b338583610c11565b505060075461045a6001600855565b92915050565b600061046a61085b565b600083116104aa5760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420507269636560981b60448201526064016102f9565b600082116104eb5760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420566f6c756d6560901b60448201526064016102f9565b60008054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561053c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105609190611752565b61056b90600a611876565b6105759083611885565b61057f90846118a7565b3360009081526004602090815260408083206001546001600160a01b0316845290915290205410156105c35760405162461bcd60e51b81526004016102f990611726565b60006105d0338585610d97565b9050801561044b5761044b338583611047565b6105eb61085b565b6000546001600160a01b038381169116148061061457506001546001600160a01b038381169116145b6106505760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b60448201526064016102f9565b600081116106915760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b60448201526064016102f9565b3360009081526004602090815260408083206001600160a01b03861684529091529020548111156106d45760405162461bcd60e51b81526004016102f990611726565b61034e33838361125b565b6106e761085b565b600081610701576000838152600360205260409020610710565b60008381526002602052604090205b60038101549091506001600160a01b03166107635760405162461bcd60e51b81526020600482015260136024820152724f7264657220646f206e6f742065786973747360681b60448201526064016102f9565b60038101546001600160a01b031633146107d45760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c7920746865206f726465722063726561746f722063616e2063616e636560448201526b36103a3434b99037b93232b960a11b60648201526084016102f9565b60008160020154116108345760405162461bcd60e51b8152602060048201526024808201527f4f7264657220616c72656164792063616e63656c6c6564206f722066756c66696044820152631b1b195960e21b60648201526084016102f9565b81610847576108428161134e565b610850565b61085081611476565b506103586001600855565b60026008540361087e57604051633ee5aeb560e01b815260040160405180910390fd5b6002600855565b6040516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018390528316906323b872dd906064016020604051808303816000875af11580156108da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fe91906118be565b506001600160a01b038084166000908152600460209081526040808320938616835292905290812080548392906109369084906118db565b9091555050604080516001600160a01b038481168252602082018490528516917f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f6291015b60405180910390a2505050565b600554600080546040805163313ce56760e01b8152905192939284926001600160a01b03169163313ce5679160048083019260209291908290030181865afa1580156109d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fb9190611752565b60ff1690505b8115801590610a105750600084115b15610c0657600082815260026020526040902060018101548611610bfa57600085826002015410610a415785610a47565b81600201545b905086610a5584600a6118ee565b610a5f9083611885565b610a6990826118a7565b6001600160a01b03808b16600090815260046020908152604080832060015490941683529290529081208054909190610aa39084906118db565b90915550506001600160a01b03808a166000908152600460209081526040808320835490941683529290529081208054849290610ae19084906118fa565b909155505060038301546001600160a01b039081166000908152600460209081526040808320835490941683529290529081208054849290610b249084906118db565b90915550610b34905082886118fa565b965081836002016000828254610b4a91906118fa565b9091555050600183015460038401546040805185815260208101939093526001600160a01b03918216908301528a16907f83cc6330e30db670fe04b07b602bd9cba4da39e5037267131b5d60cecba29f619060600160405180910390a28260020154600003610bf35760048084015460009687526002602081905260408820888155600181018990559081018890556003810180546001600160a01b0319169055909101959095555b5050610c00565b50610c06565b50610a01565b506005555092915050565b60078054906000610c218361190d565b909155505060065460005b8115801590610c4b575060008281526003602052604090206001015484115b15610c69575060008181526003602052604090206004015490610c2c565b6040805160a08101825260075480825260208083018881528385018881526001600160a01b038b811660608701818152608088018b8152600097885260038088528a892099518a55955160018a0155935160028901555193870180546001600160a01b03191694831694909417909355905160049586015590835292815283822082549093168252919091529081208054859290610d089084906118fa565b9091555050600754604080516000815260208101929092526001600160a01b038716828201526060820186905260808201859052517f286a2d7a29403e4e0f090c310eeb9b565090f3731608308fe263443ca910e9d59181900360a00190a180600003610d7a57600754600655610d90565b6007546000828152600360205260409020600401555b5050505050565b600654600080546040805163313ce56760e01b8152905192939284926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0b9190611752565b60ff1690505b8115801590610e205750600084115b1561103c5760008281526003602052604090206001810154861061103057600085826002015410610e515785610e57565b81600201545b6001830154909150610e6a84600a6118ee565b610e749083611885565b610e7e90826118a7565b6001600160a01b03808b16600090815260046020908152604080832060015490941683529290529081208054909190610eb89084906118fa565b90915550506001600160a01b03808a166000908152600460209081526040808320835490941683529290529081208054849290610ef69084906118db565b90915550610f07905084600a6118ee565b610f119083611885565b610f1b90826118a7565b60038401546001600160a01b03908116600090815260046020908152604080832060015490941683529290529081208054909190610f5a9084906118db565b90915550610f6a905082886118fa565b965081836002016000828254610f8091906118fa565b9091555050600183015460038401546040805185815260208101939093526001600160a01b03918216908301528a16907f83cc6330e30db670fe04b07b602bd9cba4da39e5037267131b5d60cecba29f619060600160405180910390a282600201546000036110295760048084015460009687526003602081905260408820888155600181018990556002810189905590810180546001600160a01b0319169055909101959095555b5050611036565b5061103c565b50610e11565b506006555092915050565b600780549060006110578361190d565b909155505060055460005b8115801590611081575060008281526002602052604090206001015484105b1561109f575060008181526002602052604090206004015490611062565b6040805160a08101825260075480825260208083018881528385018881526001600160a01b038b811660608701908152608087018a815260009687526002808752898820985189559451600189015592519387019390935591516003860180546001600160a01b031916918416919091179055516004948501559154845163313ce56760e01b8152945192169363313ce5679381810193918290030181865afa158015611150573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111749190611752565b61117f90600a611876565b6111899084611885565b61119390856118a7565b6001600160a01b038087166000908152600460209081526040808320600154909416835292905290812080549091906111cd9084906118fa565b9091555050600754604080516001815260208101929092526001600160a01b038716828201526060820186905260808201859052517f286a2d7a29403e4e0f090c310eeb9b565090f3731608308fe263443ca910e9d59181900360a00190a18060000361123f57600754600555610d90565b6007546000828152600260205260409020600401555050505050565b6001600160a01b038084166000908152600460209081526040808320938616835292905290812080548392906112929084906118fa565b909155505060405163a9059cbb60e01b81526001600160a01b0384811660048301526024820183905283169063a9059cbb906044016020604051808303816000875af11580156112e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130a91906118be565b50604080516001600160a01b038481168252602082018490528516917f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb910161097a565b6006548154036113655760048101546006556113ea565b60065460009081526003602052604090205b81546004820154146113e05780600401546000036113c95760405162461bcd60e51b815260206004820152600f60248201526e13dc99195c881b9bdd08199bdd5b99608a1b60448201526064016102f9565b600401546000908152600360205260409020611377565b6004808301549101555b600281015460038201546001600160a01b03908116600090815260046020908152604080832083549094168352929052908120805490919061142d9084906118db565b9091555050600060028201819055815460405191825233917fcfa919375acf04933787aa7f7b25d71adf2e92839529dad777b47ff2cd0827a4906020015b60405180910390a350565b60055481540361148d576004810154600555611512565b60055460009081526002602052604090205b81546004820154146115085780600401546000036114f15760405162461bcd60e51b815260206004820152600f60248201526e13dc99195c881b9bdd08199bdd5b99608a1b60448201526064016102f9565b60040154600090815260026020526040902061149f565b6004808301549101555b60008054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611563573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115879190611752565b61159290600a611876565b81600201546115a19190611885565b81600101546115b091906118a7565b60038201546001600160a01b039081166000908152600460209081526040808320600154909416835292905290812080549091906115ef9084906118db565b9091555050600060028201558054604051600181523391907fcfa919375acf04933787aa7f7b25d71adf2e92839529dad777b47ff2cd0827a49060200161146b565b60006020828403121561164357600080fd5b5035919050565b80356001600160a01b038116811461166157600080fd5b919050565b6000806040838503121561167957600080fd5b6116828361164a565b946020939093013593505050565b600080604083850312156116a357600080fd5b50508035926020909101359150565b600080604083850312156116c557600080fd5b6116ce8361164a565b91506116dc6020840161164a565b90509250929050565b80151581146116f357600080fd5b50565b6000806040838503121561170957600080fd5b82359150602083013561171b816116e5565b809150509250929050565b6020808252601290820152714e6f7420656e6f7567682062616c616e636560701b604082015260600190565b60006020828403121561176457600080fd5b815160ff8116811461177557600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117cd5781600019048211156117b3576117b361177c565b808516156117c057918102915b93841c9390800290611797565b509250929050565b6000826117e45750600161045a565b816117f15750600061045a565b816001811461180757600281146118115761182d565b600191505061045a565b60ff8411156118225761182261177c565b50506001821b61045a565b5060208310610133831016604e8410600b8410161715611850575081810a61045a565b61185a8383611792565b806000190482111561186e5761186e61177c565b029392505050565b600061177560ff8416836117d5565b6000826118a257634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761045a5761045a61177c565b6000602082840312156118d057600080fd5b8151611775816116e5565b8082018082111561045a5761045a61177c565b600061177583836117d5565b8181038181111561045a5761045a61177c565b60006001820161191f5761191f61177c565b506001019056fea26469706673582212208077200d6f8bb9cc5fa48f1e43ac34d2e1ea00c6a79c8b0cfe0f27d4c487927964736f6c63430008180033","sourceMap":"201:3688:130:-:0;;;409:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1713:1:154;1917:7;:21;;;465:6:130;:16;;-1:-1:-1;;;;;;465:16:130;;;-1:-1:-1;;;;;465:16:130;;;;;;;491;;;;;;;;;;201:3688;;14:177:165;93:13;;-1:-1:-1;;;;;135:31:165;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;:::-;201:3688:130;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063925931fc1161008c578063ee36d4ab11610066578063ee36d4ab1461022c578063f3fef3a31461023f578063f7888aec14610252578063f88d20471461027d57600080fd5b8063925931fc14610207578063a4406bcd14610210578063bb110bf91461022357600080fd5b80630fc63d10146100d457806335cea2881461010457806347e7ef241461017e5780634a8393f3146101935780635f64b55b146101dd57806372fb0777146101f0575b600080fd5b6000546100e7906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61014d610112366004611631565b60026020819052600091825260409091208054600182015492820154600383015460049093015491939290916001600160a01b039091169085565b604080519586526020860194909452928401919091526001600160a01b03166060830152608082015260a0016100fb565b61019161018c366004611666565b610290565b005b61014d6101a1366004611631565b6003602081905260009182526040909120805460018201546002830154938301546004909301549193909290916001600160a01b039091169085565b6001546100e7906001600160a01b031681565b6101f960065481565b6040519081526020016100fb565b6101f960075481565b6101f961021e366004611690565b61035c565b6101f960055481565b6101f961023a366004611690565b610460565b61019161024d366004611666565b6105e3565b6101f96102603660046116b2565b600460209081526000928352604080842090915290825290205481565b61019161028b3660046116f6565b6106df565b61029861085b565b6000546001600160a01b03838116911614806102c157506001546001600160a01b038381169116145b6103025760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b60448201526064015b60405180910390fd5b600081116103435760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b60448201526064016102f9565b61034e338383610885565b6103586001600855565b5050565b600061036661085b565b600083116103a65760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420507269636560981b60448201526064016102f9565b600082116103e75760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420566f6c756d6560901b60448201526064016102f9565b33600090815260046020908152604080832083546001600160a01b0316845290915290205482111561042b5760405162461bcd60e51b81526004016102f990611726565b6000610438338585610987565b9050801561044b5761044b338583610c11565b505060075461045a6001600855565b92915050565b600061046a61085b565b600083116104aa5760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420507269636560981b60448201526064016102f9565b600082116104eb5760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420566f6c756d6560901b60448201526064016102f9565b60008054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561053c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105609190611752565b61056b90600a611876565b6105759083611885565b61057f90846118a7565b3360009081526004602090815260408083206001546001600160a01b0316845290915290205410156105c35760405162461bcd60e51b81526004016102f990611726565b60006105d0338585610d97565b9050801561044b5761044b338583611047565b6105eb61085b565b6000546001600160a01b038381169116148061061457506001546001600160a01b038381169116145b6106505760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b60448201526064016102f9565b600081116106915760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b60448201526064016102f9565b3360009081526004602090815260408083206001600160a01b03861684529091529020548111156106d45760405162461bcd60e51b81526004016102f990611726565b61034e33838361125b565b6106e761085b565b600081610701576000838152600360205260409020610710565b60008381526002602052604090205b60038101549091506001600160a01b03166107635760405162461bcd60e51b81526020600482015260136024820152724f7264657220646f206e6f742065786973747360681b60448201526064016102f9565b60038101546001600160a01b031633146107d45760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c7920746865206f726465722063726561746f722063616e2063616e636560448201526b36103a3434b99037b93232b960a11b60648201526084016102f9565b60008160020154116108345760405162461bcd60e51b8152602060048201526024808201527f4f7264657220616c72656164792063616e63656c6c6564206f722066756c66696044820152631b1b195960e21b60648201526084016102f9565b81610847576108428161134e565b610850565b61085081611476565b506103586001600855565b60026008540361087e57604051633ee5aeb560e01b815260040160405180910390fd5b6002600855565b6040516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018390528316906323b872dd906064016020604051808303816000875af11580156108da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fe91906118be565b506001600160a01b038084166000908152600460209081526040808320938616835292905290812080548392906109369084906118db565b9091555050604080516001600160a01b038481168252602082018490528516917f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f6291015b60405180910390a2505050565b600554600080546040805163313ce56760e01b8152905192939284926001600160a01b03169163313ce5679160048083019260209291908290030181865afa1580156109d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fb9190611752565b60ff1690505b8115801590610a105750600084115b15610c0657600082815260026020526040902060018101548611610bfa57600085826002015410610a415785610a47565b81600201545b905086610a5584600a6118ee565b610a5f9083611885565b610a6990826118a7565b6001600160a01b03808b16600090815260046020908152604080832060015490941683529290529081208054909190610aa39084906118db565b90915550506001600160a01b03808a166000908152600460209081526040808320835490941683529290529081208054849290610ae19084906118fa565b909155505060038301546001600160a01b039081166000908152600460209081526040808320835490941683529290529081208054849290610b249084906118db565b90915550610b34905082886118fa565b965081836002016000828254610b4a91906118fa565b9091555050600183015460038401546040805185815260208101939093526001600160a01b03918216908301528a16907f83cc6330e30db670fe04b07b602bd9cba4da39e5037267131b5d60cecba29f619060600160405180910390a28260020154600003610bf35760048084015460009687526002602081905260408820888155600181018990559081018890556003810180546001600160a01b0319169055909101959095555b5050610c00565b50610c06565b50610a01565b506005555092915050565b60078054906000610c218361190d565b909155505060065460005b8115801590610c4b575060008281526003602052604090206001015484115b15610c69575060008181526003602052604090206004015490610c2c565b6040805160a08101825260075480825260208083018881528385018881526001600160a01b038b811660608701818152608088018b8152600097885260038088528a892099518a55955160018a0155935160028901555193870180546001600160a01b03191694831694909417909355905160049586015590835292815283822082549093168252919091529081208054859290610d089084906118fa565b9091555050600754604080516000815260208101929092526001600160a01b038716828201526060820186905260808201859052517f286a2d7a29403e4e0f090c310eeb9b565090f3731608308fe263443ca910e9d59181900360a00190a180600003610d7a57600754600655610d90565b6007546000828152600360205260409020600401555b5050505050565b600654600080546040805163313ce56760e01b8152905192939284926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0b9190611752565b60ff1690505b8115801590610e205750600084115b1561103c5760008281526003602052604090206001810154861061103057600085826002015410610e515785610e57565b81600201545b6001830154909150610e6a84600a6118ee565b610e749083611885565b610e7e90826118a7565b6001600160a01b03808b16600090815260046020908152604080832060015490941683529290529081208054909190610eb89084906118fa565b90915550506001600160a01b03808a166000908152600460209081526040808320835490941683529290529081208054849290610ef69084906118db565b90915550610f07905084600a6118ee565b610f119083611885565b610f1b90826118a7565b60038401546001600160a01b03908116600090815260046020908152604080832060015490941683529290529081208054909190610f5a9084906118db565b90915550610f6a905082886118fa565b965081836002016000828254610f8091906118fa565b9091555050600183015460038401546040805185815260208101939093526001600160a01b03918216908301528a16907f83cc6330e30db670fe04b07b602bd9cba4da39e5037267131b5d60cecba29f619060600160405180910390a282600201546000036110295760048084015460009687526003602081905260408820888155600181018990556002810189905590810180546001600160a01b0319169055909101959095555b5050611036565b5061103c565b50610e11565b506006555092915050565b600780549060006110578361190d565b909155505060055460005b8115801590611081575060008281526002602052604090206001015484105b1561109f575060008181526002602052604090206004015490611062565b6040805160a08101825260075480825260208083018881528385018881526001600160a01b038b811660608701908152608087018a815260009687526002808752898820985189559451600189015592519387019390935591516003860180546001600160a01b031916918416919091179055516004948501559154845163313ce56760e01b8152945192169363313ce5679381810193918290030181865afa158015611150573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111749190611752565b61117f90600a611876565b6111899084611885565b61119390856118a7565b6001600160a01b038087166000908152600460209081526040808320600154909416835292905290812080549091906111cd9084906118fa565b9091555050600754604080516001815260208101929092526001600160a01b038716828201526060820186905260808201859052517f286a2d7a29403e4e0f090c310eeb9b565090f3731608308fe263443ca910e9d59181900360a00190a18060000361123f57600754600555610d90565b6007546000828152600260205260409020600401555050505050565b6001600160a01b038084166000908152600460209081526040808320938616835292905290812080548392906112929084906118fa565b909155505060405163a9059cbb60e01b81526001600160a01b0384811660048301526024820183905283169063a9059cbb906044016020604051808303816000875af11580156112e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130a91906118be565b50604080516001600160a01b038481168252602082018490528516917f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb910161097a565b6006548154036113655760048101546006556113ea565b60065460009081526003602052604090205b81546004820154146113e05780600401546000036113c95760405162461bcd60e51b815260206004820152600f60248201526e13dc99195c881b9bdd08199bdd5b99608a1b60448201526064016102f9565b600401546000908152600360205260409020611377565b6004808301549101555b600281015460038201546001600160a01b03908116600090815260046020908152604080832083549094168352929052908120805490919061142d9084906118db565b9091555050600060028201819055815460405191825233917fcfa919375acf04933787aa7f7b25d71adf2e92839529dad777b47ff2cd0827a4906020015b60405180910390a350565b60055481540361148d576004810154600555611512565b60055460009081526002602052604090205b81546004820154146115085780600401546000036114f15760405162461bcd60e51b815260206004820152600f60248201526e13dc99195c881b9bdd08199bdd5b99608a1b60448201526064016102f9565b60040154600090815260026020526040902061149f565b6004808301549101555b60008054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611563573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115879190611752565b61159290600a611876565b81600201546115a19190611885565b81600101546115b091906118a7565b60038201546001600160a01b039081166000908152600460209081526040808320600154909416835292905290812080549091906115ef9084906118db565b9091555050600060028201558054604051600181523391907fcfa919375acf04933787aa7f7b25d71adf2e92839529dad777b47ff2cd0827a49060200161146b565b60006020828403121561164357600080fd5b5035919050565b80356001600160a01b038116811461166157600080fd5b919050565b6000806040838503121561167957600080fd5b6116828361164a565b946020939093013593505050565b600080604083850312156116a357600080fd5b50508035926020909101359150565b600080604083850312156116c557600080fd5b6116ce8361164a565b91506116dc6020840161164a565b90509250929050565b80151581146116f357600080fd5b50565b6000806040838503121561170957600080fd5b82359150602083013561171b816116e5565b809150509250929050565b6020808252601290820152714e6f7420656e6f7567682062616c616e636560701b604082015260600190565b60006020828403121561176457600080fd5b815160ff8116811461177557600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117cd5781600019048211156117b3576117b361177c565b808516156117c057918102915b93841c9390800290611797565b509250929050565b6000826117e45750600161045a565b816117f15750600061045a565b816001811461180757600281146118115761182d565b600191505061045a565b60ff8411156118225761182261177c565b50506001821b61045a565b5060208310610133831016604e8410600b8410161715611850575081810a61045a565b61185a8383611792565b806000190482111561186e5761186e61177c565b029392505050565b600061177560ff8416836117d5565b6000826118a257634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761045a5761045a61177c565b6000602082840312156118d057600080fd5b8151611775816116e5565b8082018082111561045a5761045a61177c565b600061177583836117d5565b8181038181111561045a5761045a61177c565b60006001820161191f5761191f61177c565b506001019056fea26469706673582212208077200d6f8bb9cc5fa48f1e43ac34d2e1ea00c6a79c8b0cfe0f27d4c487927964736f6c63430008180033","sourceMap":"201:3688:130:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;203:21:132;;;;;-1:-1:-1;;;;;203:21:132;;;;;;-1:-1:-1;;;;;178:32:165;;;160:51;;148:2;133:18;203:21:132;;;;;;;;257:42;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;257:42:132;;;;;;;;;;666:25:165;;;722:2;707:18;;700:34;;;;750:18;;;743:34;;;;-1:-1:-1;;;;;813:32:165;808:2;793:18;;786:60;877:3;862:19;;855:35;653:3;638:19;257:42:132;407:489:165;2325:238:130;;;;;;:::i;:::-;;:::i;:::-;;305:43:132;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;305:43:132;;;;;;230:21;;;;;-1:-1:-1;;;;;230:21:132;;;460:31;;;;;;;;;1484:25:165;;;1472:2;1457:18;460:31:132;1338:177:165;497:29:132;;;;;;1506:489:130;;;;;;:::i;:::-;;:::i;424:30:132:-;;;;;;744:529:130;;;;;;:::i;:::-;;:::i;2805:324::-;;;;;;:::i;:::-;;:::i;354:64:132:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;3385:502:130;;;;;;:::i;:::-;;:::i;2325:238::-;2356:21:154;:19;:21::i;:::-;2420:6:130::1;::::0;-1:-1:-1;;;;;2411:15:130;;::::1;2420:6:::0;::::1;2411:15;::::0;:34:::1;;-1:-1:-1::0;2439:6:130::1;::::0;-1:-1:-1;;;;;2430:15:130;;::::1;2439:6:::0;::::1;2430:15;2411:34;2403:60;;;::::0;-1:-1:-1;;;2403:60:130;;2677:2:165;2403:60:130::1;::::0;::::1;2659:21:165::0;2716:2;2696:18;;;2689:30;-1:-1:-1;;;2735:18:165;;;2728:43;2788:18;;2403:60:130::1;;;;;;;;;2490:1;2481:6;:10;2473:37;;;::::0;-1:-1:-1;;;2473:37:130;;3019:2:165;2473:37:130::1;::::0;::::1;3001:21:165::0;3058:2;3038:18;;;3031:30;-1:-1:-1;;;3077:18:165;;;3070:44;3131:18;;2473:37:130::1;2817:338:165::0;2473:37:130::1;2521:35;2530:10;2542:5;2549:6;2521:8;:35::i;:::-;2398:20:154::0;1713:1;2924:7;:21;2744:208;2398:20;2325:238:130;;:::o;1506:489::-;1589:7;2356:21:154;:19;:21::i;:::-;1624:1:130::1;1616:5;:9;1608:35;;;::::0;-1:-1:-1;;;1608:35:130;;3362:2:165;1608:35:130::1;::::0;::::1;3344:21:165::0;3401:2;3381:18;;;3374:30;-1:-1:-1;;;3420:18:165;;;3413:43;3473:18;;1608:35:130::1;3160:337:165::0;1608:35:130::1;1670:1;1661:6;:10;1653:37;;;::::0;-1:-1:-1;;;1653:37:130;;3704:2:165;1653:37:130::1;::::0;::::1;3686:21:165::0;3743:2;3723:18;;;3716:30;-1:-1:-1;;;3762:18:165;;;3755:44;3816:18;;1653:37:130::1;3502:338:165::0;1653:37:130::1;1718:10;1708:21;::::0;;;:9:::1;:21;::::0;;;;;;;1730:6;;-1:-1:-1;;;;;1730:6:130::1;1708:29:::0;;;;;;;;:39;-1:-1:-1;1708:39:130::1;1700:70;;;;-1:-1:-1::0;;;1700:70:130::1;;;;;;;:::i;:::-;1782:20;1806:42;1822:10;1834:5;1841:6;1806:15;:42::i;:::-;1781:67:::0;-1:-1:-1;1863:16:130;;1859:95:::1;;1894:49;1911:10;1923:5;1930:12;1894:16;:49::i;:::-;-1:-1:-1::0;;1974:14:130::1;::::0;2398:20:154;1713:1;2924:7;:21;2744:208;2398:20;1506:489:130;;;;:::o;744:529::-;826:7;2356:21:154;:19;:21::i;:::-;861:1:130::1;853:5;:9;845:35;;;::::0;-1:-1:-1;;;845:35:130;;3362:2:165;845:35:130::1;::::0;::::1;3344:21:165::0;3401:2;3381:18;;;3374:30;-1:-1:-1;;;3420:18:165;;;3413:43;3473:18;;845:35:130::1;3160:337:165::0;845:35:130::1;907:1;898:6;:10;890:37;;;::::0;-1:-1:-1;;;890:37:130;;3704:2:165;890:37:130::1;::::0;::::1;3686:21:165::0;3743:2;3723:18;;;3716:30;-1:-1:-1;;;3762:18:165;;;3755:44;3816:18;;890:37:130::1;3502:338:165::0;890:37:130::1;1008:6;::::0;::::1;;;;;;-1:-1:-1::0;;;;;1008:6:130::1;-1:-1:-1::0;;;;;1002:22:130::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;996:30;::::0;:2:::1;:30;:::i;:::-;987:39;::::0;:6;:39:::1;:::i;:::-;978:49;::::0;:5;:49:::1;:::i;:::-;955:10;945:21;::::0;;;:9:::1;:21;::::0;;;;;;;967:6:::1;::::0;-1:-1:-1;;;;;967:6:130::1;945:29:::0;;;;;;;;:82:::1;;937:113;;;;-1:-1:-1::0;;;937:113:130::1;;;;;;;:::i;:::-;1062:20;1086:43;1103:10;1115:5;1122:6;1086:16;:43::i;:::-;1061:68:::0;-1:-1:-1;1144:16:130;;1140:95:::1;;1176:48;1192:10;1204:5;1211:12;1176:15;:48::i;2805:324::-:0;2356:21:154;:19;:21::i;:::-;2901:6:130::1;::::0;-1:-1:-1;;;;;2892:15:130;;::::1;2901:6:::0;::::1;2892:15;::::0;:34:::1;;-1:-1:-1::0;2920:6:130::1;::::0;-1:-1:-1;;;;;2911:15:130;;::::1;2920:6:::0;::::1;2911:15;2892:34;2884:60;;;::::0;-1:-1:-1;;;2884:60:130;;2677:2:165;2884:60:130::1;::::0;::::1;2659:21:165::0;2716:2;2696:18;;;2689:30;-1:-1:-1;;;2735:18:165;;;2728:43;2788:18;;2884:60:130::1;2475:337:165::0;2884:60:130::1;2971:1;2962:6;:10;2954:37;;;::::0;-1:-1:-1;;;2954:37:130;;3019:2:165;2954:37:130::1;::::0;::::1;3001:21:165::0;3058:2;3038:18;;;3031:30;-1:-1:-1;;;3077:18:165;;;3070:44;3131:18;;2954:37:130::1;2817:338:165::0;2954:37:130::1;3019:10;3009:21;::::0;;;:9:::1;:21;::::0;;;;;;;-1:-1:-1;;;;;3009:28:130;::::1;::::0;;;;;;;;:38;-1:-1:-1;3009:38:130::1;3001:69;;;;-1:-1:-1::0;;;3001:69:130::1;;;;;;;:::i;:::-;3086:36;3096:10;3108:5;3115:6;3086:9;:36::i;3385:502::-:0;2356:21:154;:19;:21::i;:::-;3470:19:130::1;3492:10;:53;;3526:19;::::0;;;:10:::1;:19;::::0;;;;3492:53:::1;;;3505:18;::::0;;;:9:::1;:18;::::0;;;;3492:53:::1;3564:12;::::0;::::1;::::0;3470:75;;-1:-1:-1;;;;;;3564:12:130::1;3556:59;;;::::0;-1:-1:-1;;;3556:59:130;;6576:2:165;3556:59:130::1;::::0;::::1;6558:21:165::0;6615:2;6595:18;;;6588:30;-1:-1:-1;;;6634:18:165;;;6627:49;6693:18;;3556:59:130::1;6374:343:165::0;3556:59:130::1;3633:12;::::0;::::1;::::0;-1:-1:-1;;;;;3633:12:130::1;3649:10;3633:26;3625:83;;;::::0;-1:-1:-1;;;3625:83:130;;6924:2:165;3625:83:130::1;::::0;::::1;6906:21:165::0;6963:2;6943:18;;;6936:30;7002:34;6982:18;;;6975:62;-1:-1:-1;;;7053:18:165;;;7046:42;7105:19;;3625:83:130::1;6722:408:165::0;3625:83:130::1;3741:1;3726:5;:12;;;:16;3718:65;;;::::0;-1:-1:-1;;;3718:65:130;;7337:2:165;3718:65:130::1;::::0;::::1;7319:21:165::0;7376:2;7356:18;;;7349:30;7415:34;7395:18;;;7388:62;-1:-1:-1;;;7466:18:165;;;7459:34;7510:19;;3718:65:130::1;7135:400:165::0;3718:65:130::1;3794:10;:86;;3857:23;3874:5;3857:16;:23::i;:::-;3794:86;;;3820:22;3836:5;3820:15;:22::i;:::-;3460:427;2398:20:154::0;1713:1;2924:7;:21;2744:208;2431:307;1755:1;2558:7;;:18;2554:86;;2599:30;;-1:-1:-1;;;2599:30:154;;;;;;;;;;;2554:86;1755:1;2714:7;:17;2431:307::o;5961:236:132:-;6045:56;;-1:-1:-1;;;6045:56:132;;-1:-1:-1;;;;;7798:15:165;;;6045:56:132;;;7780:34:165;6087:4:132;7830:18:165;;;7823:43;7882:18;;;7875:34;;;6045:25:132;;;;;7715:18:165;;6045:56:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;6111:17:132;;;;;;;:9;:17;;;;;;;;:24;;;;;;;;;;;:34;;6139:6;;6111:17;:34;;6139:6;;6111:34;:::i;:::-;;;;-1:-1:-1;;6160:30:132;;;-1:-1:-1;;;;;8492:32:165;;;8474:51;;8556:2;8541:18;;8534:34;;;6160:30:132;;;;;8447:18:165;6160:30:132;;;;;;;;5961:236;;;:::o;2842:1447::-;3017:15;;2974:7;3067:6;;3061:24;;;-1:-1:-1;;;3061:24:132;;;;2974:7;;3017:15;2974:7;;-1:-1:-1;;;;;3067:6:132;;3061:22;;:24;;;;;;;;;;;;;;3067:6;3061:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3042:43;;;;3096:1085;3103:17;;;;;:35;;;3137:1;3124:10;:14;3103:35;3096:1085;;;3154:22;3179:23;;;:9;:23;;;;;3234:14;;;;3221:27;;3217:954;;3268:20;3310:10;3292:8;:15;;;:28;3291:61;;3342:10;3291:61;;;3324:8;:15;;;3291:61;3268:84;-1:-1:-1;3392:9:132;3483:14;3489:8;3483:2;:14;:::i;:::-;3468:29;;:12;:29;:::i;:::-;3453:45;;:11;:45;:::i;:::-;-1:-1:-1;;;;;3420:21:132;;;;;;;:9;:21;;;;;;;;3442:6;;;;;3420:29;;;;;;;;:78;;:29;;:21;:78;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;3516:21:132;;;;;;;:9;:21;;;;;;;;3538:6;;;;;3516:29;;;;;;;;:45;;3549:12;;3516:21;:45;;3549:12;;3516:45;:::i;:::-;;;;-1:-1:-1;;3589:15:132;;;;-1:-1:-1;;;;;3589:15:132;;;3579:26;;;;:9;:26;;;;;;;;3606:6;;;;;3579:34;;;;;;;;:50;;3617:12;;3579:26;:50;;3617:12;;3579:50;:::i;:::-;;;;-1:-1:-1;3664:26:132;;-1:-1:-1;3678:12:132;3664:26;;:::i;:::-;;;3727:12;3708:8;:15;;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;;3783:14:132;;;;3811:15;;;;3763:64;;;9050:25:165;;;9106:2;9091:18;;9084:34;;;;-1:-1:-1;;;;;3811:15:132;;;9134:18:165;;;9127:60;3763:64:132;;;;;9038:2:165;9023:18;3763:64:132;;;;;;;3850:8;:15;;;3869:1;3850:20;3846:239;;3911:13;;;;;3894:14;3953:23;;;:9;:23;;;;;;;3946:30;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3946:30:132;;;;;;;;;;3846:239;3250:849;;3217:954;;;4123:5;;;3217:954;3140:1041;3096:1085;;;-1:-1:-1;4191:15:132;:30;-1:-1:-1;4272:10:132;2842:1447;-1:-1:-1;;2842:1447:132:o;1966:870::-;2058:14;:16;;;:14;:16;;;:::i;:::-;;;;-1:-1:-1;;2146:16:132;;2126:17;2201:157;2208:14;;;;;:53;;-1:-1:-1;2226:21:132;;;;:10;:21;;;;;:27;;;:35;-1:-1:-1;2208:53:132;2201:157;;;-1:-1:-1;2321:21:132;;;;:10;:21;;;;;:26;;;;2201:157;;;2397:160;;;;;;;;2421:14;;2397:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2397:160:132;;;;;;;;;;;;;;;-1:-1:-1;2368:26:132;;;:10;:26;;;;;;:189;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2368:189:132;;;;;;;;;;;;;;;;;;2568:17;;;;;;;;;2586:6;;;;;2568:25;;;;;;;;;:35;;2397:160;;-1:-1:-1;2568:35:132;;2397:160;;2568:35;:::i;:::-;;;;-1:-1:-1;;2634:14:132;;2618:54;;;2627:5;9591:41:165;;9663:2;9648:18;;9641:34;;;;-1:-1:-1;;;;;9711:32:165;;9691:18;;;9684:60;9775:2;9760:18;;9753:34;;;9818:3;9803:19;;9796:35;;;2618:54:132;;;;;;9578:3:165;2618:54:132;;;2687:6;2697:1;2687:11;2683:146;;2733:14;;2714:16;:33;2683:146;;;2804:14;;2778:18;;;;:10;:18;;;;;:23;;:40;2683:146;2048:788;;1966:870;;;:::o;4295:1660::-;4468:16;;4425:7;4520:6;;4514:24;;;-1:-1:-1;;;4514:24:132;;;;4425:7;;4468:16;4425:7;;-1:-1:-1;;;;;4520:6:132;;4514:22;;:24;;;;;;;;;;;;;;4520:6;4514:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4495:43;;;;4549:1296;4556:18;;;;;:35;;;4590:1;4578:9;:13;4556:35;4549:1296;;;4607:23;4633:25;;;:10;:25;;;;;4749:15;;;;4737:27;;4733:1102;;4784:20;4827:9;4808;:16;;;:28;4807:61;;4859:9;4807:61;;;4840:9;:16;;;4807:61;4908:15;;;;4784:84;;-1:-1:-1;5005:14:132;5011:8;5005:2;:14;:::i;:::-;4990:29;;:12;:29;:::i;:::-;4975:45;;:11;:45;:::i;:::-;-1:-1:-1;;;;;4943:20:132;;;;;;;:9;:20;;;;;;;;4964:6;;;;;4943:28;;;;;;;;:77;;:28;;:20;:77;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;5038:20:132;;;;;;;:9;:20;;;;;;;;5059:6;;;;;5038:28;;;;;;;;:44;;5070:12;;5038:20;:44;;5070:12;;5038:44;:::i;:::-;;;;-1:-1:-1;5169:14:132;;-1:-1:-1;5175:8:132;5169:2;:14;:::i;:::-;5154:29;;:12;:29;:::i;:::-;5139:45;;:11;:45;:::i;:::-;5110:16;;;;-1:-1:-1;;;;;5110:16:132;;;5100:27;;;;:9;:27;;;;;;;;5110:16;5128:6;;;;5100:35;;;;;;;;:84;;:35;;:27;:84;;;;;:::i;:::-;;;;-1:-1:-1;5203:25:132;;-1:-1:-1;5216:12:132;5203:25;;:::i;:::-;;;5266:12;5246:9;:16;;;:32;;;;;;;:::i;:::-;;;;-1:-1:-1;;5322:15:132;;;;5350:16;;;;5302:65;;;9050:25:165;;;9106:2;9091:18;;9084:34;;;;-1:-1:-1;;;;;5350:16:132;;;9134:18:165;;;9127:60;5302:65:132;;;;;9038:2:165;9023:18;5302:65:132;;;;;;;5390:9;:16;;;5410:1;5390:21;5386:244;;5452:14;;;;;5435;5495:25;;;:10;:25;;;;;;;5488:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5488:32:132;;;;;;;;;;5386:244;4766:878;;4733:1102;;;5814:5;;;4733:1102;4593:1252;4549:1296;;;-1:-1:-1;5855:16:132;:32;-1:-1:-1;5939:9:132;4295:1660;-1:-1:-1;;4295:1660:132:o;1097:863::-;1188:14;:16;;;:14;:16;;;:::i;:::-;;;;-1:-1:-1;;1234:15:132;;1214:17;1288:155;1295:14;;;;;:52;;-1:-1:-1;1313:20:132;;;;:9;:20;;;;;:26;;;:34;-1:-1:-1;1295:52:132;1288:155;;;-1:-1:-1;1407:20:132;;;;:9;:20;;;;;:25;;;;1288:155;;;1481:160;;;;;;;;1505:14;;1481:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1481:160:132;;;;;;;;;;;;;;;-1:-1:-1;1453:25:132;;;:9;:25;;;;;;:188;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1453:188:132;;;;;;;;;;;;;;;;1711:6;;1705:24;;-1:-1:-1;;;1705:24:132;;;;1711:6;;;1705:22;;:24;;;;;;;;;;1711:6;1705:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1699:30;;:2;:30;:::i;:::-;1690:39;;:6;:39;:::i;:::-;1681:49;;:5;:49;:::i;:::-;-1:-1:-1;;;;;1652:17:132;;;;;;;:9;:17;;;;;;;;1670:6;;;;;1652:25;;;;;;;;:78;;:25;;:17;:78;;;;;:::i;:::-;;;;-1:-1:-1;;1760:14:132;;1745:53;;;1754:4;9591:41:165;;9663:2;9648:18;;9641:34;;;;-1:-1:-1;;;;;9711:32:165;;9691:18;;;9684:60;9775:2;9760:18;;9753:34;;;9818:3;9803:19;;9796:35;;;1745:53:132;;;;;;9578:3:165;1745:53:132;;;1813:6;1823:1;1813:11;1809:144;;1858:14;;1840:15;:32;1809:144;;;1928:14;;1903:17;;;;:9;:17;;;;;:22;;:39;1178:782;;1097:863;;;:::o;6203:219::-;-1:-1:-1;;;;;6288:17:132;;;;;;;:9;:17;;;;;;;;:24;;;;;;;;;;;:34;;6316:6;;6288:17;:34;;6316:6;;6288:34;:::i;:::-;;;;-1:-1:-1;;6332:37:132;;-1:-1:-1;;;6332:37:132;;-1:-1:-1;;;;;8492:32:165;;;6332:37:132;;;8474:51:165;8541:18;;;8534:34;;;6332:21:132;;;;;8447:18:165;;6332:37:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6384:31:132;;;-1:-1:-1;;;;;8492:32:165;;;8474:51;;8556:2;8541:18;;8534:34;;;6384:31:132;;;;;8447:18:165;6384:31:132;8300:274:165;6428:789:132;6526:16;;6510:12;;:32;6506:503;;6577:14;;;;6558:16;:33;6506:503;;;6701:16;;6661:26;6690:28;;;:10;:28;;;;;6733:187;6761:12;;6740:17;;;;:33;6733:187;;6801:12;:17;;;6822:1;6801:22;6793:50;;;;-1:-1:-1;;;6793:50:132;;10044:2:165;6793:50:132;;;10026:21:165;10083:2;10063:18;;;10056:30;-1:-1:-1;;;10102:18:165;;;10095:45;10157:18;;6793:50:132;9842:339:165;6793:50:132;6887:17;;;6876:29;;;;:10;:29;;;;;6733:187;;;6984:14;;;;;6964:17;;:34;6506:503;7094:16;;;;7065;;;;-1:-1:-1;;;;;7065:16:132;;;7055:27;;;;:9;:27;;;;;;;;7083:6;;;;;7055:35;;;;;;;;:55;;:35;;:27;:55;;7094:16;;7055:55;:::i;:::-;;;;-1:-1:-1;;7139:1:132;7120:16;;;:20;;;7185:12;;7164:46;;10326:41:165;;;7199:10:132;;7164:46;;10314:2:165;10299:18;7164:46:132;;;;;;;;6428:789;:::o;7223:825::-;7318:15;;7303:11;;:30;7299:494;;7367:13;;;;7349:15;:31;7299:494;;;7489:15;;7450:26;7479;;;:9;:26;;;;;7520:185;7548:11;;7527:17;;;;:32;7520:185;;7587:12;:17;;;7608:1;7587:22;7579:50;;;;-1:-1:-1;;;7579:50:132;;10044:2:165;7579:50:132;;;10026:21:165;10083:2;10063:18;;;10056:30;-1:-1:-1;;;10102:18:165;;;10095:45;10157:18;;7579:50:132;9842:339:165;7579:50:132;7672:17;;;7662:28;;;;:9;:28;;;;;7520:185;;;7769:13;;;;;7749:17;;:33;7299:494;7925:6;;;;;;;;-1:-1:-1;;;;;7925:6:132;-1:-1:-1;;;;;7919:22:132;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7913:30;;:2;:30;:::i;:::-;7895:8;:15;;;:48;;;;:::i;:::-;7877:8;:14;;;:67;;;;:::i;:::-;7849:15;;;;-1:-1:-1;;;;;7849:15:132;;;7839:26;;;;:9;:26;;;;;;;;7849:15;7866:6;;;;7839:34;;;;;;;;:105;;:34;;:26;:105;;;;;:::i;:::-;;;;-1:-1:-1;;7972:1:132;7954:15;;;:19;8017:11;;7997:44;;8011:4;10326:41:165;;8030:10:132;;8017:11;7997:44;;10314:2:165;10299:18;7997:44:132;10186:187:165;222:180;281:6;334:2;322:9;313:7;309:23;305:32;302:52;;;350:1;347;340:12;302:52;-1:-1:-1;373:23:165;;222:180;-1:-1:-1;222:180:165:o;901:173::-;969:20;;-1:-1:-1;;;;;1018:31:165;;1008:42;;998:70;;1064:1;1061;1054:12;998:70;901:173;;;:::o;1079:254::-;1147:6;1155;1208:2;1196:9;1187:7;1183:23;1179:32;1176:52;;;1224:1;1221;1214:12;1176:52;1247:29;1266:9;1247:29;:::i;:::-;1237:39;1323:2;1308:18;;;;1295:32;;-1:-1:-1;;;1079:254:165:o;1520:248::-;1588:6;1596;1649:2;1637:9;1628:7;1624:23;1620:32;1617:52;;;1665:1;1662;1655:12;1617:52;-1:-1:-1;;1688:23:165;;;1758:2;1743:18;;;1730:32;;-1:-1:-1;1520:248:165:o;1773:260::-;1841:6;1849;1902:2;1890:9;1881:7;1877:23;1873:32;1870:52;;;1918:1;1915;1908:12;1870:52;1941:29;1960:9;1941:29;:::i;:::-;1931:39;;1989:38;2023:2;2012:9;2008:18;1989:38;:::i;:::-;1979:48;;1773:260;;;;;:::o;2038:118::-;2124:5;2117:13;2110:21;2103:5;2100:32;2090:60;;2146:1;2143;2136:12;2090:60;2038:118;:::o;2161:309::-;2226:6;2234;2287:2;2275:9;2266:7;2262:23;2258:32;2255:52;;;2303:1;2300;2293:12;2255:52;2339:9;2326:23;2316:33;;2399:2;2388:9;2384:18;2371:32;2412:28;2434:5;2412:28;:::i;:::-;2459:5;2449:15;;;2161:309;;;;;:::o;3845:342::-;4047:2;4029:21;;;4086:2;4066:18;;;4059:30;-1:-1:-1;;;4120:2:165;4105:18;;4098:48;4178:2;4163:18;;3845:342::o;4192:273::-;4260:6;4313:2;4301:9;4292:7;4288:23;4284:32;4281:52;;;4329:1;4326;4319:12;4281:52;4361:9;4355:16;4411:4;4404:5;4400:16;4393:5;4390:27;4380:55;;4431:1;4428;4421:12;4380:55;4454:5;4192:273;-1:-1:-1;;;4192:273:165:o;4470:127::-;4531:10;4526:3;4522:20;4519:1;4512:31;4562:4;4559:1;4552:15;4586:4;4583:1;4576:15;4602:416;4691:1;4728:5;4691:1;4742:270;4763:7;4753:8;4750:21;4742:270;;;4822:4;4818:1;4814:6;4810:17;4804:4;4801:27;4798:53;;;4831:18;;:::i;:::-;4881:7;4871:8;4867:22;4864:55;;;4901:16;;;;4864:55;4980:22;;;;4940:15;;;;4742:270;;;4746:3;4602:416;;;;;:::o;5023:806::-;5072:5;5102:8;5092:80;;-1:-1:-1;5143:1:165;5157:5;;5092:80;5191:4;5181:76;;-1:-1:-1;5228:1:165;5242:5;;5181:76;5273:4;5291:1;5286:59;;;;5359:1;5354:130;;;;5266:218;;5286:59;5316:1;5307:10;;5330:5;;;5354:130;5391:3;5381:8;5378:17;5375:43;;;5398:18;;:::i;:::-;-1:-1:-1;;5454:1:165;5440:16;;5469:5;;5266:218;;5568:2;5558:8;5555:16;5549:3;5543:4;5540:13;5536:36;5530:2;5520:8;5517:16;5512:2;5506:4;5503:12;5499:35;5496:77;5493:159;;;-1:-1:-1;5605:19:165;;;5637:5;;5493:159;5684:34;5709:8;5703:4;5684:34;:::i;:::-;5754:6;5750:1;5746:6;5742:19;5733:7;5730:32;5727:58;;;5765:18;;:::i;:::-;5803:20;;5023:806;-1:-1:-1;;;5023:806:165:o;5834:140::-;5892:5;5921:47;5962:4;5952:8;5948:19;5942:4;5921:47;:::i;5979:217::-;6019:1;6045;6035:132;;6089:10;6084:3;6080:20;6077:1;6070:31;6124:4;6121:1;6114:15;6152:4;6149:1;6142:15;6035:132;-1:-1:-1;6181:9:165;;5979:217::o;6201:168::-;6274:9;;;6305;;6322:15;;;6316:22;;6302:37;6292:71;;6343:18;;:::i;7920:245::-;7987:6;8040:2;8028:9;8019:7;8015:23;8011:32;8008:52;;;8056:1;8053;8046:12;8008:52;8088:9;8082:16;8107:28;8129:5;8107:28;:::i;8170:125::-;8235:9;;;8256:10;;;8253:36;;;8269:18;;:::i;8579:131::-;8639:5;8668:36;8695:8;8689:4;8668:36;:::i;8715:128::-;8782:9;;;8803:11;;;8800:37;;;8817:18;;:::i;9198:135::-;9237:3;9258:17;;;9255:43;;9278:18;;:::i;:::-;-1:-1:-1;9325:1:165;9314:13;;9198:135::o","linkReferences":{}},"methodIdentifiers":{"balanceOf(address,address)":"f7888aec","buyOrders(uint256)":"35cea288","cancelOrder(uint256,bool)":"f88d2047","currentOrderId()":"925931fc","deposit(address,uint256)":"47e7ef24","firstBuyOrderId()":"bb110bf9","firstSellOrderId()":"72fb0777","placeBuyOrder(uint256,uint256)":"ee36d4ab","placeSellOrder(uint256,uint256)":"a4406bcd","sellOrders(uint256)":"4a8393f3","tokenA()":"0fc63d10","tokenB()":"5f64b55b","withdraw(address,uint256)":"f3fef3a3"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"orderId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"}],\"name\":\"NewOrder\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"orderId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"}],\"name\":\"OrderCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tradedVolume\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"}],\"name\":\"Trade\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"buyOrders\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"next\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"orderId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuyOrder\",\"type\":\"bool\"}],\"name\":\"cancelOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentOrderId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"firstBuyOrderId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"firstSellOrderId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"}],\"name\":\"placeBuyOrder\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"}],\"name\":\"placeSellOrder\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"sellOrders\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"next\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenA\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenB\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{\"cancelOrder(uint256,bool)\":{\"details\":\"cancel an order by id\",\"params\":{\"isBuyOrder\":\"boolean flag wheter the order is buy or sell\",\"orderId\":\"uint256 id of the order\"}},\"constructor\":{\"details\":\"Exchange constructor\",\"params\":{\"_tokenA\":\"address of token A\",\"_tokenB\":\"address of token B\"}},\"deposit(address,uint256)\":{\"details\":\"make an ERC20 from deposit from the sender to this contract given the token and amount\",\"params\":{\"amount\":\"total value of the deposit\",\"token\":\"address of the ERC20 token to deposit\"}},\"placeBuyOrder(uint256,uint256)\":{\"details\":\"match buy order with existing sell oreders, the remaining volume is created as a buy order\",\"params\":{\"price\":\"bid price in tokenB\",\"volume\":\"bid amount in token A\"}},\"placeSellOrder(uint256,uint256)\":{\"details\":\"match sell order with existing buy oreders, the remaining volume is created as a sell order\",\"params\":{\"price\":\"ask price in tokenB\",\"volume\":\"ask amount in token A\"}},\"withdraw(address,uint256)\":{\"details\":\"make an ERC20 withdraw from this contract to the sender given the token and amount\",\"params\":{\"amount\":\"total value of the withdraw\",\"token\":\"address of the ERC20 token to withdraw\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"cancelOrder(uint256,bool)\":{\"notice\":\".cancelOrderonly creator of the order can call this function\"},\"constructor\":{\"notice\":\".contructor\"},\"deposit(address,uint256)\":{\"notice\":\".depositit's mandatory to perform an approve call before calling this function.\"},\"placeBuyOrder(uint256,uint256)\":{\"notice\":\".placeBuyOrder\"},\"placeSellOrder(uint256,uint256)\":{\"notice\":\".placeSellOrder\"},\"withdraw(address,uint256)\":{\"notice\":\".withdraw\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/orderbook/Exchange.sol\":\"Exchange\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/orderbook/Exchange.sol\":{\"keccak256\":\"0x25cfdeca43fcd2540c765cd1ba84c5d076de584585387433b26d7043275757af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a82f645fc5803dc66c3d99ed4ea8586d661ca01b4e4d1cd5d82da97ee98b995\",\"dweb:/ipfs/QmZehTtHXRpp9YH9H75VjGdbivn64RPF7LBocvyAYYhBR3\"]},\"contracts/orderbook/Orderbook.sol\":{\"keccak256\":\"0x079c6e675b95a97f53531ca0572a84e56d9c6b44056a4d3f5c598ad0004ffc19\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4279c5300585b3d7ca28f87ee881deecf312c7fe766de09996871fe36523bdbe\",\"dweb:/ipfs/QmaJ1kH8L9K6MgvkfAa1SK1L2ztYxSimQaF17pbFKz4Egk\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_tokenA","type":"address"},{"internalType":"address","name":"_tokenB","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"trader","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"bool","name":"isBuy","type":"bool","indexed":false},{"internalType":"uint256","name":"orderId","type":"uint256","indexed":false},{"internalType":"address","name":"trader","type":"address","indexed":false},{"internalType":"uint256","name":"price","type":"uint256","indexed":false},{"internalType":"uint256","name":"volume","type":"uint256","indexed":false}],"type":"event","name":"NewOrder","anonymous":false},{"inputs":[{"internalType":"bool","name":"isBuy","type":"bool","indexed":false},{"internalType":"uint256","name":"orderId","type":"uint256","indexed":true},{"internalType":"address","name":"trader","type":"address","indexed":true}],"type":"event","name":"OrderCanceled","anonymous":false},{"inputs":[{"internalType":"uint256","name":"tradedVolume","type":"uint256","indexed":false},{"internalType":"uint256","name":"price","type":"uint256","indexed":false},{"internalType":"address","name":"buyer","type":"address","indexed":true},{"internalType":"address","name":"seller","type":"address","indexed":false}],"type":"event","name":"Trade","anonymous":false},{"inputs":[{"internalType":"address","name":"trader","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"buyOrders","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"volume","type":"uint256"},{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"next","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"bool","name":"isBuyOrder","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"cancelOrder"},{"inputs":[],"stateMutability":"view","type":"function","name":"currentOrderId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"firstBuyOrderId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"firstSellOrderId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"volume","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"placeBuyOrder","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"volume","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"placeSellOrder","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"sellOrders","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"volume","type":"uint256"},{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"next","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenA","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenB","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{"cancelOrder(uint256,bool)":{"details":"cancel an order by id","params":{"isBuyOrder":"boolean flag wheter the order is buy or sell","orderId":"uint256 id of the order"}},"constructor":{"details":"Exchange constructor","params":{"_tokenA":"address of token A","_tokenB":"address of token B"}},"deposit(address,uint256)":{"details":"make an ERC20 from deposit from the sender to this contract given the token and amount","params":{"amount":"total value of the deposit","token":"address of the ERC20 token to deposit"}},"placeBuyOrder(uint256,uint256)":{"details":"match buy order with existing sell oreders, the remaining volume is created as a buy order","params":{"price":"bid price in tokenB","volume":"bid amount in token A"}},"placeSellOrder(uint256,uint256)":{"details":"match sell order with existing buy oreders, the remaining volume is created as a sell order","params":{"price":"ask price in tokenB","volume":"ask amount in token A"}},"withdraw(address,uint256)":{"details":"make an ERC20 withdraw from this contract to the sender given the token and amount","params":{"amount":"total value of the withdraw","token":"address of the ERC20 token to withdraw"}}},"version":1},"userdoc":{"kind":"user","methods":{"cancelOrder(uint256,bool)":{"notice":".cancelOrderonly creator of the order can call this function"},"constructor":{"notice":".contructor"},"deposit(address,uint256)":{"notice":".depositit's mandatory to perform an approve call before calling this function."},"placeBuyOrder(uint256,uint256)":{"notice":".placeBuyOrder"},"placeSellOrder(uint256,uint256)":{"notice":".placeSellOrder"},"withdraw(address,uint256)":{"notice":".withdraw"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/orderbook/Exchange.sol":"Exchange"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/orderbook/Exchange.sol":{"keccak256":"0x25cfdeca43fcd2540c765cd1ba84c5d076de584585387433b26d7043275757af","urls":["bzz-raw://5a82f645fc5803dc66c3d99ed4ea8586d661ca01b4e4d1cd5d82da97ee98b995","dweb:/ipfs/QmZehTtHXRpp9YH9H75VjGdbivn64RPF7LBocvyAYYhBR3"],"license":"MIT"},"contracts/orderbook/Orderbook.sol":{"keccak256":"0x079c6e675b95a97f53531ca0572a84e56d9c6b44056a4d3f5c598ad0004ffc19","urls":["bzz-raw://4279c5300585b3d7ca28f87ee881deecf312c7fe766de09996871fe36523bdbe","dweb:/ipfs/QmaJ1kH8L9K6MgvkfAa1SK1L2ztYxSimQaF17pbFKz4Egk"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80","urls":["bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229","dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"}},"version":1},"id":130} \ No newline at end of file diff --git a/out/ExchangeFactory.sol/ExchangeFactory.json b/out/ExchangeFactory.sol/ExchangeFactory.json new file mode 100644 index 0000000..70c12c9 --- /dev/null +++ b/out/ExchangeFactory.sol/ExchangeFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"availableExchanges","inputs":[{"name":"exchange","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"deployExchange","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"}],"outputs":[{"name":"exchange","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"exchangeDeployed","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isExchangeAvailable","inputs":[{"name":"exchange","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"ExchangeDeployed","inputs":[{"name":"exchange","type":"address","indexed":false,"internalType":"address"},{"name":"tokenA","type":"address","indexed":false,"internalType":"address"},{"name":"tokenB","type":"address","indexed":false,"internalType":"address"},{"name":"deployer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50611e52806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063443bc94a146100515780636b35ea281461009757806378c39d5f146100aa578063a397c073146100e6575b600080fd5b61007a61005f366004610321565b6001602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007a6100a5366004610356565b610109565b6100d66100b8366004610389565b6001600160a01b031660009081526020819052604090205460ff1690565b604051901515815260200161008e565b6100d66100f4366004610389565b60006020819052908152604090205460ff1681565b6040516bffffffffffffffffffffffff1933606090811b8216602084015284811b8216603484015283901b1660488201526000908190605c0160408051601f198184030181529181528151602092830120600081815260019093529120549091506001600160a01b0316156101c45760405162461bcd60e51b815260206004820152601960248201527f45786368616e676520616c7265616479206465706c6f79656400000000000000604482015260640160405180910390fd5b6101cf818585610266565b600082815260016020818152604080842080546001600160a01b0319166001600160a01b0387811691821790925580865285845294829020805460ff1916909417909355805193845288831691840191909152908616908201523360608201529092507fa5b803b77d28e977c1af94d97267f3615377386271d1d18976e7d87309e04b0d9060800160405180910390a15092915050565b6000806040518060200161027990610314565b601f1982820381018352601f9091011660408181526001600160a01b038781166020840152861681830152805180830382018152606083019091529192506000906102ca90849084906080016103d4565b60405160208183030381529060405290506102e587826102f0565b979650505050505050565b60008082602001835185818334f592505050803b61030d57600080fd5b9392505050565b611a2b806103f283390190565b60006020828403121561033357600080fd5b5035919050565b80356001600160a01b038116811461035157600080fd5b919050565b6000806040838503121561036957600080fd5b6103728361033a565b91506103806020840161033a565b90509250929050565b60006020828403121561039b57600080fd5b61030d8261033a565b6000815160005b818110156103c557602081850181015186830152016103ab565b50600093019283525090919050565b60006103e96103e383866103a4565b846103a4565b94935050505056fe60806040523480156200001157600080fd5b5060405162001a2b38038062001a2b833981016040819052620000349162000087565b60016008819055600080546001600160a01b03199081166001600160a01b039586161790915581541691909216179055620000bf565b80516001600160a01b03811681146200008257600080fd5b919050565b600080604083850312156200009b57600080fd5b620000a6836200006a565b9150620000b6602084016200006a565b90509250929050565b61195c80620000cf6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063925931fc1161008c578063ee36d4ab11610066578063ee36d4ab1461022c578063f3fef3a31461023f578063f7888aec14610252578063f88d20471461027d57600080fd5b8063925931fc14610207578063a4406bcd14610210578063bb110bf91461022357600080fd5b80630fc63d10146100d457806335cea2881461010457806347e7ef241461017e5780634a8393f3146101935780635f64b55b146101dd57806372fb0777146101f0575b600080fd5b6000546100e7906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61014d610112366004611631565b60026020819052600091825260409091208054600182015492820154600383015460049093015491939290916001600160a01b039091169085565b604080519586526020860194909452928401919091526001600160a01b03166060830152608082015260a0016100fb565b61019161018c366004611666565b610290565b005b61014d6101a1366004611631565b6003602081905260009182526040909120805460018201546002830154938301546004909301549193909290916001600160a01b039091169085565b6001546100e7906001600160a01b031681565b6101f960065481565b6040519081526020016100fb565b6101f960075481565b6101f961021e366004611690565b61035c565b6101f960055481565b6101f961023a366004611690565b610460565b61019161024d366004611666565b6105e3565b6101f96102603660046116b2565b600460209081526000928352604080842090915290825290205481565b61019161028b3660046116f6565b6106df565b61029861085b565b6000546001600160a01b03838116911614806102c157506001546001600160a01b038381169116145b6103025760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b60448201526064015b60405180910390fd5b600081116103435760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b60448201526064016102f9565b61034e338383610885565b6103586001600855565b5050565b600061036661085b565b600083116103a65760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420507269636560981b60448201526064016102f9565b600082116103e75760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420566f6c756d6560901b60448201526064016102f9565b33600090815260046020908152604080832083546001600160a01b0316845290915290205482111561042b5760405162461bcd60e51b81526004016102f990611726565b6000610438338585610987565b9050801561044b5761044b338583610c11565b505060075461045a6001600855565b92915050565b600061046a61085b565b600083116104aa5760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420507269636560981b60448201526064016102f9565b600082116104eb5760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420566f6c756d6560901b60448201526064016102f9565b60008054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561053c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105609190611752565b61056b90600a611876565b6105759083611885565b61057f90846118a7565b3360009081526004602090815260408083206001546001600160a01b0316845290915290205410156105c35760405162461bcd60e51b81526004016102f990611726565b60006105d0338585610d97565b9050801561044b5761044b338583611047565b6105eb61085b565b6000546001600160a01b038381169116148061061457506001546001600160a01b038381169116145b6106505760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b60448201526064016102f9565b600081116106915760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b60448201526064016102f9565b3360009081526004602090815260408083206001600160a01b03861684529091529020548111156106d45760405162461bcd60e51b81526004016102f990611726565b61034e33838361125b565b6106e761085b565b600081610701576000838152600360205260409020610710565b60008381526002602052604090205b60038101549091506001600160a01b03166107635760405162461bcd60e51b81526020600482015260136024820152724f7264657220646f206e6f742065786973747360681b60448201526064016102f9565b60038101546001600160a01b031633146107d45760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c7920746865206f726465722063726561746f722063616e2063616e636560448201526b36103a3434b99037b93232b960a11b60648201526084016102f9565b60008160020154116108345760405162461bcd60e51b8152602060048201526024808201527f4f7264657220616c72656164792063616e63656c6c6564206f722066756c66696044820152631b1b195960e21b60648201526084016102f9565b81610847576108428161134e565b610850565b61085081611476565b506103586001600855565b60026008540361087e57604051633ee5aeb560e01b815260040160405180910390fd5b6002600855565b6040516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018390528316906323b872dd906064016020604051808303816000875af11580156108da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fe91906118be565b506001600160a01b038084166000908152600460209081526040808320938616835292905290812080548392906109369084906118db565b9091555050604080516001600160a01b038481168252602082018490528516917f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f6291015b60405180910390a2505050565b600554600080546040805163313ce56760e01b8152905192939284926001600160a01b03169163313ce5679160048083019260209291908290030181865afa1580156109d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fb9190611752565b60ff1690505b8115801590610a105750600084115b15610c0657600082815260026020526040902060018101548611610bfa57600085826002015410610a415785610a47565b81600201545b905086610a5584600a6118ee565b610a5f9083611885565b610a6990826118a7565b6001600160a01b03808b16600090815260046020908152604080832060015490941683529290529081208054909190610aa39084906118db565b90915550506001600160a01b03808a166000908152600460209081526040808320835490941683529290529081208054849290610ae19084906118fa565b909155505060038301546001600160a01b039081166000908152600460209081526040808320835490941683529290529081208054849290610b249084906118db565b90915550610b34905082886118fa565b965081836002016000828254610b4a91906118fa565b9091555050600183015460038401546040805185815260208101939093526001600160a01b03918216908301528a16907f83cc6330e30db670fe04b07b602bd9cba4da39e5037267131b5d60cecba29f619060600160405180910390a28260020154600003610bf35760048084015460009687526002602081905260408820888155600181018990559081018890556003810180546001600160a01b0319169055909101959095555b5050610c00565b50610c06565b50610a01565b506005555092915050565b60078054906000610c218361190d565b909155505060065460005b8115801590610c4b575060008281526003602052604090206001015484115b15610c69575060008181526003602052604090206004015490610c2c565b6040805160a08101825260075480825260208083018881528385018881526001600160a01b038b811660608701818152608088018b8152600097885260038088528a892099518a55955160018a0155935160028901555193870180546001600160a01b03191694831694909417909355905160049586015590835292815283822082549093168252919091529081208054859290610d089084906118fa565b9091555050600754604080516000815260208101929092526001600160a01b038716828201526060820186905260808201859052517f286a2d7a29403e4e0f090c310eeb9b565090f3731608308fe263443ca910e9d59181900360a00190a180600003610d7a57600754600655610d90565b6007546000828152600360205260409020600401555b5050505050565b600654600080546040805163313ce56760e01b8152905192939284926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0b9190611752565b60ff1690505b8115801590610e205750600084115b1561103c5760008281526003602052604090206001810154861061103057600085826002015410610e515785610e57565b81600201545b6001830154909150610e6a84600a6118ee565b610e749083611885565b610e7e90826118a7565b6001600160a01b03808b16600090815260046020908152604080832060015490941683529290529081208054909190610eb89084906118fa565b90915550506001600160a01b03808a166000908152600460209081526040808320835490941683529290529081208054849290610ef69084906118db565b90915550610f07905084600a6118ee565b610f119083611885565b610f1b90826118a7565b60038401546001600160a01b03908116600090815260046020908152604080832060015490941683529290529081208054909190610f5a9084906118db565b90915550610f6a905082886118fa565b965081836002016000828254610f8091906118fa565b9091555050600183015460038401546040805185815260208101939093526001600160a01b03918216908301528a16907f83cc6330e30db670fe04b07b602bd9cba4da39e5037267131b5d60cecba29f619060600160405180910390a282600201546000036110295760048084015460009687526003602081905260408820888155600181018990556002810189905590810180546001600160a01b0319169055909101959095555b5050611036565b5061103c565b50610e11565b506006555092915050565b600780549060006110578361190d565b909155505060055460005b8115801590611081575060008281526002602052604090206001015484105b1561109f575060008181526002602052604090206004015490611062565b6040805160a08101825260075480825260208083018881528385018881526001600160a01b038b811660608701908152608087018a815260009687526002808752898820985189559451600189015592519387019390935591516003860180546001600160a01b031916918416919091179055516004948501559154845163313ce56760e01b8152945192169363313ce5679381810193918290030181865afa158015611150573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111749190611752565b61117f90600a611876565b6111899084611885565b61119390856118a7565b6001600160a01b038087166000908152600460209081526040808320600154909416835292905290812080549091906111cd9084906118fa565b9091555050600754604080516001815260208101929092526001600160a01b038716828201526060820186905260808201859052517f286a2d7a29403e4e0f090c310eeb9b565090f3731608308fe263443ca910e9d59181900360a00190a18060000361123f57600754600555610d90565b6007546000828152600260205260409020600401555050505050565b6001600160a01b038084166000908152600460209081526040808320938616835292905290812080548392906112929084906118fa565b909155505060405163a9059cbb60e01b81526001600160a01b0384811660048301526024820183905283169063a9059cbb906044016020604051808303816000875af11580156112e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130a91906118be565b50604080516001600160a01b038481168252602082018490528516917f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb910161097a565b6006548154036113655760048101546006556113ea565b60065460009081526003602052604090205b81546004820154146113e05780600401546000036113c95760405162461bcd60e51b815260206004820152600f60248201526e13dc99195c881b9bdd08199bdd5b99608a1b60448201526064016102f9565b600401546000908152600360205260409020611377565b6004808301549101555b600281015460038201546001600160a01b03908116600090815260046020908152604080832083549094168352929052908120805490919061142d9084906118db565b9091555050600060028201819055815460405191825233917fcfa919375acf04933787aa7f7b25d71adf2e92839529dad777b47ff2cd0827a4906020015b60405180910390a350565b60055481540361148d576004810154600555611512565b60055460009081526002602052604090205b81546004820154146115085780600401546000036114f15760405162461bcd60e51b815260206004820152600f60248201526e13dc99195c881b9bdd08199bdd5b99608a1b60448201526064016102f9565b60040154600090815260026020526040902061149f565b6004808301549101555b60008054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611563573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115879190611752565b61159290600a611876565b81600201546115a19190611885565b81600101546115b091906118a7565b60038201546001600160a01b039081166000908152600460209081526040808320600154909416835292905290812080549091906115ef9084906118db565b9091555050600060028201558054604051600181523391907fcfa919375acf04933787aa7f7b25d71adf2e92839529dad777b47ff2cd0827a49060200161146b565b60006020828403121561164357600080fd5b5035919050565b80356001600160a01b038116811461166157600080fd5b919050565b6000806040838503121561167957600080fd5b6116828361164a565b946020939093013593505050565b600080604083850312156116a357600080fd5b50508035926020909101359150565b600080604083850312156116c557600080fd5b6116ce8361164a565b91506116dc6020840161164a565b90509250929050565b80151581146116f357600080fd5b50565b6000806040838503121561170957600080fd5b82359150602083013561171b816116e5565b809150509250929050565b6020808252601290820152714e6f7420656e6f7567682062616c616e636560701b604082015260600190565b60006020828403121561176457600080fd5b815160ff8116811461177557600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117cd5781600019048211156117b3576117b361177c565b808516156117c057918102915b93841c9390800290611797565b509250929050565b6000826117e45750600161045a565b816117f15750600061045a565b816001811461180757600281146118115761182d565b600191505061045a565b60ff8411156118225761182261177c565b50506001821b61045a565b5060208310610133831016604e8410600b8410161715611850575081810a61045a565b61185a8383611792565b806000190482111561186e5761186e61177c565b029392505050565b600061177560ff8416836117d5565b6000826118a257634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761045a5761045a61177c565b6000602082840312156118d057600080fd5b8151611775816116e5565b8082018082111561045a5761045a61177c565b600061177583836117d5565b8181038181111561045a5761045a61177c565b60006001820161191f5761191f61177c565b506001019056fea26469706673582212208077200d6f8bb9cc5fa48f1e43ac34d2e1ea00c6a79c8b0cfe0f27d4c487927964736f6c63430008180033a2646970667358221220b33258af83876fef371f60c2fdf268724c52f35cfab7927ce9b71264394ed55e64736f6c63430008180033","sourceMap":"246:2594:131:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063443bc94a146100515780636b35ea281461009757806378c39d5f146100aa578063a397c073146100e6575b600080fd5b61007a61005f366004610321565b6001602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007a6100a5366004610356565b610109565b6100d66100b8366004610389565b6001600160a01b031660009081526020819052604090205460ff1690565b604051901515815260200161008e565b6100d66100f4366004610389565b60006020819052908152604090205460ff1681565b6040516bffffffffffffffffffffffff1933606090811b8216602084015284811b8216603484015283901b1660488201526000908190605c0160408051601f198184030181529181528151602092830120600081815260019093529120549091506001600160a01b0316156101c45760405162461bcd60e51b815260206004820152601960248201527f45786368616e676520616c7265616479206465706c6f79656400000000000000604482015260640160405180910390fd5b6101cf818585610266565b600082815260016020818152604080842080546001600160a01b0319166001600160a01b0387811691821790925580865285845294829020805460ff1916909417909355805193845288831691840191909152908616908201523360608201529092507fa5b803b77d28e977c1af94d97267f3615377386271d1d18976e7d87309e04b0d9060800160405180910390a15092915050565b6000806040518060200161027990610314565b601f1982820381018352601f9091011660408181526001600160a01b038781166020840152861681830152805180830382018152606083019091529192506000906102ca90849084906080016103d4565b60405160208183030381529060405290506102e587826102f0565b979650505050505050565b60008082602001835185818334f592505050803b61030d57600080fd5b9392505050565b611a2b806103f283390190565b60006020828403121561033357600080fd5b5035919050565b80356001600160a01b038116811461035157600080fd5b919050565b6000806040838503121561036957600080fd5b6103728361033a565b91506103806020840161033a565b90509250929050565b60006020828403121561039b57600080fd5b61030d8261033a565b6000815160005b818110156103c557602081850181015186830152016103ab565b50600093019283525090919050565b60006103e96103e383866103a4565b846103a4565b94935050505056fe60806040523480156200001157600080fd5b5060405162001a2b38038062001a2b833981016040819052620000349162000087565b60016008819055600080546001600160a01b03199081166001600160a01b039586161790915581541691909216179055620000bf565b80516001600160a01b03811681146200008257600080fd5b919050565b600080604083850312156200009b57600080fd5b620000a6836200006a565b9150620000b6602084016200006a565b90509250929050565b61195c80620000cf6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063925931fc1161008c578063ee36d4ab11610066578063ee36d4ab1461022c578063f3fef3a31461023f578063f7888aec14610252578063f88d20471461027d57600080fd5b8063925931fc14610207578063a4406bcd14610210578063bb110bf91461022357600080fd5b80630fc63d10146100d457806335cea2881461010457806347e7ef241461017e5780634a8393f3146101935780635f64b55b146101dd57806372fb0777146101f0575b600080fd5b6000546100e7906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61014d610112366004611631565b60026020819052600091825260409091208054600182015492820154600383015460049093015491939290916001600160a01b039091169085565b604080519586526020860194909452928401919091526001600160a01b03166060830152608082015260a0016100fb565b61019161018c366004611666565b610290565b005b61014d6101a1366004611631565b6003602081905260009182526040909120805460018201546002830154938301546004909301549193909290916001600160a01b039091169085565b6001546100e7906001600160a01b031681565b6101f960065481565b6040519081526020016100fb565b6101f960075481565b6101f961021e366004611690565b61035c565b6101f960055481565b6101f961023a366004611690565b610460565b61019161024d366004611666565b6105e3565b6101f96102603660046116b2565b600460209081526000928352604080842090915290825290205481565b61019161028b3660046116f6565b6106df565b61029861085b565b6000546001600160a01b03838116911614806102c157506001546001600160a01b038381169116145b6103025760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b60448201526064015b60405180910390fd5b600081116103435760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b60448201526064016102f9565b61034e338383610885565b6103586001600855565b5050565b600061036661085b565b600083116103a65760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420507269636560981b60448201526064016102f9565b600082116103e75760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420566f6c756d6560901b60448201526064016102f9565b33600090815260046020908152604080832083546001600160a01b0316845290915290205482111561042b5760405162461bcd60e51b81526004016102f990611726565b6000610438338585610987565b9050801561044b5761044b338583610c11565b505060075461045a6001600855565b92915050565b600061046a61085b565b600083116104aa5760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420507269636560981b60448201526064016102f9565b600082116104eb5760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420566f6c756d6560901b60448201526064016102f9565b60008054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561053c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105609190611752565b61056b90600a611876565b6105759083611885565b61057f90846118a7565b3360009081526004602090815260408083206001546001600160a01b0316845290915290205410156105c35760405162461bcd60e51b81526004016102f990611726565b60006105d0338585610d97565b9050801561044b5761044b338583611047565b6105eb61085b565b6000546001600160a01b038381169116148061061457506001546001600160a01b038381169116145b6106505760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b60448201526064016102f9565b600081116106915760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b60448201526064016102f9565b3360009081526004602090815260408083206001600160a01b03861684529091529020548111156106d45760405162461bcd60e51b81526004016102f990611726565b61034e33838361125b565b6106e761085b565b600081610701576000838152600360205260409020610710565b60008381526002602052604090205b60038101549091506001600160a01b03166107635760405162461bcd60e51b81526020600482015260136024820152724f7264657220646f206e6f742065786973747360681b60448201526064016102f9565b60038101546001600160a01b031633146107d45760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c7920746865206f726465722063726561746f722063616e2063616e636560448201526b36103a3434b99037b93232b960a11b60648201526084016102f9565b60008160020154116108345760405162461bcd60e51b8152602060048201526024808201527f4f7264657220616c72656164792063616e63656c6c6564206f722066756c66696044820152631b1b195960e21b60648201526084016102f9565b81610847576108428161134e565b610850565b61085081611476565b506103586001600855565b60026008540361087e57604051633ee5aeb560e01b815260040160405180910390fd5b6002600855565b6040516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018390528316906323b872dd906064016020604051808303816000875af11580156108da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fe91906118be565b506001600160a01b038084166000908152600460209081526040808320938616835292905290812080548392906109369084906118db565b9091555050604080516001600160a01b038481168252602082018490528516917f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f6291015b60405180910390a2505050565b600554600080546040805163313ce56760e01b8152905192939284926001600160a01b03169163313ce5679160048083019260209291908290030181865afa1580156109d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fb9190611752565b60ff1690505b8115801590610a105750600084115b15610c0657600082815260026020526040902060018101548611610bfa57600085826002015410610a415785610a47565b81600201545b905086610a5584600a6118ee565b610a5f9083611885565b610a6990826118a7565b6001600160a01b03808b16600090815260046020908152604080832060015490941683529290529081208054909190610aa39084906118db565b90915550506001600160a01b03808a166000908152600460209081526040808320835490941683529290529081208054849290610ae19084906118fa565b909155505060038301546001600160a01b039081166000908152600460209081526040808320835490941683529290529081208054849290610b249084906118db565b90915550610b34905082886118fa565b965081836002016000828254610b4a91906118fa565b9091555050600183015460038401546040805185815260208101939093526001600160a01b03918216908301528a16907f83cc6330e30db670fe04b07b602bd9cba4da39e5037267131b5d60cecba29f619060600160405180910390a28260020154600003610bf35760048084015460009687526002602081905260408820888155600181018990559081018890556003810180546001600160a01b0319169055909101959095555b5050610c00565b50610c06565b50610a01565b506005555092915050565b60078054906000610c218361190d565b909155505060065460005b8115801590610c4b575060008281526003602052604090206001015484115b15610c69575060008181526003602052604090206004015490610c2c565b6040805160a08101825260075480825260208083018881528385018881526001600160a01b038b811660608701818152608088018b8152600097885260038088528a892099518a55955160018a0155935160028901555193870180546001600160a01b03191694831694909417909355905160049586015590835292815283822082549093168252919091529081208054859290610d089084906118fa565b9091555050600754604080516000815260208101929092526001600160a01b038716828201526060820186905260808201859052517f286a2d7a29403e4e0f090c310eeb9b565090f3731608308fe263443ca910e9d59181900360a00190a180600003610d7a57600754600655610d90565b6007546000828152600360205260409020600401555b5050505050565b600654600080546040805163313ce56760e01b8152905192939284926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0b9190611752565b60ff1690505b8115801590610e205750600084115b1561103c5760008281526003602052604090206001810154861061103057600085826002015410610e515785610e57565b81600201545b6001830154909150610e6a84600a6118ee565b610e749083611885565b610e7e90826118a7565b6001600160a01b03808b16600090815260046020908152604080832060015490941683529290529081208054909190610eb89084906118fa565b90915550506001600160a01b03808a166000908152600460209081526040808320835490941683529290529081208054849290610ef69084906118db565b90915550610f07905084600a6118ee565b610f119083611885565b610f1b90826118a7565b60038401546001600160a01b03908116600090815260046020908152604080832060015490941683529290529081208054909190610f5a9084906118db565b90915550610f6a905082886118fa565b965081836002016000828254610f8091906118fa565b9091555050600183015460038401546040805185815260208101939093526001600160a01b03918216908301528a16907f83cc6330e30db670fe04b07b602bd9cba4da39e5037267131b5d60cecba29f619060600160405180910390a282600201546000036110295760048084015460009687526003602081905260408820888155600181018990556002810189905590810180546001600160a01b0319169055909101959095555b5050611036565b5061103c565b50610e11565b506006555092915050565b600780549060006110578361190d565b909155505060055460005b8115801590611081575060008281526002602052604090206001015484105b1561109f575060008181526002602052604090206004015490611062565b6040805160a08101825260075480825260208083018881528385018881526001600160a01b038b811660608701908152608087018a815260009687526002808752898820985189559451600189015592519387019390935591516003860180546001600160a01b031916918416919091179055516004948501559154845163313ce56760e01b8152945192169363313ce5679381810193918290030181865afa158015611150573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111749190611752565b61117f90600a611876565b6111899084611885565b61119390856118a7565b6001600160a01b038087166000908152600460209081526040808320600154909416835292905290812080549091906111cd9084906118fa565b9091555050600754604080516001815260208101929092526001600160a01b038716828201526060820186905260808201859052517f286a2d7a29403e4e0f090c310eeb9b565090f3731608308fe263443ca910e9d59181900360a00190a18060000361123f57600754600555610d90565b6007546000828152600260205260409020600401555050505050565b6001600160a01b038084166000908152600460209081526040808320938616835292905290812080548392906112929084906118fa565b909155505060405163a9059cbb60e01b81526001600160a01b0384811660048301526024820183905283169063a9059cbb906044016020604051808303816000875af11580156112e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130a91906118be565b50604080516001600160a01b038481168252602082018490528516917f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb910161097a565b6006548154036113655760048101546006556113ea565b60065460009081526003602052604090205b81546004820154146113e05780600401546000036113c95760405162461bcd60e51b815260206004820152600f60248201526e13dc99195c881b9bdd08199bdd5b99608a1b60448201526064016102f9565b600401546000908152600360205260409020611377565b6004808301549101555b600281015460038201546001600160a01b03908116600090815260046020908152604080832083549094168352929052908120805490919061142d9084906118db565b9091555050600060028201819055815460405191825233917fcfa919375acf04933787aa7f7b25d71adf2e92839529dad777b47ff2cd0827a4906020015b60405180910390a350565b60055481540361148d576004810154600555611512565b60055460009081526002602052604090205b81546004820154146115085780600401546000036114f15760405162461bcd60e51b815260206004820152600f60248201526e13dc99195c881b9bdd08199bdd5b99608a1b60448201526064016102f9565b60040154600090815260026020526040902061149f565b6004808301549101555b60008054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611563573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115879190611752565b61159290600a611876565b81600201546115a19190611885565b81600101546115b091906118a7565b60038201546001600160a01b039081166000908152600460209081526040808320600154909416835292905290812080549091906115ef9084906118db565b9091555050600060028201558054604051600181523391907fcfa919375acf04933787aa7f7b25d71adf2e92839529dad777b47ff2cd0827a49060200161146b565b60006020828403121561164357600080fd5b5035919050565b80356001600160a01b038116811461166157600080fd5b919050565b6000806040838503121561167957600080fd5b6116828361164a565b946020939093013593505050565b600080604083850312156116a357600080fd5b50508035926020909101359150565b600080604083850312156116c557600080fd5b6116ce8361164a565b91506116dc6020840161164a565b90509250929050565b80151581146116f357600080fd5b50565b6000806040838503121561170957600080fd5b82359150602083013561171b816116e5565b809150509250929050565b6020808252601290820152714e6f7420656e6f7567682062616c616e636560701b604082015260600190565b60006020828403121561176457600080fd5b815160ff8116811461177557600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117cd5781600019048211156117b3576117b361177c565b808516156117c057918102915b93841c9390800290611797565b509250929050565b6000826117e45750600161045a565b816117f15750600061045a565b816001811461180757600281146118115761182d565b600191505061045a565b60ff8411156118225761182261177c565b50506001821b61045a565b5060208310610133831016604e8410600b8410161715611850575081810a61045a565b61185a8383611792565b806000190482111561186e5761186e61177c565b029392505050565b600061177560ff8416836117d5565b6000826118a257634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761045a5761045a61177c565b6000602082840312156118d057600080fd5b8151611775816116e5565b8082018082111561045a5761045a61177c565b600061177583836117d5565b8181038181111561045a5761045a61177c565b60006001820161191f5761191f61177c565b506001019056fea26469706673582212208077200d6f8bb9cc5fa48f1e43ac34d2e1ea00c6a79c8b0cfe0f27d4c487927964736f6c63430008180033a2646970667358221220b33258af83876fef371f60c2fdf268724c52f35cfab7927ce9b71264394ed55e64736f6c63430008180033","sourceMap":"246:2594:131:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;408:51;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;408:51:131;;;;;;-1:-1:-1;;;;;363:32:165;;;345:51;;333:2;318:18;408:51:131;;;;;;;;832:512;;;;;;:::i;:::-;;:::i;2710:128::-;;;;;;:::i;:::-;-1:-1:-1;;;;;2803:28:131;2780:4;2803:28;;;;;;;;;;;;;;2710:128;;;;1206:14:165;;1199:22;1181:41;;1169:2;1154:18;2710:128:131;1041:187:165;304:59:131;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;832:512;989:44;;-1:-1:-1;;1006:10:131;1488:2:165;1484:15;;;1480:24;;989:44:131;;;1468:37:165;1539:15;;;1535:24;;1521:12;;;1514:46;1594:15;;;1590:24;1576:12;;;1569:46;928:16:131;;;;1631:12:165;;989:44:131;;;-1:-1:-1;;989:44:131;;;;;;;;;979:55;;989:44;979:55;;;;1087:1;1053:22;;;:16;:22;;;;;;979:55;;-1:-1:-1;;;;;;1053:22:131;:36;1045:74;;;;-1:-1:-1;;;1045:74:131;;1856:2:165;1045:74:131;;;1838:21:165;1895:2;1875:18;;;1868:30;1934:27;1914:18;;;1907:55;1979:18;;1045:74:131;;;;;;;;1141:37;1157:4;1163:6;1171;1141:15;:37::i;:::-;1189:22;;;;:16;:22;;;;;;;;:33;;-1:-1:-1;;;;;;1189:33:131;-1:-1:-1;;;;;1189:33:131;;;;;;;;;1232:28;;;;;;;;;;:35;;-1:-1:-1;;1232:35:131;;;;;;;1283:54;;2277:34:165;;;2347:15;;;2327:18;;;2320:43;;;;2399:15;;;2379:18;;;2372:43;1326:10:131;2446:2:165;2431:18;;2424:43;1189:33:131;;-1:-1:-1;1283:54:131;;2226:3:165;2211:19;1283:54:131;;;;;;;946:398;832:512;;;;:::o;1489:417::-;1607:7;1626:18;1647:27;;;;;;;;:::i;:::-;-1:-1:-1;;1647:27:131;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2708:15:165;;;1647:27:131;1714:60;;2690:34:165;2760:15;;2740:18;;;2733:43;1714:60:131;;;;;;;;;2625:18:165;;;1714:60:131;;;1647:27;;-1:-1:-1;;;1814:39:131;;1647:27;;1714:60;;1814:39;;;:::i;:::-;;;;;;;;;;;;;1784:69;;1870:29;1878:4;1884:14;1870:7;:29::i;:::-;1863:36;1489:417;-1:-1:-1;;;;;;;1489:417:131:o;2045:533::-;2116:7;2135:12;2266:8;2260:4;2256:19;2343:8;2337:15;2450:4;2436:12;2422;2409:11;2401:54;2393:62;;;;2490:4;2478:17;2468:73;;2525:1;2522;2515:12;2468:73;2567:4;2045:533;-1:-1:-1;;;2045:533:131:o;-1:-1:-1:-;;;;;;;;:::o;14:180:165:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:165;;14:180;-1:-1:-1;14:180:165:o;407:173::-;475:20;;-1:-1:-1;;;;;524:31:165;;514:42;;504:70;;570:1;567;560:12;504:70;407:173;;;:::o;585:260::-;653:6;661;714:2;702:9;693:7;689:23;685:32;682:52;;;730:1;727;720:12;682:52;753:29;772:9;753:29;:::i;:::-;743:39;;801:38;835:2;824:9;820:18;801:38;:::i;:::-;791:48;;585:260;;;;;:::o;850:186::-;909:6;962:2;950:9;941:7;937:23;933:32;930:52;;;978:1;975;968:12;930:52;1001:29;1020:9;1001:29;:::i;2787:322::-;2828:3;2866:5;2860:12;2890:1;2900:128;2914:6;2911:1;2908:13;2900:128;;;3011:4;2996:13;;;2992:24;;2986:31;2973:11;;;2966:52;2929:12;2900:128;;;-1:-1:-1;3083:1:165;3047:16;;3072:13;;;-1:-1:-1;3047:16:165;;2787:322;-1:-1:-1;2787:322:165:o;3114:261::-;3289:3;3314:55;3339:29;3364:3;3356:6;3339:29;:::i;:::-;3331:6;3314:55;:::i;:::-;3307:62;3114:261;-1:-1:-1;;;;3114:261:165:o","linkReferences":{}},"methodIdentifiers":{"availableExchanges(address)":"a397c073","deployExchange(address,address)":"6b35ea28","exchangeDeployed(bytes32)":"443bc94a","isExchangeAvailable(address)":"78c39d5f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"exchange\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"ExchangeDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"exchange\",\"type\":\"address\"}],\"name\":\"availableExchanges\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"deployExchange\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"exchange\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"exchangeDeployed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"exchange\",\"type\":\"address\"}],\"name\":\"isExchangeAvailable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"deployExchange(address,address)\":{\"details\":\"Deploys an Exchange using CREATE2 opcode.\",\"params\":{\"tokenA\":\"address of source token.\",\"tokenB\":\"address of target token\"},\"returns\":{\"exchange\":\"address of the deployed Exchange.\"}},\"isExchangeAvailable(address)\":{\"details\":\"Checks if Exchange is available.\",\"returns\":{\"_0\":\"The bool flag of exchanges's availability.\"}}},\"title\":\"Exchange Factory The contract which allows to deploy Exchanges with different token pairs and track contract addresses.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/orderbook/ExchangeFactory.sol\":\"ExchangeFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/orderbook/Exchange.sol\":{\"keccak256\":\"0x25cfdeca43fcd2540c765cd1ba84c5d076de584585387433b26d7043275757af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a82f645fc5803dc66c3d99ed4ea8586d661ca01b4e4d1cd5d82da97ee98b995\",\"dweb:/ipfs/QmZehTtHXRpp9YH9H75VjGdbivn64RPF7LBocvyAYYhBR3\"]},\"contracts/orderbook/ExchangeFactory.sol\":{\"keccak256\":\"0xc98506c477026d005eb93969a8720fa62747465d74c6f52d32f0f07961a65428\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb5aebf327a48f6dfc58f0724ea128789c109d80b8cccb4b4d8fb903006695b9\",\"dweb:/ipfs/QmRhYFRTuGktWx1t4qSgBredNkpFydDq1nsmJRaLUmXHbJ\"]},\"contracts/orderbook/Orderbook.sol\":{\"keccak256\":\"0x079c6e675b95a97f53531ca0572a84e56d9c6b44056a4d3f5c598ad0004ffc19\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4279c5300585b3d7ca28f87ee881deecf312c7fe766de09996871fe36523bdbe\",\"dweb:/ipfs/QmaJ1kH8L9K6MgvkfAa1SK1L2ztYxSimQaF17pbFKz4Egk\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"exchange","type":"address","indexed":false},{"internalType":"address","name":"tokenA","type":"address","indexed":false},{"internalType":"address","name":"tokenB","type":"address","indexed":false},{"internalType":"address","name":"deployer","type":"address","indexed":false}],"type":"event","name":"ExchangeDeployed","anonymous":false},{"inputs":[{"internalType":"address","name":"exchange","type":"address"}],"stateMutability":"view","type":"function","name":"availableExchanges","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deployExchange","outputs":[{"internalType":"address","name":"exchange","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"exchangeDeployed","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"exchange","type":"address"}],"stateMutability":"view","type":"function","name":"isExchangeAvailable","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"deployExchange(address,address)":{"details":"Deploys an Exchange using CREATE2 opcode.","params":{"tokenA":"address of source token.","tokenB":"address of target token"},"returns":{"exchange":"address of the deployed Exchange."}},"isExchangeAvailable(address)":{"details":"Checks if Exchange is available.","returns":{"_0":"The bool flag of exchanges's availability."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/orderbook/ExchangeFactory.sol":"ExchangeFactory"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/orderbook/Exchange.sol":{"keccak256":"0x25cfdeca43fcd2540c765cd1ba84c5d076de584585387433b26d7043275757af","urls":["bzz-raw://5a82f645fc5803dc66c3d99ed4ea8586d661ca01b4e4d1cd5d82da97ee98b995","dweb:/ipfs/QmZehTtHXRpp9YH9H75VjGdbivn64RPF7LBocvyAYYhBR3"],"license":"MIT"},"contracts/orderbook/ExchangeFactory.sol":{"keccak256":"0xc98506c477026d005eb93969a8720fa62747465d74c6f52d32f0f07961a65428","urls":["bzz-raw://bb5aebf327a48f6dfc58f0724ea128789c109d80b8cccb4b4d8fb903006695b9","dweb:/ipfs/QmRhYFRTuGktWx1t4qSgBredNkpFydDq1nsmJRaLUmXHbJ"],"license":"MIT"},"contracts/orderbook/Orderbook.sol":{"keccak256":"0x079c6e675b95a97f53531ca0572a84e56d9c6b44056a4d3f5c598ad0004ffc19","urls":["bzz-raw://4279c5300585b3d7ca28f87ee881deecf312c7fe766de09996871fe36523bdbe","dweb:/ipfs/QmaJ1kH8L9K6MgvkfAa1SK1L2ztYxSimQaF17pbFKz4Egk"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80","urls":["bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229","dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"}},"version":1},"id":131} \ No newline at end of file diff --git a/out/ExchangeFactoryHTS.sol/ExchangeFactoryHTS.json b/out/ExchangeFactoryHTS.sol/ExchangeFactoryHTS.json new file mode 100644 index 0000000..3cace6a --- /dev/null +++ b/out/ExchangeFactoryHTS.sol/ExchangeFactoryHTS.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"availableExchanges","inputs":[{"name":"exchange","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"deployExchange","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"}],"outputs":[{"name":"exchange","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"exchangeDeployed","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isExchangeAvailable","inputs":[{"name":"exchange","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"ExchangeDeployed","inputs":[{"name":"exchange","type":"address","indexed":false,"internalType":"address"},{"name":"tokenA","type":"address","indexed":false,"internalType":"address"},{"name":"tokenB","type":"address","indexed":false,"internalType":"address"},{"name":"deployer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50612194806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063443bc94a146100515780636b35ea281461009757806378c39d5f146100aa578063a397c073146100e6575b600080fd5b61007a61005f366004610321565b6001602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007a6100a5366004610356565b610109565b6100d66100b8366004610389565b6001600160a01b031660009081526020819052604090205460ff1690565b604051901515815260200161008e565b6100d66100f4366004610389565b60006020819052908152604090205460ff1681565b6040516bffffffffffffffffffffffff1933606090811b8216602084015284811b8216603484015283901b1660488201526000908190605c0160408051601f198184030181529181528151602092830120600081815260019093529120549091506001600160a01b0316156101c45760405162461bcd60e51b815260206004820152601960248201527f45786368616e676520616c7265616479206465706c6f79656400000000000000604482015260640160405180910390fd5b6101cf818585610266565b600082815260016020818152604080842080546001600160a01b0319166001600160a01b0387811691821790925580865285845294829020805460ff1916909417909355805193845288831691840191909152908616908201523360608201529092507fa5b803b77d28e977c1af94d97267f3615377386271d1d18976e7d87309e04b0d9060800160405180910390a15092915050565b6000806040518060200161027990610314565b601f1982820381018352601f9091011660408181526001600160a01b038781166020840152861681830152805180830382018152606083019091529192506000906102ca90849084906080016103d4565b60405160208183030381529060405290506102e587826102f0565b979650505050505050565b60008082602001835185818334f592505050803b61030d57600080fd5b9392505050565b611d6d806103f283390190565b60006020828403121561033357600080fd5b5035919050565b80356001600160a01b038116811461035157600080fd5b919050565b6000806040838503121561036957600080fd5b6103728361033a565b91506103806020840161033a565b90509250929050565b60006020828403121561039b57600080fd5b61030d8261033a565b6000815160005b818110156103c557602081850181015186830152016103ab565b50600093019283525090919050565b60006103e96103e383866103a4565b846103a4565b94935050505056fe60806040523480156200001157600080fd5b5060405162001d6d38038062001d6d8339810160408190526200003491620001e1565b60016008819055600080546001600160a01b038086166001600160a01b03199283168117909355835490851691161790915562000072903062000092565b6001546200008a906001600160a01b03163062000092565b505062000276565b604080516001600160a01b038381166024830152841660448083019190915282518083039091018152606490910182526020810180516001600160e01b031663248a35ef60e11b17905290516000918291829161016791620000f5919062000219565b6000604051808303816000865af19150503d806000811462000134576040519150601f19603f3d011682016040523d82523d6000602084013e62000139565b606091505b5091509150816200014c57601562000162565b808060200190518101906200016291906200024a565b9250600383900b601614620001bd5760405162461bcd60e51b815260206004820152601f60248201527f536166652073696e676c65206173736f63696174696f6e206661696c65642100604482015260640160405180910390fd5b5050505050565b80516001600160a01b0381168114620001dc57600080fd5b919050565b60008060408385031215620001f557600080fd5b6200020083620001c4565b91506200021060208401620001c4565b90509250929050565b6000825160005b818110156200023c576020818601810151858301520162000220565b506000920191825250919050565b6000602082840312156200025d57600080fd5b81518060030b81146200026f57600080fd5b9392505050565b611ae780620002866000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806372fb07771161008c578063bb110bf911610066578063bb110bf91461024d578063dd5813ee14610256578063f7888aec14610269578063f88d2047146102aa57600080fd5b806372fb077714610226578063925931fc1461022f57806392c029911461023857600080fd5b806303c4c2e1146100d45780630fc63d10146100fa5780632ec2add71461012557806335cea288146101385780634a8393f3146101c15780635f64b55b14610213575b600080fd5b6100e76100e236600461184d565b6102bd565b6040519081526020015b60405180910390f35b60005461010d906001600160a01b031681565b6040516001600160a01b0390911681526020016100f1565b6100e761013336600461184d565b6103f1565b61018a610146366004611880565b600260208190526000918252604090912080546001820154928201546003909201549092600781810b93600160401b909204900b916001600160a01b039091169085565b60408051958652600794850b60208701529290930b918401919091526001600160a01b03166060830152608082015260a0016100f1565b61018a6101cf366004611880565b600360208190526000918252604090912080546001820154600283015492909301549092600781810b93600160401b909204900b916001600160a01b039091169085565b60015461010d906001600160a01b031681565b6100e760065481565b6100e760075481565b61024b6102463660046118b0565b6104f3565b005b6100e760055481565b61024b6102643660046118b0565b610607565b6102976102773660046118cc565b600460209081526000928352604080842090915290825290205460070b81565b60405160079190910b81526020016100f1565b61024b6102b83660046118f6565b6106c3565b60006102c761084c565b60008360070b1361030f5760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420507269636560981b60448201526064015b60405180910390fd5b60008260070b136103535760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420566f6c756d6560901b6044820152606401610306565b6103616305f5e10083611941565b61036b908461198e565b3360009081526004602090815260408083206001546001600160a01b03168452909152902054600791820b910b12156103b65760405162461bcd60e51b8152600401610306906119b5565b60006103c3338585610876565b905060008160070b13156103dc576103dc338583610b96565b50506007546103eb6001600855565b92915050565b60006103fb61084c565b60008360070b1361043e5760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420507269636560981b6044820152606401610306565b60008260070b136104825760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420566f6c756d6560901b6044820152606401610306565b33600090815260046020908152604080832083546001600160a01b03168452909152902054600783810b91900b12156104cd5760405162461bcd60e51b8152600401610306906119b5565b60006104da338585610da7565b905060008160070b13156103dc576103dc3385836110a1565b6104fb61084c565b6000546001600160a01b038381169116148061052457506001546001600160a01b038381169116145b6105605760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610306565b60008160070b136105a45760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b6044820152606401610306565b3360009081526004602090815260408083206001600160a01b0386168452909152902054600782810b91900b12156105ee5760405162461bcd60e51b8152600401610306906119b5565b6105f9338383611287565b6106036001600855565b5050565b61060f61084c565b6000546001600160a01b038381169116148061063857506001546001600160a01b038381169116145b6106745760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610306565b60008160070b136106b85760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b6044820152606401610306565b6105f933838361134b565b6106cb61084c565b6000816106e55760008381526003602052604090206106f4565b60008381526002602052604090205b60028101549091506001600160a01b03166107485760405162461bcd60e51b815260206004820152601460248201527313dc99195c88191bd95cc81b9bdd08195e1a5cdd60621b6044820152606401610306565b60028101546001600160a01b031633146107b95760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c7920746865206f726465722063726561746f722063616e2063616e636560448201526b36103a3434b99037b93232b960a11b6064820152608401610306565b60018101546000600160401b90910460070b136108245760405162461bcd60e51b8152602060048201526024808201527f4f7264657220616c72656164792063616e63656c6c6564206f722066756c66696044820152631b1b195960e21b6064820152608401610306565b81156108385761083381611402565b610841565b61084181611591565b506106036001600855565b60026008540361086f57604051633ee5aeb560e01b815260040160405180910390fd5b6002600855565b600654600090600a825b8215801590610892575060008560070b135b801561089d57508181105b15610b8a5760008381526003602052604090206001810154600790810b9088900b12610b71576001810154600090600788810b600160401b909204900b126108e557866108f5565b6001820154600160401b900460070b5b600183015490915060070b61090e6305f5e10083611941565b610918908261198e565b6001600160a01b03808c1660009081526004602090815260408083206001549094168352929052908120805490919061095590849060070b6119e1565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b03808b1660009081526004602090815260408083208354909416835292905290812080548492906109b490849060070b611a10565b92506101000a8154816001600160401b03021916908360070b6001600160401b031602179055506305f5e100826109eb9190611941565b6109f5908261198e565b60028401546001600160a01b03908116600090815260046020908152604080832060015490941683529290529081208054909190610a3790849060070b611a10565b92506101000a8154816001600160401b03021916908360070b6001600160401b031602179055508188610a6a91906119e1565b6001840180549199508391600890610a8d908490600160401b900460070b6119e1565b82546101009290920a6001600160401b03818102199093169190921691909102179055506001830154600284015460408051600786810b82529390930b60208401526001600160a01b038d8116848301529091166060830152517f3811c688c91a2195acbf84f4d5e7adc8d2f17ba048f1051955046e511411fd7d9181900360800190a16001830154600160401b900460070b600003610b6a5760038084015460009788526020829052604088208881556001810180546001600160801b03191690556002810180546001600160a01b0319169055909101969096555b5050610b77565b50610b8a565b81610b8181611a3f565b92505050610880565b50506006555092915050565b60078054906000610ba683611a3f565b909155505060055460005b8115801590610bd75750600082815260026020526040902060010154600785810b91900b135b15610bf5575060008181526002602052604090206003015490610bb1565b6040805160a0810182526007805480835287820b60208085019182529288900b8486019081526001600160a01b03808c1660608701908152608087018a815260009586526002968790529790942095518655915160018601805492516001600160401b03908116600160401b026001600160801b031990941692169190911791909117905590519183018054929091166001600160a01b03199092169190911790559051600390910155610cad6305f5e10084611941565b610cb7908561198e565b6001600160a01b03808716600090815260046020908152604080832060015490941683529290529081208054909190610cf490849060070b6119e1565b82546001600160401b039182166101009390930a92830291909202199091161790555060078054604080516001815260208101929092526001600160a01b0388169082015285820b60608201529084900b60808201527fddca83c332d5b33951e90d550eefc003b7a1efae1cdf8c4d684d4ccdf2cd8d599060a00160405180910390a180600003610d8a57600754600555610da0565b6007546000828152600260205260409020600301555b5050505050565b600554600090600a825b8215801590610dc3575060008560070b135b8015610dce57508181105b156110955760008381526002602052604090206001810154600790810b9088900b1361107c576001810154600090600788810b600160401b909204900b12610e165786610e26565b6001820154600160401b900460070b5b905087610e376305f5e10083611941565b610e41908261198e565b6001600160a01b03808c16600090815260046020908152604080832060015490941683529290529081208054909190610e7e90849060070b611a10565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b03808b166000908152600460209081526040808320835490941683529290529081208054849290610edd90849060070b6119e1565b82546001600160401b039182166101009390930a92830291909202199091161790555060028301546001600160a01b039081166000908152600460209081526040808320835490941683529290529081208054849290610f4190849060070b611a10565b92506101000a8154816001600160401b03021916908360070b6001600160401b031602179055508188610f7491906119e1565b6001840180549199508391600890610f97908490600160401b900460070b6119e1565b82546101009290920a6001600160401b03818102199093169190921691909102179055506001830154600284015460408051600786810b82529390930b60208401526001600160a01b038d8116848301529091166060830152517f3811c688c91a2195acbf84f4d5e7adc8d2f17ba048f1051955046e511411fd7d9181900360800190a16001830154600160401b900460070b60000361107557600380840154600097885260026020819052604089208981556001810180546001600160801b031916905590810180546001600160a01b0319169055909101969096555b5050611082565b50611095565b8161108c81611a3f565b92505050610db1565b50506005555092915050565b600780549060006110b183611a3f565b909155505060065460005b81158015906110e25750600082815260036020526040902060010154600785810b91900b125b15611101575060008181526003602081905260409091200154906110bc565b6040805160a0810182526007805480835287820b602080850191825288840b8587019081526001600160a01b03808d1660608801818152608089018c8152600097885260038087528b89209a518b55965160018b01805496516001600160401b03908116600160401b026001600160801b031990981692169190911795909517909455516002890180549184166001600160a01b0319909216919091179055915196909301959095559382526004845284822082549091168252909252918120805486939192916111d49185910b6119e1565b82546001600160401b039182166101009390930a92830291909202199091161790555060078054604080516000815260208101929092526001600160a01b0388169082015285820b60608201529084900b60808201527fddca83c332d5b33951e90d550eefc003b7a1efae1cdf8c4d684d4ccdf2cd8d599060a00160405180910390a18060000361126a57600754600655610da0565b600754600082815260036020819052604090912001555050505050565b6001600160a01b038084166000908152600460209081526040808320938616835292905290812080548392906112c190849060070b6119e1565b92506101000a8154816001600160401b03021916908360070b6001600160401b031602179055506112f4823085846116fd565b604080516001600160a01b03808616825284166020820152600783900b918101919091527fd09be44e70d8a46d3b3b8da9701595dcaec29d75930065918923c7d9fd73eb58906060015b60405180910390a1505050565b611357828430846116fd565b6001600160a01b0380841660009081526004602090815260408083209386168352929052908120805483929061139190849060070b611a10565b82546001600160401b039182166101009390930a928302919092021990911617905550604080516001600160a01b03808616825284166020820152600783900b918101919091527f64e3b56a34ae45fe7d1f33e3d3da391a671e6043606ac9c811a6c1243023841d9060600161133e565b60055481540361141957600381015460055561149e565b60055460009081526002602052604090205b815460038201541461149457806003015460000361147d5760405162461bcd60e51b815260206004820152600f60248201526e13dc99195c881b9bdd08199bdd5b99608a1b6044820152606401610306565b60030154600090815260026020526040902061142b565b6003808301549101555b60018101546114bc906305f5e10090600160401b900460070b611941565b60018201546114ce919060070b61198e565b60028201546001600160a01b0390811660009081526004602090815260408083206001549094168352929052908120805490919061151090849060070b611a10565b82546001600160401b039182166101009390930a9283029190920219909116179055506001818101805467ffffffffffffffff60401b19169055815460408051928352602083019190915233908201527fcfa919375acf04933787aa7f7b25d71adf2e92839529dad777b47ff2cd0827a4906060015b60405180910390a150565b6006548154036115a8576003810154600655611630565b60065460009081526003602052604090205b815460038201541461162657806003015460000361160c5760405162461bcd60e51b815260206004820152600f60248201526e13dc99195c881b9bdd08199bdd5b99608a1b6044820152606401610306565b6003908101546000908152602091909152604090206115ba565b6003808301549101555b600181015460028201546001600160a01b039081166000908152600460209081526040808320835490941683529290529081208054600160401b909304600790810b93919291611683918591900b611a10565b82546001600160401b039182166101009390930a92830291909202199091161790555060018101805467ffffffffffffffff60401b1916905580546040805160008152602081019290925233908201527fcfa919375acf04933787aa7f7b25d71adf2e92839529dad777b47ff2cd0827a490606001611586565b604080516001600160a01b038681166024830152858116604483015284166064820152600783900b6084808301919091528251808303909101815260a490910182526020810180516001600160e01b031663eca3691760e01b179052905160009182918291610167916117709190611a58565b6000604051808303816000865af19150503d80600081146117ad576040519150601f19603f3d011682016040523d82523d6000602084013e6117b2565b606091505b5091509150816117c35760156117d7565b808060200190518101906117d79190611a87565b9250600383900b60161461182d5760405162461bcd60e51b815260206004820152601b60248201527f5361666520746f6b656e207472616e73666572206661696c65642100000000006044820152606401610306565b50505050505050565b8035600781900b811461184857600080fd5b919050565b6000806040838503121561186057600080fd5b61186983611836565b915061187760208401611836565b90509250929050565b60006020828403121561189257600080fd5b5035919050565b80356001600160a01b038116811461184857600080fd5b600080604083850312156118c357600080fd5b61186983611899565b600080604083850312156118df57600080fd5b6118e883611899565b915061187760208401611899565b6000806040838503121561190957600080fd5b823591506020830135801515811461192057600080fd5b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b60008160070b8360070b8061196657634e487b7160e01b600052601260045260246000fd5b677fffffffffffffff198214600019821416156119855761198561192b565b90059392505050565b60008260070b8260070b028060070b91508082146119ae576119ae61192b565b5092915050565b6020808252601290820152714e6f7420656e6f7567682062616c616e636560701b604082015260600190565b600782810b9082900b03677fffffffffffffff198112677fffffffffffffff821317156103eb576103eb61192b565b600781810b9083900b01677fffffffffffffff8113677fffffffffffffff19821217156103eb576103eb61192b565b600060018201611a5157611a5161192b565b5060010190565b6000825160005b81811015611a795760208186018101518583015201611a5f565b506000920191825250919050565b600060208284031215611a9957600080fd5b81518060030b8114611aaa57600080fd5b939250505056fea26469706673582212206700d4c52fdd6724b99f7755de6f255d49b005ca639f747ef8face9576362c2664736f6c63430008180033a2646970667358221220e079727fac3d0a9061ea42db526523caf916085c3d5550bb51c41f1e47f8fb0e64736f6c63430008180033","sourceMap":"252:2600:133:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063443bc94a146100515780636b35ea281461009757806378c39d5f146100aa578063a397c073146100e6575b600080fd5b61007a61005f366004610321565b6001602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007a6100a5366004610356565b610109565b6100d66100b8366004610389565b6001600160a01b031660009081526020819052604090205460ff1690565b604051901515815260200161008e565b6100d66100f4366004610389565b60006020819052908152604090205460ff1681565b6040516bffffffffffffffffffffffff1933606090811b8216602084015284811b8216603484015283901b1660488201526000908190605c0160408051601f198184030181529181528151602092830120600081815260019093529120549091506001600160a01b0316156101c45760405162461bcd60e51b815260206004820152601960248201527f45786368616e676520616c7265616479206465706c6f79656400000000000000604482015260640160405180910390fd5b6101cf818585610266565b600082815260016020818152604080842080546001600160a01b0319166001600160a01b0387811691821790925580865285845294829020805460ff1916909417909355805193845288831691840191909152908616908201523360608201529092507fa5b803b77d28e977c1af94d97267f3615377386271d1d18976e7d87309e04b0d9060800160405180910390a15092915050565b6000806040518060200161027990610314565b601f1982820381018352601f9091011660408181526001600160a01b038781166020840152861681830152805180830382018152606083019091529192506000906102ca90849084906080016103d4565b60405160208183030381529060405290506102e587826102f0565b979650505050505050565b60008082602001835185818334f592505050803b61030d57600080fd5b9392505050565b611d6d806103f283390190565b60006020828403121561033357600080fd5b5035919050565b80356001600160a01b038116811461035157600080fd5b919050565b6000806040838503121561036957600080fd5b6103728361033a565b91506103806020840161033a565b90509250929050565b60006020828403121561039b57600080fd5b61030d8261033a565b6000815160005b818110156103c557602081850181015186830152016103ab565b50600093019283525090919050565b60006103e96103e383866103a4565b846103a4565b94935050505056fe60806040523480156200001157600080fd5b5060405162001d6d38038062001d6d8339810160408190526200003491620001e1565b60016008819055600080546001600160a01b038086166001600160a01b03199283168117909355835490851691161790915562000072903062000092565b6001546200008a906001600160a01b03163062000092565b505062000276565b604080516001600160a01b038381166024830152841660448083019190915282518083039091018152606490910182526020810180516001600160e01b031663248a35ef60e11b17905290516000918291829161016791620000f5919062000219565b6000604051808303816000865af19150503d806000811462000134576040519150601f19603f3d011682016040523d82523d6000602084013e62000139565b606091505b5091509150816200014c57601562000162565b808060200190518101906200016291906200024a565b9250600383900b601614620001bd5760405162461bcd60e51b815260206004820152601f60248201527f536166652073696e676c65206173736f63696174696f6e206661696c65642100604482015260640160405180910390fd5b5050505050565b80516001600160a01b0381168114620001dc57600080fd5b919050565b60008060408385031215620001f557600080fd5b6200020083620001c4565b91506200021060208401620001c4565b90509250929050565b6000825160005b818110156200023c576020818601810151858301520162000220565b506000920191825250919050565b6000602082840312156200025d57600080fd5b81518060030b81146200026f57600080fd5b9392505050565b611ae780620002866000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806372fb07771161008c578063bb110bf911610066578063bb110bf91461024d578063dd5813ee14610256578063f7888aec14610269578063f88d2047146102aa57600080fd5b806372fb077714610226578063925931fc1461022f57806392c029911461023857600080fd5b806303c4c2e1146100d45780630fc63d10146100fa5780632ec2add71461012557806335cea288146101385780634a8393f3146101c15780635f64b55b14610213575b600080fd5b6100e76100e236600461184d565b6102bd565b6040519081526020015b60405180910390f35b60005461010d906001600160a01b031681565b6040516001600160a01b0390911681526020016100f1565b6100e761013336600461184d565b6103f1565b61018a610146366004611880565b600260208190526000918252604090912080546001820154928201546003909201549092600781810b93600160401b909204900b916001600160a01b039091169085565b60408051958652600794850b60208701529290930b918401919091526001600160a01b03166060830152608082015260a0016100f1565b61018a6101cf366004611880565b600360208190526000918252604090912080546001820154600283015492909301549092600781810b93600160401b909204900b916001600160a01b039091169085565b60015461010d906001600160a01b031681565b6100e760065481565b6100e760075481565b61024b6102463660046118b0565b6104f3565b005b6100e760055481565b61024b6102643660046118b0565b610607565b6102976102773660046118cc565b600460209081526000928352604080842090915290825290205460070b81565b60405160079190910b81526020016100f1565b61024b6102b83660046118f6565b6106c3565b60006102c761084c565b60008360070b1361030f5760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420507269636560981b60448201526064015b60405180910390fd5b60008260070b136103535760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420566f6c756d6560901b6044820152606401610306565b6103616305f5e10083611941565b61036b908461198e565b3360009081526004602090815260408083206001546001600160a01b03168452909152902054600791820b910b12156103b65760405162461bcd60e51b8152600401610306906119b5565b60006103c3338585610876565b905060008160070b13156103dc576103dc338583610b96565b50506007546103eb6001600855565b92915050565b60006103fb61084c565b60008360070b1361043e5760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420507269636560981b6044820152606401610306565b60008260070b136104825760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420566f6c756d6560901b6044820152606401610306565b33600090815260046020908152604080832083546001600160a01b03168452909152902054600783810b91900b12156104cd5760405162461bcd60e51b8152600401610306906119b5565b60006104da338585610da7565b905060008160070b13156103dc576103dc3385836110a1565b6104fb61084c565b6000546001600160a01b038381169116148061052457506001546001600160a01b038381169116145b6105605760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610306565b60008160070b136105a45760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b6044820152606401610306565b3360009081526004602090815260408083206001600160a01b0386168452909152902054600782810b91900b12156105ee5760405162461bcd60e51b8152600401610306906119b5565b6105f9338383611287565b6106036001600855565b5050565b61060f61084c565b6000546001600160a01b038381169116148061063857506001546001600160a01b038381169116145b6106745760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610306565b60008160070b136106b85760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b6044820152606401610306565b6105f933838361134b565b6106cb61084c565b6000816106e55760008381526003602052604090206106f4565b60008381526002602052604090205b60028101549091506001600160a01b03166107485760405162461bcd60e51b815260206004820152601460248201527313dc99195c88191bd95cc81b9bdd08195e1a5cdd60621b6044820152606401610306565b60028101546001600160a01b031633146107b95760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c7920746865206f726465722063726561746f722063616e2063616e636560448201526b36103a3434b99037b93232b960a11b6064820152608401610306565b60018101546000600160401b90910460070b136108245760405162461bcd60e51b8152602060048201526024808201527f4f7264657220616c72656164792063616e63656c6c6564206f722066756c66696044820152631b1b195960e21b6064820152608401610306565b81156108385761083381611402565b610841565b61084181611591565b506106036001600855565b60026008540361086f57604051633ee5aeb560e01b815260040160405180910390fd5b6002600855565b600654600090600a825b8215801590610892575060008560070b135b801561089d57508181105b15610b8a5760008381526003602052604090206001810154600790810b9088900b12610b71576001810154600090600788810b600160401b909204900b126108e557866108f5565b6001820154600160401b900460070b5b600183015490915060070b61090e6305f5e10083611941565b610918908261198e565b6001600160a01b03808c1660009081526004602090815260408083206001549094168352929052908120805490919061095590849060070b6119e1565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b03808b1660009081526004602090815260408083208354909416835292905290812080548492906109b490849060070b611a10565b92506101000a8154816001600160401b03021916908360070b6001600160401b031602179055506305f5e100826109eb9190611941565b6109f5908261198e565b60028401546001600160a01b03908116600090815260046020908152604080832060015490941683529290529081208054909190610a3790849060070b611a10565b92506101000a8154816001600160401b03021916908360070b6001600160401b031602179055508188610a6a91906119e1565b6001840180549199508391600890610a8d908490600160401b900460070b6119e1565b82546101009290920a6001600160401b03818102199093169190921691909102179055506001830154600284015460408051600786810b82529390930b60208401526001600160a01b038d8116848301529091166060830152517f3811c688c91a2195acbf84f4d5e7adc8d2f17ba048f1051955046e511411fd7d9181900360800190a16001830154600160401b900460070b600003610b6a5760038084015460009788526020829052604088208881556001810180546001600160801b03191690556002810180546001600160a01b0319169055909101969096555b5050610b77565b50610b8a565b81610b8181611a3f565b92505050610880565b50506006555092915050565b60078054906000610ba683611a3f565b909155505060055460005b8115801590610bd75750600082815260026020526040902060010154600785810b91900b135b15610bf5575060008181526002602052604090206003015490610bb1565b6040805160a0810182526007805480835287820b60208085019182529288900b8486019081526001600160a01b03808c1660608701908152608087018a815260009586526002968790529790942095518655915160018601805492516001600160401b03908116600160401b026001600160801b031990941692169190911791909117905590519183018054929091166001600160a01b03199092169190911790559051600390910155610cad6305f5e10084611941565b610cb7908561198e565b6001600160a01b03808716600090815260046020908152604080832060015490941683529290529081208054909190610cf490849060070b6119e1565b82546001600160401b039182166101009390930a92830291909202199091161790555060078054604080516001815260208101929092526001600160a01b0388169082015285820b60608201529084900b60808201527fddca83c332d5b33951e90d550eefc003b7a1efae1cdf8c4d684d4ccdf2cd8d599060a00160405180910390a180600003610d8a57600754600555610da0565b6007546000828152600260205260409020600301555b5050505050565b600554600090600a825b8215801590610dc3575060008560070b135b8015610dce57508181105b156110955760008381526002602052604090206001810154600790810b9088900b1361107c576001810154600090600788810b600160401b909204900b12610e165786610e26565b6001820154600160401b900460070b5b905087610e376305f5e10083611941565b610e41908261198e565b6001600160a01b03808c16600090815260046020908152604080832060015490941683529290529081208054909190610e7e90849060070b611a10565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b03808b166000908152600460209081526040808320835490941683529290529081208054849290610edd90849060070b6119e1565b82546001600160401b039182166101009390930a92830291909202199091161790555060028301546001600160a01b039081166000908152600460209081526040808320835490941683529290529081208054849290610f4190849060070b611a10565b92506101000a8154816001600160401b03021916908360070b6001600160401b031602179055508188610f7491906119e1565b6001840180549199508391600890610f97908490600160401b900460070b6119e1565b82546101009290920a6001600160401b03818102199093169190921691909102179055506001830154600284015460408051600786810b82529390930b60208401526001600160a01b038d8116848301529091166060830152517f3811c688c91a2195acbf84f4d5e7adc8d2f17ba048f1051955046e511411fd7d9181900360800190a16001830154600160401b900460070b60000361107557600380840154600097885260026020819052604089208981556001810180546001600160801b031916905590810180546001600160a01b0319169055909101969096555b5050611082565b50611095565b8161108c81611a3f565b92505050610db1565b50506005555092915050565b600780549060006110b183611a3f565b909155505060065460005b81158015906110e25750600082815260036020526040902060010154600785810b91900b125b15611101575060008181526003602081905260409091200154906110bc565b6040805160a0810182526007805480835287820b602080850191825288840b8587019081526001600160a01b03808d1660608801818152608089018c8152600097885260038087528b89209a518b55965160018b01805496516001600160401b03908116600160401b026001600160801b031990981692169190911795909517909455516002890180549184166001600160a01b0319909216919091179055915196909301959095559382526004845284822082549091168252909252918120805486939192916111d49185910b6119e1565b82546001600160401b039182166101009390930a92830291909202199091161790555060078054604080516000815260208101929092526001600160a01b0388169082015285820b60608201529084900b60808201527fddca83c332d5b33951e90d550eefc003b7a1efae1cdf8c4d684d4ccdf2cd8d599060a00160405180910390a18060000361126a57600754600655610da0565b600754600082815260036020819052604090912001555050505050565b6001600160a01b038084166000908152600460209081526040808320938616835292905290812080548392906112c190849060070b6119e1565b92506101000a8154816001600160401b03021916908360070b6001600160401b031602179055506112f4823085846116fd565b604080516001600160a01b03808616825284166020820152600783900b918101919091527fd09be44e70d8a46d3b3b8da9701595dcaec29d75930065918923c7d9fd73eb58906060015b60405180910390a1505050565b611357828430846116fd565b6001600160a01b0380841660009081526004602090815260408083209386168352929052908120805483929061139190849060070b611a10565b82546001600160401b039182166101009390930a928302919092021990911617905550604080516001600160a01b03808616825284166020820152600783900b918101919091527f64e3b56a34ae45fe7d1f33e3d3da391a671e6043606ac9c811a6c1243023841d9060600161133e565b60055481540361141957600381015460055561149e565b60055460009081526002602052604090205b815460038201541461149457806003015460000361147d5760405162461bcd60e51b815260206004820152600f60248201526e13dc99195c881b9bdd08199bdd5b99608a1b6044820152606401610306565b60030154600090815260026020526040902061142b565b6003808301549101555b60018101546114bc906305f5e10090600160401b900460070b611941565b60018201546114ce919060070b61198e565b60028201546001600160a01b0390811660009081526004602090815260408083206001549094168352929052908120805490919061151090849060070b611a10565b82546001600160401b039182166101009390930a9283029190920219909116179055506001818101805467ffffffffffffffff60401b19169055815460408051928352602083019190915233908201527fcfa919375acf04933787aa7f7b25d71adf2e92839529dad777b47ff2cd0827a4906060015b60405180910390a150565b6006548154036115a8576003810154600655611630565b60065460009081526003602052604090205b815460038201541461162657806003015460000361160c5760405162461bcd60e51b815260206004820152600f60248201526e13dc99195c881b9bdd08199bdd5b99608a1b6044820152606401610306565b6003908101546000908152602091909152604090206115ba565b6003808301549101555b600181015460028201546001600160a01b039081166000908152600460209081526040808320835490941683529290529081208054600160401b909304600790810b93919291611683918591900b611a10565b82546001600160401b039182166101009390930a92830291909202199091161790555060018101805467ffffffffffffffff60401b1916905580546040805160008152602081019290925233908201527fcfa919375acf04933787aa7f7b25d71adf2e92839529dad777b47ff2cd0827a490606001611586565b604080516001600160a01b038681166024830152858116604483015284166064820152600783900b6084808301919091528251808303909101815260a490910182526020810180516001600160e01b031663eca3691760e01b179052905160009182918291610167916117709190611a58565b6000604051808303816000865af19150503d80600081146117ad576040519150601f19603f3d011682016040523d82523d6000602084013e6117b2565b606091505b5091509150816117c35760156117d7565b808060200190518101906117d79190611a87565b9250600383900b60161461182d5760405162461bcd60e51b815260206004820152601b60248201527f5361666520746f6b656e207472616e73666572206661696c65642100000000006044820152606401610306565b50505050505050565b8035600781900b811461184857600080fd5b919050565b6000806040838503121561186057600080fd5b61186983611836565b915061187760208401611836565b90509250929050565b60006020828403121561189257600080fd5b5035919050565b80356001600160a01b038116811461184857600080fd5b600080604083850312156118c357600080fd5b61186983611899565b600080604083850312156118df57600080fd5b6118e883611899565b915061187760208401611899565b6000806040838503121561190957600080fd5b823591506020830135801515811461192057600080fd5b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b60008160070b8360070b8061196657634e487b7160e01b600052601260045260246000fd5b677fffffffffffffff198214600019821416156119855761198561192b565b90059392505050565b60008260070b8260070b028060070b91508082146119ae576119ae61192b565b5092915050565b6020808252601290820152714e6f7420656e6f7567682062616c616e636560701b604082015260600190565b600782810b9082900b03677fffffffffffffff198112677fffffffffffffff821317156103eb576103eb61192b565b600781810b9083900b01677fffffffffffffff8113677fffffffffffffff19821217156103eb576103eb61192b565b600060018201611a5157611a5161192b565b5060010190565b6000825160005b81811015611a795760208186018101518583015201611a5f565b506000920191825250919050565b600060208284031215611a9957600080fd5b81518060030b8114611aaa57600080fd5b939250505056fea26469706673582212206700d4c52fdd6724b99f7755de6f255d49b005ca639f747ef8face9576362c2664736f6c63430008180033a2646970667358221220e079727fac3d0a9061ea42db526523caf916085c3d5550bb51c41f1e47f8fb0e64736f6c63430008180033","sourceMap":"252:2600:133:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;417:51;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;417:51:133;;;;;;-1:-1:-1;;;;;363:32:165;;;345:51;;333:2;318:18;417:51:133;;;;;;;;841:512;;;;;;:::i;:::-;;:::i;2722:128::-;;;;;;:::i;:::-;-1:-1:-1;;;;;2815:28:133;2792:4;2815:28;;;;;;;;;;;;;;2722:128;;;;1206:14:165;;1199:22;1181:41;;1169:2;1154:18;2722:128:133;1041:187:165;313:59:133;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;841:512;998:44;;-1:-1:-1;;1015:10:133;1488:2:165;1484:15;;;1480:24;;998:44:133;;;1468:37:165;1539:15;;;1535:24;;1521:12;;;1514:46;1594:15;;;1590:24;1576:12;;;1569:46;937:16:133;;;;1631:12:165;;998:44:133;;;-1:-1:-1;;998:44:133;;;;;;;;;988:55;;998:44;988:55;;;;1096:1;1062:22;;;:16;:22;;;;;;988:55;;-1:-1:-1;;;;;;1062:22:133;:36;1054:74;;;;-1:-1:-1;;;1054:74:133;;1856:2:165;1054:74:133;;;1838:21:165;1895:2;1875:18;;;1868:30;1934:27;1914:18;;;1907:55;1979:18;;1054:74:133;;;;;;;;1150:37;1166:4;1172:6;1180;1150:15;:37::i;:::-;1198:22;;;;:16;:22;;;;;;;;:33;;-1:-1:-1;;;;;;1198:33:133;-1:-1:-1;;;;;1198:33:133;;;;;;;;;1241:28;;;;;;;;;;:35;;-1:-1:-1;;1241:35:133;;;;;;;1292:54;;2277:34:165;;;2347:15;;;2327:18;;;2320:43;;;;2399:15;;;2379:18;;;2372:43;1335:10:133;2446:2:165;2431:18;;2424:43;1198:33:133;;-1:-1:-1;1292:54:133;;2226:3:165;2211:19;1292:54:133;;;;;;;955:398;841:512;;;;:::o;1498:420::-;1616:7;1635:18;1656:30;;;;;;;;:::i;:::-;-1:-1:-1;;1656:30:133;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2708:15:165;;;1656:30:133;1726:60;;2690:34:165;2760:15;;2740:18;;;2733:43;1726:60:133;;;;;;;;;2625:18:165;;;1726:60:133;;;1656:30;;-1:-1:-1;;;1826:39:133;;1656:30;;1726:60;;1826:39;;;:::i;:::-;;;;;;;;;;;;;1796:69;;1882:29;1890:4;1896:14;1882:7;:29::i;:::-;1875:36;1498:420;-1:-1:-1;;;;;;;1498:420:133:o;2057:533::-;2128:7;2147:12;2278:8;2272:4;2268:19;2355:8;2349:15;2462:4;2448:12;2434;2421:11;2413:54;2405:62;;;;2502:4;2490:17;2480:73;;2537:1;2534;2527:12;2480:73;2579:4;2057:533;-1:-1:-1;;;2057:533:133:o;-1:-1:-1:-;;;;;;;;:::o;14:180:165:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:165;;14:180;-1:-1:-1;14:180:165:o;407:173::-;475:20;;-1:-1:-1;;;;;524:31:165;;514:42;;504:70;;570:1;567;560:12;504:70;407:173;;;:::o;585:260::-;653:6;661;714:2;702:9;693:7;689:23;685:32;682:52;;;730:1;727;720:12;682:52;753:29;772:9;753:29;:::i;:::-;743:39;;801:38;835:2;824:9;820:18;801:38;:::i;:::-;791:48;;585:260;;;;;:::o;850:186::-;909:6;962:2;950:9;941:7;937:23;933:32;930:52;;;978:1;975;968:12;930:52;1001:29;1020:9;1001:29;:::i;2787:322::-;2828:3;2866:5;2860:12;2890:1;2900:128;2914:6;2911:1;2908:13;2900:128;;;3011:4;2996:13;;;2992:24;;2986:31;2973:11;;;2966:52;2929:12;2900:128;;;-1:-1:-1;3083:1:165;3047:16;;3072:13;;;-1:-1:-1;3047:16:165;;2787:322;-1:-1:-1;2787:322:165:o;3114:261::-;3289:3;3314:55;3339:29;3364:3;3356:6;3339:29;:::i;:::-;3331:6;3314:55;:::i;:::-;3307:62;3114:261;-1:-1:-1;;;;3114:261:165:o","linkReferences":{}},"methodIdentifiers":{"availableExchanges(address)":"a397c073","deployExchange(address,address)":"6b35ea28","exchangeDeployed(bytes32)":"443bc94a","isExchangeAvailable(address)":"78c39d5f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"exchange\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"ExchangeDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"exchange\",\"type\":\"address\"}],\"name\":\"availableExchanges\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"deployExchange\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"exchange\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"exchangeDeployed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"exchange\",\"type\":\"address\"}],\"name\":\"isExchangeAvailable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"deployExchange(address,address)\":{\"details\":\"Deploys an Exchange using CREATE2 opcode.\",\"params\":{\"tokenA\":\"address of source token.\",\"tokenB\":\"address of target token\"},\"returns\":{\"exchange\":\"address of the deployed Exchange.\"}},\"isExchangeAvailable(address)\":{\"details\":\"Checks if Exchange is available.\",\"returns\":{\"_0\":\"The bool flag of exchanges's availability.\"}}},\"title\":\"Exchange Factory The contract which allows to deploy Exchanges with different token pairs and track contract addresses.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/orderbook/hts/ExchangeFactoryHTS.sol\":\"ExchangeFactoryHTS\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/safe-HTS/HederaResponseCodes.sol\":{\"keccak256\":\"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca\",\"dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G\"]},\"contracts/common/safe-HTS/IHederaTokenService.sol\":{\"keccak256\":\"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786\",\"dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W\"]},\"contracts/common/safe-HTS/SafeHTS.sol\":{\"keccak256\":\"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe\",\"dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7\"]},\"contracts/orderbook/hts/ExchangeFactoryHTS.sol\":{\"keccak256\":\"0xf3e93f89649e72c9b9d6f51d802c27644218ad0bfece51f5bc09a3b961349996\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee56895d0553a65b6368ffb508b14d1a6a1ea4b36a45c8f85dfaa449b15ef278\",\"dweb:/ipfs/QmYFXfRwx7txDebvQnXfVpX1i5neTdEQsMAXkXwxUjouTB\"]},\"contracts/orderbook/hts/ExchangeHTS.sol\":{\"keccak256\":\"0xc94ba4beb605e90b099608b3b7e9e2dcd97ed72537474aa98858915517228616\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d5861a1c128d7489656fa52d86fe2a3cbc948a6b819cff7250aea8716759643\",\"dweb:/ipfs/Qmd8uCf3fAodEL1GuEqCeqweURG6GCtui9uAZ8C9nHUyMh\"]},\"contracts/orderbook/hts/OrderBookHTS.sol\":{\"keccak256\":\"0xb7220a63df346af26eebd25ea536249e9568777a6294f3410b90f98221c3aeaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de3561a635d0de9e3c1b9ac225a5491f9bd415295501ee5367ad3ac07a5eeb97\",\"dweb:/ipfs/QmNV7EE8BgHVQv9cnPLzEUa1w1dAtSm2stKNdndny23Ahb\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"exchange","type":"address","indexed":false},{"internalType":"address","name":"tokenA","type":"address","indexed":false},{"internalType":"address","name":"tokenB","type":"address","indexed":false},{"internalType":"address","name":"deployer","type":"address","indexed":false}],"type":"event","name":"ExchangeDeployed","anonymous":false},{"inputs":[{"internalType":"address","name":"exchange","type":"address"}],"stateMutability":"view","type":"function","name":"availableExchanges","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deployExchange","outputs":[{"internalType":"address","name":"exchange","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"exchangeDeployed","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"exchange","type":"address"}],"stateMutability":"view","type":"function","name":"isExchangeAvailable","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"deployExchange(address,address)":{"details":"Deploys an Exchange using CREATE2 opcode.","params":{"tokenA":"address of source token.","tokenB":"address of target token"},"returns":{"exchange":"address of the deployed Exchange."}},"isExchangeAvailable(address)":{"details":"Checks if Exchange is available.","returns":{"_0":"The bool flag of exchanges's availability."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/orderbook/hts/ExchangeFactoryHTS.sol":"ExchangeFactoryHTS"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/safe-HTS/HederaResponseCodes.sol":{"keccak256":"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324","urls":["bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca","dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G"],"license":"Apache-2.0"},"contracts/common/safe-HTS/IHederaTokenService.sol":{"keccak256":"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735","urls":["bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786","dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W"],"license":"Apache-2.0"},"contracts/common/safe-HTS/SafeHTS.sol":{"keccak256":"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10","urls":["bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe","dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7"],"license":"Apache-2.0"},"contracts/orderbook/hts/ExchangeFactoryHTS.sol":{"keccak256":"0xf3e93f89649e72c9b9d6f51d802c27644218ad0bfece51f5bc09a3b961349996","urls":["bzz-raw://ee56895d0553a65b6368ffb508b14d1a6a1ea4b36a45c8f85dfaa449b15ef278","dweb:/ipfs/QmYFXfRwx7txDebvQnXfVpX1i5neTdEQsMAXkXwxUjouTB"],"license":"MIT"},"contracts/orderbook/hts/ExchangeHTS.sol":{"keccak256":"0xc94ba4beb605e90b099608b3b7e9e2dcd97ed72537474aa98858915517228616","urls":["bzz-raw://9d5861a1c128d7489656fa52d86fe2a3cbc948a6b819cff7250aea8716759643","dweb:/ipfs/Qmd8uCf3fAodEL1GuEqCeqweURG6GCtui9uAZ8C9nHUyMh"],"license":"MIT"},"contracts/orderbook/hts/OrderBookHTS.sol":{"keccak256":"0xb7220a63df346af26eebd25ea536249e9568777a6294f3410b90f98221c3aeaf","urls":["bzz-raw://de3561a635d0de9e3c1b9ac225a5491f9bd415295501ee5367ad3ac07a5eeb97","dweb:/ipfs/QmNV7EE8BgHVQv9cnPLzEUa1w1dAtSm2stKNdndny23Ahb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80","urls":["bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229","dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"}},"version":1},"id":133} \ No newline at end of file diff --git a/out/ExchangeHTS.sol/ExchangeHTS.json b/out/ExchangeHTS.sol/ExchangeHTS.json new file mode 100644 index 0000000..92096d5 --- /dev/null +++ b/out/ExchangeHTS.sol/ExchangeHTS.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_tokenA","type":"address","internalType":"address"},{"name":"_tokenB","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"int64","internalType":"int64"}],"stateMutability":"view"},{"type":"function","name":"buyOrders","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"price","type":"int64","internalType":"int64"},{"name":"volume","type":"int64","internalType":"int64"},{"name":"trader","type":"address","internalType":"address"},{"name":"next","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cancelOrder","inputs":[{"name":"orderId","type":"uint256","internalType":"uint256"},{"name":"isBuyOrder","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"currentOrderId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"int64","internalType":"int64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"firstBuyOrderId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"firstSellOrderId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"placeBuyOrder","inputs":[{"name":"price","type":"int64","internalType":"int64"},{"name":"volume","type":"int64","internalType":"int64"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"placeSellOrder","inputs":[{"name":"price","type":"int64","internalType":"int64"},{"name":"volume","type":"int64","internalType":"int64"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"sellOrders","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"price","type":"int64","internalType":"int64"},{"name":"volume","type":"int64","internalType":"int64"},{"name":"trader","type":"address","internalType":"address"},{"name":"next","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokenA","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"tokenB","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"int64","internalType":"int64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Deposit","inputs":[{"name":"trader","type":"address","indexed":false,"internalType":"address"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"int64","indexed":false,"internalType":"int64"}],"anonymous":false},{"type":"event","name":"NewOrder","inputs":[{"name":"isBuy","type":"bool","indexed":false,"internalType":"bool"},{"name":"orderId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"trader","type":"address","indexed":false,"internalType":"address"},{"name":"price","type":"int64","indexed":false,"internalType":"int64"},{"name":"volume","type":"int64","indexed":false,"internalType":"int64"}],"anonymous":false},{"type":"event","name":"OrderCanceled","inputs":[{"name":"isBuy","type":"bool","indexed":false,"internalType":"bool"},{"name":"orderId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"trader","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Trade","inputs":[{"name":"tradedVolume","type":"int64","indexed":false,"internalType":"int64"},{"name":"price","type":"int64","indexed":false,"internalType":"int64"},{"name":"buyer","type":"address","indexed":false,"internalType":"address"},{"name":"seller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"trader","type":"address","indexed":false,"internalType":"address"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"int64","indexed":false,"internalType":"int64"}],"anonymous":false},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162001d6d38038062001d6d8339810160408190526200003491620001e1565b60016008819055600080546001600160a01b038086166001600160a01b03199283168117909355835490851691161790915562000072903062000092565b6001546200008a906001600160a01b03163062000092565b505062000276565b604080516001600160a01b038381166024830152841660448083019190915282518083039091018152606490910182526020810180516001600160e01b031663248a35ef60e11b17905290516000918291829161016791620000f5919062000219565b6000604051808303816000865af19150503d806000811462000134576040519150601f19603f3d011682016040523d82523d6000602084013e62000139565b606091505b5091509150816200014c57601562000162565b808060200190518101906200016291906200024a565b9250600383900b601614620001bd5760405162461bcd60e51b815260206004820152601f60248201527f536166652073696e676c65206173736f63696174696f6e206661696c65642100604482015260640160405180910390fd5b5050505050565b80516001600160a01b0381168114620001dc57600080fd5b919050565b60008060408385031215620001f557600080fd5b6200020083620001c4565b91506200021060208401620001c4565b90509250929050565b6000825160005b818110156200023c576020818601810151858301520162000220565b506000920191825250919050565b6000602082840312156200025d57600080fd5b81518060030b81146200026f57600080fd5b9392505050565b611ae780620002866000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806372fb07771161008c578063bb110bf911610066578063bb110bf91461024d578063dd5813ee14610256578063f7888aec14610269578063f88d2047146102aa57600080fd5b806372fb077714610226578063925931fc1461022f57806392c029911461023857600080fd5b806303c4c2e1146100d45780630fc63d10146100fa5780632ec2add71461012557806335cea288146101385780634a8393f3146101c15780635f64b55b14610213575b600080fd5b6100e76100e236600461184d565b6102bd565b6040519081526020015b60405180910390f35b60005461010d906001600160a01b031681565b6040516001600160a01b0390911681526020016100f1565b6100e761013336600461184d565b6103f1565b61018a610146366004611880565b600260208190526000918252604090912080546001820154928201546003909201549092600781810b93600160401b909204900b916001600160a01b039091169085565b60408051958652600794850b60208701529290930b918401919091526001600160a01b03166060830152608082015260a0016100f1565b61018a6101cf366004611880565b600360208190526000918252604090912080546001820154600283015492909301549092600781810b93600160401b909204900b916001600160a01b039091169085565b60015461010d906001600160a01b031681565b6100e760065481565b6100e760075481565b61024b6102463660046118b0565b6104f3565b005b6100e760055481565b61024b6102643660046118b0565b610607565b6102976102773660046118cc565b600460209081526000928352604080842090915290825290205460070b81565b60405160079190910b81526020016100f1565b61024b6102b83660046118f6565b6106c3565b60006102c761084c565b60008360070b1361030f5760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420507269636560981b60448201526064015b60405180910390fd5b60008260070b136103535760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420566f6c756d6560901b6044820152606401610306565b6103616305f5e10083611941565b61036b908461198e565b3360009081526004602090815260408083206001546001600160a01b03168452909152902054600791820b910b12156103b65760405162461bcd60e51b8152600401610306906119b5565b60006103c3338585610876565b905060008160070b13156103dc576103dc338583610b96565b50506007546103eb6001600855565b92915050565b60006103fb61084c565b60008360070b1361043e5760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420507269636560981b6044820152606401610306565b60008260070b136104825760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420566f6c756d6560901b6044820152606401610306565b33600090815260046020908152604080832083546001600160a01b03168452909152902054600783810b91900b12156104cd5760405162461bcd60e51b8152600401610306906119b5565b60006104da338585610da7565b905060008160070b13156103dc576103dc3385836110a1565b6104fb61084c565b6000546001600160a01b038381169116148061052457506001546001600160a01b038381169116145b6105605760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610306565b60008160070b136105a45760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b6044820152606401610306565b3360009081526004602090815260408083206001600160a01b0386168452909152902054600782810b91900b12156105ee5760405162461bcd60e51b8152600401610306906119b5565b6105f9338383611287565b6106036001600855565b5050565b61060f61084c565b6000546001600160a01b038381169116148061063857506001546001600160a01b038381169116145b6106745760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610306565b60008160070b136106b85760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b6044820152606401610306565b6105f933838361134b565b6106cb61084c565b6000816106e55760008381526003602052604090206106f4565b60008381526002602052604090205b60028101549091506001600160a01b03166107485760405162461bcd60e51b815260206004820152601460248201527313dc99195c88191bd95cc81b9bdd08195e1a5cdd60621b6044820152606401610306565b60028101546001600160a01b031633146107b95760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c7920746865206f726465722063726561746f722063616e2063616e636560448201526b36103a3434b99037b93232b960a11b6064820152608401610306565b60018101546000600160401b90910460070b136108245760405162461bcd60e51b8152602060048201526024808201527f4f7264657220616c72656164792063616e63656c6c6564206f722066756c66696044820152631b1b195960e21b6064820152608401610306565b81156108385761083381611402565b610841565b61084181611591565b506106036001600855565b60026008540361086f57604051633ee5aeb560e01b815260040160405180910390fd5b6002600855565b600654600090600a825b8215801590610892575060008560070b135b801561089d57508181105b15610b8a5760008381526003602052604090206001810154600790810b9088900b12610b71576001810154600090600788810b600160401b909204900b126108e557866108f5565b6001820154600160401b900460070b5b600183015490915060070b61090e6305f5e10083611941565b610918908261198e565b6001600160a01b03808c1660009081526004602090815260408083206001549094168352929052908120805490919061095590849060070b6119e1565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b03808b1660009081526004602090815260408083208354909416835292905290812080548492906109b490849060070b611a10565b92506101000a8154816001600160401b03021916908360070b6001600160401b031602179055506305f5e100826109eb9190611941565b6109f5908261198e565b60028401546001600160a01b03908116600090815260046020908152604080832060015490941683529290529081208054909190610a3790849060070b611a10565b92506101000a8154816001600160401b03021916908360070b6001600160401b031602179055508188610a6a91906119e1565b6001840180549199508391600890610a8d908490600160401b900460070b6119e1565b82546101009290920a6001600160401b03818102199093169190921691909102179055506001830154600284015460408051600786810b82529390930b60208401526001600160a01b038d8116848301529091166060830152517f3811c688c91a2195acbf84f4d5e7adc8d2f17ba048f1051955046e511411fd7d9181900360800190a16001830154600160401b900460070b600003610b6a5760038084015460009788526020829052604088208881556001810180546001600160801b03191690556002810180546001600160a01b0319169055909101969096555b5050610b77565b50610b8a565b81610b8181611a3f565b92505050610880565b50506006555092915050565b60078054906000610ba683611a3f565b909155505060055460005b8115801590610bd75750600082815260026020526040902060010154600785810b91900b135b15610bf5575060008181526002602052604090206003015490610bb1565b6040805160a0810182526007805480835287820b60208085019182529288900b8486019081526001600160a01b03808c1660608701908152608087018a815260009586526002968790529790942095518655915160018601805492516001600160401b03908116600160401b026001600160801b031990941692169190911791909117905590519183018054929091166001600160a01b03199092169190911790559051600390910155610cad6305f5e10084611941565b610cb7908561198e565b6001600160a01b03808716600090815260046020908152604080832060015490941683529290529081208054909190610cf490849060070b6119e1565b82546001600160401b039182166101009390930a92830291909202199091161790555060078054604080516001815260208101929092526001600160a01b0388169082015285820b60608201529084900b60808201527fddca83c332d5b33951e90d550eefc003b7a1efae1cdf8c4d684d4ccdf2cd8d599060a00160405180910390a180600003610d8a57600754600555610da0565b6007546000828152600260205260409020600301555b5050505050565b600554600090600a825b8215801590610dc3575060008560070b135b8015610dce57508181105b156110955760008381526002602052604090206001810154600790810b9088900b1361107c576001810154600090600788810b600160401b909204900b12610e165786610e26565b6001820154600160401b900460070b5b905087610e376305f5e10083611941565b610e41908261198e565b6001600160a01b03808c16600090815260046020908152604080832060015490941683529290529081208054909190610e7e90849060070b611a10565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b03808b166000908152600460209081526040808320835490941683529290529081208054849290610edd90849060070b6119e1565b82546001600160401b039182166101009390930a92830291909202199091161790555060028301546001600160a01b039081166000908152600460209081526040808320835490941683529290529081208054849290610f4190849060070b611a10565b92506101000a8154816001600160401b03021916908360070b6001600160401b031602179055508188610f7491906119e1565b6001840180549199508391600890610f97908490600160401b900460070b6119e1565b82546101009290920a6001600160401b03818102199093169190921691909102179055506001830154600284015460408051600786810b82529390930b60208401526001600160a01b038d8116848301529091166060830152517f3811c688c91a2195acbf84f4d5e7adc8d2f17ba048f1051955046e511411fd7d9181900360800190a16001830154600160401b900460070b60000361107557600380840154600097885260026020819052604089208981556001810180546001600160801b031916905590810180546001600160a01b0319169055909101969096555b5050611082565b50611095565b8161108c81611a3f565b92505050610db1565b50506005555092915050565b600780549060006110b183611a3f565b909155505060065460005b81158015906110e25750600082815260036020526040902060010154600785810b91900b125b15611101575060008181526003602081905260409091200154906110bc565b6040805160a0810182526007805480835287820b602080850191825288840b8587019081526001600160a01b03808d1660608801818152608089018c8152600097885260038087528b89209a518b55965160018b01805496516001600160401b03908116600160401b026001600160801b031990981692169190911795909517909455516002890180549184166001600160a01b0319909216919091179055915196909301959095559382526004845284822082549091168252909252918120805486939192916111d49185910b6119e1565b82546001600160401b039182166101009390930a92830291909202199091161790555060078054604080516000815260208101929092526001600160a01b0388169082015285820b60608201529084900b60808201527fddca83c332d5b33951e90d550eefc003b7a1efae1cdf8c4d684d4ccdf2cd8d599060a00160405180910390a18060000361126a57600754600655610da0565b600754600082815260036020819052604090912001555050505050565b6001600160a01b038084166000908152600460209081526040808320938616835292905290812080548392906112c190849060070b6119e1565b92506101000a8154816001600160401b03021916908360070b6001600160401b031602179055506112f4823085846116fd565b604080516001600160a01b03808616825284166020820152600783900b918101919091527fd09be44e70d8a46d3b3b8da9701595dcaec29d75930065918923c7d9fd73eb58906060015b60405180910390a1505050565b611357828430846116fd565b6001600160a01b0380841660009081526004602090815260408083209386168352929052908120805483929061139190849060070b611a10565b82546001600160401b039182166101009390930a928302919092021990911617905550604080516001600160a01b03808616825284166020820152600783900b918101919091527f64e3b56a34ae45fe7d1f33e3d3da391a671e6043606ac9c811a6c1243023841d9060600161133e565b60055481540361141957600381015460055561149e565b60055460009081526002602052604090205b815460038201541461149457806003015460000361147d5760405162461bcd60e51b815260206004820152600f60248201526e13dc99195c881b9bdd08199bdd5b99608a1b6044820152606401610306565b60030154600090815260026020526040902061142b565b6003808301549101555b60018101546114bc906305f5e10090600160401b900460070b611941565b60018201546114ce919060070b61198e565b60028201546001600160a01b0390811660009081526004602090815260408083206001549094168352929052908120805490919061151090849060070b611a10565b82546001600160401b039182166101009390930a9283029190920219909116179055506001818101805467ffffffffffffffff60401b19169055815460408051928352602083019190915233908201527fcfa919375acf04933787aa7f7b25d71adf2e92839529dad777b47ff2cd0827a4906060015b60405180910390a150565b6006548154036115a8576003810154600655611630565b60065460009081526003602052604090205b815460038201541461162657806003015460000361160c5760405162461bcd60e51b815260206004820152600f60248201526e13dc99195c881b9bdd08199bdd5b99608a1b6044820152606401610306565b6003908101546000908152602091909152604090206115ba565b6003808301549101555b600181015460028201546001600160a01b039081166000908152600460209081526040808320835490941683529290529081208054600160401b909304600790810b93919291611683918591900b611a10565b82546001600160401b039182166101009390930a92830291909202199091161790555060018101805467ffffffffffffffff60401b1916905580546040805160008152602081019290925233908201527fcfa919375acf04933787aa7f7b25d71adf2e92839529dad777b47ff2cd0827a490606001611586565b604080516001600160a01b038681166024830152858116604483015284166064820152600783900b6084808301919091528251808303909101815260a490910182526020810180516001600160e01b031663eca3691760e01b179052905160009182918291610167916117709190611a58565b6000604051808303816000865af19150503d80600081146117ad576040519150601f19603f3d011682016040523d82523d6000602084013e6117b2565b606091505b5091509150816117c35760156117d7565b808060200190518101906117d79190611a87565b9250600383900b60161461182d5760405162461bcd60e51b815260206004820152601b60248201527f5361666520746f6b656e207472616e73666572206661696c65642100000000006044820152606401610306565b50505050505050565b8035600781900b811461184857600080fd5b919050565b6000806040838503121561186057600080fd5b61186983611836565b915061187760208401611836565b90509250929050565b60006020828403121561189257600080fd5b5035919050565b80356001600160a01b038116811461184857600080fd5b600080604083850312156118c357600080fd5b61186983611899565b600080604083850312156118df57600080fd5b6118e883611899565b915061187760208401611899565b6000806040838503121561190957600080fd5b823591506020830135801515811461192057600080fd5b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b60008160070b8360070b8061196657634e487b7160e01b600052601260045260246000fd5b677fffffffffffffff198214600019821416156119855761198561192b565b90059392505050565b60008260070b8260070b028060070b91508082146119ae576119ae61192b565b5092915050565b6020808252601290820152714e6f7420656e6f7567682062616c616e636560701b604082015260600190565b600782810b9082900b03677fffffffffffffff198112677fffffffffffffff821317156103eb576103eb61192b565b600781810b9083900b01677fffffffffffffff8113677fffffffffffffff19821217156103eb576103eb61192b565b600060018201611a5157611a5161192b565b5060010190565b6000825160005b81811015611a795760208186018101518583015201611a5f565b506000920191825250919050565b600060208284031215611a9957600080fd5b81518060030b8114611aaa57600080fd5b939250505056fea26469706673582212206700d4c52fdd6724b99f7755de6f255d49b005ca639f747ef8face9576362c2664736f6c63430008180033","sourceMap":"248:3802:134:-:0;;;463:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1713:1:154;1917:7;:21;;;519:6:134;:16;;-1:-1:-1;;;;;519:16:134;;;-1:-1:-1;;;;;;519:16:134;;;;;;;;545;;;;;;;;;;;572:49;;615:4;572:26;:49::i;:::-;658:6;;631:49;;-1:-1:-1;;;;;658:6:134;674:4;631:26;:49::i;:::-;463:224;;248:3802;;2617:470:12;2798:83;;;-1:-1:-1;;;;;724:15:165;;;2798:83:12;;;706:34:165;776:15;;756:18;;;;749:43;;;;2798:83:12;;;;;;;;;;641:18:165;;;;2798:83:12;;;;;;;-1:-1:-1;;;;;2798:83:12;-1:-1:-1;;;2798:83:12;;;2762:129;;-1:-1:-1;;;;;;246:5:12;;2762:129;;2798:83;2762:129;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2724:167;;;;2916:7;:67;;2576:2:10;2916:67:12;;;2937:6;2926:27;;;;;;;;;;;;:::i;:::-;2901:82;-1:-1:-1;3001:43:12;;;;2722:2:10;3001:43:12;2993:87;;;;-1:-1:-1;;;2993:87:12;;1704:2:165;2993:87:12;;;1686:21:165;1743:2;1723:18;;;1716:30;1782:33;1762:18;;;1755:61;1833:18;;2993:87:12;;;;;;;;2686:401;;;2617:470;;:::o;14:177:165:-;93:13;;-1:-1:-1;;;;;135:31:165;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;803:412::-;932:3;970:6;964:13;995:1;1005:129;1019:6;1016:1;1013:13;1005:129;;;1117:4;1101:14;;;1097:25;;1091:32;1078:11;;;1071:53;1034:12;1005:129;;;-1:-1:-1;1189:1:165;1153:16;;1178:13;;;-1:-1:-1;1153:16:165;803:412;-1:-1:-1;803:412:165:o;1220:277::-;1288:6;1341:2;1329:9;1320:7;1316:23;1312:32;1309:52;;;1357:1;1354;1347:12;1309:52;1389:9;1383:16;1442:5;1439:1;1428:20;1421:5;1418:31;1408:59;;1463:1;1460;1453:12;1408:59;1486:5;1220:277;-1:-1:-1;;;1220:277:165:o;1502:355::-;248:3802:134;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806372fb07771161008c578063bb110bf911610066578063bb110bf91461024d578063dd5813ee14610256578063f7888aec14610269578063f88d2047146102aa57600080fd5b806372fb077714610226578063925931fc1461022f57806392c029911461023857600080fd5b806303c4c2e1146100d45780630fc63d10146100fa5780632ec2add71461012557806335cea288146101385780634a8393f3146101c15780635f64b55b14610213575b600080fd5b6100e76100e236600461184d565b6102bd565b6040519081526020015b60405180910390f35b60005461010d906001600160a01b031681565b6040516001600160a01b0390911681526020016100f1565b6100e761013336600461184d565b6103f1565b61018a610146366004611880565b600260208190526000918252604090912080546001820154928201546003909201549092600781810b93600160401b909204900b916001600160a01b039091169085565b60408051958652600794850b60208701529290930b918401919091526001600160a01b03166060830152608082015260a0016100f1565b61018a6101cf366004611880565b600360208190526000918252604090912080546001820154600283015492909301549092600781810b93600160401b909204900b916001600160a01b039091169085565b60015461010d906001600160a01b031681565b6100e760065481565b6100e760075481565b61024b6102463660046118b0565b6104f3565b005b6100e760055481565b61024b6102643660046118b0565b610607565b6102976102773660046118cc565b600460209081526000928352604080842090915290825290205460070b81565b60405160079190910b81526020016100f1565b61024b6102b83660046118f6565b6106c3565b60006102c761084c565b60008360070b1361030f5760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420507269636560981b60448201526064015b60405180910390fd5b60008260070b136103535760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420566f6c756d6560901b6044820152606401610306565b6103616305f5e10083611941565b61036b908461198e565b3360009081526004602090815260408083206001546001600160a01b03168452909152902054600791820b910b12156103b65760405162461bcd60e51b8152600401610306906119b5565b60006103c3338585610876565b905060008160070b13156103dc576103dc338583610b96565b50506007546103eb6001600855565b92915050565b60006103fb61084c565b60008360070b1361043e5760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420507269636560981b6044820152606401610306565b60008260070b136104825760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420566f6c756d6560901b6044820152606401610306565b33600090815260046020908152604080832083546001600160a01b03168452909152902054600783810b91900b12156104cd5760405162461bcd60e51b8152600401610306906119b5565b60006104da338585610da7565b905060008160070b13156103dc576103dc3385836110a1565b6104fb61084c565b6000546001600160a01b038381169116148061052457506001546001600160a01b038381169116145b6105605760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610306565b60008160070b136105a45760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b6044820152606401610306565b3360009081526004602090815260408083206001600160a01b0386168452909152902054600782810b91900b12156105ee5760405162461bcd60e51b8152600401610306906119b5565b6105f9338383611287565b6106036001600855565b5050565b61060f61084c565b6000546001600160a01b038381169116148061063857506001546001600160a01b038381169116145b6106745760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610306565b60008160070b136106b85760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b6044820152606401610306565b6105f933838361134b565b6106cb61084c565b6000816106e55760008381526003602052604090206106f4565b60008381526002602052604090205b60028101549091506001600160a01b03166107485760405162461bcd60e51b815260206004820152601460248201527313dc99195c88191bd95cc81b9bdd08195e1a5cdd60621b6044820152606401610306565b60028101546001600160a01b031633146107b95760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c7920746865206f726465722063726561746f722063616e2063616e636560448201526b36103a3434b99037b93232b960a11b6064820152608401610306565b60018101546000600160401b90910460070b136108245760405162461bcd60e51b8152602060048201526024808201527f4f7264657220616c72656164792063616e63656c6c6564206f722066756c66696044820152631b1b195960e21b6064820152608401610306565b81156108385761083381611402565b610841565b61084181611591565b506106036001600855565b60026008540361086f57604051633ee5aeb560e01b815260040160405180910390fd5b6002600855565b600654600090600a825b8215801590610892575060008560070b135b801561089d57508181105b15610b8a5760008381526003602052604090206001810154600790810b9088900b12610b71576001810154600090600788810b600160401b909204900b126108e557866108f5565b6001820154600160401b900460070b5b600183015490915060070b61090e6305f5e10083611941565b610918908261198e565b6001600160a01b03808c1660009081526004602090815260408083206001549094168352929052908120805490919061095590849060070b6119e1565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b03808b1660009081526004602090815260408083208354909416835292905290812080548492906109b490849060070b611a10565b92506101000a8154816001600160401b03021916908360070b6001600160401b031602179055506305f5e100826109eb9190611941565b6109f5908261198e565b60028401546001600160a01b03908116600090815260046020908152604080832060015490941683529290529081208054909190610a3790849060070b611a10565b92506101000a8154816001600160401b03021916908360070b6001600160401b031602179055508188610a6a91906119e1565b6001840180549199508391600890610a8d908490600160401b900460070b6119e1565b82546101009290920a6001600160401b03818102199093169190921691909102179055506001830154600284015460408051600786810b82529390930b60208401526001600160a01b038d8116848301529091166060830152517f3811c688c91a2195acbf84f4d5e7adc8d2f17ba048f1051955046e511411fd7d9181900360800190a16001830154600160401b900460070b600003610b6a5760038084015460009788526020829052604088208881556001810180546001600160801b03191690556002810180546001600160a01b0319169055909101969096555b5050610b77565b50610b8a565b81610b8181611a3f565b92505050610880565b50506006555092915050565b60078054906000610ba683611a3f565b909155505060055460005b8115801590610bd75750600082815260026020526040902060010154600785810b91900b135b15610bf5575060008181526002602052604090206003015490610bb1565b6040805160a0810182526007805480835287820b60208085019182529288900b8486019081526001600160a01b03808c1660608701908152608087018a815260009586526002968790529790942095518655915160018601805492516001600160401b03908116600160401b026001600160801b031990941692169190911791909117905590519183018054929091166001600160a01b03199092169190911790559051600390910155610cad6305f5e10084611941565b610cb7908561198e565b6001600160a01b03808716600090815260046020908152604080832060015490941683529290529081208054909190610cf490849060070b6119e1565b82546001600160401b039182166101009390930a92830291909202199091161790555060078054604080516001815260208101929092526001600160a01b0388169082015285820b60608201529084900b60808201527fddca83c332d5b33951e90d550eefc003b7a1efae1cdf8c4d684d4ccdf2cd8d599060a00160405180910390a180600003610d8a57600754600555610da0565b6007546000828152600260205260409020600301555b5050505050565b600554600090600a825b8215801590610dc3575060008560070b135b8015610dce57508181105b156110955760008381526002602052604090206001810154600790810b9088900b1361107c576001810154600090600788810b600160401b909204900b12610e165786610e26565b6001820154600160401b900460070b5b905087610e376305f5e10083611941565b610e41908261198e565b6001600160a01b03808c16600090815260046020908152604080832060015490941683529290529081208054909190610e7e90849060070b611a10565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b03808b166000908152600460209081526040808320835490941683529290529081208054849290610edd90849060070b6119e1565b82546001600160401b039182166101009390930a92830291909202199091161790555060028301546001600160a01b039081166000908152600460209081526040808320835490941683529290529081208054849290610f4190849060070b611a10565b92506101000a8154816001600160401b03021916908360070b6001600160401b031602179055508188610f7491906119e1565b6001840180549199508391600890610f97908490600160401b900460070b6119e1565b82546101009290920a6001600160401b03818102199093169190921691909102179055506001830154600284015460408051600786810b82529390930b60208401526001600160a01b038d8116848301529091166060830152517f3811c688c91a2195acbf84f4d5e7adc8d2f17ba048f1051955046e511411fd7d9181900360800190a16001830154600160401b900460070b60000361107557600380840154600097885260026020819052604089208981556001810180546001600160801b031916905590810180546001600160a01b0319169055909101969096555b5050611082565b50611095565b8161108c81611a3f565b92505050610db1565b50506005555092915050565b600780549060006110b183611a3f565b909155505060065460005b81158015906110e25750600082815260036020526040902060010154600785810b91900b125b15611101575060008181526003602081905260409091200154906110bc565b6040805160a0810182526007805480835287820b602080850191825288840b8587019081526001600160a01b03808d1660608801818152608089018c8152600097885260038087528b89209a518b55965160018b01805496516001600160401b03908116600160401b026001600160801b031990981692169190911795909517909455516002890180549184166001600160a01b0319909216919091179055915196909301959095559382526004845284822082549091168252909252918120805486939192916111d49185910b6119e1565b82546001600160401b039182166101009390930a92830291909202199091161790555060078054604080516000815260208101929092526001600160a01b0388169082015285820b60608201529084900b60808201527fddca83c332d5b33951e90d550eefc003b7a1efae1cdf8c4d684d4ccdf2cd8d599060a00160405180910390a18060000361126a57600754600655610da0565b600754600082815260036020819052604090912001555050505050565b6001600160a01b038084166000908152600460209081526040808320938616835292905290812080548392906112c190849060070b6119e1565b92506101000a8154816001600160401b03021916908360070b6001600160401b031602179055506112f4823085846116fd565b604080516001600160a01b03808616825284166020820152600783900b918101919091527fd09be44e70d8a46d3b3b8da9701595dcaec29d75930065918923c7d9fd73eb58906060015b60405180910390a1505050565b611357828430846116fd565b6001600160a01b0380841660009081526004602090815260408083209386168352929052908120805483929061139190849060070b611a10565b82546001600160401b039182166101009390930a928302919092021990911617905550604080516001600160a01b03808616825284166020820152600783900b918101919091527f64e3b56a34ae45fe7d1f33e3d3da391a671e6043606ac9c811a6c1243023841d9060600161133e565b60055481540361141957600381015460055561149e565b60055460009081526002602052604090205b815460038201541461149457806003015460000361147d5760405162461bcd60e51b815260206004820152600f60248201526e13dc99195c881b9bdd08199bdd5b99608a1b6044820152606401610306565b60030154600090815260026020526040902061142b565b6003808301549101555b60018101546114bc906305f5e10090600160401b900460070b611941565b60018201546114ce919060070b61198e565b60028201546001600160a01b0390811660009081526004602090815260408083206001549094168352929052908120805490919061151090849060070b611a10565b82546001600160401b039182166101009390930a9283029190920219909116179055506001818101805467ffffffffffffffff60401b19169055815460408051928352602083019190915233908201527fcfa919375acf04933787aa7f7b25d71adf2e92839529dad777b47ff2cd0827a4906060015b60405180910390a150565b6006548154036115a8576003810154600655611630565b60065460009081526003602052604090205b815460038201541461162657806003015460000361160c5760405162461bcd60e51b815260206004820152600f60248201526e13dc99195c881b9bdd08199bdd5b99608a1b6044820152606401610306565b6003908101546000908152602091909152604090206115ba565b6003808301549101555b600181015460028201546001600160a01b039081166000908152600460209081526040808320835490941683529290529081208054600160401b909304600790810b93919291611683918591900b611a10565b82546001600160401b039182166101009390930a92830291909202199091161790555060018101805467ffffffffffffffff60401b1916905580546040805160008152602081019290925233908201527fcfa919375acf04933787aa7f7b25d71adf2e92839529dad777b47ff2cd0827a490606001611586565b604080516001600160a01b038681166024830152858116604483015284166064820152600783900b6084808301919091528251808303909101815260a490910182526020810180516001600160e01b031663eca3691760e01b179052905160009182918291610167916117709190611a58565b6000604051808303816000865af19150503d80600081146117ad576040519150601f19603f3d011682016040523d82523d6000602084013e6117b2565b606091505b5091509150816117c35760156117d7565b808060200190518101906117d79190611a87565b9250600383900b60161461182d5760405162461bcd60e51b815260206004820152601b60248201527f5361666520746f6b656e207472616e73666572206661696c65642100000000006044820152606401610306565b50505050505050565b8035600781900b811461184857600080fd5b919050565b6000806040838503121561186057600080fd5b61186983611836565b915061187760208401611836565b90509250929050565b60006020828403121561189257600080fd5b5035919050565b80356001600160a01b038116811461184857600080fd5b600080604083850312156118c357600080fd5b61186983611899565b600080604083850312156118df57600080fd5b6118e883611899565b915061187760208401611899565b6000806040838503121561190957600080fd5b823591506020830135801515811461192057600080fd5b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b60008160070b8360070b8061196657634e487b7160e01b600052601260045260246000fd5b677fffffffffffffff198214600019821416156119855761198561192b565b90059392505050565b60008260070b8260070b028060070b91508082146119ae576119ae61192b565b5092915050565b6020808252601290820152714e6f7420656e6f7567682062616c616e636560701b604082015260600190565b600782810b9082900b03677fffffffffffffff198112677fffffffffffffff821317156103eb576103eb61192b565b600781810b9083900b01677fffffffffffffff8113677fffffffffffffff19821217156103eb576103eb61192b565b600060018201611a5157611a5161192b565b5060010190565b6000825160005b81811015611a795760208186018101518583015201611a5f565b506000920191825250919050565b600060208284031215611a9957600080fd5b81518060030b8114611aaa57600080fd5b939250505056fea26469706673582212206700d4c52fdd6724b99f7755de6f255d49b005ca639f747ef8face9576362c2664736f6c63430008180033","sourceMap":"248:3802:134:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;916:498;;;;;;:::i;:::-;;:::i;:::-;;;582:25:165;;;570:2;555:18;916:498:134;;;;;;;;250:21:135;;;;;-1:-1:-1;;;;;250:21:135;;;;;;-1:-1:-1;;;;;782:32:165;;;764:51;;752:2;737:18;250:21:135;618:203:165;1645:487:134;;;;;;:::i;:::-;;:::i;304:42:135:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;304:42:135;;;;;;-1:-1:-1;;;;;304:42:135;;;;;;;;;;1262:25:165;;;1334:1;1323:21;;;1318:2;1303:18;;1296:49;1381:21;;;;1361:18;;;1354:49;;;;-1:-1:-1;;;;;1439:32:165;1434:2;1419:18;;1412:60;1503:3;1488:19;;1481:35;1249:3;1234:19;304:42:135;1011:511:165;352:43:135;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;352:43:135;;;;;;-1:-1:-1;;;;;352:43:135;;;;;;277:21;;;;;-1:-1:-1;;;;;277:21:135;;;505:31;;;;;;542:29;;;;;;2937:322:134;;;;;;:::i;:::-;;:::i;:::-;;469:30:135;;;;;;2457:236:134;;;;;;:::i;:::-;;:::i;401:62:135:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2402:1:165;2391:21;;;;2373:40;;2361:2;2346:18;401:62:135;2231:188:165;3516:532:134;;;;;;:::i;:::-;;:::i;916:498::-;994:7;2356:21:154;:19;:21::i;:::-;1029:1:134::1;1021:5;:9;;;1013:35;;;::::0;-1:-1:-1;;;1013:35:134;;2972:2:165;1013:35:134::1;::::0;::::1;2954:21:165::0;3011:2;2991:18;;;2984:30;-1:-1:-1;;;3030:18:165;;;3023:43;3083:18;;1013:35:134::1;;;;;;;;;1075:1;1066:6;:10;;;1058:37;;;::::0;-1:-1:-1;;;1058:37:134;;3314:2:165;1058:37:134::1;::::0;::::1;3296:21:165::0;3353:2;3333:18;;;3326:30;-1:-1:-1;;;3372:18:165;;;3365:44;3426:18;;1058:37:134::1;3112:338:165::0;1058:37:134::1;1155:16;1164:7;1155:6:::0;:16:::1;:::i;:::-;1146:26;::::0;:5;:26:::1;:::i;:::-;1123:10;1113:21;::::0;;;:9:::1;:21;::::0;;;;;;;1135:6:::1;::::0;-1:-1:-1;;;;;1135:6:134::1;1113:29:::0;;;;;;;;:59:::1;::::0;;::::1;:29:::0;::::1;:59;;1105:90;;;;-1:-1:-1::0;;;1105:90:134::1;;;;;;;:::i;:::-;1206:18;1227:43;1244:10;1256:5;1263:6;1227:16;:43::i;:::-;1206:64;;1300:1;1285:12;:16;;;1281:95;;;1317:48;1333:10;1345:5;1352:12;1317:15;:48::i;:::-;-1:-1:-1::0;;1393:14:134::1;::::0;2398:20:154;1713:1;2924:7;:21;2744:208;2398:20;916:498:134;;;;:::o;1645:487::-;1724:7;2356:21:154;:19;:21::i;:::-;1759:1:134::1;1751:5;:9;;;1743:35;;;::::0;-1:-1:-1;;;1743:35:134;;2972:2:165;1743:35:134::1;::::0;::::1;2954:21:165::0;3011:2;2991:18;;;2984:30;-1:-1:-1;;;3030:18:165;;;3023:43;3083:18;;1743:35:134::1;2770:337:165::0;1743:35:134::1;1805:1;1796:6;:10;;;1788:37;;;::::0;-1:-1:-1;;;1788:37:134;;3314:2:165;1788:37:134::1;::::0;::::1;3296:21:165::0;3353:2;3333:18;;;3326:30;-1:-1:-1;;;3372:18:165;;;3365:44;3426:18;;1788:37:134::1;3112:338:165::0;1788:37:134::1;1853:10;1843:21;::::0;;;:9:::1;:21;::::0;;;;;;;1865:6;;-1:-1:-1;;;;;1865:6:134::1;1843:29:::0;;;;;;;;:39:::1;::::0;;::::1;:29:::0;;::::1;:39;;1835:70;;;;-1:-1:-1::0;;;1835:70:134::1;;;;;;;:::i;:::-;1916:18;1937:42;1953:10;1965:5;1972:6;1937:15;:42::i;:::-;1916:63;;2009:1;1994:12;:16;;;1990:96;;;2026:49;2043:10;2055:5;2062:12;2026:16;:49::i;2937:322::-:0;2356:21:154;:19;:21::i;:::-;3031:6:134::1;::::0;-1:-1:-1;;;;;3022:15:134;;::::1;3031:6:::0;::::1;3022:15;::::0;:34:::1;;-1:-1:-1::0;3050:6:134::1;::::0;-1:-1:-1;;;;;3041:15:134;;::::1;3050:6:::0;::::1;3041:15;3022:34;3014:60;;;::::0;-1:-1:-1;;;3014:60:134;;4766:2:165;3014:60:134::1;::::0;::::1;4748:21:165::0;4805:2;4785:18;;;4778:30;-1:-1:-1;;;4824:18:165;;;4817:43;4877:18;;3014:60:134::1;4564:337:165::0;3014:60:134::1;3101:1;3092:6;:10;;;3084:37;;;::::0;-1:-1:-1;;;3084:37:134;;5108:2:165;3084:37:134::1;::::0;::::1;5090:21:165::0;5147:2;5127:18;;;5120:30;-1:-1:-1;;;5166:18:165;;;5159:44;5220:18;;3084:37:134::1;4906:338:165::0;3084:37:134::1;3149:10;3139:21;::::0;;;:9:::1;:21;::::0;;;;;;;-1:-1:-1;;;;;3139:28:134;::::1;::::0;;;;;;;;:38:::1;::::0;;::::1;:28:::0;;::::1;:38;;3131:69;;;;-1:-1:-1::0;;;3131:69:134::1;;;;;;;:::i;:::-;3216:36;3226:10;3238:5;3245:6;3216:9;:36::i;:::-;2398:20:154::0;1713:1;2924:7;:21;2744:208;2398:20;2937:322:134;;:::o;2457:236::-;2356:21:154;:19;:21::i;:::-;2550:6:134::1;::::0;-1:-1:-1;;;;;2541:15:134;;::::1;2550:6:::0;::::1;2541:15;::::0;:34:::1;;-1:-1:-1::0;2569:6:134::1;::::0;-1:-1:-1;;;;;2560:15:134;;::::1;2569:6:::0;::::1;2560:15;2541:34;2533:60;;;::::0;-1:-1:-1;;;2533:60:134;;4766:2:165;2533:60:134::1;::::0;::::1;4748:21:165::0;4805:2;4785:18;;;4778:30;-1:-1:-1;;;4824:18:165;;;4817:43;4877:18;;2533:60:134::1;4564:337:165::0;2533:60:134::1;2620:1;2611:6;:10;;;2603:37;;;::::0;-1:-1:-1;;;2603:37:134;;5108:2:165;2603:37:134::1;::::0;::::1;5090:21:165::0;5147:2;5127:18;;;5120:30;-1:-1:-1;;;5166:18:165;;;5159:44;5220:18;;2603:37:134::1;4906:338:165::0;2603:37:134::1;2651:35;2660:10;2672:5;2679:6;2651:8;:35::i;3516:532::-:0;2356:21:154;:19;:21::i;:::-;3601:19:134::1;3623:10;:53;;3657:19;::::0;;;:10:::1;:19;::::0;;;;3623:53:::1;;;3636:18;::::0;;;:9:::1;:18;::::0;;;;3623:53:::1;3695:12;::::0;::::1;::::0;3601:75;;-1:-1:-1;;;;;;3695:12:134::1;3687:59;;;::::0;-1:-1:-1;;;3687:59:134;;5451:2:165;3687:59:134::1;::::0;::::1;5433:21:165::0;5490:2;5470:18;;;5463:30;-1:-1:-1;;;5509:18:165;;;5502:50;5569:18;;3687:59:134::1;5249:344:165::0;3687:59:134::1;3764:12;::::0;::::1;::::0;-1:-1:-1;;;;;3764:12:134::1;3780:10;3764:26;3756:83;;;::::0;-1:-1:-1;;;3756:83:134;;5800:2:165;3756:83:134::1;::::0;::::1;5782:21:165::0;5839:2;5819:18;;;5812:30;5878:34;5858:18;;;5851:62;-1:-1:-1;;;5929:18:165;;;5922:42;5981:19;;3756:83:134::1;5598:408:165::0;3756:83:134::1;3857:12;::::0;::::1;::::0;3872:1:::1;-1:-1:-1::0;;;3857:12:134;;::::1;;;:16;3849:65;;;::::0;-1:-1:-1;;;3849:65:134;;6213:2:165;3849:65:134::1;::::0;::::1;6195:21:165::0;6252:2;6232:18;;;6225:30;6291:34;6271:18;;;6264:62;-1:-1:-1;;;6342:18:165;;;6335:34;6386:19;;3849:65:134::1;6011:400:165::0;3849:65:134::1;3929:10;3925:117;;;3955:22;3971:5;3955:15;:22::i;:::-;3925:117;;;4008:23;4025:5;4008:16;:23::i;:::-;3591:457;2398:20:154::0;1713:1;2924:7;:21;2744:208;2431:307;1755:1;2558:7;;:18;2554:86;;2599:30;;-1:-1:-1;;;2599:30:154;;;;;;;;;;;2554:86;1755:1;2714:7;:17;2431:307::o;4354:1548:135:-;4521:16;;4480:5;;4571:2;4480:5;4666:1126;4673:18;;;;;:35;;;4707:1;4695:9;:13;;;4673:35;:65;;;;;4725:13;4712:10;:26;4673:65;4666:1126;;;4754:23;4780:25;;;:10;:25;;;;;4836:15;;;;;;;;4824:27;;;;;4820:936;;4893:16;;;;4871:18;;4893:28;;;;-1:-1:-1;;;4893:16:135;;;;;:28;4892:61;;4944:9;4892:61;;;4925:16;;;;-1:-1:-1;;;4925:16:135;;;;4892:61;4991:15;;;;4871:82;;-1:-1:-1;4991:15:135;;5072:22;5087:7;4871:82;5072:22;:::i;:::-;5057:38;;:11;:38;:::i;:::-;-1:-1:-1;;;;;5025:20:135;;;;;;;:9;:20;;;;;;;;5046:6;;;;;5025:28;;;;;;;;:70;;:28;;:20;:70;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;5025:70:135;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5113:20:135;;;-1:-1:-1;5113:20:135;;;:9;:20;;;;;;;;5134:6;;;;;5113:28;;;;;;;;:44;;5145:12;;-1:-1:-1;5113:44:135;;5145:12;;5025:70;5113:44;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;5113:44:135;;;;;;;-1:-1:-1;;;;;5113:44:135;;;;;;5244:7;5229:12;:22;;;;:::i;:::-;5214:38;;:11;:38;:::i;:::-;5185:16;;;;-1:-1:-1;;;;;5185:16:135;;;5175:27;;;;:9;:27;;;;;;;;5185:16;5203:6;;;;5175:35;;;;;;;;:77;;:35;;:27;:77;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;5175:77:135;;;;;;;-1:-1:-1;;;;;5175:77:135;;;;;;5284:12;5271:25;;;;;:::i;:::-;5314:16;;;:32;;5271:25;;-1:-1:-1;5334:12:135;;5314:16;;:32;;5334:12;;-1:-1:-1;;;5314:32:135;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;5314:32:135;;;;;;;;;;;;;;;;;;-1:-1:-1;;5390:15:135;;;5418:16;;;;5370:65;;;5314:32;7091:21:165;;;7073:40;;5390:15:135;;;;7144:2:165;7129:18;;7122:49;-1:-1:-1;;;;;7245:15:165;;;7225:18;;;7218:43;5418:16:135;;;7292:2:165;7277:18;;7270:43;5370:65:135;;;;;;7060:3:165;5370:65:135;;;5458:16;;;;-1:-1:-1;;;5458:16:135;;;;5478:1;5458:21;5454:244;;5520:14;;;;;5503;5563:25;;;;;;;;;;5556:32;;;;;;;;-1:-1:-1;;;;;;5556:32:135;;;;;;;;-1:-1:-1;;;;;;5556:32:135;;;;;;;;;;5454:244;4853:859;;4820:936;;;5736:5;;;4820:936;5769:12;;;;:::i;:::-;;;;4740:1052;4666:1126;;;-1:-1:-1;;5802:16:135;:32;-1:-1:-1;5886:9:135;4354:1548;-1:-1:-1;;4354:1548:135:o;1086:878::-;1173:14;:16;;;:14;:16;;;:::i;:::-;;;;-1:-1:-1;;1261:15:135;;1241:17;1315:155;1322:14;;;;;:52;;-1:-1:-1;1340:20:135;;;;:9;:20;;;;;:26;;;:34;;;;:26;;;:34;1322:52;1315:155;;;-1:-1:-1;1434:20:135;;;;:9;:20;;;;;:25;;;;1315:155;;;1508:160;;;;;;;;1532:14;;;1508:160;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1508:160:135;;;;;;;;;;;;;;;-1:-1:-1;1480:25:135;;;:9;:25;;;;;;;;:188;;;;;;;;;;;;;-1:-1:-1;;;;;1480:188:135;;;-1:-1:-1;;;1480:188:135;-1:-1:-1;;;;;;1480:188:135;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1480:188:135;;;;;;;;;;;;;;;;1717:16;1726:7;1594:6;1717:16;:::i;:::-;1708:26;;:5;:26;:::i;:::-;-1:-1:-1;;;;;1679:17:135;;;;;;;:9;:17;;;;;;;;1697:6;;;;;1679:25;;;;;;;;:55;;:25;;:17;:55;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1679:55:135;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1679:55:135;1764:14;;1749:53;;;-1:-1:-1;7709:41:165;;7781:2;7766:18;;7759:34;;;;-1:-1:-1;;;;;7829:32:165;;7809:18;;;7802:60;7898:21;;;7893:2;7878:18;;7871:49;7957:21;;;;7951:3;7936:19;;7929:50;1749:53:135;;7696:3:165;7681:19;1749:53:135;;;;;;;1817:6;1827:1;1817:11;1813:144;;1862:14;;1844:15;:32;1813:144;;;1932:14;;1907:17;;;;:9;:17;;;;;:22;;:39;1813:144;1163:801;;1086:878;;;:::o;2842:1506::-;3010:15;;2970:5;;3059:2;2970:5;3154:1086;3161:17;;;;;:35;;;3195:1;3182:10;:14;;;3161:35;:65;;;;;3213:13;3200:10;:26;3161:65;3154:1086;;;3242:22;3267:23;;;:9;:23;;;;;3322:14;;;;;;;;3309:27;;;;;3305:899;;3378:15;;;;3356:18;;3378:28;;;;-1:-1:-1;;;3378:15:135;;;;;:28;3377:61;;3428:10;3377:61;;;3410:15;;;;-1:-1:-1;;;3410:15:135;;;;3377:61;3356:82;-1:-1:-1;3476:9:135;3552:22;3567:7;3356:82;3552:22;:::i;:::-;3537:38;;:11;:38;:::i;:::-;-1:-1:-1;;;;;3504:21:135;;;;;;;:9;:21;;;;;;;;3526:6;;;;;3504:29;;;;;;;;:71;;:29;;:21;:71;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3504:71:135;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3593:21:135;;;-1:-1:-1;3593:21:135;;;:9;:21;;;;;;;;3615:6;;;;;3593:29;;;;;;;;:45;;3626:12;;-1:-1:-1;3593:45:135;;3626:12;;3504:71;3593:45;;:::i;:::-;;;-1:-1:-1;;;;;3593:45:135;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3666:15:135;;;;-1:-1:-1;;;;;3666:15:135;;;-1:-1:-1;3656:26:135;;;:9;:26;;;;;;;;3683:6;;;;;3656:34;;;;;;;;:50;;3694:12;;-1:-1:-1;3656:50:135;;3694:12;;3593:45;3656:50;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;3656:50:135;;;;;;;-1:-1:-1;;;;;3656:50:135;;;;;;3739:12;3725:26;;;;;:::i;:::-;3769:15;;;:31;;3725:26;;-1:-1:-1;3788:12:135;;3769:15;;:31;;3788:12;;-1:-1:-1;;;3769:31:135;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;3769:31:135;;;;;;;;;;;;;;;;;;-1:-1:-1;;3844:14:135;;;3872:15;;;;3824:64;;;3769:31;7091:21:165;;;7073:40;;3844:14:135;;;;7144:2:165;7129:18;;7122:49;-1:-1:-1;;;;;7245:15:165;;;7225:18;;;7218:43;3872:15:135;;;7292:2:165;7277:18;;7270:43;3824:64:135;;;;;;7060:3:165;3824:64:135;;;3911:15;;;;-1:-1:-1;;;3911:15:135;;;;3930:1;3911:20;3907:239;;3972:13;;;;;3955:14;4014:23;;;:9;:23;;;;;;;4007:30;;;;;;;;-1:-1:-1;;;;;;4007:30:135;;;;;;;;-1:-1:-1;;;;;;4007:30:135;;;;;;;;;;3907:239;3338:822;;3305:899;;;4184:5;;;3305:899;4217:12;;;;:::i;:::-;;;;3228:1012;3154:1086;;;-1:-1:-1;;4250:15:135;:30;-1:-1:-1;4331:10:135;2842:1506;-1:-1:-1;;2842:1506:135:o;1970:866::-;2058:14;:16;;;:14;:16;;;:::i;:::-;;;;-1:-1:-1;;2146:16:135;;2126:17;2201:157;2208:14;;;;;:53;;-1:-1:-1;2226:21:135;;;;:10;:21;;;;;:27;;;:35;;;;:27;;;:35;2208:53;2201:157;;;-1:-1:-1;2321:21:135;;;;:10;:21;;;;;;;;:26;;;2201:157;;;2397:160;;;;;;;;2421:14;;;2397:160;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2397:160:135;;;;;;;;;;;;;;;-1:-1:-1;2368:26:135;;;:10;:26;;;;;;:189;;;;;;;;;;;;;-1:-1:-1;;;;;2368:189:135;;;-1:-1:-1;;;2368:189:135;-1:-1:-1;;;;;;2368:189:135;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2368:189:135;;;;;;;;;;;;;;;;;;;2568:17;;;:9;:17;;;;;2586:6;;;;;2568:25;;;;;;;;:35;;2483:6;;2568:25;;-1:-1:-1;2568:35:135;;2483:6;;2568:35;;:::i;:::-;;;-1:-1:-1;;;;;2568:35:135;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2568:35:135;2634:14;;2618:54;;;-1:-1:-1;7709:41:165;;7781:2;7766:18;;7759:34;;;;-1:-1:-1;;;;;7829:32:165;;7809:18;;;7802:60;7898:21;;;7893:2;7878:18;;7871:49;7957:21;;;;7951:3;7936:19;;7929:50;2618:54:135;;7696:3:165;7681:19;2618:54:135;;;;;;;2687:6;2697:1;2687:11;2683:146;;2733:14;;2714:16;:33;2683:146;;;2804:14;;2778:18;;;;:10;:18;;;;;;;;:23;:40;2048:788;;1970:866;;;:::o;6155:243::-;-1:-1:-1;;;;;6238:17:135;;;;;;;:9;:17;;;;;;;;:24;;;;;;;;;;;:34;;6266:6;;6238:17;:34;;6266:6;;6238:34;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;6238:34:135;;;;;;;-1:-1:-1;;;;;6238:34:135;;;;;;6282:63;6308:5;6323:4;6330:6;6338;6282:25;:63::i;:::-;6360:31;;;-1:-1:-1;;;;;8244:15:165;;;8226:34;;8296:15;;8291:2;8276:18;;8269:43;8359:1;8348:21;;;8328:18;;;8321:49;;;;6360:31:135;;8176:2:165;8161:18;6360:31:135;;;;;;;;6155:243;;;:::o;5908:241::-;5990:63;6016:5;6023:6;6039:4;6046:6;5990:25;:63::i;:::-;-1:-1:-1;;;;;6063:17:135;;;;;;;:9;:17;;;;;;;;:24;;;;;;;;;;;:34;;6091:6;;6063:17;:34;;6091:6;;6063:34;;;:::i;:::-;;;-1:-1:-1;;;;;6063:34:135;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6112:30:135;;;-1:-1:-1;;;;;8244:15:165;;;8226:34;;8296:15;;8291:2;8276:18;;8269:43;6063:34:135;8348:21:165;;;8328:18;;;8321:49;;;;6112:30:135;;8176:2:165;8161:18;6112:30:135;7990:386:165;7077:680:135;7164:15;;7149:11;;:30;7145:424;;7213:13;;;;7195:15;:31;7145:424;;;7296:15;;7257:26;7286;;;:9;:26;;;;;7327:185;7355:11;;7334:17;;;;:32;7327:185;;7394:12;:17;;;7415:1;7394:22;7386:50;;;;-1:-1:-1;;;7386:50:135;;8583:2:165;7386:50:135;;;8565:21:165;8622:2;8602:18;;;8595:30;-1:-1:-1;;;8641:18:165;;;8634:45;8696:18;;7386:50:135;8381:339:165;7386:50:135;7479:17;;;7469:28;;;;:9;:28;;;;;7327:185;;;7545:13;;;;;7525:17;;:33;7145:424;7635:15;;;;:25;;7653:7;;-1:-1:-1;;;7635:15:135;;;;:25;:::i;:::-;7617:14;;;;:44;;;:14;;:44;:::i;:::-;7589:15;;;;-1:-1:-1;;;;;7589:15:135;;;7579:26;;;;:9;:26;;;;;;;;7589:15;7606:6;;;;7579:34;;;;;;;;:82;;:34;;:26;:82;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7579:82:135;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7671:15:135;;;:19;;-1:-1:-1;;;;7671:19:135;;;7726:11;;7706:44;;;8921:41:165;;;8993:2;8978:18;;8971:34;;;;7739:10:135;9021:18:165;;;9014:60;7706:44:135;;8909:2:165;8894:18;7706:44:135;;;;;;;;7077:680;:::o;6404:667::-;6494:16;;6478:12;;:32;6474:433;;6545:14;;;;6526:16;:33;6474:433;;;6630:16;;6590:26;6619:28;;;:10;:28;;;;;6662:187;6690:12;;6669:17;;;;:33;6662:187;;6730:12;:17;;;6751:1;6730:22;6722:50;;;;-1:-1:-1;;;6722:50:135;;8583:2:165;6722:50:135;;;8565:21:165;8622:2;8602:18;;;8595:30;-1:-1:-1;;;8641:18:165;;;8634:45;8696:18;;6722:50:135;8381:339:165;6722:50:135;6805:10;6816:17;;;;6805:29;;;;;;;;;;;;6662:187;;;6882:14;;;;;6862:17;;:34;6474:433;6956:16;;;;6927;;;;-1:-1:-1;;;;;6927:16:135;;;6917:27;;;;:9;:27;;;;;;;;6945:6;;;;;6917:35;;;;;;;;:55;;-1:-1:-1;;;6956:16:135;;;;;;;;6917:35;;:27;:55;;6956:16;;6917:55;;;:::i;:::-;;;-1:-1:-1;;;;;6917:55:135;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6982:16:135;;:20;;-1:-1:-1;;;;6982:20:135;;;7039:12;;7018:46;;;-1:-1:-1;8921:41:165;;8993:2;8978:18;;8971:34;;;;7053:10:135;9021:18:165;;;9014:60;7018:46:135;;8909:2:165;8894:18;7018:46:135;8725:355:165;5180:512:12;5391:99;;;-1:-1:-1;;;;;9368:15:165;;;5391:99:12;;;9350:34:165;9420:15;;;9400:18;;;9393:43;9472:15;;9452:18;;;9445:43;9535:1;9524:21;;;9504:18;;;;9497:49;;;;5391:99:12;;;;;;;;;;9284:19:165;;;;5391:99:12;;;;;;;-1:-1:-1;;;;;5391:99:12;-1:-1:-1;;;5391:99:12;;;5355:145;;-1:-1:-1;;;;;;246:5:12;;5355:145;;5391:99;5355:145;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5317:183;;;;5525:7;:67;;2576:2:10;5525:67:12;;;5546:6;5535:27;;;;;;;;;;;;:::i;:::-;5510:82;-1:-1:-1;5610:43:12;;;;2722:2:10;5610:43:12;5602:83;;;;-1:-1:-1;;;5602:83:12;;10458:2:165;5602:83:12;;;10440:21:165;10497:2;10477:18;;;10470:30;10536:29;10516:18;;;10509:57;10583:18;;5602:83:12;10256:351:165;5602:83:12;5279:413;;;5180:512;;;;:::o;14:160:165:-;80:20;;140:1;129:20;;;119:31;;109:59;;164:1;161;154:12;109:59;14:160;;;:::o;179:252::-;243:6;251;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:27;360:9;343:27;:::i;:::-;333:37;;389:36;421:2;410:9;406:18;389:36;:::i;:::-;379:46;;179:252;;;;;:::o;826:180::-;885:6;938:2;926:9;917:7;913:23;909:32;906:52;;;954:1;951;944:12;906:52;-1:-1:-1;977:23:165;;826:180;-1:-1:-1;826:180:165:o;1527:173::-;1595:20;;-1:-1:-1;;;;;1644:31:165;;1634:42;;1624:70;;1690:1;1687;1680:12;1705:256;1771:6;1779;1832:2;1820:9;1811:7;1807:23;1803:32;1800:52;;;1848:1;1845;1838:12;1800:52;1871:29;1890:9;1871:29;:::i;1966:260::-;2034:6;2042;2095:2;2083:9;2074:7;2070:23;2066:32;2063:52;;;2111:1;2108;2101:12;2063:52;2134:29;2153:9;2134:29;:::i;:::-;2124:39;;2182:38;2216:2;2205:9;2201:18;2182:38;:::i;2424:341::-;2489:6;2497;2550:2;2538:9;2529:7;2525:23;2521:32;2518:52;;;2566:1;2563;2556:12;2518:52;2602:9;2589:23;2579:33;;2662:2;2651:9;2647:18;2634:32;2709:5;2702:13;2695:21;2688:5;2685:32;2675:60;;2731:1;2728;2721:12;2675:60;2754:5;2744:15;;;2424:341;;;;;:::o;3455:127::-;3516:10;3511:3;3507:20;3504:1;3497:31;3547:4;3544:1;3537:15;3571:4;3568:1;3561:15;3587:383;3625:1;3666;3663;3652:16;3702:1;3699;3688:16;3723:3;3713:134;;3769:10;3764:3;3760:20;3757:1;3750:31;3804:4;3801:1;3794:15;3832:4;3829:1;3822:15;3713:134;-1:-1:-1;;3863:32:165;;-1:-1:-1;;3897:15:165;;3859:54;3856:80;;;3916:18;;:::i;:::-;3950:14;;;3587:383;-1:-1:-1;;;3587:383:165:o;3975:237::-;4013:7;4090:1;4087;4076:16;4072:1;4069;4058:16;4054:39;4127:11;4124:1;4113:26;4102:37;;4170:11;4161:7;4158:24;4148:58;;4186:18;;:::i;:::-;4148:58;3975:237;;;;:::o;4217:342::-;4419:2;4401:21;;;4458:2;4438:18;;;4431:30;-1:-1:-1;;;4492:2:165;4477:18;;4470:48;4550:2;4535:18;;4217:342::o;6416:214::-;6514:1;6503:16;;;6485;;;;6481:39;-1:-1:-1;;6535:34:165;;6581:18;6571:29;;6532:69;6529:95;;;6604:18;;:::i;6635:210::-;6731:1;6702:16;;;6720;;;;6698:39;6795:18;6752:28;;-1:-1:-1;;6782:33:165;;6749:67;6746:93;;;6819:18;;:::i;7324:135::-;7363:3;7384:17;;;7381:43;;7404:18;;:::i;:::-;-1:-1:-1;7451:1:165;7440:13;;7324:135::o;9557:412::-;9686:3;9724:6;9718:13;9749:1;9759:129;9773:6;9770:1;9767:13;9759:129;;;9871:4;9855:14;;;9851:25;;9845:32;9832:11;;;9825:53;9788:12;9759:129;;;-1:-1:-1;9943:1:165;9907:16;;9932:13;;;-1:-1:-1;9907:16:165;9557:412;-1:-1:-1;9557:412:165:o;9974:277::-;10042:6;10095:2;10083:9;10074:7;10070:23;10066:32;10063:52;;;10111:1;10108;10101:12;10063:52;10143:9;10137:16;10196:5;10193:1;10182:20;10175:5;10172:31;10162:59;;10217:1;10214;10207:12;10162:59;10240:5;9974:277;-1:-1:-1;;;9974:277:165:o","linkReferences":{}},"methodIdentifiers":{"balanceOf(address,address)":"f7888aec","buyOrders(uint256)":"35cea288","cancelOrder(uint256,bool)":"f88d2047","currentOrderId()":"925931fc","deposit(address,int64)":"dd5813ee","firstBuyOrderId()":"bb110bf9","firstSellOrderId()":"72fb0777","placeBuyOrder(int64,int64)":"03c4c2e1","placeSellOrder(int64,int64)":"2ec2add7","sellOrders(uint256)":"4a8393f3","tokenA()":"0fc63d10","tokenB()":"5f64b55b","withdraw(address,int64)":"92c02991"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"orderId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"volume\",\"type\":\"int64\"}],\"name\":\"NewOrder\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"orderId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"}],\"name\":\"OrderCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"tradedVolume\",\"type\":\"int64\"},{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"}],\"name\":\"Trade\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"\",\"type\":\"int64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"buyOrders\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"volume\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"next\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"orderId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuyOrder\",\"type\":\"bool\"}],\"name\":\"cancelOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentOrderId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"firstBuyOrderId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"firstSellOrderId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"volume\",\"type\":\"int64\"}],\"name\":\"placeBuyOrder\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"volume\",\"type\":\"int64\"}],\"name\":\"placeSellOrder\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"sellOrders\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"volume\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"next\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenA\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenB\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{\"cancelOrder(uint256,bool)\":{\"details\":\"cancel an order by id\",\"params\":{\"isBuyOrder\":\"boolean flag whether the order is buy or sell\",\"orderId\":\"uint256 id of the order\"}},\"constructor\":{\"details\":\"Exchange constructor\",\"params\":{\"_tokenA\":\"address of token A\",\"_tokenB\":\"address of token B\"}},\"deposit(address,int64)\":{\"details\":\"make an ERC20 deposit from the sender to this contract given the token and amount\",\"params\":{\"amount\":\"total value of the deposit\",\"token\":\"address of the ERC20 token to deposit\"}},\"placeBuyOrder(int64,int64)\":{\"details\":\"match buy order with existing sell orders, the remaining volume is created as a buy order\",\"params\":{\"price\":\"bid price in tokenB\",\"volume\":\"bid amount in token A\"}},\"placeSellOrder(int64,int64)\":{\"details\":\"match sell order with existing buy orders, the remaining volume is created as a sell order\",\"params\":{\"price\":\"ask price in tokenB\",\"volume\":\"ask amount in token A\"}},\"withdraw(address,int64)\":{\"details\":\"make an ERC20 withdraw from this contract to the sender given the token and amount\",\"params\":{\"amount\":\"total value of the withdrawal\",\"token\":\"address of the ERC20 token to withdraw\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"cancelOrder(uint256,bool)\":{\"notice\":\".cancelOrderonly creator of the order can call this function\"},\"constructor\":{\"notice\":\".constructor\"},\"deposit(address,int64)\":{\"notice\":\".depositit's mandatory to perform an approve call before calling this function.\"},\"placeBuyOrder(int64,int64)\":{\"notice\":\".placeBuyOrder\"},\"placeSellOrder(int64,int64)\":{\"notice\":\".placeSellOrder\"},\"withdraw(address,int64)\":{\"notice\":\".withdraw\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/orderbook/hts/ExchangeHTS.sol\":\"ExchangeHTS\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/safe-HTS/HederaResponseCodes.sol\":{\"keccak256\":\"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca\",\"dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G\"]},\"contracts/common/safe-HTS/IHederaTokenService.sol\":{\"keccak256\":\"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786\",\"dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W\"]},\"contracts/common/safe-HTS/SafeHTS.sol\":{\"keccak256\":\"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe\",\"dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7\"]},\"contracts/orderbook/hts/ExchangeHTS.sol\":{\"keccak256\":\"0xc94ba4beb605e90b099608b3b7e9e2dcd97ed72537474aa98858915517228616\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d5861a1c128d7489656fa52d86fe2a3cbc948a6b819cff7250aea8716759643\",\"dweb:/ipfs/Qmd8uCf3fAodEL1GuEqCeqweURG6GCtui9uAZ8C9nHUyMh\"]},\"contracts/orderbook/hts/OrderBookHTS.sol\":{\"keccak256\":\"0xb7220a63df346af26eebd25ea536249e9568777a6294f3410b90f98221c3aeaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de3561a635d0de9e3c1b9ac225a5491f9bd415295501ee5367ad3ac07a5eeb97\",\"dweb:/ipfs/QmNV7EE8BgHVQv9cnPLzEUa1w1dAtSm2stKNdndny23Ahb\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_tokenA","type":"address"},{"internalType":"address","name":"_tokenB","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"trader","type":"address","indexed":false},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"int64","name":"amount","type":"int64","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"bool","name":"isBuy","type":"bool","indexed":false},{"internalType":"uint256","name":"orderId","type":"uint256","indexed":false},{"internalType":"address","name":"trader","type":"address","indexed":false},{"internalType":"int64","name":"price","type":"int64","indexed":false},{"internalType":"int64","name":"volume","type":"int64","indexed":false}],"type":"event","name":"NewOrder","anonymous":false},{"inputs":[{"internalType":"bool","name":"isBuy","type":"bool","indexed":false},{"internalType":"uint256","name":"orderId","type":"uint256","indexed":false},{"internalType":"address","name":"trader","type":"address","indexed":false}],"type":"event","name":"OrderCanceled","anonymous":false},{"inputs":[{"internalType":"int64","name":"tradedVolume","type":"int64","indexed":false},{"internalType":"int64","name":"price","type":"int64","indexed":false},{"internalType":"address","name":"buyer","type":"address","indexed":false},{"internalType":"address","name":"seller","type":"address","indexed":false}],"type":"event","name":"Trade","anonymous":false},{"inputs":[{"internalType":"address","name":"trader","type":"address","indexed":false},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"int64","name":"amount","type":"int64","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"int64","name":"","type":"int64"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"buyOrders","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"int64","name":"price","type":"int64"},{"internalType":"int64","name":"volume","type":"int64"},{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"next","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"bool","name":"isBuyOrder","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"cancelOrder"},{"inputs":[],"stateMutability":"view","type":"function","name":"currentOrderId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"int64","name":"amount","type":"int64"}],"stateMutability":"nonpayable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"firstBuyOrderId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"firstSellOrderId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"int64","name":"volume","type":"int64"}],"stateMutability":"nonpayable","type":"function","name":"placeBuyOrder","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"int64","name":"volume","type":"int64"}],"stateMutability":"nonpayable","type":"function","name":"placeSellOrder","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"sellOrders","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"int64","name":"price","type":"int64"},{"internalType":"int64","name":"volume","type":"int64"},{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"next","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenA","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenB","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"int64","name":"amount","type":"int64"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{"cancelOrder(uint256,bool)":{"details":"cancel an order by id","params":{"isBuyOrder":"boolean flag whether the order is buy or sell","orderId":"uint256 id of the order"}},"constructor":{"details":"Exchange constructor","params":{"_tokenA":"address of token A","_tokenB":"address of token B"}},"deposit(address,int64)":{"details":"make an ERC20 deposit from the sender to this contract given the token and amount","params":{"amount":"total value of the deposit","token":"address of the ERC20 token to deposit"}},"placeBuyOrder(int64,int64)":{"details":"match buy order with existing sell orders, the remaining volume is created as a buy order","params":{"price":"bid price in tokenB","volume":"bid amount in token A"}},"placeSellOrder(int64,int64)":{"details":"match sell order with existing buy orders, the remaining volume is created as a sell order","params":{"price":"ask price in tokenB","volume":"ask amount in token A"}},"withdraw(address,int64)":{"details":"make an ERC20 withdraw from this contract to the sender given the token and amount","params":{"amount":"total value of the withdrawal","token":"address of the ERC20 token to withdraw"}}},"version":1},"userdoc":{"kind":"user","methods":{"cancelOrder(uint256,bool)":{"notice":".cancelOrderonly creator of the order can call this function"},"constructor":{"notice":".constructor"},"deposit(address,int64)":{"notice":".depositit's mandatory to perform an approve call before calling this function."},"placeBuyOrder(int64,int64)":{"notice":".placeBuyOrder"},"placeSellOrder(int64,int64)":{"notice":".placeSellOrder"},"withdraw(address,int64)":{"notice":".withdraw"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/orderbook/hts/ExchangeHTS.sol":"ExchangeHTS"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/safe-HTS/HederaResponseCodes.sol":{"keccak256":"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324","urls":["bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca","dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G"],"license":"Apache-2.0"},"contracts/common/safe-HTS/IHederaTokenService.sol":{"keccak256":"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735","urls":["bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786","dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W"],"license":"Apache-2.0"},"contracts/common/safe-HTS/SafeHTS.sol":{"keccak256":"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10","urls":["bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe","dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7"],"license":"Apache-2.0"},"contracts/orderbook/hts/ExchangeHTS.sol":{"keccak256":"0xc94ba4beb605e90b099608b3b7e9e2dcd97ed72537474aa98858915517228616","urls":["bzz-raw://9d5861a1c128d7489656fa52d86fe2a3cbc948a6b819cff7250aea8716759643","dweb:/ipfs/Qmd8uCf3fAodEL1GuEqCeqweURG6GCtui9uAZ8C9nHUyMh"],"license":"MIT"},"contracts/orderbook/hts/OrderBookHTS.sol":{"keccak256":"0xb7220a63df346af26eebd25ea536249e9568777a6294f3410b90f98221c3aeaf","urls":["bzz-raw://de3561a635d0de9e3c1b9ac225a5491f9bd415295501ee5367ad3ac07a5eeb97","dweb:/ipfs/QmNV7EE8BgHVQv9cnPLzEUa1w1dAtSm2stKNdndny23Ahb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80","urls":["bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229","dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"}},"version":1},"id":134} \ No newline at end of file diff --git a/out/ExchangeMonthlyLimits.sol/ExchangeMonthlyLimits.json b/out/ExchangeMonthlyLimits.sol/ExchangeMonthlyLimits.json new file mode 100644 index 0000000..87693c3 --- /dev/null +++ b/out/ExchangeMonthlyLimits.sol/ExchangeMonthlyLimits.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addExchangeID","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"complianceCheckOnExchangeMonthlyLimits","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getExchangeMonthlyLimit","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMonthlyCounter","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"},{"name":"_investorID","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMonthlyTimer","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"},{"name":"_investorID","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isExchangeID","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenBound","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeExchangeID","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setExchangeMonthlyLimit","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"},{"name":"_newExchangeMonthlyLimit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tokenBound","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IToken"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExchangeIDAdded","inputs":[{"name":"_newExchangeID","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExchangeIDRemoved","inputs":[{"name":"_exchangeID","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExchangeMonthlyLimitUpdated","inputs":[{"name":"_exchangeID","type":"address","indexed":false,"internalType":"address"},{"name":"_newExchangeMonthlyLimit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentAdded","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentRemoved","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","addExchangeID(address)":"2bb5e721","addTokenAgent(address)":"ff3e6954","bindToken(address)":"3ff5aa02","canTransfer(address,address,uint256)":"e46638e6","complianceCheckOnExchangeMonthlyLimits(address,address,uint256)":"bba58c29","created(address,uint256)":"5f8dead3","destroyed(address,uint256)":"8d2ea772","getExchangeMonthlyLimit(address)":"95c5dbfc","getMonthlyCounter(address,address)":"ca63968d","getMonthlyTimer(address,address)":"ce32926d","isAgent(address)":"1ffbb064","isExchangeID(address)":"d22579fb","isTokenAgent(address)":"346531fa","isTokenBound(address)":"993e8b95","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","removeExchangeID(address)":"74436d97","removeTokenAgent(address)":"cdde2932","renounceOwnership()":"715018a6","setExchangeMonthlyLimit(address,uint256)":"a9336def","tokenBound()":"93e62f07","transferOwnership(address)":"f2fde38b","transferred(address,address,uint256)":"8baf29b4","unbindToken(address)":"40db3b50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newExchangeID\",\"type\":\"address\"}],\"name\":\"ExchangeIDAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"ExchangeIDRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newExchangeMonthlyLimit\",\"type\":\"uint256\"}],\"name\":\"ExchangeMonthlyLimitUpdated\",\"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\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"addExchangeID\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"addTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"complianceCheckOnExchangeMonthlyLimits\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"getExchangeMonthlyLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_investorID\",\"type\":\"address\"}],\"name\":\"getMonthlyCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_investorID\",\"type\":\"address\"}],\"name\":\"getMonthlyTimer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"isExchangeID\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"isTokenAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"removeExchangeID\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"removeTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_newExchangeMonthlyLimit\",\"type\":\"uint256\"}],\"name\":\"setExchangeMonthlyLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenBound\",\"outputs\":[{\"internalType\":\"contract IToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addExchangeID(address)\":{\"details\":\"tags the ONCHAINID as being an exchange ID\",\"params\":{\"_exchangeID\":\"ONCHAINID to be tagged Function can be called only by owner of the compliance contract Cannot be called on an address already tagged as being an exchange emits an `ExchangeIDAdded` event\"}},\"addTokenAgent(address)\":{\"details\":\"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces\"},\"bindToken(address)\":{\"details\":\"See {ICompliance-bindToken}.\"},\"canTransfer(address,address,uint256)\":{\"details\":\"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"complianceCheckOnExchangeMonthlyLimits(address,address,uint256)\":{\"details\":\"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the transfer is done to an exchange wallet, if it is the case it will check if the transfer respects the limitations in terms of authorized monthly deposit volume, if it does the check will return true, if the transfer doesn't respect the limitations it will return false and block the transfer Agents are allowed to bypass this check\",\"params\":{\"_from\":\"the address of the transfer sender\",\"_to\":\"the address of the transfer receiver\",\"_value\":\"the amount of tokens that `_from` would send to `_to`\"}},\"created(address,uint256)\":{\"details\":\"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_to\":\"The address of the receiver\"}},\"destroyed(address,uint256)\":{\"details\":\"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the receiver\"}},\"getExchangeMonthlyLimit(address)\":{\"details\":\"getter for `exchangeMonthlyLimit` variable\",\"params\":{\"_exchangeID\":\"exchange ONCHAINID returns the monthly limit set for that exchange\"}},\"getMonthlyCounter(address,address)\":{\"details\":\"getter for `exchangeCounters` variable on the counter parameter of the ExchangeTransferCounter struct\",\"params\":{\"_exchangeID\":\"exchange ONCHAINID\",\"_investorID\":\"ONCHAINID to be checked returns current monthly counter of `_investorID` on `exchangeID` exchange\"}},\"getMonthlyTimer(address,address)\":{\"details\":\"getter for `exchangeCounters` variable on the timer parameter of the ExchangeTransferCounter struct\",\"params\":{\"_exchangeID\":\"exchange ONCHAINID\",\"_investorID\":\"ONCHAINID to be checked returns current timer of `_investorID` on `exchangeID` exchange\"}},\"isExchangeID(address)\":{\"details\":\"getter for `_exchangeIDs` variable tells to the caller if an ONCHAINID belongs to an exchange or not\",\"params\":{\"_exchangeID\":\"ONCHAINID to be checked returns TRUE if the address corresponds to an exchange, FALSE otherwise\"}},\"isTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"isTokenBound(address)\":{\"details\":\"See {ICompliance-isTokenBound}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeExchangeID(address)\":{\"details\":\"untags the ONCHAINID as being an exchange ID\",\"params\":{\"_exchangeID\":\"ONCHAINID to be untagged Function can be called only by owner of the compliance contract Cannot be called on an address not tagged as being an exchange emits an `ExchangeIDRemoved` event\"}},\"removeTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"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.\"},\"setExchangeMonthlyLimit(address,uint256)\":{\"details\":\"Set the limit of tokens allowed to be transferred monthly.\",\"params\":{\"_exchangeID\":\"ONCHAINID of the exchange\",\"_newExchangeMonthlyLimit\":\"The new monthly limit of tokens Only the owner of the Compliance smart contract can call this function\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferred(address,address,uint256)\":{\"details\":\"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"unbindToken(address)\":{\"details\":\"See {ICompliance-unbindToken}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ExchangeIDAdded(address)\":{\"notice\":\"this event is emitted whenever an ONCHAINID is tagged as being an exchange ID. the event is emitted by 'addExchangeID'. `_newExchangeID` is the ONCHAINID address of the exchange to add.\"},\"ExchangeIDRemoved(address)\":{\"notice\":\"this event is emitted whenever an ONCHAINID is untagged as belonging to an exchange. the event is emitted by 'removeExchangeID'. `_exchangeID` is the ONCHAINID being untagged as an exchange ID.\"},\"ExchangeMonthlyLimitUpdated(address,uint256)\":{\"notice\":\"this event is emitted whenever the Exchange Limit has been updated. the event is emitted by 'setExchangeMonthlyLimit' `_exchangeID` is the amount ONCHAINID address of the exchange. `_newExchangeMonthlyLimit` is the amount Limit of tokens to be transferred monthly to an exchange wallet.\"},\"TokenAgentAdded(address)\":{\"notice\":\"this event is emitted when the Agent has been added on the allowedList of this Compliance. the event is emitted by the Compliance constructor and by the addTokenAgent function `_agentAddress` is the address of the Agent to add\"},\"TokenAgentRemoved(address)\":{\"notice\":\"this event is emitted when the Agent has been removed from the agent list of this Compliance. the event is emitted by the Compliance constructor and by the removeTokenAgent function `_agentAddress` is the address of the Agent to remove\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"}},\"kind\":\"user\",\"methods\":{\"tokenBound()\":{\"notice\":\"Mapping of tokens linked to the compliance contract\"}},\"notice\":\"this feature allows to put a limit on the monthly deposits one can make on a given exchange It won't be possible for an investor to send more than the monthly limit of tokens on a given exchange\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/legacy/features/ExchangeMonthlyLimits.sol\":\"ExchangeMonthlyLimits\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/legacy/BasicCompliance.sol\":{\"keccak256\":\"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d\",\"dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4\"]},\"contracts/erc3643/compliance/legacy/ICompliance.sol\":{\"keccak256\":\"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e\",\"dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV\"]},\"contracts/erc3643/compliance/legacy/features/ExchangeMonthlyLimits.sol\":{\"keccak256\":\"0x35b45abfa11094866963c2d541c3f988c82c75d30cc6c0e8b5ceabf673ec9bbb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://406e235dced89fb91a484822846df9cee009eaa32fe71f5475e05d445536f1e9\",\"dweb:/ipfs/QmdFaA1PzJN2FBAoSAXd1WpNS3sHSB1nZFxBmNQkCvyQLE\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_newExchangeID","type":"address","indexed":false}],"type":"event","name":"ExchangeIDAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address","indexed":false}],"type":"event","name":"ExchangeIDRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address","indexed":false},{"internalType":"uint256","name":"_newExchangeMonthlyLimit","type":"uint256","indexed":false}],"type":"event","name":"ExchangeMonthlyLimitUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addExchangeID"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenAgent"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"view","type":"function","name":"complianceCheckOnExchangeMonthlyLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"}],"stateMutability":"view","type":"function","name":"getExchangeMonthlyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"},{"internalType":"address","name":"_investorID","type":"address"}],"stateMutability":"view","type":"function","name":"getMonthlyCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"},{"internalType":"address","name":"_investorID","type":"address"}],"stateMutability":"view","type":"function","name":"getMonthlyTimer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"}],"stateMutability":"view","type":"function","name":"isExchangeID","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeExchangeID"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"},{"internalType":"uint256","name":"_newExchangeMonthlyLimit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setExchangeMonthlyLimit"},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenBound","outputs":[{"internalType":"contract IToken","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"}],"devdoc":{"kind":"dev","methods":{"addExchangeID(address)":{"details":"tags the ONCHAINID as being an exchange ID","params":{"_exchangeID":"ONCHAINID to be tagged Function can be called only by owner of the compliance contract Cannot be called on an address already tagged as being an exchange emits an `ExchangeIDAdded` event"}},"addTokenAgent(address)":{"details":"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces"},"bindToken(address)":{"details":"See {ICompliance-bindToken}."},"canTransfer(address,address,uint256)":{"details":"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"complianceCheckOnExchangeMonthlyLimits(address,address,uint256)":{"details":"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the transfer is done to an exchange wallet, if it is the case it will check if the transfer respects the limitations in terms of authorized monthly deposit volume, if it does the check will return true, if the transfer doesn't respect the limitations it will return false and block the transfer Agents are allowed to bypass this check","params":{"_from":"the address of the transfer sender","_to":"the address of the transfer receiver","_value":"the amount of tokens that `_from` would send to `_to`"}},"created(address,uint256)":{"details":"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_to":"The address of the receiver"}},"destroyed(address,uint256)":{"details":"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the receiver"}},"getExchangeMonthlyLimit(address)":{"details":"getter for `exchangeMonthlyLimit` variable","params":{"_exchangeID":"exchange ONCHAINID returns the monthly limit set for that exchange"}},"getMonthlyCounter(address,address)":{"details":"getter for `exchangeCounters` variable on the counter parameter of the ExchangeTransferCounter struct","params":{"_exchangeID":"exchange ONCHAINID","_investorID":"ONCHAINID to be checked returns current monthly counter of `_investorID` on `exchangeID` exchange"}},"getMonthlyTimer(address,address)":{"details":"getter for `exchangeCounters` variable on the timer parameter of the ExchangeTransferCounter struct","params":{"_exchangeID":"exchange ONCHAINID","_investorID":"ONCHAINID to be checked returns current timer of `_investorID` on `exchangeID` exchange"}},"isExchangeID(address)":{"details":"getter for `_exchangeIDs` variable tells to the caller if an ONCHAINID belongs to an exchange or not","params":{"_exchangeID":"ONCHAINID to be checked returns TRUE if the address corresponds to an exchange, FALSE otherwise"}},"isTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"isTokenBound(address)":{"details":"See {ICompliance-isTokenBound}."},"owner()":{"details":"Returns the address of the current owner."},"removeExchangeID(address)":{"details":"untags the ONCHAINID as being an exchange ID","params":{"_exchangeID":"ONCHAINID to be untagged Function can be called only by owner of the compliance contract Cannot be called on an address not tagged as being an exchange emits an `ExchangeIDRemoved` event"}},"removeTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"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."},"setExchangeMonthlyLimit(address,uint256)":{"details":"Set the limit of tokens allowed to be transferred monthly.","params":{"_exchangeID":"ONCHAINID of the exchange","_newExchangeMonthlyLimit":"The new monthly limit of tokens Only the owner of the Compliance smart contract can call this function"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"transferred(address,address,uint256)":{"details":"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"unbindToken(address)":{"details":"See {ICompliance-unbindToken}."}},"version":1},"userdoc":{"kind":"user","methods":{"tokenBound()":{"notice":"Mapping of tokens linked to the compliance contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/legacy/features/ExchangeMonthlyLimits.sol":"ExchangeMonthlyLimits"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/legacy/BasicCompliance.sol":{"keccak256":"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305","urls":["bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d","dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/ICompliance.sol":{"keccak256":"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7","urls":["bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e","dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/features/ExchangeMonthlyLimits.sol":{"keccak256":"0x35b45abfa11094866963c2d541c3f988c82c75d30cc6c0e8b5ceabf673ec9bbb","urls":["bzz-raw://406e235dced89fb91a484822846df9cee009eaa32fe71f5475e05d445536f1e9","dweb:/ipfs/QmdFaA1PzJN2FBAoSAXd1WpNS3sHSB1nZFxBmNQkCvyQLE"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":31} \ No newline at end of file diff --git a/out/ExchangeMonthlyLimitsModule.sol/ExchangeMonthlyLimitsModule.json b/out/ExchangeMonthlyLimitsModule.sol/ExchangeMonthlyLimitsModule.json new file mode 100644 index 0000000..4873984 --- /dev/null +++ b/out/ExchangeMonthlyLimitsModule.sol/ExchangeMonthlyLimitsModule.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addExchangeID","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canComplianceBind","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getExchangeMonthlyLimit","inputs":[{"name":"compliance","type":"address","internalType":"address"},{"name":"_exchangeID","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMonthlyCounter","inputs":[{"name":"compliance","type":"address","internalType":"address"},{"name":"_exchangeID","type":"address","internalType":"address"},{"name":"_investorID","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMonthlyTimer","inputs":[{"name":"compliance","type":"address","internalType":"address"},{"name":"_exchangeID","type":"address","internalType":"address"},{"name":"_investorID","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isComplianceBound","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isExchangeID","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPlugAndPlay","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"moduleBurnAction","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleCheck","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleMintAction","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleTransferAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeExchangeID","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setExchangeMonthlyLimit","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"},{"name":"_newExchangeMonthlyLimit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComplianceBound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ComplianceUnbound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExchangeIDAdded","inputs":[{"name":"_newExchangeID","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExchangeIDRemoved","inputs":[{"name":"_exchangeID","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExchangeMonthlyLimitUpdated","inputs":[{"name":"compliance","type":"address","indexed":true,"internalType":"address"},{"name":"_exchangeID","type":"address","indexed":false,"internalType":"address"},{"name":"_newExchangeMonthlyLimit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ONCHAINIDAlreadyTaggedAsExchange","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"}]},{"type":"error","name":"ONCHAINIDNotTaggedAsExchange","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610098565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610ff0806100a76000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806374436d97116100ad578063cafa20d511610071578063cafa20d5146102b6578063d22579fb146102f9578063e6f5e8071461030c578063f104a8c9146101d3578063f2fde38b1461031357600080fd5b806374436d971461024e5780638da5cb5b14610261578063a9336def1461027c578063bcc210531461028f578063c5b99969146102a357600080fd5b8063372491a2116100f4578063372491a2146101d35780634a932544146101e65780634cf4d295146101f9578063616c658914610225578063715018a61461024657600080fd5b8063013b7ce4146101315780630694a5fb1461015957806306fdde031461016e5780632bb5e721146101ad5780632cb7e1ec146101c0575b600080fd5b61014461013f366004610d32565b610326565b60405190151581526020015b60405180910390f35b61016c610167366004610d85565b610462565b005b604080518082018252601b81527f45786368616e67654d6f6e74686c794c696d6974734d6f64756c650000000000602082015290516101509190610da2565b61016c6101bb366004610d85565b610561565b61016c6101ce366004610df1565b6105f6565b61016c6101e1366004610e32565b610675565b61016c6101f4366004610d85565b6106a8565b610144610207366004610d85565b6001600160a01b031660009081526020819052604090205460ff1690565b610238610233366004610e5e565b6107db565b604051908152602001610150565b61016c610813565b61016c61025c366004610d85565b610827565b6001546040516001600160a01b039091168152602001610150565b61016c61028a366004610e32565b6108b1565b61014461029d366004610d85565b50600190565b6102386102b1366004610ea9565b610943565b6102386102c4366004610e5e565b6001600160a01b0392831660009081526003602090815260408083209486168352938152838220929094168152925290205490565b610144610307366004610d85565b610970565b6001610144565b61016c610321366004610d85565b61098e565b60006001600160a01b0385161580610343575061034382866109cc565b156103505750600161045a565b600061035c8387610aa3565b905061036781610970565b1561037657600191505061045a565b60006103828487610aa3565b905061038d81610970565b61039c5760019250505061045a565b6001600160a01b038085166000908152600260209081526040808320938516835292905220548511156103d45760009250505061045a565b6103df848284610bd4565b156103ef5760019250505061045a565b6001600160a01b0384811660008181526002602090815260408083208686168085529083528184205494845260038352818420908452825280832094871683529390529190912054610442908790610ee2565b11156104535760009250505061045a565b6001925050505b949350505050565b3360009081526020819052604090205460ff1661049a5760405162461bcd60e51b815260040161049190610f03565b60405180910390fd5b6001600160a01b0381166104f05760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610491565b336001600160a01b038216146105185760405162461bcd60e51b815260040161049190610f3a565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b610569610bec565b61057281610970565b1561059b576040516345d1498b60e01b81526001600160a01b0382166004820152602401610491565b6001600160a01b038116600081815260046020908152604091829020805460ff1916600117905590519182527fca661533a567195376b79f20fcbcca20e62ceea1d43efacba5f8028329da8e6b91015b60405180910390a150565b3360009081526020819052604090205460ff166106255760405162461bcd60e51b815260040161049190610f03565b60006106313385610aa3565b9050600061063f3385610aa3565b905061064a81610970565b801561065d575061065b33866109cc565b155b1561066e5761066e33828486610c19565b5050505050565b3360009081526020819052604090205460ff166106a45760405162461bcd60e51b815260040161049190610f03565b5050565b6001600160a01b0381166106fe5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610491565b6001600160a01b03811660009081526020819052604090205460ff16156107675760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e6400000000000000006044820152606401610491565b336001600160a01b0382161461078f5760405162461bcd60e51b815260040161049190610f3a565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b6001600160a01b0392831660009081526003602090815260408083209486168352938152838220929094168152925290206001015490565b61081b610bec565b6108256000610c70565b565b61082f610bec565b61083881610970565b61086057604051630120783160e61b81526001600160a01b0382166004820152602401610491565b6001600160a01b038116600081815260046020908152604091829020805460ff1916905590519182527fc59743ca46d36b7cf42c36211a2fbef12e10aec1bfc9d39eccf91b6976a260f591016105eb565b3360009081526020819052604090205460ff166108e05760405162461bcd60e51b815260040161049190610f03565b3360008181526002602090815260408083206001600160a01b0387168085529083529281902085905580519283529082018490527f14902018104a24b79253a1e29e979c8b957bc80c71b062ca985f879888e6ea1e910160405180910390a25050565b6001600160a01b038083166000908152600260209081526040808320938516835292905220545b92915050565b6001600160a01b031660009081526004602052604090205460ff1690565b610996610bec565b6001600160a01b0381166109c057604051631e4fbdf760e01b815260006004820152602401610491565b6109c981610c70565b50565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a309190610f7b565b6040516307feec1960e21b81526001600160a01b0384811660048301529190911690631ffbb06490602401602060405180830381865afa158015610a78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9c9190610f98565b9392505050565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b079190610f7b565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b689190610f7b565b604051633c3ad79560e21b81526001600160a01b038481166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610bb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9c9190610f7b565b600042610be28585856107db565b1115949350505050565b6001546001600160a01b031633146108255760405163118cdaa760e01b8152336004820152602401610491565b610c24848484610cc2565b6001600160a01b0380851660009081526003602090815260408083208785168452825280832093861683529290529081208054839290610c65908490610ee2565b909155505050505050565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610ccd838383610bd4565b15610d18576001600160a01b03808416600090815260036020908152604080832086851684528252808320938516835292905220610d0e4262278d00610ee2565b6001820155600090555b505050565b6001600160a01b03811681146109c957600080fd5b60008060008060808587031215610d4857600080fd5b8435610d5381610d1d565b93506020850135610d6381610d1d565b9250604085013591506060850135610d7a81610d1d565b939692955090935050565b600060208284031215610d9757600080fd5b8135610a9c81610d1d565b60006020808352835180602085015260005b81811015610dd057858101830151858201604001528201610db4565b506000604082860101526040601f19601f8301168501019250505092915050565b600080600060608486031215610e0657600080fd5b8335610e1181610d1d565b92506020840135610e2181610d1d565b929592945050506040919091013590565b60008060408385031215610e4557600080fd5b8235610e5081610d1d565b946020939093013593505050565b600080600060608486031215610e7357600080fd5b8335610e7e81610d1d565b92506020840135610e8e81610d1d565b91506040840135610e9e81610d1d565b809150509250925092565b60008060408385031215610ebc57600080fd5b8235610ec781610d1d565b91506020830135610ed781610d1d565b809150509250929050565b8082018082111561096a57634e487b7160e01b600052601160045260246000fd5b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b600060208284031215610f8d57600080fd5b8151610a9c81610d1d565b600060208284031215610faa57600080fd5b81518015158114610a9c57600080fdfea2646970667358221220d43de0aae27efb88ce66fc0a5f79a665afb3cc5da50997918b32c51a7746f15d64736f6c63430008180033","sourceMap":"4039:11286:48:-:0;;;5843:36;;;;;;;;;-1:-1:-1;5865:10:48;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;160:51:165;133:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;4039:11286:48;;2912:187:141;3004:6;;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;;3052:40;;3004:6;;;3020:17;3004:6;;3052:40;;2985:16;;3052:40;2975:124;2912:187;:::o;14:203:165:-;4039:11286:48;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806374436d97116100ad578063cafa20d511610071578063cafa20d5146102b6578063d22579fb146102f9578063e6f5e8071461030c578063f104a8c9146101d3578063f2fde38b1461031357600080fd5b806374436d971461024e5780638da5cb5b14610261578063a9336def1461027c578063bcc210531461028f578063c5b99969146102a357600080fd5b8063372491a2116100f4578063372491a2146101d35780634a932544146101e65780634cf4d295146101f9578063616c658914610225578063715018a61461024657600080fd5b8063013b7ce4146101315780630694a5fb1461015957806306fdde031461016e5780632bb5e721146101ad5780632cb7e1ec146101c0575b600080fd5b61014461013f366004610d32565b610326565b60405190151581526020015b60405180910390f35b61016c610167366004610d85565b610462565b005b604080518082018252601b81527f45786368616e67654d6f6e74686c794c696d6974734d6f64756c650000000000602082015290516101509190610da2565b61016c6101bb366004610d85565b610561565b61016c6101ce366004610df1565b6105f6565b61016c6101e1366004610e32565b610675565b61016c6101f4366004610d85565b6106a8565b610144610207366004610d85565b6001600160a01b031660009081526020819052604090205460ff1690565b610238610233366004610e5e565b6107db565b604051908152602001610150565b61016c610813565b61016c61025c366004610d85565b610827565b6001546040516001600160a01b039091168152602001610150565b61016c61028a366004610e32565b6108b1565b61014461029d366004610d85565b50600190565b6102386102b1366004610ea9565b610943565b6102386102c4366004610e5e565b6001600160a01b0392831660009081526003602090815260408083209486168352938152838220929094168152925290205490565b610144610307366004610d85565b610970565b6001610144565b61016c610321366004610d85565b61098e565b60006001600160a01b0385161580610343575061034382866109cc565b156103505750600161045a565b600061035c8387610aa3565b905061036781610970565b1561037657600191505061045a565b60006103828487610aa3565b905061038d81610970565b61039c5760019250505061045a565b6001600160a01b038085166000908152600260209081526040808320938516835292905220548511156103d45760009250505061045a565b6103df848284610bd4565b156103ef5760019250505061045a565b6001600160a01b0384811660008181526002602090815260408083208686168085529083528184205494845260038352818420908452825280832094871683529390529190912054610442908790610ee2565b11156104535760009250505061045a565b6001925050505b949350505050565b3360009081526020819052604090205460ff1661049a5760405162461bcd60e51b815260040161049190610f03565b60405180910390fd5b6001600160a01b0381166104f05760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610491565b336001600160a01b038216146105185760405162461bcd60e51b815260040161049190610f3a565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b610569610bec565b61057281610970565b1561059b576040516345d1498b60e01b81526001600160a01b0382166004820152602401610491565b6001600160a01b038116600081815260046020908152604091829020805460ff1916600117905590519182527fca661533a567195376b79f20fcbcca20e62ceea1d43efacba5f8028329da8e6b91015b60405180910390a150565b3360009081526020819052604090205460ff166106255760405162461bcd60e51b815260040161049190610f03565b60006106313385610aa3565b9050600061063f3385610aa3565b905061064a81610970565b801561065d575061065b33866109cc565b155b1561066e5761066e33828486610c19565b5050505050565b3360009081526020819052604090205460ff166106a45760405162461bcd60e51b815260040161049190610f03565b5050565b6001600160a01b0381166106fe5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610491565b6001600160a01b03811660009081526020819052604090205460ff16156107675760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e6400000000000000006044820152606401610491565b336001600160a01b0382161461078f5760405162461bcd60e51b815260040161049190610f3a565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b6001600160a01b0392831660009081526003602090815260408083209486168352938152838220929094168152925290206001015490565b61081b610bec565b6108256000610c70565b565b61082f610bec565b61083881610970565b61086057604051630120783160e61b81526001600160a01b0382166004820152602401610491565b6001600160a01b038116600081815260046020908152604091829020805460ff1916905590519182527fc59743ca46d36b7cf42c36211a2fbef12e10aec1bfc9d39eccf91b6976a260f591016105eb565b3360009081526020819052604090205460ff166108e05760405162461bcd60e51b815260040161049190610f03565b3360008181526002602090815260408083206001600160a01b0387168085529083529281902085905580519283529082018490527f14902018104a24b79253a1e29e979c8b957bc80c71b062ca985f879888e6ea1e910160405180910390a25050565b6001600160a01b038083166000908152600260209081526040808320938516835292905220545b92915050565b6001600160a01b031660009081526004602052604090205460ff1690565b610996610bec565b6001600160a01b0381166109c057604051631e4fbdf760e01b815260006004820152602401610491565b6109c981610c70565b50565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a309190610f7b565b6040516307feec1960e21b81526001600160a01b0384811660048301529190911690631ffbb06490602401602060405180830381865afa158015610a78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9c9190610f98565b9392505050565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b079190610f7b565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b689190610f7b565b604051633c3ad79560e21b81526001600160a01b038481166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610bb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9c9190610f7b565b600042610be28585856107db565b1115949350505050565b6001546001600160a01b031633146108255760405163118cdaa760e01b8152336004820152602401610491565b610c24848484610cc2565b6001600160a01b0380851660009081526003602090815260408083208785168452825280832093861683529290529081208054839290610c65908490610ee2565b909155505050505050565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610ccd838383610bd4565b15610d18576001600160a01b03808416600090815260036020908152604080832086851684528252808320938516835292905220610d0e4262278d00610ee2565b6001820155600090555b505050565b6001600160a01b03811681146109c957600080fd5b60008060008060808587031215610d4857600080fd5b8435610d5381610d1d565b93506020850135610d6381610d1d565b9250604085013591506060850135610d7a81610d1d565b939692955090935050565b600060208284031215610d9757600080fd5b8135610a9c81610d1d565b60006020808352835180602085015260005b81811015610dd057858101830151858201604001528201610db4565b506000604082860101526040601f19601f8301168501019250505092915050565b600080600060608486031215610e0657600080fd5b8335610e1181610d1d565b92506020840135610e2181610d1d565b929592945050506040919091013590565b60008060408385031215610e4557600080fd5b8235610e5081610d1d565b946020939093013593505050565b600080600060608486031215610e7357600080fd5b8335610e7e81610d1d565b92506020840135610e8e81610d1d565b91506040840135610e9e81610d1d565b809150509250925092565b60008060408385031215610ebc57600080fd5b8235610ec781610d1d565b91506020830135610ed781610d1d565b809150509250929050565b8082018082111561096a57634e487b7160e01b600052601160045260246000fd5b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b600060208284031215610f8d57600080fd5b8151610a9c81610d1d565b600060208284031215610faa57600080fd5b81518015158114610a9c57600080fdfea2646970667358221220d43de0aae27efb88ce66fc0a5f79a665afb3cc5da50997918b32c51a7746f15d64736f6c63430008180033","sourceMap":"4039:11286:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8633:1025;;;;;;:::i;:::-;;:::i;:::-;;;918:14:165;;911:22;893:41;;881:2;866:18;8633:1025:48;;;;;;;;5018:343:44;;;;;;:::i;:::-;;:::i;:::-;;12033:111:48;12101:36;;;;;;;;;;;;;;;;12033:111;;;;12101:36;12033:111;:::i;6771:273::-;;;;;;:::i;:::-;;:::i;7694:437::-;;;;;;:::i;:::-;;:::i;8466:105::-;;;;;;:::i;:::-;;:::i;4555:396:44:-;;;;;;:::i;:::-;;:::i;5429:139::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5532:29:44;5509:4;5532:29;;;;;;;;;;;;;;5429:139;11348:211:48;;;;;;:::i;:::-;;:::i;:::-;;;3211:25:165;;;3199:2;3184:18;11348:211:48;3065:177:165;2293:101:141;;;:::i;7348:275:48:-;;;;;;:::i;:::-;;:::i;1638:85:141:-;1710:6;;1638:85;;-1:-1:-1;;;;;1710:6:141;;;3393:51:165;;3381:2;3366:18;1638:85:141;3247:203:165;6170:299:48;;;;;;:::i;:::-;;:::i;9726:118::-;;;;;;:::i;:::-;-1:-1:-1;9833:4:48;;9726:118;11804:174;;;;;;:::i;:::-;;:::i;10767:213::-;;;;;;:::i;:::-;-1:-1:-1;;;;;10904:29:48;;;10877:7;10904:29;;;:17;:29;;;;;;;;:42;;;;;;;;;;;:55;;;;;;;;;;10903:70;;10767:213;10269:118;;;;;;:::i;:::-;;:::i;9908:91::-;9988:4;9908:91;;2543:215:141;;;;;;:::i;:::-;;:::i;8633:1025:48:-;8789:4;-1:-1:-1;;;;;8809:19:48;;;;:56;;;8832:33;8846:11;8859:5;8832:13;:33::i;:::-;8805:98;;;-1:-1:-1;8888:4:48;8881:11;;8805:98;8913:22;8938:32;8951:11;8964:5;8938:12;:32::i;:::-;8913:57;;8984:28;8997:14;8984:12;:28::i;:::-;8980:70;;;9035:4;9028:11;;;;;8980:70;9060:24;9087:30;9100:11;9113:3;9087:12;:30::i;:::-;9060:57;;9132:30;9145:16;9132:12;:30::i;:::-;9127:73;;9185:4;9178:11;;;;;;9127:73;-1:-1:-1;;;;;9223:34:48;;;;;;;:21;:34;;;;;;;;:52;;;;;;;;;;9214:61;;9210:104;;;9298:5;9291:12;;;;;;9210:104;9328:71;9353:11;9366:16;9384:14;9328:24;:71::i;:::-;9324:113;;;9422:4;9415:11;;;;;;9324:113;-1:-1:-1;;;;;9539:34:48;;;;;;;:21;:34;;;;;;;;:52;;;;;;;;;;;;;10904:29;;;:17;:29;;;;;:42;;;;;;;;:55;;;;;;;;;;;;10903:70;9451:73;;9518:6;;9451:73;:::i;:::-;:140;9447:183;;;9614:5;9607:12;;;;;;9447:183;9647:4;9640:11;;;;8633:1025;;;;;;;:::o;5018:343:44:-;4426:10;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5120:25:44;::::1;5112:69;;;::::0;-1:-1:-1;;;5112:69:44;;4636:2:165;5112:69:44::1;::::0;::::1;4618:21:165::0;4675:2;4655:18;;;4648:30;4714:33;4694:18;;;4687:61;4765:18;;5112:69:44::1;4434:355:165::0;5112:69:44::1;5199:10;-1:-1:-1::0;;;;;5199:25:44;::::1;;5191:71;;;;-1:-1:-1::0;;;5191:71:44::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5272:29:44;::::1;5304:5;5272:29:::0;;;::::1;::::0;;;;;;;:37;;-1:-1:-1;;5272:37:44::1;::::0;;5324:30;::::1;::::0;5304:5;5324:30:::1;5018:343:::0;:::o;6771:273:48:-;1531:13:141;:11;:13::i;:::-;6848:25:48::1;6861:11;6848:12;:25::i;:::-;6844:108;;;6896:45;::::0;-1:-1:-1;;;6896:45:48;;-1:-1:-1;;;;;3411:32:165;;6896:45:48::1;::::0;::::1;3393:51:165::0;3366:18;;6896:45:48::1;3247:203:165::0;6844:108:48::1;-1:-1:-1::0;;;;;6962:25:48;::::1;;::::0;;;:12:::1;:25;::::0;;;;;;;;:32;;-1:-1:-1;;6962:32:48::1;6990:4;6962:32;::::0;;7009:28;;3393:51:165;;;7009:28:48::1;::::0;3366:18:165;7009:28:48::1;;;;;;;;6771:273:::0;:::o;7694:437::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;7815:22:48::1;7840:31;7853:10;7865:5;7840:12;:31::i;:::-;7815:56;;7881:24;7908:29;7921:10;7933:3;7908:12;:29::i;:::-;7881:56;;7952:30;7965:16;7952:12;:30::i;:::-;:67;;;;;7987:32;8001:10;8013:5;7987:13;:32::i;:::-;7986:33;7952:67;7948:177;;;8035:79;8061:10;8073:16;8091:14;8107:6;8035:25;:79::i;:::-;7805:326;;7694:437:::0;;;:::o;8466:105::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;8466:105:48;;:::o;4555:396:44:-;-1:-1:-1;;;;;4636:25:44;;4628:69;;;;-1:-1:-1;;;4628:69:44;;4636:2:165;4628:69:44;;;4618:21:165;4675:2;4655:18;;;4648:30;4714:33;4694:18;;;4687:61;4765:18;;4628:69:44;4434:355:165;4628:69:44;-1:-1:-1;;;;;4716:29:44;;:16;:29;;;;;;;;;;;;;4715:30;4707:67;;;;-1:-1:-1;;;4707:67:44;;5398:2:165;4707:67:44;;;5380:21:165;5437:2;5417:18;;;5410:30;5476:26;5456:18;;;5449:54;5520:18;;4707:67:44;5196:348:165;4707:67:44;4792:10;-1:-1:-1;;;;;4792:25:44;;;4784:71;;;;-1:-1:-1;;;4784:71:44;;;;;;;:::i;:::-;-1:-1:-1;;;;;4865:29:44;;:16;:29;;;;;;;;;;;:36;;-1:-1:-1;;4865:36:44;4897:4;4865:36;;;4916:28;;;4865:16;4916:28;4555:396;:::o;11348:211:48:-;-1:-1:-1;;;;;11483:29:48;;;11456:7;11483:29;;;:17;:29;;;;;;;;:42;;;;;;;;;;;:55;;;;;;;;;;11482:70;;;;11348:211::o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;7348:275:48:-;1531:13:141;:11;:13::i;:::-;7429:25:48::1;7442:11;7429:12;:25::i;:::-;7424:105;;7477:41;::::0;-1:-1:-1;;;7477:41:48;;-1:-1:-1;;;;;3411:32:165;;7477:41:48::1;::::0;::::1;3393:51:165::0;3366:18;;7477:41:48::1;3247:203:165::0;7424:105:48::1;-1:-1:-1::0;;;;;7538:25:48;::::1;7566:5;7538:25:::0;;;:12:::1;:25;::::0;;;;;;;;:33;;-1:-1:-1;;7538:33:48::1;::::0;;7586:30;;3393:51:165;;;7586:30:48::1;::::0;3366:18:165;7586:30:48::1;3247:203:165::0;6170:299:48;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;6318:10:48::1;6296:33;::::0;;;:21:::1;:33;::::0;;;;;;;-1:-1:-1;;;;;6296:46:48;::::1;::::0;;;;;;;;;;:73;;;6384:78;;5723:51:165;;;5790:18;;;5783:34;;;6384:78:48::1;::::0;5696:18:165;6384:78:48::1;;;;;;;6170:299:::0;;:::o;11804:174::-;-1:-1:-1;;;;;11925:33:48;;;11899:7;11925:33;;;:21;:33;;;;;;;;:46;;;;;;;;;;11804:174;;;;;:::o;10269:118::-;-1:-1:-1;;;;;10355:25:48;10333:4;10355:25;;;:12;:25;;;;;;;;;10269:118::o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;3393:51:165::0;3366:18;;2672:31:141::1;3247:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;14655:197:48:-;14743:4;14795:10;-1:-1:-1;;;;;14776:44:48;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14766:79;;-1:-1:-1;;;14766:79:48;;-1:-1:-1;;;;;3411:32:165;;;14766:79:48;;;3393:51:165;14766:65:48;;;;;;;3366:18:165;;14766:79:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14759:86;14655:197;-1:-1:-1;;;14655:197:48:o;15083:240::-;15171:7;15231:11;-1:-1:-1;;;;;15212:45:48;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15205:72:48;;:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:110;;-1:-1:-1;;;15205:110:48;;-1:-1:-1;;;;;3411:32:165;;;15205:110:48;;;3393:51:165;15205:83:48;;;;;;;3366:18:165;;15205:110:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14125:221::-;14244:4;14324:15;14267:53;14283:10;14295:11;14308;14267:15;:53::i;:::-;:72;;;14125:221;-1:-1:-1;;;;14125:221:48:o;1796:162:141:-;1710:6;;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;3393:51:165;3366:18;;1901:40:141;3247:203:165;12656:294:48;12788:67;12818:10;12830:11;12843;12788:29;:67::i;:::-;-1:-1:-1;;;;;12865:29:48;;;;;;;:17;:29;;;;;;;;:42;;;;;;;;;;:55;;;;;;;;;;;:78;;12937:6;;12865:29;:78;;12937:6;;12865:78;:::i;:::-;;;;-1:-1:-1;;;;;;12656:294:48:o;2912:187:141:-;3004:6;;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;;3052:40;;3004:6;;;3020:17;3004:6;;3052:40;;2985:16;;3052:40;2975:124;2912:187;:::o;13319:416:48:-;13443:62;13468:10;13480:11;13493;13443:24;:62::i;:::-;13439:290;;;-1:-1:-1;;;;;13563:29:48;;;13521:39;13563:29;;;:17;:29;;;;;;;;:42;;;;;;;;;;:55;;;;;;;;;13655:25;:15;13673:7;13655:25;:::i;:::-;13632:20;;;:48;13717:1;13694:24;;13439:290;13319:416;;;:::o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;150:598;236:6;244;252;260;313:3;301:9;292:7;288:23;284:33;281:53;;;330:1;327;320:12;281:53;369:9;356:23;388:31;413:5;388:31;:::i;:::-;438:5;-1:-1:-1;495:2:165;480:18;;467:32;508:33;467:32;508:33;:::i;:::-;560:7;-1:-1:-1;614:2:165;599:18;;586:32;;-1:-1:-1;670:2:165;655:18;;642:32;683:33;642:32;683:33;:::i;:::-;150:598;;;;-1:-1:-1;150:598:165;;-1:-1:-1;;150:598:165:o;945:247::-;1004:6;1057:2;1045:9;1036:7;1032:23;1028:32;1025:52;;;1073:1;1070;1063:12;1025:52;1112:9;1099:23;1131:31;1156:5;1131:31;:::i;1197:548::-;1309:4;1338:2;1367;1356:9;1349:21;1399:6;1393:13;1442:6;1437:2;1426:9;1422:18;1415:34;1467:1;1477:140;1491:6;1488:1;1485:13;1477:140;;;1586:14;;;1582:23;;1576:30;1552:17;;;1571:2;1548:26;1541:66;1506:10;;1477:140;;;1481:3;1666:1;1661:2;1652:6;1641:9;1637:22;1633:31;1626:42;1736:2;1729;1725:7;1720:2;1712:6;1708:15;1704:29;1693:9;1689:45;1685:54;1677:62;;;;1197:548;;;;:::o;1750:456::-;1827:6;1835;1843;1896:2;1884:9;1875:7;1871:23;1867:32;1864:52;;;1912:1;1909;1902:12;1864:52;1951:9;1938:23;1970:31;1995:5;1970:31;:::i;:::-;2020:5;-1:-1:-1;2077:2:165;2062:18;;2049:32;2090:33;2049:32;2090:33;:::i;:::-;1750:456;;2142:7;;-1:-1:-1;;;2196:2:165;2181:18;;;;2168:32;;1750:456::o;2211:315::-;2279:6;2287;2340:2;2328:9;2319:7;2315:23;2311:32;2308:52;;;2356:1;2353;2346:12;2308:52;2395:9;2382:23;2414:31;2439:5;2414:31;:::i;:::-;2464:5;2516:2;2501:18;;;;2488:32;;-1:-1:-1;;;2211:315:165:o;2531:529::-;2608:6;2616;2624;2677:2;2665:9;2656:7;2652:23;2648:32;2645:52;;;2693:1;2690;2683:12;2645:52;2732:9;2719:23;2751:31;2776:5;2751:31;:::i;:::-;2801:5;-1:-1:-1;2858:2:165;2843:18;;2830:32;2871:33;2830:32;2871:33;:::i;:::-;2923:7;-1:-1:-1;2982:2:165;2967:18;;2954:32;2995:33;2954:32;2995:33;:::i;:::-;3047:7;3037:17;;;2531:529;;;;;:::o;3455:388::-;3523:6;3531;3584:2;3572:9;3563:7;3559:23;3555:32;3552:52;;;3600:1;3597;3590:12;3552:52;3639:9;3626:23;3658:31;3683:5;3658:31;:::i;:::-;3708:5;-1:-1:-1;3765:2:165;3750:18;;3737:32;3778:33;3737:32;3778:33;:::i;:::-;3830:7;3820:17;;;3455:388;;;;;:::o;3848:222::-;3913:9;;;3934:10;;;3931:133;;;3986:10;3981:3;3977:20;3974:1;3967:31;4021:4;4018:1;4011:15;4049:4;4046:1;4039:15;4075:354;4277:2;4259:21;;;4316:2;4296:18;;;4289:30;4355:32;4350:2;4335:18;;4328:60;4420:2;4405:18;;4075:354::o;4794:397::-;4996:2;4978:21;;;5035:2;5015:18;;;5008:30;5074:34;5069:2;5054:18;;5047:62;-1:-1:-1;;;5140:2:165;5125:18;;5118:31;5181:3;5166:19;;4794:397::o;5828:251::-;5898:6;5951:2;5939:9;5930:7;5926:23;5922:32;5919:52;;;5967:1;5964;5957:12;5919:52;5999:9;5993:16;6018:31;6043:5;6018:31;:::i;6084:277::-;6151:6;6204:2;6192:9;6183:7;6179:23;6175:32;6172:52;;;6220:1;6217;6210:12;6172:52;6252:9;6246:16;6305:5;6298:13;6291:21;6284:5;6281:32;6271:60;;6327:1;6324;6317:12","linkReferences":{}},"methodIdentifiers":{"addExchangeID(address)":"2bb5e721","bindCompliance(address)":"4a932544","canComplianceBind(address)":"bcc21053","getExchangeMonthlyLimit(address,address)":"c5b99969","getMonthlyCounter(address,address,address)":"cafa20d5","getMonthlyTimer(address,address,address)":"616c6589","isComplianceBound(address)":"4cf4d295","isExchangeID(address)":"d22579fb","isPlugAndPlay()":"e6f5e807","moduleBurnAction(address,uint256)":"372491a2","moduleCheck(address,address,uint256,address)":"013b7ce4","moduleMintAction(address,uint256)":"f104a8c9","moduleTransferAction(address,address,uint256)":"2cb7e1ec","name()":"06fdde03","owner()":"8da5cb5b","removeExchangeID(address)":"74436d97","renounceOwnership()":"715018a6","setExchangeMonthlyLimit(address,uint256)":"a9336def","transferOwnership(address)":"f2fde38b","unbindCompliance(address)":"0694a5fb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"ONCHAINIDAlreadyTaggedAsExchange\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"ONCHAINIDNotTaggedAsExchange\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newExchangeID\",\"type\":\"address\"}],\"name\":\"ExchangeIDAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"ExchangeIDRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"compliance\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newExchangeMonthlyLimit\",\"type\":\"uint256\"}],\"name\":\"ExchangeMonthlyLimitUpdated\",\"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\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"addExchangeID\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"bindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"canComplianceBind\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"compliance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"getExchangeMonthlyLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"compliance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_investorID\",\"type\":\"address\"}],\"name\":\"getMonthlyCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"compliance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_investorID\",\"type\":\"address\"}],\"name\":\"getMonthlyTimer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"isComplianceBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"isExchangeID\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPlugAndPlay\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"moduleBurnAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"moduleCheck\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"moduleMintAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleTransferAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"removeExchangeID\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_newExchangeMonthlyLimit\",\"type\":\"uint256\"}],\"name\":\"setExchangeMonthlyLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"unbindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addExchangeID(address)\":{\"details\":\"tags the ONCHAINID as being an exchange ID\",\"params\":{\"_exchangeID\":\"ONCHAINID to be tagged Function can be called only by the owner of this module Cannot be called on an address already tagged as being an exchange emits an `ExchangeIDAdded` event\"}},\"bindCompliance(address)\":{\"details\":\"See {IModule-bindCompliance}.\"},\"canComplianceBind(address)\":{\"details\":\"See {IModule-canComplianceBind}.\"},\"getExchangeMonthlyLimit(address,address)\":{\"details\":\"getter for `exchangeMonthlyLimit` variable\",\"params\":{\"_exchangeID\":\"exchange ONCHAINID returns the monthly limit set for that exchange\",\"compliance\":\"the Compliance smart contract to be checked\"}},\"getMonthlyCounter(address,address,address)\":{\"details\":\"getter for `exchangeCounters` variable on the counter parameter of the ExchangeTransferCounter struct\",\"params\":{\"_exchangeID\":\"exchange ONCHAINID\",\"_investorID\":\"ONCHAINID to be checked returns current monthly counter of `_investorID` on `exchangeID` exchange\",\"compliance\":\"the Compliance smart contract to be checked\"}},\"getMonthlyTimer(address,address,address)\":{\"details\":\"getter for `exchangeCounters` variable on the timer parameter of the ExchangeTransferCounter struct\",\"params\":{\"_exchangeID\":\"exchange ONCHAINID\",\"_investorID\":\"ONCHAINID to be checked returns current timer of `_investorID` on `exchangeID` exchange\",\"compliance\":\"the Compliance smart contract to be checked\"}},\"isComplianceBound(address)\":{\"details\":\"See {IModule-isComplianceBound}.\"},\"isExchangeID(address)\":{\"details\":\"getter for `_exchangeIDs` variable tells to the caller if an ONCHAINID belongs to an exchange or not\",\"params\":{\"_exchangeID\":\"ONCHAINID to be checked returns TRUE if the address corresponds to an exchange, FALSE otherwise\"}},\"isPlugAndPlay()\":{\"details\":\"See {IModule-isPlugAndPlay}.\"},\"moduleBurnAction(address,uint256)\":{\"details\":\"See {IModule-moduleBurnAction}.\"},\"moduleCheck(address,address,uint256,address)\":{\"details\":\"See {IModule-moduleCheck}.\"},\"moduleMintAction(address,uint256)\":{\"details\":\"See {IModule-moduleMintAction}.\"},\"moduleTransferAction(address,address,uint256)\":{\"details\":\"See {IModule-moduleTransferAction}.\"},\"name()\":{\"details\":\"See {IModule-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeExchangeID(address)\":{\"details\":\"untags the ONCHAINID as being an exchange ID\",\"params\":{\"_exchangeID\":\"ONCHAINID to be untagged Function can be called only by the owner of this module Cannot be called on an address not tagged as being an exchange emits an `ExchangeIDRemoved` event\"}},\"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.\"},\"setExchangeMonthlyLimit(address,uint256)\":{\"details\":\"Set the limit of tokens allowed to be transferred monthly.\",\"params\":{\"_exchangeID\":\"ONCHAINID of the exchange\",\"_newExchangeMonthlyLimit\":\"The new monthly limit of the exchange Only the Compliance smart contract can call this function\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unbindCompliance(address)\":{\"details\":\"See {IModule-unbindCompliance}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ComplianceBound(address)\":{\"notice\":\"this event is emitted when the compliance contract is bound to the module. the event is emitted by the bindCompliance function `_compliance` is the address of the compliance contract being bound\"},\"ComplianceUnbound(address)\":{\"notice\":\"this event is emitted when the compliance contract is unbound from the module. the event is emitted by the unbindCompliance function `_compliance` is the address of the compliance contract being unbound\"},\"ExchangeIDAdded(address)\":{\"notice\":\"this event is emitted whenever an ONCHAINID is tagged as being an exchange ID. the event is emitted by 'addExchangeID'. `_newExchangeID` is the ONCHAINID address of the exchange to add.\"},\"ExchangeIDRemoved(address)\":{\"notice\":\"this event is emitted whenever an ONCHAINID is untagged as belonging to an exchange. the event is emitted by 'removeExchangeID'. `_exchangeID` is the ONCHAINID being untagged as an exchange ID.\"},\"ExchangeMonthlyLimitUpdated(address,address,uint256)\":{\"notice\":\"this event is emitted whenever the Exchange Limit has been updated. the event is emitted by 'setExchangeMonthlyLimit' `compliance` is the address of the caller Compliance contract. `_exchangeID` is the amount ONCHAINID address of the exchange. `_newExchangeMonthlyLimit` is the amount Limit of tokens to be transferred monthly to an exchange wallet.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/modular/modules/ExchangeMonthlyLimitsModule.sol\":\"ExchangeMonthlyLimitsModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/compliance/modular/modules/AbstractModule.sol\":{\"keccak256\":\"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8\",\"dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu\"]},\"contracts/erc3643/compliance/modular/modules/ExchangeMonthlyLimitsModule.sol\":{\"keccak256\":\"0x9b4909d01a34871b87ceaa521eb1ad5e1b2583d08fc867112a23a9d6d29d2e39\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3983d226a4d560dc8131dda6dcc297c60496906d8299195be6df07229f8e6204\",\"dweb:/ipfs/QmeJR22Mr24kMGMs5WsPD2eUnJ1dM7cksLnwGLCQQsbptZ\"]},\"contracts/erc3643/compliance/modular/modules/IModule.sol\":{\"keccak256\":\"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c\",\"dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"}],"type":"error","name":"ONCHAINIDAlreadyTaggedAsExchange"},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"}],"type":"error","name":"ONCHAINIDNotTaggedAsExchange"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_newExchangeID","type":"address","indexed":false}],"type":"event","name":"ExchangeIDAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address","indexed":false}],"type":"event","name":"ExchangeIDRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"compliance","type":"address","indexed":true},{"internalType":"address","name":"_exchangeID","type":"address","indexed":false},{"internalType":"uint256","name":"_newExchangeMonthlyLimit","type":"uint256","indexed":false}],"type":"event","name":"ExchangeMonthlyLimitUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addExchangeID"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindCompliance"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"canComplianceBind","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"compliance","type":"address"},{"internalType":"address","name":"_exchangeID","type":"address"}],"stateMutability":"view","type":"function","name":"getExchangeMonthlyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"compliance","type":"address"},{"internalType":"address","name":"_exchangeID","type":"address"},{"internalType":"address","name":"_investorID","type":"address"}],"stateMutability":"view","type":"function","name":"getMonthlyCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"compliance","type":"address"},{"internalType":"address","name":"_exchangeID","type":"address"},{"internalType":"address","name":"_investorID","type":"address"}],"stateMutability":"view","type":"function","name":"getMonthlyTimer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"}],"stateMutability":"view","type":"function","name":"isExchangeID","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPlugAndPlay","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleBurnAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"moduleCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleMintAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleTransferAction"},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeExchangeID"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"},{"internalType":"uint256","name":"_newExchangeMonthlyLimit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setExchangeMonthlyLimit"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindCompliance"}],"devdoc":{"kind":"dev","methods":{"addExchangeID(address)":{"details":"tags the ONCHAINID as being an exchange ID","params":{"_exchangeID":"ONCHAINID to be tagged Function can be called only by the owner of this module Cannot be called on an address already tagged as being an exchange emits an `ExchangeIDAdded` event"}},"bindCompliance(address)":{"details":"See {IModule-bindCompliance}."},"canComplianceBind(address)":{"details":"See {IModule-canComplianceBind}."},"getExchangeMonthlyLimit(address,address)":{"details":"getter for `exchangeMonthlyLimit` variable","params":{"_exchangeID":"exchange ONCHAINID returns the monthly limit set for that exchange","compliance":"the Compliance smart contract to be checked"}},"getMonthlyCounter(address,address,address)":{"details":"getter for `exchangeCounters` variable on the counter parameter of the ExchangeTransferCounter struct","params":{"_exchangeID":"exchange ONCHAINID","_investorID":"ONCHAINID to be checked returns current monthly counter of `_investorID` on `exchangeID` exchange","compliance":"the Compliance smart contract to be checked"}},"getMonthlyTimer(address,address,address)":{"details":"getter for `exchangeCounters` variable on the timer parameter of the ExchangeTransferCounter struct","params":{"_exchangeID":"exchange ONCHAINID","_investorID":"ONCHAINID to be checked returns current timer of `_investorID` on `exchangeID` exchange","compliance":"the Compliance smart contract to be checked"}},"isComplianceBound(address)":{"details":"See {IModule-isComplianceBound}."},"isExchangeID(address)":{"details":"getter for `_exchangeIDs` variable tells to the caller if an ONCHAINID belongs to an exchange or not","params":{"_exchangeID":"ONCHAINID to be checked returns TRUE if the address corresponds to an exchange, FALSE otherwise"}},"isPlugAndPlay()":{"details":"See {IModule-isPlugAndPlay}."},"moduleBurnAction(address,uint256)":{"details":"See {IModule-moduleBurnAction}."},"moduleCheck(address,address,uint256,address)":{"details":"See {IModule-moduleCheck}."},"moduleMintAction(address,uint256)":{"details":"See {IModule-moduleMintAction}."},"moduleTransferAction(address,address,uint256)":{"details":"See {IModule-moduleTransferAction}."},"name()":{"details":"See {IModule-name}."},"owner()":{"details":"Returns the address of the current owner."},"removeExchangeID(address)":{"details":"untags the ONCHAINID as being an exchange ID","params":{"_exchangeID":"ONCHAINID to be untagged Function can be called only by the owner of this module Cannot be called on an address not tagged as being an exchange emits an `ExchangeIDRemoved` event"}},"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."},"setExchangeMonthlyLimit(address,uint256)":{"details":"Set the limit of tokens allowed to be transferred monthly.","params":{"_exchangeID":"ONCHAINID of the exchange","_newExchangeMonthlyLimit":"The new monthly limit of the exchange Only the Compliance smart contract can call this function"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unbindCompliance(address)":{"details":"See {IModule-unbindCompliance}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/modular/modules/ExchangeMonthlyLimitsModule.sol":"ExchangeMonthlyLimitsModule"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/AbstractModule.sol":{"keccak256":"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3","urls":["bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8","dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/ExchangeMonthlyLimitsModule.sol":{"keccak256":"0x9b4909d01a34871b87ceaa521eb1ad5e1b2583d08fc867112a23a9d6d29d2e39","urls":["bzz-raw://3983d226a4d560dc8131dda6dcc297c60496906d8299195be6df07229f8e6204","dweb:/ipfs/QmeJR22Mr24kMGMs5WsPD2eUnJ1dM7cksLnwGLCQQsbptZ"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/IModule.sol":{"keccak256":"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02","urls":["bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c","dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":48} \ No newline at end of file diff --git a/out/ExchangeMonthlyLimitsTest.sol/ExchangeMonthlyLimitsTest.json b/out/ExchangeMonthlyLimitsTest.sol/ExchangeMonthlyLimitsTest.json new file mode 100644 index 0000000..109c706 --- /dev/null +++ b/out/ExchangeMonthlyLimitsTest.sol/ExchangeMonthlyLimitsTest.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addExchangeID","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"complianceCheckOnExchangeMonthlyLimits","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getExchangeMonthlyLimit","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMonthlyCounter","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"},{"name":"_investorID","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMonthlyTimer","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"},{"name":"_investorID","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isExchangeID","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenBound","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeExchangeID","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setExchangeMonthlyLimit","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"},{"name":"_newExchangeMonthlyLimit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tokenBound","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IToken"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExchangeIDAdded","inputs":[{"name":"_newExchangeID","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExchangeIDRemoved","inputs":[{"name":"_exchangeID","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExchangeMonthlyLimitUpdated","inputs":[{"name":"_exchangeID","type":"address","indexed":false,"internalType":"address"},{"name":"_newExchangeMonthlyLimit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentAdded","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentRemoved","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611331806100a56000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806393e62f07116100de578063ca63968d11610097578063d22579fb11610071578063d22579fb1461035f578063e46638e614610372578063f2fde38b14610385578063ff3e69541461039857600080fd5b8063ca63968d146102fd578063cdde293214610310578063ce32926d1461032357600080fd5b806393e62f071461026757806395c5dbfc1461027a57806397a6278e146102b1578063993e8b95146102c4578063a9336def146102d7578063bba58c29146102ea57600080fd5b8063715018a611610130578063715018a61461020157806374436d971461020957806384e798421461021c5780638baf29b41461022f5780638d2ea772146101ee5780638da5cb5b1461024257600080fd5b80631ffbb064146101785780632bb5e721146101a0578063346531fa146101b55780633ff5aa02146101c857806340db3b50146101db5780635f8dead3146101ee575b600080fd5b61018b61018636600461116e565b6103ab565b60405190151581526020015b60405180910390f35b6101b36101ae36600461116e565b6103be565b005b61018b6101c336600461116e565b610488565b6101b36101d636600461116e565b610531565b6101b36101e936600461116e565b61060f565b6101b36101fc36600461118b565b610731565b6101b3610759565b6101b361021736600461116e565b61076d565b6101b361022a36600461116e565b61081b565b6101b361023d3660046111b7565b6108bb565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610197565b60035461024f906001600160a01b031681565b6102a361028836600461116e565b6001600160a01b031660009081526004602052604090205490565b604051908152602001610197565b6101b36102bf36600461116e565b6108ef565b61018b6102d236600461116e565b61098f565b6101b36102e536600461118b565b6109af565b61018b6102f83660046111b7565b610a0f565b6102a361030b3660046111f8565b610b06565b6101b361031e36600461116e565b610b31565b6102a36103313660046111f8565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152206001015490565b61018b61036d36600461116e565b610bf2565b61018b6103803660046111b7565b610c10565b6101b361039336600461116e565b610c33565b6101b36103a636600461116e565b610c71565b60006103b8600183610d36565b92915050565b6103c6610db9565b6103cf81610bf2565b1561042d5760405162461bcd60e51b8152602060048201526024808201527f4f4e434841494e494420616c7265616479207461676765642061732065786368604482015263616e676560e01b60648201526084015b60405180910390fd5b6001600160a01b038116600081815260066020908152604091829020805460ff1916600117905590519182527fca661533a567195376b79f20fcbcca20e62ceea1d43efacba5f8028329da8e6b91015b60405180910390a150565b6001600160a01b03811660009081526002602052604081205460ff1615801561051c57506003546040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa1580156104f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051a9190611231565b155b1561052957506000919050565b506001919050565b336105446000546001600160a01b031690565b6001600160a01b0316148061057557506003546001600160a01b03161580156105755750336001600160a01b038216145b6105c15760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c000000006044820152606401610424565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b9060200161047d565b336106226000546001600160a01b031690565b6001600160a01b0316148061063f5750336001600160a01b038216145b61068b5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c000000006044820152606401610424565b6003546001600160a01b038281169116146106e85760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e640000000000000000006044820152606401610424565b600380546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a9060200161047d565b610739610de6565b6107555760405162461bcd60e51b815260040161042490611253565b5050565b610761610db9565b61076b6000610df6565b565b610775610db9565b61077e81610bf2565b6107ca5760405162461bcd60e51b815260206004820181905260248201527f4f4e434841494e4944206e6f74207461676765642061732065786368616e67656044820152606401610424565b6001600160a01b038116600081815260066020908152604091829020805460ff1916905590519182527fc59743ca46d36b7cf42c36211a2fbef12e10aec1bfc9d39eccf91b6976a260f5910161047d565b610823610db9565b6001600160a01b0381166108795760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610424565b610884600182610e46565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b6108c3610de6565b6108df5760405162461bcd60e51b815260040161042490611253565b6108ea838383610ec2565b505050565b6108f7610db9565b6001600160a01b03811661094d5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610424565b610958600182610f0e565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6003546000906001600160a01b0383811691161461052957506000919050565b6109b7610db9565b6001600160a01b038216600081815260046020908152604091829020849055815192835282018390527f046e8d44ac13395246a46d2f1065db8724b7c6aa2b9dd481327c2687c3ad9efd910160405180910390a15050565b600080610a1b85610f90565b90506000610a2885610f90565b9050610a3386610488565b158015610a4857506001600160a01b03861615155b15610af857610a5681610bf2565b15610af8576001600160a01b038116600090815260046020526040902054841115610a8657600092505050610aff565b6001600160a01b0381811660009081526005602090815260408083209386168352929052206001015442108015610ae857506001600160a01b03811660009081526004602052604090205484610adc8385610b06565b610ae691906112bd565b115b15610af857600092505050610aff565b6001925050505b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b610b39610db9565b6001600160a01b03811660009081526002602052604090205460ff16610ba15760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e74206973206e6f742072656769737465726564207965746044820152606401610424565b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f6a659bb87bb23efbdc295f8eed8ae8c4379bfb77660ced2ef0f3d7d26b05c6a6910161047d565b6001600160a01b031660009081526006602052604090205460ff1690565b6000610c1d848484610a0f565b610c2957506000610aff565b5060019392505050565b610c3b610db9565b6001600160a01b038116610c6557604051631e4fbdf760e01b815260006004820152602401610424565b610c6e81610df6565b50565b610c79610db9565b6001600160a01b03811660009081526002602052604090205460ff1615610ce25760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e7420697320616c726561647920726567697374657265646044820152606401610424565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fd62c45e13ac30396aceb3ad37c89bd1ba9048032fe61679000e92eb93dbfd67d910161047d565b60006001600160a01b038216610d995760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610424565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000546001600160a01b0316331461076b5760405163118cdaa760e01b8152336004820152602401610424565b6000610df13361098f565b905090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610e508282610d36565b15610e9d5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610424565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000610ecd84610f90565b90506000610eda84610f90565b9050610ee581610bf2565b8015610ef75750610ef585610488565b155b15610f0757610f0782828561106a565b5050505050565b610f188282610d36565b610f6e5760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610424565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b600354604080516304d3863d60e21b815290516000926001600160a01b03169163134e18f49160048083019260209291908290030181865afa158015610fda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffe91906112de565b604051633c3ad79560e21b81526001600160a01b038481166004830152919091169063f0eb5e5490602401602060405180830381865afa158015611046573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b891906112de565b61107483836110e8565b6001600160a01b038316600090815260046020526040902054816110988585610b06565b6110a291906112bd565b116108ea576001600160a01b038084166000908152600560209081526040808320938616835292905290812080548392906110de9084906112bd565b9091555050505050565b6001600160a01b038083166000908152600560209081526040808320938516835292905220600101544210610755576111244262278d006112bd565b6001600160a01b0392831660009081526005602090815260408083209490951682529290925291812060018101929092559055565b6001600160a01b0381168114610c6e57600080fd5b60006020828403121561118057600080fd5b8135610aff81611159565b6000806040838503121561119e57600080fd5b82356111a981611159565b946020939093013593505050565b6000806000606084860312156111cc57600080fd5b83356111d781611159565b925060208401356111e781611159565b929592945050506040919091013590565b6000806040838503121561120b57600080fd5b823561121681611159565b9150602083013561122681611159565b809150509250929050565b60006020828403121561124357600080fd5b81518015158114610aff57600080fd5b60208082526044908201527f6572726f72203a20746869732061646472657373206973206e6f74206120746f60408201527f6b656e20626f756e6420746f2074686520636f6d706c69616e636520636f6e746060820152631c9858dd60e21b608082015260a00190565b808201808211156103b857634e487b7160e01b600052601160045260246000fd5b6000602082840312156112f057600080fd5b8151610aff8161115956fea26469706673582212209b175707eec345291ccb893272c59f73d053834ec08e80ae5bff710aeaf631ed64736f6c63430008180033","sourceMap":"3891:1029:38:-:0;;;;;;;;;;;;-1:-1:-1;4272:10:87;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;160:51:165;133:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;3891:1029:38;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:165:-;3891:1029:38;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101735760003560e01c806393e62f07116100de578063ca63968d11610097578063d22579fb11610071578063d22579fb1461035f578063e46638e614610372578063f2fde38b14610385578063ff3e69541461039857600080fd5b8063ca63968d146102fd578063cdde293214610310578063ce32926d1461032357600080fd5b806393e62f071461026757806395c5dbfc1461027a57806397a6278e146102b1578063993e8b95146102c4578063a9336def146102d7578063bba58c29146102ea57600080fd5b8063715018a611610130578063715018a61461020157806374436d971461020957806384e798421461021c5780638baf29b41461022f5780638d2ea772146101ee5780638da5cb5b1461024257600080fd5b80631ffbb064146101785780632bb5e721146101a0578063346531fa146101b55780633ff5aa02146101c857806340db3b50146101db5780635f8dead3146101ee575b600080fd5b61018b61018636600461116e565b6103ab565b60405190151581526020015b60405180910390f35b6101b36101ae36600461116e565b6103be565b005b61018b6101c336600461116e565b610488565b6101b36101d636600461116e565b610531565b6101b36101e936600461116e565b61060f565b6101b36101fc36600461118b565b610731565b6101b3610759565b6101b361021736600461116e565b61076d565b6101b361022a36600461116e565b61081b565b6101b361023d3660046111b7565b6108bb565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610197565b60035461024f906001600160a01b031681565b6102a361028836600461116e565b6001600160a01b031660009081526004602052604090205490565b604051908152602001610197565b6101b36102bf36600461116e565b6108ef565b61018b6102d236600461116e565b61098f565b6101b36102e536600461118b565b6109af565b61018b6102f83660046111b7565b610a0f565b6102a361030b3660046111f8565b610b06565b6101b361031e36600461116e565b610b31565b6102a36103313660046111f8565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152206001015490565b61018b61036d36600461116e565b610bf2565b61018b6103803660046111b7565b610c10565b6101b361039336600461116e565b610c33565b6101b36103a636600461116e565b610c71565b60006103b8600183610d36565b92915050565b6103c6610db9565b6103cf81610bf2565b1561042d5760405162461bcd60e51b8152602060048201526024808201527f4f4e434841494e494420616c7265616479207461676765642061732065786368604482015263616e676560e01b60648201526084015b60405180910390fd5b6001600160a01b038116600081815260066020908152604091829020805460ff1916600117905590519182527fca661533a567195376b79f20fcbcca20e62ceea1d43efacba5f8028329da8e6b91015b60405180910390a150565b6001600160a01b03811660009081526002602052604081205460ff1615801561051c57506003546040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa1580156104f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051a9190611231565b155b1561052957506000919050565b506001919050565b336105446000546001600160a01b031690565b6001600160a01b0316148061057557506003546001600160a01b03161580156105755750336001600160a01b038216145b6105c15760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c000000006044820152606401610424565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b9060200161047d565b336106226000546001600160a01b031690565b6001600160a01b0316148061063f5750336001600160a01b038216145b61068b5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c000000006044820152606401610424565b6003546001600160a01b038281169116146106e85760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e640000000000000000006044820152606401610424565b600380546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a9060200161047d565b610739610de6565b6107555760405162461bcd60e51b815260040161042490611253565b5050565b610761610db9565b61076b6000610df6565b565b610775610db9565b61077e81610bf2565b6107ca5760405162461bcd60e51b815260206004820181905260248201527f4f4e434841494e4944206e6f74207461676765642061732065786368616e67656044820152606401610424565b6001600160a01b038116600081815260066020908152604091829020805460ff1916905590519182527fc59743ca46d36b7cf42c36211a2fbef12e10aec1bfc9d39eccf91b6976a260f5910161047d565b610823610db9565b6001600160a01b0381166108795760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610424565b610884600182610e46565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b6108c3610de6565b6108df5760405162461bcd60e51b815260040161042490611253565b6108ea838383610ec2565b505050565b6108f7610db9565b6001600160a01b03811661094d5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610424565b610958600182610f0e565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6003546000906001600160a01b0383811691161461052957506000919050565b6109b7610db9565b6001600160a01b038216600081815260046020908152604091829020849055815192835282018390527f046e8d44ac13395246a46d2f1065db8724b7c6aa2b9dd481327c2687c3ad9efd910160405180910390a15050565b600080610a1b85610f90565b90506000610a2885610f90565b9050610a3386610488565b158015610a4857506001600160a01b03861615155b15610af857610a5681610bf2565b15610af8576001600160a01b038116600090815260046020526040902054841115610a8657600092505050610aff565b6001600160a01b0381811660009081526005602090815260408083209386168352929052206001015442108015610ae857506001600160a01b03811660009081526004602052604090205484610adc8385610b06565b610ae691906112bd565b115b15610af857600092505050610aff565b6001925050505b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b610b39610db9565b6001600160a01b03811660009081526002602052604090205460ff16610ba15760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e74206973206e6f742072656769737465726564207965746044820152606401610424565b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f6a659bb87bb23efbdc295f8eed8ae8c4379bfb77660ced2ef0f3d7d26b05c6a6910161047d565b6001600160a01b031660009081526006602052604090205460ff1690565b6000610c1d848484610a0f565b610c2957506000610aff565b5060019392505050565b610c3b610db9565b6001600160a01b038116610c6557604051631e4fbdf760e01b815260006004820152602401610424565b610c6e81610df6565b50565b610c79610db9565b6001600160a01b03811660009081526002602052604090205460ff1615610ce25760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e7420697320616c726561647920726567697374657265646044820152606401610424565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fd62c45e13ac30396aceb3ad37c89bd1ba9048032fe61679000e92eb93dbfd67d910161047d565b60006001600160a01b038216610d995760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610424565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000546001600160a01b0316331461076b5760405163118cdaa760e01b8152336004820152602401610424565b6000610df13361098f565b905090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610e508282610d36565b15610e9d5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610424565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000610ecd84610f90565b90506000610eda84610f90565b9050610ee581610bf2565b8015610ef75750610ef585610488565b155b15610f0757610f0782828561106a565b5050505050565b610f188282610d36565b610f6e5760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610424565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b600354604080516304d3863d60e21b815290516000926001600160a01b03169163134e18f49160048083019260209291908290030181865afa158015610fda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffe91906112de565b604051633c3ad79560e21b81526001600160a01b038481166004830152919091169063f0eb5e5490602401602060405180830381865afa158015611046573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b891906112de565b61107483836110e8565b6001600160a01b038316600090815260046020526040902054816110988585610b06565b6110a291906112bd565b116108ea576001600160a01b038084166000908152600560209081526040808320938616835292905290812080548392906110de9084906112bd565b9091555050505050565b6001600160a01b038083166000908152600560209081526040808320938516835292905220600101544210610755576111244262278d006112bd565b6001600160a01b0392831660009081526005602090815260408083209490951682529290925291812060018101929092559055565b6001600160a01b0381168114610c6e57600080fd5b60006020828403121561118057600080fd5b8135610aff81611159565b6000806040838503121561119e57600080fd5b82356111a981611159565b946020939093013593505050565b6000806000606084860312156111cc57600080fd5b83356111d781611159565b925060208401356111e781611159565b929592945050506040919091013590565b6000806040838503121561120b57600080fd5b823561121681611159565b9150602083013561122681611159565b809150509250929050565b60006020828403121561124357600080fd5b81518015158114610aff57600080fd5b60208082526044908201527f6572726f72203a20746869732061646472657373206973206e6f74206120746f60408201527f6b656e20626f756e6420746f2074686520636f6d706c69616e636520636f6e746060820152631c9858dd60e21b608082015260a00190565b808201808211156103b857634e487b7160e01b600052601160045260246000fd5b6000602082840312156112f057600080fd5b8151610aff8161115956fea26469706673582212209b175707eec345291ccb893272c59f73d053834ec08e80ae5bff710aeaf631ed64736f6c63430008180033","sourceMap":"3891:1029:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4700:103:87;;;;;;:::i;:::-;;:::i;:::-;;;567:14:165;;560:22;542:41;;530:2;515:18;4700:103:87;;;;;;;;6492:238:31;;;;;;:::i;:::-;;:::i;:::-;;6271:253:24;;;;;;:::i;:::-;;:::i;5569:277::-;;;;;;:::i;:::-;;:::i;5910:296::-;;;;;;:::i;:::-;;:::i;4245:142:38:-;;;;;;:::i;:::-;;:::i;2293:101:141:-;;;:::i;7042:239:31:-;;;;;;:::i;:::-;;:::i;4292:194:87:-;;;;;;:::i;:::-;;:::i;4015:168:38:-;;;;;;:::i;:::-;;:::i;1638:85:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;1638:85;;;-1:-1:-1;;;;;1539:32:165;;;1521:51;;1509:2;1494:18;1638:85:141;1375:203:165;4173:24:24;;;;;-1:-1:-1;;;;;4173:24:24;;;8815:142:31;;;;;;:::i;:::-;-1:-1:-1;;;;;8916:34:31;8890:7;8916:34;;;:21;:34;;;;;;;8815:142;;;;1953:25:165;;;1941:2;1926:18;8815:142:31;1807:177:165;4492:202:87;;;;;;:::i;:::-;;:::i;6589:182:24:-;;;;;;:::i;:::-;;:::i;5916:266:31:-;;;;;;:::i;:::-;;:::i;9778:776::-;;;;;;:::i;:::-;;:::i;7980:181::-;;;;;;:::i;:::-;;:::i;5239:266:24:-;;;;;;:::i;:::-;;:::i;8460:179:31:-;;;;;;:::i;:::-;-1:-1:-1;;;;;8575:30:31;;;8548:7;8575:30;;;:17;:30;;;;;;;;:43;;;;;;;;;;;8574:58;;;;8460:179;7551:118;;;;;;:::i;:::-;;:::i;4668:250:38:-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;4913:261:24:-;;;;;;:::i;:::-;;:::i;4700:103:87:-;4754:4;4777:19;:7;4789:6;4777:11;:19::i;:::-;4770:26;4700:103;-1:-1:-1;;4700:103:87:o;6492:238:31:-;1531:13:141;:11;:13::i;:::-;6572:25:31::1;6585:11;6572:12;:25::i;:::-;6571:26;6563:75;;;::::0;-1:-1:-1;;;6563:75:31;;2584:2:165;6563:75:31::1;::::0;::::1;2566:21:165::0;2623:2;2603:18;;;2596:30;2662:34;2642:18;;;2635:62;-1:-1:-1;;;2713:18:165;;;2706:34;2757:19;;6563:75:31::1;;;;;;;;;-1:-1:-1::0;;;;;6648:25:31;::::1;;::::0;;;:12:::1;:25;::::0;;;;;;;;:32;;-1:-1:-1;;6648:32:31::1;6676:4;6648:32;::::0;;6695:28;;1521:51:165;;;6695:28:31::1;::::0;1494:18:165;6695:28:31::1;;;;;;;;6492:238:::0;:::o;6271:253:24:-;-1:-1:-1;;;;;6367:31:24;;6346:4;6367:31;;;:16;:31;;;;;;;;6366:32;:92;;;;-1:-1:-1;6422:10:24;;6403:55;;-1:-1:-1;;;6403:55:24;;-1:-1:-1;;;;;1539:32:165;;;6403:55:24;;;1521:51:165;6422:10:24;;;;6403:40;;1494:18:165;;6403:55:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6402:56;6366:92;6362:135;;;-1:-1:-1;6481:5:24;;6271:253;-1:-1:-1;6271:253:24:o;6362:135::-;-1:-1:-1;6513:4:24;;6271:253;-1:-1:-1;6271:253:24:o;5569:277::-;5651:10;5640:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;5640:7:24;-1:-1:-1;;;;;5640:21:24;;:84;;;-1:-1:-1;5674:10:24;;-1:-1:-1;;;;;5674:10:24;5666:33;:57;;;;-1:-1:-1;5703:10:24;-1:-1:-1;;;;;5703:20:24;;;5666:57;5632:137;;;;-1:-1:-1;;;5632:137:24;;3271:2:165;5632:137:24;;;3253:21:165;3310:2;3290:18;;;3283:30;3349;3329:18;;;3322:58;3397:18;;5632:137:24;3069:352:165;5632:137:24;5779:10;:27;;-1:-1:-1;;;;;;5779:27:24;-1:-1:-1;;;;;5779:27:24;;;;;;;;5821:18;;1521:51:165;;;5821:18:24;;1509:2:165;1494:18;5821::24;1375:203:165;5910:296:24;5994:10;5983:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;5983:7:24;-1:-1:-1;;;;;5983:21:24;;:45;;;-1:-1:-1;6008:10:24;-1:-1:-1;;;;;6008:20:24;;;5983:45;5975:87;;;;-1:-1:-1;;;5975:87:24;;3271:2:165;5975:87:24;;;3253:21:165;3310:2;3290:18;;;3283:30;3349;3329:18;;;3322:58;3397:18;;5975:87:24;3069:352:165;5975:87:24;6098:10;;-1:-1:-1;;;;;6080:29:24;;;6098:10;;6080:29;6072:65;;;;-1:-1:-1;;;6072:65:24;;3628:2:165;6072:65:24;;;3610:21:165;3667:2;3647:18;;;3640:30;3706:25;3686:18;;;3679:53;3749:18;;6072:65:24;3426:347:165;6072:65:24;6154:10;6147:17;;-1:-1:-1;;;;;;6147:17:24;;;6179:20;;-1:-1:-1;;;;;1539:32:165;;1521:51;;6179:20:24;;1509:2:165;1494:18;6179:20:24;1375:203:165;4245:142:38;4348:10:24;:8;:10::i;:::-;4340:91;;;;-1:-1:-1;;;4340:91:24;;;;;;;:::i;:::-;4245:142:38;;:::o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;7042:239:31:-;1531:13:141;:11;:13::i;:::-;7124:25:31::1;7137:11;7124:12;:25::i;:::-;7116:70;;;::::0;-1:-1:-1;;;7116:70:31;;4457:2:165;7116:70:31::1;::::0;::::1;4439:21:165::0;;;4476:18;;;4469:30;4535:34;4515:18;;;4508:62;4587:18;;7116:70:31::1;4255:356:165::0;7116:70:31::1;-1:-1:-1::0;;;;;7196:25:31;::::1;7224:5;7196:25:::0;;;:12:::1;:25;::::0;;;;;;;;:33;;-1:-1:-1;;7196:33:31::1;::::0;;7244:30;;1521:51:165;;;7244:30:31::1;::::0;1494:18:165;7244:30:31::1;1375:203:165::0;4292:194:87;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4361:20:87;::::1;4353:64;;;::::0;-1:-1:-1;;;4353:64:87;;4818:2:165;4353:64:87::1;::::0;::::1;4800:21:165::0;4857:2;4837:18;;;4830:30;4896:33;4876:18;;;4869:61;4947:18;;4353:64:87::1;4616:355:165::0;4353:64:87::1;4427:19;:7;4439:6:::0;4427:11:::1;:19::i;:::-;4461:18;::::0;-1:-1:-1;;;;;4461:18:87;::::1;::::0;::::1;::::0;;;::::1;4292:194:::0;:::o;4015:168:38:-;4348:10:24;:8;:10::i;:::-;4340:91;;;;-1:-1:-1;;;4340:91:24;;;;;;;:::i;:::-;4118:58:38::1;4157:5;4164:3;4169:6;4118:38;:58::i;:::-;4015:168:::0;;;:::o;4492:202:87:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4564:20:87;::::1;4556:64;;;::::0;-1:-1:-1;;;4556:64:87;;4818:2:165;4556:64:87::1;::::0;::::1;4800:21:165::0;4857:2;4837:18;;;4830:30;4896:33;4876:18;;;4869:61;4947:18;;4556:64:87::1;4616:355:165::0;4556:64:87::1;4630:22;:7;4645:6:::0;4630:14:::1;:22::i;:::-;4667:20;::::0;-1:-1:-1;;;;;4667:20:87;::::1;::::0;::::1;::::0;;;::::1;4492:202:::0;:::o;6589:182:24:-;6695:10;;6657:4;;-1:-1:-1;;;;;6677:29:24;;;6695:10;;6677:29;6673:71;;-1:-1:-1;6728:5:24;;6589:182;-1:-1:-1;6589:182:24:o;5916:266:31:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;6033:34:31;::::1;;::::0;;;:21:::1;:34;::::0;;;;;;;;:61;;;6109:66;;5150:51:165;;;5217:18;;5210:34;;;6109:66:31::1;::::0;5123:18:165;6109:66:31::1;;;;;;;5916:266:::0;;:::o;9778:776::-;9895:4;9911:22;9936:19;9949:5;9936:12;:19::i;:::-;9911:44;;9965:24;9992:17;10005:3;9992:12;:17::i;:::-;9965:44;;10024:19;10037:5;10024:12;:19::i;:::-;10023:20;:43;;;;-1:-1:-1;;;;;;10047:19:31;;;;10023:43;10019:508;;;10086:30;10099:16;10086:12;:30::i;:::-;10082:435;;;-1:-1:-1;;;;;10148:39:31;;;;;;:21;:39;;;;;;10139:48;;10136:106;;;10218:5;10211:12;;;;;;10136:106;-1:-1:-1;;;;;8575:30:31;;;14344:4;8575:30;;;:17;:30;;;;;;;;:43;;;;;;;;;8574:58;;;14413:15;-1:-1:-1;14368:60:31;;10263:185;;-1:-1:-1;;;;;;10407:39:31;;;;;;:21;:39;;;;;;10398:6;10344:51;10429:16;10380:14;10344:17;:51::i;:::-;:60;;;;:::i;:::-;:102;10263:185;10259:244;;;10479:5;10472:12;;;;;;10259:244;10543:4;10536:11;;;;9778:776;;;;;;:::o;7980:181::-;-1:-1:-1;;;;;8097:30:31;;;8070:7;8097:30;;;:17;:30;;;;;;;;:43;;;;;;;;;;;8096:58;;7980:181::o;5239:266:24:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;5334:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;5326:76;;;::::0;-1:-1:-1;;;5326:76:24;;5684:2:165;5326:76:24::1;::::0;::::1;5666:21:165::0;;;5703:18;;;5696:30;5762:34;5742:18;;;5735:62;5814:18;;5326:76:24::1;5482:356:165::0;5326:76:24::1;-1:-1:-1::0;;;;;5412:31:24;::::1;5446:5;5412:31:::0;;;:16:::1;:31;::::0;;;;;;;;:39;;-1:-1:-1;;5412:39:24::1;::::0;;5466:32;;1521:51:165;;;5466:32:24::1;::::0;1494:18:165;5466:32:24::1;1375:203:165::0;7551:118:31;-1:-1:-1;;;;;7637:25:31;7615:4;7637:25;;;:12;:25;;;;;;;;;7551:118::o;4668:250:38:-;4765:4;4786:58;4825:5;4832:3;4837:6;4786:38;:58::i;:::-;4781:110;;-1:-1:-1;4875:5:38;4868:12;;4781:110;-1:-1:-1;4907:4:38;4668:250;;;;;:::o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;1521:51:165::0;1494:18;;2672:31:141::1;1375:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;4913:261:24:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;5006:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;5005:32;4997:77;;;::::0;-1:-1:-1;;;4997:77:24;;6045:2:165;4997:77:24::1;::::0;::::1;6027:21:165::0;;;6064:18;;;6057:30;6123:34;6103:18;;;6096:62;6175:18;;4997:77:24::1;5843:356:165::0;4997:77:24::1;-1:-1:-1::0;;;;;5084:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;;;;:38;;-1:-1:-1;;5084:38:24::1;5118:4;5084:38;::::0;;5137:30;;1521:51:165;;;5137:30:24::1;::::0;1494:18:165;5137:30:24::1;1375:203:165::0;4596:200:89;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;6406:2:165;4684:68:89;;;6388:21:165;6445:2;6425:18;;;6418:30;6484:34;6464:18;;;6457:62;-1:-1:-1;;;6535:18:165;;;6528:32;6577:19;;4684:68:89;6204:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;1796:162:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;1521:51:165;1494:18;;1901:40:141;1375:203:165;6897:97:24;6940:4;6963:24;6976:10;6963:12;:24::i;:::-;6956:31;;6897:97;:::o;2912:187:141:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;4077:175:89:-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;6809:2:165;4145:63:89;;;6791:21:165;6848:2;6828:18;;;6821:30;6887:33;6867:18;;;6860:61;6938:18;;4145:63:89;6607:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;11027:376:31:-;11138:22;11163:19;11176:5;11163:12;:19::i;:::-;11138:44;;11192:24;11219:17;11232:3;11219:12;:17::i;:::-;11192:44;;11249:30;11262:16;11249:12;:30::i;:::-;:54;;;;;11284:19;11297:5;11284:12;:19::i;:::-;11283:20;11249:54;11246:151;;;11319:67;11345:14;11361:16;11379:6;11319:25;:67::i;:::-;11128:275;;11027:376;;;:::o;4327:180:89:-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;7169:2:165;4398:64:89;;;7151:21:165;7208:2;7188:18;;;7181:30;7247:34;7227:18;;;7220:62;-1:-1:-1;;;7298:18:165;;;7291:31;7339:19;;4398:64:89;6967:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;7226:161:24:-;7327:10;;:29;;;-1:-1:-1;;;7327:29:24;;;;7293:7;;-1:-1:-1;;;;;7327:10:24;;:27;;:29;;;;;;;;;;;;;;:10;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;;-1:-1:-1;;;7327:52:24;;-1:-1:-1;;;;;1539:32:165;;;7327:52:24;;;1521:51:165;7327:38:24;;;;;;;1494:18:165;;7327:52:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12894:375:31:-;13006:55;13036:11;13049;13006:29;:55::i;:::-;-1:-1:-1;;;;;13134:34:31;;;;;;:21;:34;;;;;;13123:6;13077:43;13156:11;13108;13077:17;:43::i;:::-;:52;;;;:::i;:::-;13076:92;13072:191;;-1:-1:-1;;;;;13185:30:31;;;;;;;:17;:30;;;;;;;;:43;;;;;;;;;;;13184:68;;13246:6;;13185:30;13184:68;;13246:6;;13184:68;:::i;:::-;;;;-1:-1:-1;;12894:375:31;;;:::o;13575:349::-;-1:-1:-1;;;;;8575:30:31;;;14344:4;8575:30;;;:17;:30;;;;;;;;:43;;;;;;;;;8574:58;;;14413:15;-1:-1:-1;13675:243:31;;13806:25;:15;13824:7;13806:25;:::i;:::-;-1:-1:-1;;;;;13746:30:31;;;;;;;:17;:30;;;;;;;;:43;;;;;;;;;;;;;13745:58;;;:86;;;;13845:62;;13575:349::o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;150:247;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;594:315::-;662:6;670;723:2;711:9;702:7;698:23;694:32;691:52;;;739:1;736;729:12;691:52;778:9;765:23;797:31;822:5;797:31;:::i;:::-;847:5;899:2;884:18;;;;871:32;;-1:-1:-1;;;594:315:165:o;914:456::-;991:6;999;1007;1060:2;1048:9;1039:7;1035:23;1031:32;1028:52;;;1076:1;1073;1066:12;1028:52;1115:9;1102:23;1134:31;1159:5;1134:31;:::i;:::-;1184:5;-1:-1:-1;1241:2:165;1226:18;;1213:32;1254:33;1213:32;1254:33;:::i;:::-;914:456;;1306:7;;-1:-1:-1;;;1360:2:165;1345:18;;;;1332:32;;914:456::o;1989:388::-;2057:6;2065;2118:2;2106:9;2097:7;2093:23;2089:32;2086:52;;;2134:1;2131;2124:12;2086:52;2173:9;2160:23;2192:31;2217:5;2192:31;:::i;:::-;2242:5;-1:-1:-1;2299:2:165;2284:18;;2271:32;2312:33;2271:32;2312:33;:::i;:::-;2364:7;2354:17;;;1989:388;;;;;:::o;2787:277::-;2854:6;2907:2;2895:9;2886:7;2882:23;2878:32;2875:52;;;2923:1;2920;2913:12;2875:52;2955:9;2949:16;3008:5;3001:13;2994:21;2987:5;2984:32;2974:60;;3030:1;3027;3020:12;3778:472;3980:2;3962:21;;;4019:2;3999:18;;;3992:30;4058:34;4053:2;4038:18;;4031:62;4129:34;4124:2;4109:18;;4102:62;-1:-1:-1;;;4195:3:165;4180:19;;4173:35;4240:3;4225:19;;3778:472::o;5255:222::-;5320:9;;;5341:10;;;5338:133;;;5393:10;5388:3;5384:20;5381:1;5374:31;5428:4;5425:1;5418:15;5456:4;5453:1;5446:15;7369:278;7466:6;7519:2;7507:9;7498:7;7494:23;7490:32;7487:52;;;7535:1;7532;7525:12;7487:52;7567:9;7561:16;7586:31;7611:5;7586:31;:::i","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","addExchangeID(address)":"2bb5e721","addTokenAgent(address)":"ff3e6954","bindToken(address)":"3ff5aa02","canTransfer(address,address,uint256)":"e46638e6","complianceCheckOnExchangeMonthlyLimits(address,address,uint256)":"bba58c29","created(address,uint256)":"5f8dead3","destroyed(address,uint256)":"8d2ea772","getExchangeMonthlyLimit(address)":"95c5dbfc","getMonthlyCounter(address,address)":"ca63968d","getMonthlyTimer(address,address)":"ce32926d","isAgent(address)":"1ffbb064","isExchangeID(address)":"d22579fb","isTokenAgent(address)":"346531fa","isTokenBound(address)":"993e8b95","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","removeExchangeID(address)":"74436d97","removeTokenAgent(address)":"cdde2932","renounceOwnership()":"715018a6","setExchangeMonthlyLimit(address,uint256)":"a9336def","tokenBound()":"93e62f07","transferOwnership(address)":"f2fde38b","transferred(address,address,uint256)":"8baf29b4","unbindToken(address)":"40db3b50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newExchangeID\",\"type\":\"address\"}],\"name\":\"ExchangeIDAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"ExchangeIDRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newExchangeMonthlyLimit\",\"type\":\"uint256\"}],\"name\":\"ExchangeMonthlyLimitUpdated\",\"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\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"addExchangeID\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"addTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"complianceCheckOnExchangeMonthlyLimits\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"getExchangeMonthlyLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_investorID\",\"type\":\"address\"}],\"name\":\"getMonthlyCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_investorID\",\"type\":\"address\"}],\"name\":\"getMonthlyTimer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"isExchangeID\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"isTokenAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"removeExchangeID\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"removeTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_newExchangeMonthlyLimit\",\"type\":\"uint256\"}],\"name\":\"setExchangeMonthlyLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenBound\",\"outputs\":[{\"internalType\":\"contract IToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addExchangeID(address)\":{\"details\":\"tags the ONCHAINID as being an exchange ID\",\"params\":{\"_exchangeID\":\"ONCHAINID to be tagged Function can be called only by owner of the compliance contract Cannot be called on an address already tagged as being an exchange emits an `ExchangeIDAdded` event\"}},\"addTokenAgent(address)\":{\"details\":\"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces\"},\"bindToken(address)\":{\"details\":\"See {ICompliance-bindToken}.\"},\"canTransfer(address,address,uint256)\":{\"details\":\"See {ICompliance-canTransfer}.\"},\"complianceCheckOnExchangeMonthlyLimits(address,address,uint256)\":{\"details\":\"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the transfer is done to an exchange wallet, if it is the case it will check if the transfer respects the limitations in terms of authorized monthly deposit volume, if it does the check will return true, if the transfer doesn't respect the limitations it will return false and block the transfer Agents are allowed to bypass this check\",\"params\":{\"_from\":\"the address of the transfer sender\",\"_to\":\"the address of the transfer receiver\",\"_value\":\"the amount of tokens that `_from` would send to `_to`\"}},\"created(address,uint256)\":{\"details\":\"See {ICompliance-created}.\"},\"destroyed(address,uint256)\":{\"details\":\"See {ICompliance-destroyed}.\"},\"getExchangeMonthlyLimit(address)\":{\"details\":\"getter for `exchangeMonthlyLimit` variable\",\"params\":{\"_exchangeID\":\"exchange ONCHAINID returns the monthly limit set for that exchange\"}},\"getMonthlyCounter(address,address)\":{\"details\":\"getter for `exchangeCounters` variable on the counter parameter of the ExchangeTransferCounter struct\",\"params\":{\"_exchangeID\":\"exchange ONCHAINID\",\"_investorID\":\"ONCHAINID to be checked returns current monthly counter of `_investorID` on `exchangeID` exchange\"}},\"getMonthlyTimer(address,address)\":{\"details\":\"getter for `exchangeCounters` variable on the timer parameter of the ExchangeTransferCounter struct\",\"params\":{\"_exchangeID\":\"exchange ONCHAINID\",\"_investorID\":\"ONCHAINID to be checked returns current timer of `_investorID` on `exchangeID` exchange\"}},\"isExchangeID(address)\":{\"details\":\"getter for `_exchangeIDs` variable tells to the caller if an ONCHAINID belongs to an exchange or not\",\"params\":{\"_exchangeID\":\"ONCHAINID to be checked returns TRUE if the address corresponds to an exchange, FALSE otherwise\"}},\"isTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"isTokenBound(address)\":{\"details\":\"See {ICompliance-isTokenBound}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeExchangeID(address)\":{\"details\":\"untags the ONCHAINID as being an exchange ID\",\"params\":{\"_exchangeID\":\"ONCHAINID to be untagged Function can be called only by owner of the compliance contract Cannot be called on an address not tagged as being an exchange emits an `ExchangeIDRemoved` event\"}},\"removeTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"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.\"},\"setExchangeMonthlyLimit(address,uint256)\":{\"details\":\"Set the limit of tokens allowed to be transferred monthly.\",\"params\":{\"_exchangeID\":\"ONCHAINID of the exchange\",\"_newExchangeMonthlyLimit\":\"The new monthly limit of tokens Only the owner of the Compliance smart contract can call this function\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferred(address,address,uint256)\":{\"details\":\"See {ICompliance-transferred}.\"},\"unbindToken(address)\":{\"details\":\"See {ICompliance-unbindToken}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ExchangeIDAdded(address)\":{\"notice\":\"this event is emitted whenever an ONCHAINID is tagged as being an exchange ID. the event is emitted by 'addExchangeID'. `_newExchangeID` is the ONCHAINID address of the exchange to add.\"},\"ExchangeIDRemoved(address)\":{\"notice\":\"this event is emitted whenever an ONCHAINID is untagged as belonging to an exchange. the event is emitted by 'removeExchangeID'. `_exchangeID` is the ONCHAINID being untagged as an exchange ID.\"},\"ExchangeMonthlyLimitUpdated(address,uint256)\":{\"notice\":\"this event is emitted whenever the Exchange Limit has been updated. the event is emitted by 'setExchangeMonthlyLimit' `_exchangeID` is the amount ONCHAINID address of the exchange. `_newExchangeMonthlyLimit` is the amount Limit of tokens to be transferred monthly to an exchange wallet.\"},\"TokenAgentAdded(address)\":{\"notice\":\"this event is emitted when the Agent has been added on the allowedList of this Compliance. the event is emitted by the Compliance constructor and by the addTokenAgent function `_agentAddress` is the address of the Agent to add\"},\"TokenAgentRemoved(address)\":{\"notice\":\"this event is emitted when the Agent has been removed from the agent list of this Compliance. the event is emitted by the Compliance constructor and by the removeTokenAgent function `_agentAddress` is the address of the Agent to remove\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"}},\"kind\":\"user\",\"methods\":{\"tokenBound()\":{\"notice\":\"Mapping of tokens linked to the compliance contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/legacy/test/ExchangeMonthlyLimitsTest.sol\":\"ExchangeMonthlyLimitsTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/legacy/BasicCompliance.sol\":{\"keccak256\":\"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d\",\"dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4\"]},\"contracts/erc3643/compliance/legacy/ICompliance.sol\":{\"keccak256\":\"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e\",\"dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV\"]},\"contracts/erc3643/compliance/legacy/features/ExchangeMonthlyLimits.sol\":{\"keccak256\":\"0x35b45abfa11094866963c2d541c3f988c82c75d30cc6c0e8b5ceabf673ec9bbb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://406e235dced89fb91a484822846df9cee009eaa32fe71f5475e05d445536f1e9\",\"dweb:/ipfs/QmdFaA1PzJN2FBAoSAXd1WpNS3sHSB1nZFxBmNQkCvyQLE\"]},\"contracts/erc3643/compliance/legacy/test/ExchangeMonthlyLimitsTest.sol\":{\"keccak256\":\"0x516eebd533a8d1f2ab8d3914b061c4c04c9341b0e46bfb589bed7b67df24d342\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://df5ecb9712dec957dda027b1f4c844cdbe860b54373d47b8c31fb2cdaccdb7be\",\"dweb:/ipfs/QmUg3k3WmPjeGBDG2zUWb4A6eJ1jTeHFu5mfCqkBkwvmKf\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_newExchangeID","type":"address","indexed":false}],"type":"event","name":"ExchangeIDAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address","indexed":false}],"type":"event","name":"ExchangeIDRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address","indexed":false},{"internalType":"uint256","name":"_newExchangeMonthlyLimit","type":"uint256","indexed":false}],"type":"event","name":"ExchangeMonthlyLimitUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addExchangeID"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenAgent"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"view","type":"function","name":"complianceCheckOnExchangeMonthlyLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"}],"stateMutability":"view","type":"function","name":"getExchangeMonthlyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"},{"internalType":"address","name":"_investorID","type":"address"}],"stateMutability":"view","type":"function","name":"getMonthlyCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"},{"internalType":"address","name":"_investorID","type":"address"}],"stateMutability":"view","type":"function","name":"getMonthlyTimer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"}],"stateMutability":"view","type":"function","name":"isExchangeID","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeExchangeID"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"},{"internalType":"uint256","name":"_newExchangeMonthlyLimit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setExchangeMonthlyLimit"},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenBound","outputs":[{"internalType":"contract IToken","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"}],"devdoc":{"kind":"dev","methods":{"addExchangeID(address)":{"details":"tags the ONCHAINID as being an exchange ID","params":{"_exchangeID":"ONCHAINID to be tagged Function can be called only by owner of the compliance contract Cannot be called on an address already tagged as being an exchange emits an `ExchangeIDAdded` event"}},"addTokenAgent(address)":{"details":"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces"},"bindToken(address)":{"details":"See {ICompliance-bindToken}."},"canTransfer(address,address,uint256)":{"details":"See {ICompliance-canTransfer}."},"complianceCheckOnExchangeMonthlyLimits(address,address,uint256)":{"details":"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the transfer is done to an exchange wallet, if it is the case it will check if the transfer respects the limitations in terms of authorized monthly deposit volume, if it does the check will return true, if the transfer doesn't respect the limitations it will return false and block the transfer Agents are allowed to bypass this check","params":{"_from":"the address of the transfer sender","_to":"the address of the transfer receiver","_value":"the amount of tokens that `_from` would send to `_to`"}},"created(address,uint256)":{"details":"See {ICompliance-created}."},"destroyed(address,uint256)":{"details":"See {ICompliance-destroyed}."},"getExchangeMonthlyLimit(address)":{"details":"getter for `exchangeMonthlyLimit` variable","params":{"_exchangeID":"exchange ONCHAINID returns the monthly limit set for that exchange"}},"getMonthlyCounter(address,address)":{"details":"getter for `exchangeCounters` variable on the counter parameter of the ExchangeTransferCounter struct","params":{"_exchangeID":"exchange ONCHAINID","_investorID":"ONCHAINID to be checked returns current monthly counter of `_investorID` on `exchangeID` exchange"}},"getMonthlyTimer(address,address)":{"details":"getter for `exchangeCounters` variable on the timer parameter of the ExchangeTransferCounter struct","params":{"_exchangeID":"exchange ONCHAINID","_investorID":"ONCHAINID to be checked returns current timer of `_investorID` on `exchangeID` exchange"}},"isExchangeID(address)":{"details":"getter for `_exchangeIDs` variable tells to the caller if an ONCHAINID belongs to an exchange or not","params":{"_exchangeID":"ONCHAINID to be checked returns TRUE if the address corresponds to an exchange, FALSE otherwise"}},"isTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"isTokenBound(address)":{"details":"See {ICompliance-isTokenBound}."},"owner()":{"details":"Returns the address of the current owner."},"removeExchangeID(address)":{"details":"untags the ONCHAINID as being an exchange ID","params":{"_exchangeID":"ONCHAINID to be untagged Function can be called only by owner of the compliance contract Cannot be called on an address not tagged as being an exchange emits an `ExchangeIDRemoved` event"}},"removeTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"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."},"setExchangeMonthlyLimit(address,uint256)":{"details":"Set the limit of tokens allowed to be transferred monthly.","params":{"_exchangeID":"ONCHAINID of the exchange","_newExchangeMonthlyLimit":"The new monthly limit of tokens Only the owner of the Compliance smart contract can call this function"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"transferred(address,address,uint256)":{"details":"See {ICompliance-transferred}."},"unbindToken(address)":{"details":"See {ICompliance-unbindToken}."}},"version":1},"userdoc":{"kind":"user","methods":{"tokenBound()":{"notice":"Mapping of tokens linked to the compliance contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/legacy/test/ExchangeMonthlyLimitsTest.sol":"ExchangeMonthlyLimitsTest"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/legacy/BasicCompliance.sol":{"keccak256":"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305","urls":["bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d","dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/ICompliance.sol":{"keccak256":"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7","urls":["bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e","dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/features/ExchangeMonthlyLimits.sol":{"keccak256":"0x35b45abfa11094866963c2d541c3f988c82c75d30cc6c0e8b5ceabf673ec9bbb","urls":["bzz-raw://406e235dced89fb91a484822846df9cee009eaa32fe71f5475e05d445536f1e9","dweb:/ipfs/QmdFaA1PzJN2FBAoSAXd1WpNS3sHSB1nZFxBmNQkCvyQLE"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/test/ExchangeMonthlyLimitsTest.sol":{"keccak256":"0x516eebd533a8d1f2ab8d3914b061c4c04c9341b0e46bfb589bed7b67df24d342","urls":["bzz-raw://df5ecb9712dec957dda027b1f4c844cdbe860b54373d47b8c31fb2cdaccdb7be","dweb:/ipfs/QmUg3k3WmPjeGBDG2zUWb4A6eJ1jTeHFu5mfCqkBkwvmKf"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":38} \ No newline at end of file diff --git a/out/ExpiryHelper.sol/ExpiryHelper.json b/out/ExpiryHelper.sol/ExpiryHelper.json new file mode 100644 index 0000000..49e8fc4 --- /dev/null +++ b/out/ExpiryHelper.sol/ExpiryHelper.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/hedera/ExpiryHelper.sol\":\"ExpiryHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/hedera/ExpiryHelper.sol\":{\"keccak256\":\"0x80c84ea8126b556444c5d9e09cd770a61b916db4b713e5b880089f08333190a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c2c586147447052170984ba25688757db5a2ac1c8f49b173441b8e8cdc03e7d9\",\"dweb:/ipfs/QmZpMjo2KKZfniMZaez73ExCVLbssVEUaepRFVkM4aSwzY\"]},\"contracts/common/hedera/HederaResponseCodes.sol\":{\"keccak256\":\"0x85734572347c25f45480488ad4fdb63ed749a794daac839540f5b0eb7dbb22e6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addc4c8c31e1b3fd001986599856bb39e9cb4532a922155f699aae1686563e63\",\"dweb:/ipfs/QmXJES7o4xoSowiDo3qm3Mr3LaWm7g5qTQosw5EAAiz9R5\"]},\"contracts/common/hedera/HederaTokenService.sol\":{\"keccak256\":\"0x91138524b7d67ef498b1cade84eb4f79b5d7cc8b3b59f6c2f60439b91f6c3e79\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4d3a8bcc40da8200571c06b531fcb6b964dfb8d3cb2fd0e96300452b301e2db9\",\"dweb:/ipfs/Qmcv17ozumtuJLNYZz2evqUbRc2dyvprVYeh7Rq1qBrjHG\"]},\"contracts/common/hedera/IHederaTokenService.sol\":{\"keccak256\":\"0xd0606986a26e82ecd4c2cadd498a74fe9fc2061bd65f4e90592d51962ffbd245\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://786b1c29918038c33f7154c7df73d1a668482965ad0dfe920309533314050b6d\",\"dweb:/ipfs/QmV2Lvy9wvWBxXfSz2tPimZf5xEsDwsWqqujyY2a75i7Te\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/common/hedera/ExpiryHelper.sol":"ExpiryHelper"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/hedera/ExpiryHelper.sol":{"keccak256":"0x80c84ea8126b556444c5d9e09cd770a61b916db4b713e5b880089f08333190a6","urls":["bzz-raw://c2c586147447052170984ba25688757db5a2ac1c8f49b173441b8e8cdc03e7d9","dweb:/ipfs/QmZpMjo2KKZfniMZaez73ExCVLbssVEUaepRFVkM4aSwzY"],"license":"Apache-2.0"},"contracts/common/hedera/HederaResponseCodes.sol":{"keccak256":"0x85734572347c25f45480488ad4fdb63ed749a794daac839540f5b0eb7dbb22e6","urls":["bzz-raw://addc4c8c31e1b3fd001986599856bb39e9cb4532a922155f699aae1686563e63","dweb:/ipfs/QmXJES7o4xoSowiDo3qm3Mr3LaWm7g5qTQosw5EAAiz9R5"],"license":"Apache-2.0"},"contracts/common/hedera/HederaTokenService.sol":{"keccak256":"0x91138524b7d67ef498b1cade84eb4f79b5d7cc8b3b59f6c2f60439b91f6c3e79","urls":["bzz-raw://4d3a8bcc40da8200571c06b531fcb6b964dfb8d3cb2fd0e96300452b301e2db9","dweb:/ipfs/Qmcv17ozumtuJLNYZz2evqUbRc2dyvprVYeh7Rq1qBrjHG"],"license":"Apache-2.0"},"contracts/common/hedera/IHederaTokenService.sol":{"keccak256":"0xd0606986a26e82ecd4c2cadd498a74fe9fc2061bd65f4e90592d51962ffbd245","urls":["bzz-raw://786b1c29918038c33f7154c7df73d1a668482965ad0dfe920309533314050b6d","dweb:/ipfs/QmV2Lvy9wvWBxXfSz2tPimZf5xEsDwsWqqujyY2a75i7Te"],"license":"Apache-2.0"}},"version":1},"id":3} \ No newline at end of file diff --git a/out/FeeConfiguration.sol/FeeConfiguration.json b/out/FeeConfiguration.sol/FeeConfiguration.json new file mode 100644 index 0000000..8e55d75 --- /dev/null +++ b/out/FeeConfiguration.sol/FeeConfiguration.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FEE_CONFIG_CONTROLLER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"VAULT_REWARD_CONTROLLER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"feeConfig","inputs":[],"outputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"feePercentage","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateFeeConfig","inputs":[{"name":"_feeConfig","type":"tuple","internalType":"struct FeeConfiguration.FeeConfig","components":[{"name":"receiver","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"feePercentage","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"FeeConfigUpdated","inputs":[{"name":"feeConfig","type":"tuple","indexed":false,"internalType":"struct FeeConfiguration.FeeConfig","components":[{"name":"receiver","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"feePercentage","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FEE_CONFIG_CONTROLLER_ROLE()":"05fb2a51","VAULT_REWARD_CONTROLLER_ROLE()":"b4f6d613","feeConfig()":"1e5eb1d0","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7","updateFeeConfig((address,address,uint256))":"efa6f425"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feePercentage\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct FeeConfiguration.FeeConfig\",\"name\":\"feeConfig\",\"type\":\"tuple\"}],\"name\":\"FeeConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FEE_CONFIG_CONTROLLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_REWARD_CONTROLLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeConfig\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feePercentage\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feePercentage\",\"type\":\"uint256\"}],\"internalType\":\"struct FeeConfiguration.FeeConfig\",\"name\":\"_feeConfig\",\"type\":\"tuple\"}],\"name\":\"updateFeeConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"FeeConfigUpdated((address,address,uint256))\":{\"details\":\"Emitted when admin changes fee configuration.\",\"params\":{\"feeConfig\":\"The fee configuration properties.\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"updateFeeConfig((address,address,uint256))\":{\"details\":\"Initializes the contract with the required parameters.\",\"params\":{\"_feeConfig\":\"The fee configuration.\"}}},\"title\":\"Fee Configuration The contract that helps to consider fee during any Vault token operation.\",\"version\":1},\"userdoc\":{\"events\":{\"FeeConfigUpdated((address,address,uint256))\":{\"notice\":\"FeeConfigUpdated event.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/FeeConfiguration.sol\":\"FeeConfiguration\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/FeeConfiguration.sol\":{\"keccak256\":\"0xd576dc5a2f8d782ff3311e6207641c78ea68f68d8cf0c8ce9c06571316e559a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084d049afbfe5d85e397e6f3c118edafe57db19540c6462ea9a0ac2cc99c7f69\",\"dweb:/ipfs/QmXrsuHjQGJRCc7e5HodYLgmb5HKMfC1xPSL7ncKSTHvak\"]},\"contracts/common/safe-HTS/HederaResponseCodes.sol\":{\"keccak256\":\"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca\",\"dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G\"]},\"contracts/common/safe-HTS/IHederaTokenService.sol\":{\"keccak256\":\"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786\",\"dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W\"]},\"contracts/common/safe-HTS/SafeHTS.sol\":{\"keccak256\":\"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe\",\"dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7\"]},\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"struct FeeConfiguration.FeeConfig","name":"feeConfig","type":"tuple","components":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"feePercentage","type":"uint256"}],"indexed":false}],"type":"event","name":"FeeConfigUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FEE_CONFIG_CONTROLLER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_REWARD_CONTROLLER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeConfig","outputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"feePercentage","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct FeeConfiguration.FeeConfig","name":"_feeConfig","type":"tuple","components":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"feePercentage","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"updateFeeConfig"}],"devdoc":{"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"updateFeeConfig((address,address,uint256))":{"details":"Initializes the contract with the required parameters.","params":{"_feeConfig":"The fee configuration."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/common/FeeConfiguration.sol":"FeeConfiguration"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/FeeConfiguration.sol":{"keccak256":"0xd576dc5a2f8d782ff3311e6207641c78ea68f68d8cf0c8ce9c06571316e559a7","urls":["bzz-raw://084d049afbfe5d85e397e6f3c118edafe57db19540c6462ea9a0ac2cc99c7f69","dweb:/ipfs/QmXrsuHjQGJRCc7e5HodYLgmb5HKMfC1xPSL7ncKSTHvak"],"license":"MIT"},"contracts/common/safe-HTS/HederaResponseCodes.sol":{"keccak256":"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324","urls":["bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca","dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G"],"license":"Apache-2.0"},"contracts/common/safe-HTS/IHederaTokenService.sol":{"keccak256":"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735","urls":["bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786","dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W"],"license":"Apache-2.0"},"contracts/common/safe-HTS/SafeHTS.sol":{"keccak256":"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10","urls":["bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe","dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7"],"license":"Apache-2.0"},"node_modules/@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":0} \ No newline at end of file diff --git a/out/FeeHelper.sol/FeeHelper.json b/out/FeeHelper.sol/FeeHelper.json new file mode 100644 index 0000000..6abd820 --- /dev/null +++ b/out/FeeHelper.sol/FeeHelper.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/hedera/FeeHelper.sol\":\"FeeHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/hedera/FeeHelper.sol\":{\"keccak256\":\"0x5d079d2d2235c75f75a58e83d0e6f67e210d676d1b681194111bad2765ff388a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://65153fb8830d5777e24b1874b567d8b98357ad288ecb19e26ef0c96a220c0802\",\"dweb:/ipfs/QmRvNndRUp1kMNjR1cvb91JNUg2MoGmePGAMgt9cNYbEg3\"]},\"contracts/common/hedera/IHederaTokenService.sol\":{\"keccak256\":\"0xd0606986a26e82ecd4c2cadd498a74fe9fc2061bd65f4e90592d51962ffbd245\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://786b1c29918038c33f7154c7df73d1a668482965ad0dfe920309533314050b6d\",\"dweb:/ipfs/QmV2Lvy9wvWBxXfSz2tPimZf5xEsDwsWqqujyY2a75i7Te\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/common/hedera/FeeHelper.sol":"FeeHelper"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/hedera/FeeHelper.sol":{"keccak256":"0x5d079d2d2235c75f75a58e83d0e6f67e210d676d1b681194111bad2765ff388a","urls":["bzz-raw://65153fb8830d5777e24b1874b567d8b98357ad288ecb19e26ef0c96a220c0802","dweb:/ipfs/QmRvNndRUp1kMNjR1cvb91JNUg2MoGmePGAMgt9cNYbEg3"],"license":"Apache-2.0"},"contracts/common/hedera/IHederaTokenService.sol":{"keccak256":"0xd0606986a26e82ecd4c2cadd498a74fe9fc2061bd65f4e90592d51962ffbd245","urls":["bzz-raw://786b1c29918038c33f7154c7df73d1a668482965ad0dfe920309533314050b6d","dweb:/ipfs/QmV2Lvy9wvWBxXfSz2tPimZf5xEsDwsWqqujyY2a75i7Te"],"license":"Apache-2.0"}},"version":1},"id":4} \ No newline at end of file diff --git a/out/FixedPointMathLib.sol/FixedPointMathLib.json b/out/FixedPointMathLib.sol/FixedPointMathLib.json new file mode 100644 index 0000000..fee67a7 --- /dev/null +++ b/out/FixedPointMathLib.sol/FixedPointMathLib.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ef08bd1ac64dbe07b3f8b65ba9b4abec26f3ccf8f87bb201785c212601fb3bad64736f6c63430008180033","sourceMap":"341:9623:109:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;341:9623:109;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ef08bd1ac64dbe07b3f8b65ba9b4abec26f3ccf8f87bb201785c212601fb3bad64736f6c63430008180033","sourceMap":"341:9623:109:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/FixedPointMathLib.sol)Inspired by USM (https://github.com/usmfum/USM/blob/master/contracts/WadMath.sol)\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Arithmetic library with operations for fixed-point numbers.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc4626/libraries/FixedPointMathLib.sol\":\"FixedPointMathLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc4626/libraries/FixedPointMathLib.sol\":{\"keccak256\":\"0x2958e993700b05ee4c2d92e7a90939c97324c1466512a252085f461d154a4ab9\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://774aa54a350733f7e48bfd7271fd529514d4e89c34ee59e05f896bccdc870ce9\",\"dweb:/ipfs/QmWJ1zAHM3cCtVo4VmxZA7S7xuDbcvS3fkqTJY5zrkuGEJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc4626/libraries/FixedPointMathLib.sol":"FixedPointMathLib"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc4626/libraries/FixedPointMathLib.sol":{"keccak256":"0x2958e993700b05ee4c2d92e7a90939c97324c1466512a252085f461d154a4ab9","urls":["bzz-raw://774aa54a350733f7e48bfd7271fd529514d4e89c34ee59e05f896bccdc870ce9","dweb:/ipfs/QmWJ1zAHM3cCtVo4VmxZA7S7xuDbcvS3fkqTJY5zrkuGEJ"],"license":"AGPL-3.0-only"}},"version":1},"id":109} \ No newline at end of file diff --git a/out/Gateway.sol/IdentityGateway.json b/out/Gateway.sol/IdentityGateway.json new file mode 100644 index 0000000..0965ff0 --- /dev/null +++ b/out/Gateway.sol/IdentityGateway.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"idFactoryAddress","type":"address","internalType":"address"},{"name":"signersToApprove","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"approveSignature","inputs":[{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approveSigner","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approvedSigners","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"callFactory","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deployIdentityForWallet","inputs":[{"name":"identityOwner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deployIdentityWithSalt","inputs":[{"name":"identityOwner","type":"address","internalType":"address"},{"name":"salt","type":"string","internalType":"string"},{"name":"signatureExpiry","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deployIdentityWithSaltAndManagementKeys","inputs":[{"name":"identityOwner","type":"address","internalType":"address"},{"name":"salt","type":"string","internalType":"string"},{"name":"managementKeys","type":"bytes32[]","internalType":"bytes32[]"},{"name":"signatureExpiry","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"idFactory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IdFactory"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeSignature","inputs":[{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeSigner","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokedSignatures","inputs":[{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFactoryOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SignatureApproved","inputs":[{"name":"signature","type":"bytes","indexed":true,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"SignatureRevoked","inputs":[{"name":"signature","type":"bytes","indexed":true,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"SignerApproved","inputs":[{"name":"signer","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SignerRevoked","inputs":[{"name":"signer","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ExpiredSignature","inputs":[{"name":"signature","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"RevokedSignature","inputs":[{"name":"signature","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"SignatureAlreadyRevoked","inputs":[{"name":"signature","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"SignatureNotRevoked","inputs":[{"name":"signature","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"SignerAlreadyApproved","inputs":[{"name":"signer","type":"address","internalType":"address"}]},{"type":"error","name":"SignerAlreadyNotApproved","inputs":[{"name":"signer","type":"address","internalType":"address"}]},{"type":"error","name":"StringsInsufficientHexLength","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"TooManySigners","inputs":[]},{"type":"error","name":"UnapprovedSigner","inputs":[{"name":"signer","type":"address","internalType":"address"}]},{"type":"error","name":"ZeroAddress","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162001823380380620018238339810160408190526200003491620001c1565b33806200005b57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b62000066816200013e565b506001600160a01b0382166200008f5760405163d92e233d60e01b815260040160405180910390fd5b600a81511115620000b357604051630dc92ed360e11b815260040160405180910390fd5b60005b81518110156200011657600160026000848481518110620000db57620000db620002aa565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101620000b6565b5050600180546001600160a01b0319166001600160a01b0392909216919091179055620002c0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620001a657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215620001d557600080fd5b620001e0836200018e565b602084810151919350906001600160401b03808211156200020057600080fd5b818601915086601f8301126200021557600080fd5b8151818111156200022a576200022a620001ab565b8060051b604051601f19603f83011681018181108582111715620002525762000252620001ab565b6040529182528482019250838101850191898311156200027157600080fd5b938501935b828510156200029a576200028a856200018e565b8452938501939285019262000276565b8096505050505050509250929050565b634e487b7160e01b600052603260045260246000fd5b61155380620002d06000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638a87551211610097578063ccbfc6ed11610066578063ccbfc6ed14610218578063d70aa0ee1461022b578063e9ba23631461023e578063f2fde38b1461025157600080fd5b80638a875512146101be5780638da5cb5b146101e15780639c5c5ce7146101f2578063c34b44a01461020557600080fd5b80634e2984e4116100d35780634e2984e414610152578063715018a61461019057806378e751a6146101985780637d963e6f146101ab57600080fd5b806309f29c09146100fa57806317f67a151461010f5780633e8e6e8b1461013f575b600080fd5b61010d610108366004610fba565b610264565b005b61012261011d366004611088565b610326565b6040516001600160a01b0390911681526020015b60405180910390f35b61012261014d36600461110f565b61052f565b610180610160366004610fba565b805160208183018101805160038252928201919093012091525460ff1681565b6040519015158152602001610136565b61010d6105d9565b600154610122906001600160a01b031681565b61010d6101b936600461112c565b6105ed565b6101806101cc36600461110f565b60026020526000908152604090205460ff1681565b6000546001600160a01b0316610122565b61010d61020036600461110f565b6106a5565b61010d61021336600461110f565b61070f565b61010d61022636600461112c565b6107cb565b61010d61023936600461110f565b610890565b61012261024c36600461116e565b610950565b61010d61025f36600461110f565b610ade565b61026c610b1c565b6001546040516000916001600160a01b03169061028a908490611274565b6000604051808303816000865af19150503d80600081146102c7576040519150601f19603f3d011682016040523d82523d6000602084013e6102cc565b606091505b50509050806103225760405162461bcd60e51b815260206004820152601f60248201527f476174657761793a2063616c6c20746f20666163746f7279206661696c65640060448201526064015b60405180910390fd5b5050565b60006001600160a01b03861661034f5760405163d92e233d60e01b815260040160405180910390fd5b831580159061035d57504284105b1561037f57828260405163019fcfdb60e31b8152600401610319929190611290565b60006104216103e588888860405160200161039c939291906112eb565b604051602081830303815290604052805190602001207f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b4992505050565b6001600160a01b03811660009081526002602052604090205490915060ff166104685760405163579e40b960e11b81526001600160a01b0382166004820152602401610319565b6003848460405161047a92919061135a565b9081526040519081900360200190205460ff16156104af5783836040516314dbff3f60e31b8152600401610319929190611290565b60015460405163474a95ff60e11b81526001600160a01b0390911690638e952bfe906104e1908a908a9060040161136a565b6020604051808303816000875af1158015610500573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610524919061138e565b979650505050505050565b60006001600160a01b0382166105585760405163d92e233d60e01b815260040160405180910390fd5b6001546001600160a01b0316638e952bfe8361057381610b73565b6040518363ffffffff1660e01b815260040161059092919061136a565b6020604051808303816000875af11580156105af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d3919061138e565b92915050565b6105e1610b1c565b6105eb6000610b89565b565b6105f5610b1c565b6003828260405161060792919061135a565b9081526040519081900360200190205460ff1661063b5781816040516337d70afd60e11b8152600401610319929190611290565b6003828260405161064d92919061135a565b908152604051908190036020018120805460ff19169055610671908390839061135a565b604051908190038120907fb54b0481f674d73e0a7e0805771909ebd61fadc85286160239121febb142fabf90600090a25050565b6106ad610b1c565b60015460405163f2fde38b60e01b81526001600160a01b0383811660048301529091169063f2fde38b90602401600060405180830381600087803b1580156106f457600080fd5b505af1158015610708573d6000803e3d6000fd5b5050505050565b610717610b1c565b6001600160a01b03811661073e5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526002602052604090205460ff16610782576040516309d0bb2d60e21b81526001600160a01b0382166004820152602401610319565b6001600160a01b038116600081815260026020526040808220805460ff19169055517f99a705a3c2c3339d0051f56b36a60fef91e30142c93353002617999f27aec4af9190a250565b6107d3610b1c565b600382826040516107e592919061135a565b9081526040519081900360200190205460ff161561081a578181604051638bf3b1f160e01b8152600401610319929190611290565b60016003838360405161082e92919061135a565b908152604051908190036020018120805492151560ff199093169290921790915561085c908390839061135a565b604051908190038120907f2cb4d732f179a7333da89a4da3f3f9a9cbe3f6d7ac090ab062c69c303da32ff790600090a25050565b610898610b1c565b6001600160a01b0381166108bf5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526002602052604090205460ff161561090457604051630912922160e11b81526001600160a01b0382166004820152602401610319565b6001600160a01b038116600081815260026020526040808220805460ff19166001179055517fc031114b6ddff79d71c2554dbce316b1327bb3dad01c60b76d8e8b23ff27ea289190a250565b60006001600160a01b0388166109795760405163d92e233d60e01b815260040160405180910390fd5b831580159061098757504284105b156109a957828260405163019fcfdb60e31b8152600401610319929190611290565b60006109ca6103e58a8a8a8a8a60405160200161039c9594939291906113dd565b6001600160a01b03811660009081526002602052604090205490915060ff16610a115760405163579e40b960e11b81526001600160a01b0382166004820152602401610319565b60038484604051610a2392919061135a565b9081526040519081900360200190205460ff1615610a585783836040516314dbff3f60e31b8152600401610319929190611290565b600154604051637f2e6acd60e11b81526001600160a01b039091169063fe5cd59a90610a8e908c908c908c908c90600401611463565b6020604051808303816000875af1158015610aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad1919061138e565b9998505050505050505050565b610ae6610b1c565b6001600160a01b038116610b1057604051631e4fbdf760e01b815260006004820152602401610319565b610b1981610b89565b50565b6000546001600160a01b031633146105eb5760405163118cdaa760e01b8152336004820152602401610319565b600080600080610b598686610bd9565b925092509250610b698282610c26565b5090949350505050565b60606105d36001600160a01b0383166014610cdf565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060008351604103610c135760208401516040850151606086015160001a610c0588828585610e5f565b955095509550505050610c1f565b50508151600091506002905b9250925092565b6000826003811115610c3a57610c3a61149a565b03610c43575050565b6001826003811115610c5757610c5761149a565b03610c755760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115610c8957610c8961149a565b03610caa5760405163fce698f760e01b815260048101829052602401610319565b6003826003811115610cbe57610cbe61149a565b03610322576040516335e2f38360e21b815260048101829052602401610319565b6060826000610cef8460026114c6565b610cfa9060026114dd565b67ffffffffffffffff811115610d1257610d12610f2e565b6040519080825280601f01601f191660200182016040528015610d3c576020820181803683370190505b509050600360fc1b81600081518110610d5757610d576114f0565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610d8657610d866114f0565b60200101906001600160f81b031916908160001a9053506000610daa8560026114c6565b610db59060016114dd565b90505b6001811115610e2d576f181899199a1a9b1b9c1cb0b131b232b360811b83600f1660108110610de957610de96114f0565b1a60f81b828281518110610dff57610dff6114f0565b60200101906001600160f81b031916908160001a90535060049290921c91610e2681611506565b9050610db8565b508115610e575760405163e22e27eb60e01b81526004810186905260248101859052604401610319565b949350505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610e9a5750600091506003905082610f24565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610eee573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610f1a57506000925060019150829050610f24565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115610f5f57610f5f610f2e565b604051601f8501601f19908116603f01168101908282118183101715610f8757610f87610f2e565b81604052809350858152868686011115610fa057600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215610fcc57600080fd5b813567ffffffffffffffff811115610fe357600080fd5b8201601f81018413610ff457600080fd5b610e5784823560208401610f44565b6001600160a01b0381168114610b1957600080fd5b600082601f83011261102957600080fd5b61103883833560208501610f44565b9392505050565b60008083601f84011261105157600080fd5b50813567ffffffffffffffff81111561106957600080fd5b60208301915083602082850101111561108157600080fd5b9250929050565b6000806000806000608086880312156110a057600080fd5b85356110ab81611003565b9450602086013567ffffffffffffffff808211156110c857600080fd5b6110d489838a01611018565b95506040880135945060608801359150808211156110f157600080fd5b506110fe8882890161103f565b969995985093965092949392505050565b60006020828403121561112157600080fd5b813561103881611003565b6000806020838503121561113f57600080fd5b823567ffffffffffffffff81111561115657600080fd5b6111628582860161103f565b90969095509350505050565b600080600080600080600060a0888a03121561118957600080fd5b873561119481611003565b9650602088013567ffffffffffffffff808211156111b157600080fd5b6111bd8b838c01611018565b975060408a01359150808211156111d357600080fd5b818a0191508a601f8301126111e757600080fd5b8135818111156111f657600080fd5b8b60208260051b850101111561120b57600080fd5b6020830197508096505060608a0135945060808a013591508082111561123057600080fd5b5061123d8a828b0161103f565b989b979a50959850939692959293505050565b60005b8381101561126b578181015183820152602001611253565b50506000910152565b60008251611286818460208701611250565b9190910192915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600081518084526112d7816020860160208601611250565b601f01601f19169290920160200192915050565b60808152600061132860808301601e81527f417574686f72697a65204f4e434841494e4944206465706c6f796d656e740000602082015260400190565b6001600160a01b0386166020840152828103604084015261134981866112bf565b915050826060830152949350505050565b8183823760009101908152919050565b6001600160a01b0383168152604060208201819052600090610e57908301846112bf565b6000602082840312156113a057600080fd5b815161103881611003565b81835260006001600160fb1b038311156113c457600080fd5b8260051b80836020870137939093016020019392505050565b60a08152600061141a60a08301601e81527f417574686f72697a65204f4e434841494e4944206465706c6f796d656e740000602082015260400190565b6001600160a01b0388166020840152828103604084015261143b81886112bf565b905082810360608401526114508186886113ab565b9150508260808301529695505050505050565b6001600160a01b0385168152606060208201819052600090611487908301866112bf565b82810360408401526105248185876113ab565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176105d3576105d36114b0565b808201808211156105d3576105d36114b0565b634e487b7160e01b600052603260045260246000fd5b600081611515576115156114b0565b50600019019056fea26469706673582212201e29a8c437bfce8512aa1ad0c4e65f568132bf5be9035155c67225db518acd4d64736f6c63430008180033","sourceMap":"1481:7515:118:-:0;;;2059:460;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2140:10;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;1693:51:165;1666:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;2166:30:118;::::1;2162:81;;2219:13;;-1:-1:-1::0;;;2219:13:118::1;;;;;;;;;;;2162:81;2282:2;2256:16;:23;:28;2252:82;;;2307:16;;-1:-1:-1::0;;;2307:16:118::1;;;;;;;;;;;2252:82;2349:6;2344:119;2365:16;:23;2361:1;:27;2344:119;;;2448:4;2409:15;:36;2425:16;2442:1;2425:19;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;2409:36:118::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;2409:36:118;:43;;-1:-1:-1;;2409:43:118::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;2390:3:118::1;2344:119;;;-1:-1:-1::0;;2473:9:118::1;:39:::0;;-1:-1:-1;;;;;;2473:39:118::1;-1:-1:-1::0;;;;;2473:39:118;;;::::1;::::0;;;::::1;::::0;;1481:7515;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:177:165:-;93:13;;-1:-1:-1;;;;;135:31:165;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:1214;432:6;440;493:2;481:9;472:7;468:23;464:32;461:52;;;509:1;506;499:12;461:52;532:40;562:9;532:40;:::i;:::-;591:2;622:18;;;616:25;522:50;;-1:-1:-1;591:2:165;-1:-1:-1;;;;;690:14:165;;;687:34;;;717:1;714;707:12;687:34;755:6;744:9;740:22;730:32;;800:7;793:4;789:2;785:13;781:27;771:55;;822:1;819;812:12;771:55;851:2;845:9;873:2;869;866:10;863:36;;;879:18;;:::i;:::-;925:2;922:1;918:10;957:2;951:9;1020:2;1016:7;1011:2;1007;1003:11;999:25;991:6;987:38;1075:6;1063:10;1060:22;1055:2;1043:10;1040:18;1037:46;1034:72;;;1086:18;;:::i;:::-;1122:2;1115:22;1172:18;;;1206:15;;;;-1:-1:-1;1248:11:165;;;1244:20;;;1276:19;;;1273:39;;;1308:1;1305;1298:12;1273:39;1332:11;;;;1352:159;1368:6;1363:3;1360:15;1352:159;;;1434:34;1464:3;1434:34;:::i;:::-;1422:47;;1385:12;;;;1489;;;;1352:159;;;1530:6;1520:16;;;;;;;;328:1214;;;;;:::o;1755:127::-;1816:10;1811:3;1807:20;1804:1;1797:31;1847:4;1844:1;1837:15;1871:4;1868:1;1861:15;1755:127;1481:7515:118;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80638a87551211610097578063ccbfc6ed11610066578063ccbfc6ed14610218578063d70aa0ee1461022b578063e9ba23631461023e578063f2fde38b1461025157600080fd5b80638a875512146101be5780638da5cb5b146101e15780639c5c5ce7146101f2578063c34b44a01461020557600080fd5b80634e2984e4116100d35780634e2984e414610152578063715018a61461019057806378e751a6146101985780637d963e6f146101ab57600080fd5b806309f29c09146100fa57806317f67a151461010f5780633e8e6e8b1461013f575b600080fd5b61010d610108366004610fba565b610264565b005b61012261011d366004611088565b610326565b6040516001600160a01b0390911681526020015b60405180910390f35b61012261014d36600461110f565b61052f565b610180610160366004610fba565b805160208183018101805160038252928201919093012091525460ff1681565b6040519015158152602001610136565b61010d6105d9565b600154610122906001600160a01b031681565b61010d6101b936600461112c565b6105ed565b6101806101cc36600461110f565b60026020526000908152604090205460ff1681565b6000546001600160a01b0316610122565b61010d61020036600461110f565b6106a5565b61010d61021336600461110f565b61070f565b61010d61022636600461112c565b6107cb565b61010d61023936600461110f565b610890565b61012261024c36600461116e565b610950565b61010d61025f36600461110f565b610ade565b61026c610b1c565b6001546040516000916001600160a01b03169061028a908490611274565b6000604051808303816000865af19150503d80600081146102c7576040519150601f19603f3d011682016040523d82523d6000602084013e6102cc565b606091505b50509050806103225760405162461bcd60e51b815260206004820152601f60248201527f476174657761793a2063616c6c20746f20666163746f7279206661696c65640060448201526064015b60405180910390fd5b5050565b60006001600160a01b03861661034f5760405163d92e233d60e01b815260040160405180910390fd5b831580159061035d57504284105b1561037f57828260405163019fcfdb60e31b8152600401610319929190611290565b60006104216103e588888860405160200161039c939291906112eb565b604051602081830303815290604052805190602001207f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b4992505050565b6001600160a01b03811660009081526002602052604090205490915060ff166104685760405163579e40b960e11b81526001600160a01b0382166004820152602401610319565b6003848460405161047a92919061135a565b9081526040519081900360200190205460ff16156104af5783836040516314dbff3f60e31b8152600401610319929190611290565b60015460405163474a95ff60e11b81526001600160a01b0390911690638e952bfe906104e1908a908a9060040161136a565b6020604051808303816000875af1158015610500573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610524919061138e565b979650505050505050565b60006001600160a01b0382166105585760405163d92e233d60e01b815260040160405180910390fd5b6001546001600160a01b0316638e952bfe8361057381610b73565b6040518363ffffffff1660e01b815260040161059092919061136a565b6020604051808303816000875af11580156105af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d3919061138e565b92915050565b6105e1610b1c565b6105eb6000610b89565b565b6105f5610b1c565b6003828260405161060792919061135a565b9081526040519081900360200190205460ff1661063b5781816040516337d70afd60e11b8152600401610319929190611290565b6003828260405161064d92919061135a565b908152604051908190036020018120805460ff19169055610671908390839061135a565b604051908190038120907fb54b0481f674d73e0a7e0805771909ebd61fadc85286160239121febb142fabf90600090a25050565b6106ad610b1c565b60015460405163f2fde38b60e01b81526001600160a01b0383811660048301529091169063f2fde38b90602401600060405180830381600087803b1580156106f457600080fd5b505af1158015610708573d6000803e3d6000fd5b5050505050565b610717610b1c565b6001600160a01b03811661073e5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526002602052604090205460ff16610782576040516309d0bb2d60e21b81526001600160a01b0382166004820152602401610319565b6001600160a01b038116600081815260026020526040808220805460ff19169055517f99a705a3c2c3339d0051f56b36a60fef91e30142c93353002617999f27aec4af9190a250565b6107d3610b1c565b600382826040516107e592919061135a565b9081526040519081900360200190205460ff161561081a578181604051638bf3b1f160e01b8152600401610319929190611290565b60016003838360405161082e92919061135a565b908152604051908190036020018120805492151560ff199093169290921790915561085c908390839061135a565b604051908190038120907f2cb4d732f179a7333da89a4da3f3f9a9cbe3f6d7ac090ab062c69c303da32ff790600090a25050565b610898610b1c565b6001600160a01b0381166108bf5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526002602052604090205460ff161561090457604051630912922160e11b81526001600160a01b0382166004820152602401610319565b6001600160a01b038116600081815260026020526040808220805460ff19166001179055517fc031114b6ddff79d71c2554dbce316b1327bb3dad01c60b76d8e8b23ff27ea289190a250565b60006001600160a01b0388166109795760405163d92e233d60e01b815260040160405180910390fd5b831580159061098757504284105b156109a957828260405163019fcfdb60e31b8152600401610319929190611290565b60006109ca6103e58a8a8a8a8a60405160200161039c9594939291906113dd565b6001600160a01b03811660009081526002602052604090205490915060ff16610a115760405163579e40b960e11b81526001600160a01b0382166004820152602401610319565b60038484604051610a2392919061135a565b9081526040519081900360200190205460ff1615610a585783836040516314dbff3f60e31b8152600401610319929190611290565b600154604051637f2e6acd60e11b81526001600160a01b039091169063fe5cd59a90610a8e908c908c908c908c90600401611463565b6020604051808303816000875af1158015610aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad1919061138e565b9998505050505050505050565b610ae6610b1c565b6001600160a01b038116610b1057604051631e4fbdf760e01b815260006004820152602401610319565b610b1981610b89565b50565b6000546001600160a01b031633146105eb5760405163118cdaa760e01b8152336004820152602401610319565b600080600080610b598686610bd9565b925092509250610b698282610c26565b5090949350505050565b60606105d36001600160a01b0383166014610cdf565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060008351604103610c135760208401516040850151606086015160001a610c0588828585610e5f565b955095509550505050610c1f565b50508151600091506002905b9250925092565b6000826003811115610c3a57610c3a61149a565b03610c43575050565b6001826003811115610c5757610c5761149a565b03610c755760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115610c8957610c8961149a565b03610caa5760405163fce698f760e01b815260048101829052602401610319565b6003826003811115610cbe57610cbe61149a565b03610322576040516335e2f38360e21b815260048101829052602401610319565b6060826000610cef8460026114c6565b610cfa9060026114dd565b67ffffffffffffffff811115610d1257610d12610f2e565b6040519080825280601f01601f191660200182016040528015610d3c576020820181803683370190505b509050600360fc1b81600081518110610d5757610d576114f0565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610d8657610d866114f0565b60200101906001600160f81b031916908160001a9053506000610daa8560026114c6565b610db59060016114dd565b90505b6001811115610e2d576f181899199a1a9b1b9c1cb0b131b232b360811b83600f1660108110610de957610de96114f0565b1a60f81b828281518110610dff57610dff6114f0565b60200101906001600160f81b031916908160001a90535060049290921c91610e2681611506565b9050610db8565b508115610e575760405163e22e27eb60e01b81526004810186905260248101859052604401610319565b949350505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610e9a5750600091506003905082610f24565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610eee573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610f1a57506000925060019150829050610f24565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115610f5f57610f5f610f2e565b604051601f8501601f19908116603f01168101908282118183101715610f8757610f87610f2e565b81604052809350858152868686011115610fa057600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215610fcc57600080fd5b813567ffffffffffffffff811115610fe357600080fd5b8201601f81018413610ff457600080fd5b610e5784823560208401610f44565b6001600160a01b0381168114610b1957600080fd5b600082601f83011261102957600080fd5b61103883833560208501610f44565b9392505050565b60008083601f84011261105157600080fd5b50813567ffffffffffffffff81111561106957600080fd5b60208301915083602082850101111561108157600080fd5b9250929050565b6000806000806000608086880312156110a057600080fd5b85356110ab81611003565b9450602086013567ffffffffffffffff808211156110c857600080fd5b6110d489838a01611018565b95506040880135945060608801359150808211156110f157600080fd5b506110fe8882890161103f565b969995985093965092949392505050565b60006020828403121561112157600080fd5b813561103881611003565b6000806020838503121561113f57600080fd5b823567ffffffffffffffff81111561115657600080fd5b6111628582860161103f565b90969095509350505050565b600080600080600080600060a0888a03121561118957600080fd5b873561119481611003565b9650602088013567ffffffffffffffff808211156111b157600080fd5b6111bd8b838c01611018565b975060408a01359150808211156111d357600080fd5b818a0191508a601f8301126111e757600080fd5b8135818111156111f657600080fd5b8b60208260051b850101111561120b57600080fd5b6020830197508096505060608a0135945060808a013591508082111561123057600080fd5b5061123d8a828b0161103f565b989b979a50959850939692959293505050565b60005b8381101561126b578181015183820152602001611253565b50506000910152565b60008251611286818460208701611250565b9190910192915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600081518084526112d7816020860160208601611250565b601f01601f19169290920160200192915050565b60808152600061132860808301601e81527f417574686f72697a65204f4e434841494e4944206465706c6f796d656e740000602082015260400190565b6001600160a01b0386166020840152828103604084015261134981866112bf565b915050826060830152949350505050565b8183823760009101908152919050565b6001600160a01b0383168152604060208201819052600090610e57908301846112bf565b6000602082840312156113a057600080fd5b815161103881611003565b81835260006001600160fb1b038311156113c457600080fd5b8260051b80836020870137939093016020019392505050565b60a08152600061141a60a08301601e81527f417574686f72697a65204f4e434841494e4944206465706c6f796d656e740000602082015260400190565b6001600160a01b0388166020840152828103604084015261143b81886112bf565b905082810360608401526114508186886113ab565b9150508260808301529695505050505050565b6001600160a01b0385168152606060208201819052600090611487908301866112bf565b82810360408401526105248185876113ab565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176105d3576105d36114b0565b808201808211156105d3576105d36114b0565b634e487b7160e01b600052603260045260246000fd5b600081611515576115156114b0565b50600019019056fea26469706673582212201e29a8c437bfce8512aa1ad0c4e65f568132bf5be9035155c67225db518acd4d64736f6c63430008180033","sourceMap":"1481:7515:118:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8810:184;;;;;;:::i;:::-;;:::i;:::-;;4125:1013;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2953:32:165;;;2935:51;;2923:2;2908:18;4125:1013:118;;;;;;;;7236:270;;;;;;:::i;:::-;;:::i;1608:47::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3414:14:165;;3407:22;3389:41;;3377:2;3362:18;1608:47:118;3249:187:165;2293:101:141;;;:::i;1523:26:118:-;;;;;-1:-1:-1;;;;;1523:26:118;;;8096:274;;;;;;:::i;:::-;;:::i;1555:47::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1638:85:141;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;1638:85;;8513:125:118;;;;;;:::i;:::-;;:::i;3312:326::-;;;;;;:::i;:::-;;:::i;7694:275::-;;;;;;:::i;:::-;;:::i;2854:324::-;;;;;;:::i;:::-;;:::i;5912:1143::-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;8810:184:118:-;1531:13:141;:11;:13::i;:::-;8905:9:118::1;::::0;8897:29:::1;::::0;8880:12:::1;::::0;-1:-1:-1;;;;;8905:9:118::1;::::0;8897:29:::1;::::0;8921:4;;8897:29:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8879:47;;;8944:7;8936:51;;;::::0;-1:-1:-1;;;8936:51:118;;6143:2:165;8936:51:118::1;::::0;::::1;6125:21:165::0;6182:2;6162:18;;;6155:30;6221:33;6201:18;;;6194:61;6272:18;;8936:51:118::1;;;;;;;;;8869:125;8810:184:::0;:::o;4125:1013::-;4307:7;-1:-1:-1;;;;;4330:27:118;;4326:78;;4380:13;;-1:-1:-1;;;4380:13:118;;;;;;;;;;;4326:78;4418:20;;;;;:57;;;4460:15;4442;:33;4418:57;4414:122;;;4515:9;;4498:27;;-1:-1:-1;;;4498:27:118;;;;;;;;;:::i;4414:122::-;4546:14;4563:306;4590:246;4703:13;4738:4;4764:15;4617:180;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4590:221;;;;;;1403:34:157;1298:14;1390:48;;;1499:4;1492:25;;;;1597:4;1581:21;;;1222:460;4590:246:118;4850:9;;4563:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4563:13:118;;-1:-1:-1;;;4563:306:118:i;:::-;-1:-1:-1;;;;;4885:23:118;;;;;;:15;:23;;;;;;4546:323;;-1:-1:-1;4885:23:118;;4880:86;;4931:24;;-1:-1:-1;;;4931:24:118;;-1:-1:-1;;;;;2953:32:165;;4931:24:118;;;2935:51:165;2908:18;;4931:24:118;2789:203:165;4880:86:118;4980:17;4998:9;;4980:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4976:93;;;5048:9;;5031:27;;-1:-1:-1;;;5031:27:118;;;;;;;;;:::i;4976:93::-;5086:9;;:45;;-1:-1:-1;;;5086:45:118;;-1:-1:-1;;;;;5086:9:118;;;;:24;;:45;;5111:13;;5126:4;;5086:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5079:52;4125:1013;-1:-1:-1;;;;;;;4125:1013:118:o;7236:270::-;7310:7;-1:-1:-1;;;;;7333:27:118;;7329:78;;7383:13;;-1:-1:-1;;;7383:13:118;;;;;;;;;;;7329:78;7424:9;;-1:-1:-1;;;;;7424:9:118;:24;7449:13;7464:34;7449:13;7464:19;:34::i;:::-;7424:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7417:82;7236:270;-1:-1:-1;;7236:270:118:o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;8096:274:118:-;1531:13:141;:11;:13::i;:::-;8182:17:118::1;8200:9;;8182:28;;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;;::::1;;8177:97;;8253:9;;8233:30;;-1:-1:-1::0;;;8233:30:118::1;;;;;;;;;:::i;8177:97::-;8291:17;8309:9;;8291:28;;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;8284:35;;-1:-1:-1;;8284:35:118::1;::::0;;8335:28:::1;::::0;8353:9;;;;8335:28:::1;:::i;:::-;;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;8096:274:::0;;:::o;8513:125::-;1531:13:141;:11;:13::i;:::-;8594:9:118::1;::::0;:37:::1;::::0;-1:-1:-1;;;8594:37:118;;-1:-1:-1;;;;;2953:32:165;;;8594:37:118::1;::::0;::::1;2935:51:165::0;8594:9:118;;::::1;::::0;:27:::1;::::0;2908:18:165;;8594:37:118::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8513:125:::0;:::o;3312:326::-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;3383:20:118;::::1;3379:71;;3426:13;;-1:-1:-1::0;;;3426:13:118::1;;;;;;;;;;;3379:71;-1:-1:-1::0;;;;;3465:23:118;::::1;;::::0;;;:15:::1;:23;::::0;;;;;::::1;;3460:94;;3511:32;::::0;-1:-1:-1;;;3511:32:118;;-1:-1:-1;;;;;2953:32:165;;3511::118::1;::::0;::::1;2935:51:165::0;2908:18;;3511:32:118::1;2789:203:165::0;3460:94:118::1;-1:-1:-1::0;;;;;3571:23:118;::::1;;::::0;;;:15:::1;:23;::::0;;;;;3564:30;;-1:-1:-1;;3564:30:118::1;::::0;;3610:21;::::1;::::0;3571:23;3610:21:::1;3312:326:::0;:::o;7694:275::-;1531:13:141;:11;:13::i;:::-;7778:17:118::1;7796:9;;7778:28;;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;;::::1;;7774:100;;;7853:9;;7829:34;;-1:-1:-1::0;;;7829:34:118::1;;;;;;;;;:::i;7774:100::-;7915:4;7884:17;7902:9;;7884:28;;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:35;;;::::1;;-1:-1:-1::0;;7884:35:118;;::::1;::::0;;;::::1;::::0;;;7935:27:::1;::::0;7952:9;;;;7935:27:::1;:::i;:::-;;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;7694:275:::0;;:::o;2854:324::-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;2926:20:118;::::1;2922:71;;2969:13;;-1:-1:-1::0;;;2969:13:118::1;;;;;;;;;;;2922:71;-1:-1:-1::0;;;;;3007:23:118;::::1;;::::0;;;:15:::1;:23;::::0;;;;;::::1;;3003:90;;;3053:29;::::0;-1:-1:-1;;;3053:29:118;;-1:-1:-1;;;;;2953:32:165;;3053:29:118::1;::::0;::::1;2935:51:165::0;2908:18;;3053:29:118::1;2789:203:165::0;3003:90:118::1;-1:-1:-1::0;;;;;3103:23:118;::::1;;::::0;;;:15:::1;:23;::::0;;;;;:30;;-1:-1:-1;;3103:30:118::1;3129:4;3103:30;::::0;;3149:22;::::1;::::0;3103:23;3149:22:::1;2854:324:::0;:::o;5912:1143::-;6154:7;-1:-1:-1;;;;;6177:27:118;;6173:78;;6227:13;;-1:-1:-1;;;6227:13:118;;;;;;;;;;;6173:78;6265:20;;;;;:57;;;6307:15;6289;:33;6265:57;6261:122;;;6362:9;;6345:27;;-1:-1:-1;;;6345:27:118;;;;;;;;;:::i;6261:122::-;6393:14;6410:342;6437:282;6550:13;6585:4;6611:14;;6647:15;6464:216;;;;;;;;;;;;:::i;6410:342::-;-1:-1:-1;;;;;6768:23:118;;;;;;:15;:23;;;;;;6393:359;;-1:-1:-1;6768:23:118;;6763:86;;6814:24;;-1:-1:-1;;;6814:24:118;;-1:-1:-1;;;;;2953:32:165;;6814:24:118;;;2935:51:165;2908:18;;6814:24:118;2789:203:165;6763:86:118;6863:17;6881:9;;6863:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;6859:93;;;6931:9;;6914:27;;-1:-1:-1;;;6914:27:118;;;;;;;;;:::i;6859:93::-;6969:9;;:79;;-1:-1:-1;;;6969:79:118;;-1:-1:-1;;;;;6969:9:118;;;;:42;;:79;;7012:13;;7027:4;;7033:14;;;;6969:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6962:86;5912:1143;-1:-1:-1;;;;;;;;;5912:1143:118:o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;2935:51:165::0;2908:18;;2672:31:141::1;2789:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;2935:51:165;2908:18;;1901:40:141;2789:203:165;3702:255:156;3780:7;3800:17;3819:18;3839:16;3859:27;3870:4;3876:9;3859:10;:27::i;:::-;3799:87;;;;;;3896:28;3908:5;3915:8;3896:11;:28::i;:::-;-1:-1:-1;3941:9:156;;3702:255;-1:-1:-1;;;;3702:255:156:o;2689:148:155:-;2747:13;2779:51;-1:-1:-1;;;;;2791:22:155;;375:2;2779:11;:51::i;2912:187:141:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;2129:766:156:-;2210:7;2219:12;2233:7;2256:9;:16;2276:2;2256:22;2252:637;;2592:4;2577:20;;2571:27;2641:4;2626:20;;2620:27;2698:4;2683:20;;2677:27;2294:9;2669:36;2739:25;2750:4;2669:36;2571:27;2620;2739:10;:25::i;:::-;2732:32;;;;;;;;;;;2252:637;-1:-1:-1;;2860:16:156;;2811:1;;-1:-1:-1;2815:35:156;;2252:637;2129:766;;;;;:::o;7196:532::-;7291:20;7282:5;:29;;;;;;;;:::i;:::-;;7278:444;;7196:532;;:::o;7278:444::-;7387:29;7378:5;:38;;;;;;;;:::i;:::-;;7374:348;;7439:23;;-1:-1:-1;;;7439:23:156;;;;;;;;;;;7374:348;7492:35;7483:5;:44;;;;;;;;:::i;:::-;;7479:243;;7550:46;;-1:-1:-1;;;7550:46:156;;;;;10617:25:165;;;10590:18;;7550:46:156;10471:177:165;7479:243:156;7626:30;7617:5;:39;;;;;;;;:::i;:::-;;7613:109;;7679:32;;-1:-1:-1;;;7679:32:156;;;;;10617:25:165;;;10590:18;;7679:32:156;10471:177:165;2005:525:155;2080:13;2126:5;2105:18;2173:10;2177:6;2173:1;:10;:::i;:::-;:14;;2186:1;2173:14;:::i;:::-;2163:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2163:25:155;;2141:47;;-1:-1:-1;;;2198:6:155;2205:1;2198:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2198:15:155;;;;;;;;;-1:-1:-1;;;2223:6:155;2230:1;2223:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2223:15:155;;;;;;;;-1:-1:-1;2253:9:155;2265:10;2269:6;2265:1;:10;:::i;:::-;:14;;2278:1;2265:14;:::i;:::-;2253:26;;2248:140;2285:1;2281;:5;2248:140;;;-1:-1:-1;;;2330:10:155;2343:3;2330:16;2319:28;;;;;;;:::i;:::-;;;;2307:6;2314:1;2307:9;;;;;;;;:::i;:::-;;;;:40;-1:-1:-1;;;;;2307:40:155;;;;;;;;-1:-1:-1;2376:1:155;2361:16;;;;;2288:3;;;:::i;:::-;;;2248:140;;;-1:-1:-1;2401:15:155;;2397:96;;2439:43;;-1:-1:-1;;;2439:43:155;;;;;11717:25:165;;;11758:18;;;11751:34;;;11690:18;;2439:43:155;11543:248:165;2397:96:155;2516:6;2005:525;-1:-1:-1;;;;2005:525:155:o;5140:1530:156:-;5266:7;;;6199:66;6186:79;;6182:164;;;-1:-1:-1;6297:1:156;;-1:-1:-1;6301:30:156;;-1:-1:-1;6333:1:156;6281:54;;6182:164;6457:24;;;6440:14;6457:24;;;;;;;;;12023:25:165;;;12096:4;12084:17;;12064:18;;;12057:45;;;;12118:18;;;12111:34;;;12161:18;;;12154:34;;;6457:24:156;;11995:19:165;;6457:24:156;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6457:24:156;;-1:-1:-1;;6457:24:156;;;-1:-1:-1;;;;;;;6495:20:156;;6491:113;;-1:-1:-1;6547:1:156;;-1:-1:-1;6551:29:156;;-1:-1:-1;6547:1:156;;-1:-1:-1;6531:62:156;;6491:113;6622:6;-1:-1:-1;6630:20:156;;-1:-1:-1;6630:20:156;;-1:-1:-1;5140:1530:156;;;;;;;;;:::o;14:127:165:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:631;210:5;240:18;281:2;273:6;270:14;267:40;;;287:18;;:::i;:::-;362:2;356:9;330:2;416:15;;-1:-1:-1;;412:24:165;;;438:2;408:33;404:42;392:55;;;462:18;;;482:22;;;459:46;456:72;;;508:18;;:::i;:::-;548:10;544:2;537:22;577:6;568:15;;607:6;599;592:22;647:3;638:6;633:3;629:16;626:25;623:45;;;664:1;661;654:12;623:45;714:6;709:3;702:4;694:6;690:17;677:44;769:1;762:4;753:6;745;741:19;737:30;730:41;;;;146:631;;;;;:::o;782:449::-;850:6;903:2;891:9;882:7;878:23;874:32;871:52;;;919:1;916;909:12;871:52;959:9;946:23;992:18;984:6;981:30;978:50;;;1024:1;1021;1014:12;978:50;1047:22;;1100:4;1092:13;;1088:27;-1:-1:-1;1078:55:165;;1129:1;1126;1119:12;1078:55;1152:73;1217:7;1212:2;1199:16;1194:2;1190;1186:11;1152:73;:::i;1236:131::-;-1:-1:-1;;;;;1311:31:165;;1301:42;;1291:70;;1357:1;1354;1347:12;1372:221;1415:5;1468:3;1461:4;1453:6;1449:17;1445:27;1435:55;;1486:1;1483;1476:12;1435:55;1508:79;1583:3;1574:6;1561:20;1554:4;1546:6;1542:17;1508:79;:::i;:::-;1499:88;1372:221;-1:-1:-1;;;1372:221:165:o;1598:347::-;1649:8;1659:6;1713:3;1706:4;1698:6;1694:17;1690:27;1680:55;;1731:1;1728;1721:12;1680:55;-1:-1:-1;1754:20:165;;1797:18;1786:30;;1783:50;;;1829:1;1826;1819:12;1783:50;1866:4;1858:6;1854:17;1842:29;;1918:3;1911:4;1902:6;1894;1890:19;1886:30;1883:39;1880:59;;;1935:1;1932;1925:12;1880:59;1598:347;;;;;:::o;1950:834::-;2057:6;2065;2073;2081;2089;2142:3;2130:9;2121:7;2117:23;2113:33;2110:53;;;2159:1;2156;2149:12;2110:53;2198:9;2185:23;2217:31;2242:5;2217:31;:::i;:::-;2267:5;-1:-1:-1;2323:2:165;2308:18;;2295:32;2346:18;2376:14;;;2373:34;;;2403:1;2400;2393:12;2373:34;2426:50;2468:7;2459:6;2448:9;2444:22;2426:50;:::i;:::-;2416:60;;2523:2;2512:9;2508:18;2495:32;2485:42;;2580:2;2569:9;2565:18;2552:32;2536:48;;2609:2;2599:8;2596:16;2593:36;;;2625:1;2622;2615:12;2593:36;;2664:60;2716:7;2705:8;2694:9;2690:24;2664:60;:::i;:::-;1950:834;;;;-1:-1:-1;1950:834:165;;-1:-1:-1;2743:8:165;;2638:86;1950:834;-1:-1:-1;;;1950:834:165:o;2997:247::-;3056:6;3109:2;3097:9;3088:7;3084:23;3080:32;3077:52;;;3125:1;3122;3115:12;3077:52;3164:9;3151:23;3183:31;3208:5;3183:31;:::i;3668:409::-;3738:6;3746;3799:2;3787:9;3778:7;3774:23;3770:32;3767:52;;;3815:1;3812;3805:12;3767:52;3855:9;3842:23;3888:18;3880:6;3877:30;3874:50;;;3920:1;3917;3910:12;3874:50;3959:58;4009:7;4000:6;3989:9;3985:22;3959:58;:::i;:::-;4036:8;;3933:84;;-1:-1:-1;3668:409:165;-1:-1:-1;;;;3668:409:165:o;4082:1307::-;4225:6;4233;4241;4249;4257;4265;4273;4326:3;4314:9;4305:7;4301:23;4297:33;4294:53;;;4343:1;4340;4333:12;4294:53;4382:9;4369:23;4401:31;4426:5;4401:31;:::i;:::-;4451:5;-1:-1:-1;4507:2:165;4492:18;;4479:32;4530:18;4560:14;;;4557:34;;;4587:1;4584;4577:12;4557:34;4610:50;4652:7;4643:6;4632:9;4628:22;4610:50;:::i;:::-;4600:60;;4713:2;4702:9;4698:18;4685:32;4669:48;;4742:2;4732:8;4729:16;4726:36;;;4758:1;4755;4748:12;4726:36;4796:8;4785:9;4781:24;4771:34;;4843:7;4836:4;4832:2;4828:13;4824:27;4814:55;;4865:1;4862;4855:12;4814:55;4905:2;4892:16;4931:2;4923:6;4920:14;4917:34;;;4947:1;4944;4937:12;4917:34;5000:7;4995:2;4985:6;4982:1;4978:14;4974:2;4970:23;4966:32;4963:45;4960:65;;;5021:1;5018;5011:12;4960:65;5052:2;5048;5044:11;5034:21;;5074:6;5064:16;;;5127:2;5116:9;5112:18;5099:32;5089:42;;5184:3;5173:9;5169:19;5156:33;5140:49;;5214:2;5204:8;5201:16;5198:36;;;5230:1;5227;5220:12;5198:36;;5269:60;5321:7;5310:8;5299:9;5295:24;5269:60;:::i;:::-;4082:1307;;;;-1:-1:-1;4082:1307:165;;-1:-1:-1;4082:1307:165;;;;5243:86;;-1:-1:-1;;;4082:1307:165:o;5394:250::-;5479:1;5489:113;5503:6;5500:1;5497:13;5489:113;;;5579:11;;;5573:18;5560:11;;;5553:39;5525:2;5518:10;5489:113;;;-1:-1:-1;;5636:1:165;5618:16;;5611:27;5394:250::o;5649:287::-;5778:3;5816:6;5810:13;5832:66;5891:6;5886:3;5879:4;5871:6;5867:17;5832:66;:::i;:::-;5914:16;;;;;5649:287;-1:-1:-1;;5649:287:165:o;6301:388::-;6458:2;6447:9;6440:21;6497:6;6492:2;6481:9;6477:18;6470:34;6554:6;6546;6541:2;6530:9;6526:18;6513:48;6610:1;6581:22;;;6605:2;6577:31;;;6570:42;;;;6673:2;6652:15;;;-1:-1:-1;;6648:29:165;6633:45;6629:54;;6301:388;-1:-1:-1;6301:388:165:o;6878:271::-;6920:3;6958:5;6952:12;6985:6;6980:3;6973:19;7001:76;7070:6;7063:4;7058:3;7054:14;7047:4;7040:5;7036:16;7001:76;:::i;:::-;7131:2;7110:15;-1:-1:-1;;7106:29:165;7097:39;;;;7138:4;7093:50;;6878:271;-1:-1:-1;;6878:271:165:o;7154:610::-;7460:3;7449:9;7442:22;7423:4;7487:50;7532:3;7521:9;7517:19;6771:2;6759:15;;6806:32;6799:4;6790:14;;6783:56;6864:2;6855:12;;6694:179;7487:50;-1:-1:-1;;;;;7573:32:165;;7568:2;7553:18;;7546:60;7642:22;;;7637:2;7622:18;;7615:50;7682:33;7646:6;7700;7682:33;:::i;:::-;7674:41;;;7751:6;7746:2;7735:9;7731:18;7724:34;7154:610;;;;;;:::o;7769:271::-;7952:6;7944;7939:3;7926:33;7908:3;7978:16;;8003:13;;;7978:16;7769:271;-1:-1:-1;7769:271:165:o;8045:317::-;-1:-1:-1;;;;;8222:32:165;;8204:51;;8291:2;8286;8271:18;;8264:30;;;-1:-1:-1;;8311:45:165;;8337:18;;8329:6;8311:45;:::i;8367:251::-;8437:6;8490:2;8478:9;8469:7;8465:23;8461:32;8458:52;;;8506:1;8503;8496:12;8458:52;8538:9;8532:16;8557:31;8582:5;8557:31;:::i;8623:311::-;8711:19;;;8693:3;-1:-1:-1;;;;;8742:31:165;;8739:51;;;8786:1;8783;8776:12;8739:51;8822:6;8819:1;8815:14;8874:8;8867:5;8860:4;8855:3;8851:14;8838:45;8903:18;;;;8923:4;8899:29;;8623:311;-1:-1:-1;;;8623:311:165:o;8939:842::-;9333:3;9322:9;9315:22;9296:4;9360:50;9405:3;9394:9;9390:19;6771:2;6759:15;;6806:32;6799:4;6790:14;;6783:56;6864:2;6855:12;;6694:179;9360:50;-1:-1:-1;;;;;9446:32:165;;9441:2;9426:18;;9419:60;9515:22;;;9510:2;9495:18;;9488:50;9561:33;9519:6;9579;9561:33;:::i;:::-;9547:47;;9642:9;9634:6;9630:22;9625:2;9614:9;9610:18;9603:50;9670:61;9724:6;9716;9708;9670:61;:::i;:::-;9662:69;;;9768:6;9762:3;9751:9;9747:19;9740:35;8939:842;;;;;;;;:::o;9786:548::-;-1:-1:-1;;;;;10051:32:165;;10033:51;;10120:2;10115;10100:18;;10093:30;;;-1:-1:-1;;10146:45:165;;10172:18;;10164:6;10146:45;:::i;:::-;10239:9;10231:6;10227:22;10222:2;10211:9;10207:18;10200:50;10267:61;10321:6;10313;10305;10267:61;:::i;10339:127::-;10400:10;10395:3;10391:20;10388:1;10381:31;10431:4;10428:1;10421:15;10455:4;10452:1;10445:15;10835:127;10896:10;10891:3;10887:20;10884:1;10877:31;10927:4;10924:1;10917:15;10951:4;10948:1;10941:15;10967:168;11040:9;;;11071;;11088:15;;;11082:22;;11068:37;11058:71;;11109:18;;:::i;11140:125::-;11205:9;;;11226:10;;;11223:36;;;11239:18;;:::i;11270:127::-;11331:10;11326:3;11322:20;11319:1;11312:31;11362:4;11359:1;11352:15;11386:4;11383:1;11376:15;11402:136;11441:3;11469:5;11459:39;;11478:18;;:::i;:::-;-1:-1:-1;;;11514:18:165;;11402:136::o","linkReferences":{}},"methodIdentifiers":{"approveSignature(bytes)":"7d963e6f","approveSigner(address)":"d70aa0ee","approvedSigners(address)":"8a875512","callFactory(bytes)":"09f29c09","deployIdentityForWallet(address)":"3e8e6e8b","deployIdentityWithSalt(address,string,uint256,bytes)":"17f67a15","deployIdentityWithSaltAndManagementKeys(address,string,bytes32[],uint256,bytes)":"e9ba2363","idFactory()":"78e751a6","owner()":"8da5cb5b","renounceOwnership()":"715018a6","revokeSignature(bytes)":"ccbfc6ed","revokeSigner(address)":"c34b44a0","revokedSignatures(bytes)":"4e2984e4","transferFactoryOwnership(address)":"9c5c5ce7","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"idFactoryAddress\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"signersToApprove\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"RevokedSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"SignatureAlreadyRevoked\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"SignatureNotRevoked\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"SignerAlreadyApproved\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"SignerAlreadyNotApproved\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManySigners\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"UnapprovedSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"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\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"SignatureApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"SignatureRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"SignerApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"SignerRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"approveSignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"approveSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"approvedSigners\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"callFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"identityOwner\",\"type\":\"address\"}],\"name\":\"deployIdentityForWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"identityOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"salt\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"signatureExpiry\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"deployIdentityWithSalt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"identityOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"salt\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"managementKeys\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"signatureExpiry\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"deployIdentityWithSaltAndManagementKeys\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"idFactory\",\"outputs\":[{\"internalType\":\"contract IdFactory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"revokeSignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"revokeSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"revokedSignatures\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferFactoryOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{\"approveSignature(bytes)\":{\"details\":\"Remove a signature from the revoke list.\",\"params\":{\"signature\":\"the signature to approve.\"}},\"approveSigner(address)\":{\"details\":\"Approve a signer to sign ONCHAINID deployments. If the Gateway is setup to require signature, only deployments requested with a valid signature from an approved signer will be accepted. If the gateway does not require a signature,\",\"params\":{\"signer\":\"the signer address to approve.\"}},\"callFactory(bytes)\":{\"details\":\"Call a function on the factory. Only the owner of the Gateway can call this method.\",\"params\":{\"data\":\"the data to call on the factory.\"}},\"constructor\":{\"details\":\"Constructor for the ONCHAINID Factory Gateway.\",\"params\":{\"idFactoryAddress\":\"the address of the factory to operate (the Gateway must be owner of the Factory).\"}},\"deployIdentityForWallet(address)\":{\"details\":\"Deploy an ONCHAINID using a factory using the identityOwner address as salt.\",\"params\":{\"identityOwner\":\"the address to set as a management key.\"}},\"deployIdentityWithSalt(address,string,uint256,bytes)\":{\"details\":\"Deploy an ONCHAINID using a factory. The operation must be signed by an approved public key. This method allow to deploy an ONCHAINID using a custom salt.\",\"params\":{\"identityOwner\":\"the address to set as a management key.\",\"salt\":\"to use for the deployment.\",\"signature\":\"the approval containing the salt and the identityOwner address.\",\"signatureExpiry\":\"the block timestamp where the signature will expire.\"}},\"deployIdentityWithSaltAndManagementKeys(address,string,bytes32[],uint256,bytes)\":{\"details\":\"Deploy an ONCHAINID using a factory. The operation must be signed by an approved public key. This method allow to deploy an ONCHAINID using a custom salt and a custom list of management keys. Note that the identity Owner address won't be added as a management keys, if this is desired, the key hash must be listed in the managementKeys array.\",\"params\":{\"identityOwner\":\"the address to set as a management key.\",\"managementKeys\":\"the list of management keys to add to the ONCHAINID.\",\"salt\":\"to use for the deployment.\",\"signature\":\"the approval containing the salt and the identityOwner address.\",\"signatureExpiry\":\"the block timestamp where the signature will expire.\"}},\"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.\"},\"revokeSignature(bytes)\":{\"details\":\"Revoke a signature, if the signature is used to deploy an ONCHAINID, the deployment would be rejected.\",\"params\":{\"signature\":\"the signature to revoke.\"}},\"revokeSigner(address)\":{\"details\":\"Revoke a signer to sign ONCHAINID deployments.\",\"params\":{\"signer\":\"the signer address to revoke.\"}},\"transferFactoryOwnership(address)\":{\"details\":\"Transfer the ownership of the factory to a new owner.\",\"params\":{\"newOwner\":\"the new owner of the factory.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"ExpiredSignature(bytes)\":[{\"notice\":\"A requested ONCHAINID deployment was requested with a signature that expired.\"}],\"RevokedSignature(bytes)\":[{\"notice\":\"A requested ONCHAINID deployment was requested with a signature revoked.\"}],\"SignatureAlreadyRevoked(bytes)\":[{\"notice\":\"Attempted to revoke a signature that was already revoked.\"}],\"SignatureNotRevoked(bytes)\":[{\"notice\":\"Attempted to approve a signature that was not revoked.\"}],\"SignerAlreadyApproved(address)\":[{\"notice\":\"The signed attempted to add was already approved.\"}],\"SignerAlreadyNotApproved(address)\":[{\"notice\":\"The signed attempted to remove was not approved.\"}],\"TooManySigners()\":[{\"notice\":\"The maximum number of signers was reached at deployment.\"}],\"UnapprovedSigner(address)\":[{\"notice\":\"A requested ONCHAINID deployment was requested and signer by a non approved signer.\"}],\"ZeroAddress()\":[{\"notice\":\"A required parameter was set to the Zero address.\"}]},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onchainid/gateway/Gateway.sol\":\"IdentityGateway\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/onchainid/factory/IIdFactory.sol\":{\"keccak256\":\"0x7176e78517381538ff4cc3fe4a4b9adb0a05d86e8750836801010af3cc2b9cc4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ea9875f1fdde42326e9bd66aa7605811f886bff7125af16579ba71fb3aa29d9e\",\"dweb:/ipfs/QmbyoWxwe2D4sdSFs191ukHZnS1uEpdKm9a85FBGK51Cy3\"]},\"contracts/onchainid/factory/IdFactory.sol\":{\"keccak256\":\"0x5be85cd708bd30cd2e9617c1f818b6e1bba0c7af069c3ce9bfca0cbcac1bd306\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://564c8686205a09676e966e38750dfb59d66efd211dca8c54dbe03daf490acbd9\",\"dweb:/ipfs/QmRd2sbme9SJjpUXw5wMe3Bsz67KuPfbVT5tUC5Vzzxm9i\"]},\"contracts/onchainid/gateway/Gateway.sol\":{\"keccak256\":\"0x643ae0f84b4fd85c6b202a7a9f7d0b7961b70584acf703698036868a82dd465f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7e3b53a8fcf9944a801e75143eb09c2b8f2efcf2cadad4d57efe12cd08f932fc\",\"dweb:/ipfs/QmRsNfM4kponuGxBV6fHwXYZd9vBTgXqgphdE6YR2MiR6Q\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IImplementationAuthority.sol\":{\"keccak256\":\"0xa46065896246e1a610410ae59828978d8cd6d04527b636e1e7399217941bcf09\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f8c493c0291774cf2da1f84e928c8999c36f7640e6fef82621cd990564a7dd80\",\"dweb:/ipfs/QmPxDk18X86b8FKG91ABkrrkX6fJa2Z8S4jjXDniQ2jvwa\"]},\"contracts/onchainid/proxy/IdentityProxy.sol\":{\"keccak256\":\"0x6434c7e5409fa5264c1fa8ae24f948de98c9620d27af508a36bdee21cf743505\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cfdaa1b2a52b447b821d035b668a32accb63879ccb229069f290ff8b22f9d9b4\",\"dweb:/ipfs/QmdHhsyPD1EJbBtq3APt1Dfx2ekBRrEAVTuEbmqBvtTUai\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"idFactoryAddress","type":"address"},{"internalType":"address[]","name":"signersToApprove","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"bytes","name":"signature","type":"bytes"}],"type":"error","name":"ExpiredSignature"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"bytes","name":"signature","type":"bytes"}],"type":"error","name":"RevokedSignature"},{"inputs":[{"internalType":"bytes","name":"signature","type":"bytes"}],"type":"error","name":"SignatureAlreadyRevoked"},{"inputs":[{"internalType":"bytes","name":"signature","type":"bytes"}],"type":"error","name":"SignatureNotRevoked"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"type":"error","name":"SignerAlreadyApproved"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"type":"error","name":"SignerAlreadyNotApproved"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"StringsInsufficientHexLength"},{"inputs":[],"type":"error","name":"TooManySigners"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"type":"error","name":"UnapprovedSigner"},{"inputs":[],"type":"error","name":"ZeroAddress"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes","name":"signature","type":"bytes","indexed":true}],"type":"event","name":"SignatureApproved","anonymous":false},{"inputs":[{"internalType":"bytes","name":"signature","type":"bytes","indexed":true}],"type":"event","name":"SignatureRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"signer","type":"address","indexed":true}],"type":"event","name":"SignerApproved","anonymous":false},{"inputs":[{"internalType":"address","name":"signer","type":"address","indexed":true}],"type":"event","name":"SignerRevoked","anonymous":false},{"inputs":[{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"approveSignature"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"approveSigner"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"approvedSigners","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"callFactory"},{"inputs":[{"internalType":"address","name":"identityOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deployIdentityForWallet","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"identityOwner","type":"address"},{"internalType":"string","name":"salt","type":"string"},{"internalType":"uint256","name":"signatureExpiry","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"deployIdentityWithSalt","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"identityOwner","type":"address"},{"internalType":"string","name":"salt","type":"string"},{"internalType":"bytes32[]","name":"managementKeys","type":"bytes32[]"},{"internalType":"uint256","name":"signatureExpiry","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"deployIdentityWithSaltAndManagementKeys","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"idFactory","outputs":[{"internalType":"contract IdFactory","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"revokeSignature"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeSigner"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function","name":"revokedSignatures","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferFactoryOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"approveSignature(bytes)":{"details":"Remove a signature from the revoke list.","params":{"signature":"the signature to approve."}},"approveSigner(address)":{"details":"Approve a signer to sign ONCHAINID deployments. If the Gateway is setup to require signature, only deployments requested with a valid signature from an approved signer will be accepted. If the gateway does not require a signature,","params":{"signer":"the signer address to approve."}},"callFactory(bytes)":{"details":"Call a function on the factory. Only the owner of the Gateway can call this method.","params":{"data":"the data to call on the factory."}},"constructor":{"details":"Constructor for the ONCHAINID Factory Gateway.","params":{"idFactoryAddress":"the address of the factory to operate (the Gateway must be owner of the Factory)."}},"deployIdentityForWallet(address)":{"details":"Deploy an ONCHAINID using a factory using the identityOwner address as salt.","params":{"identityOwner":"the address to set as a management key."}},"deployIdentityWithSalt(address,string,uint256,bytes)":{"details":"Deploy an ONCHAINID using a factory. The operation must be signed by an approved public key. This method allow to deploy an ONCHAINID using a custom salt.","params":{"identityOwner":"the address to set as a management key.","salt":"to use for the deployment.","signature":"the approval containing the salt and the identityOwner address.","signatureExpiry":"the block timestamp where the signature will expire."}},"deployIdentityWithSaltAndManagementKeys(address,string,bytes32[],uint256,bytes)":{"details":"Deploy an ONCHAINID using a factory. The operation must be signed by an approved public key. This method allow to deploy an ONCHAINID using a custom salt and a custom list of management keys. Note that the identity Owner address won't be added as a management keys, if this is desired, the key hash must be listed in the managementKeys array.","params":{"identityOwner":"the address to set as a management key.","managementKeys":"the list of management keys to add to the ONCHAINID.","salt":"to use for the deployment.","signature":"the approval containing the salt and the identityOwner address.","signatureExpiry":"the block timestamp where the signature will expire."}},"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."},"revokeSignature(bytes)":{"details":"Revoke a signature, if the signature is used to deploy an ONCHAINID, the deployment would be rejected.","params":{"signature":"the signature to revoke."}},"revokeSigner(address)":{"details":"Revoke a signer to sign ONCHAINID deployments.","params":{"signer":"the signer address to revoke."}},"transferFactoryOwnership(address)":{"details":"Transfer the ownership of the factory to a new owner.","params":{"newOwner":"the new owner of the factory."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onchainid/gateway/Gateway.sol":"IdentityGateway"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onchainid/factory/IIdFactory.sol":{"keccak256":"0x7176e78517381538ff4cc3fe4a4b9adb0a05d86e8750836801010af3cc2b9cc4","urls":["bzz-raw://ea9875f1fdde42326e9bd66aa7605811f886bff7125af16579ba71fb3aa29d9e","dweb:/ipfs/QmbyoWxwe2D4sdSFs191ukHZnS1uEpdKm9a85FBGK51Cy3"],"license":"GPL-3.0"},"contracts/onchainid/factory/IdFactory.sol":{"keccak256":"0x5be85cd708bd30cd2e9617c1f818b6e1bba0c7af069c3ce9bfca0cbcac1bd306","urls":["bzz-raw://564c8686205a09676e966e38750dfb59d66efd211dca8c54dbe03daf490acbd9","dweb:/ipfs/QmRd2sbme9SJjpUXw5wMe3Bsz67KuPfbVT5tUC5Vzzxm9i"],"license":"GPL-3.0"},"contracts/onchainid/gateway/Gateway.sol":{"keccak256":"0x643ae0f84b4fd85c6b202a7a9f7d0b7961b70584acf703698036868a82dd465f","urls":["bzz-raw://7e3b53a8fcf9944a801e75143eb09c2b8f2efcf2cadad4d57efe12cd08f932fc","dweb:/ipfs/QmRsNfM4kponuGxBV6fHwXYZd9vBTgXqgphdE6YR2MiR6Q"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IImplementationAuthority.sol":{"keccak256":"0xa46065896246e1a610410ae59828978d8cd6d04527b636e1e7399217941bcf09","urls":["bzz-raw://f8c493c0291774cf2da1f84e928c8999c36f7640e6fef82621cd990564a7dd80","dweb:/ipfs/QmPxDk18X86b8FKG91ABkrrkX6fJa2Z8S4jjXDniQ2jvwa"],"license":"GPL-3.0"},"contracts/onchainid/proxy/IdentityProxy.sol":{"keccak256":"0x6434c7e5409fa5264c1fa8ae24f948de98c9620d27af508a36bdee21cf743505","urls":["bzz-raw://cfdaa1b2a52b447b821d035b668a32accb63879ccb229069f290ff8b22f9d9b4","dweb:/ipfs/QmdHhsyPD1EJbBtq3APt1Dfx2ekBRrEAVTuEbmqBvtTUai"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"}},"version":1},"id":118} \ No newline at end of file diff --git a/out/HTSTokenFactory.sol/HTSToken.json b/out/HTSTokenFactory.sol/HTSToken.json new file mode 100644 index 0000000..77e4254 --- /dev/null +++ b/out/HTSTokenFactory.sol/HTSToken.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"tokenName","type":"string","internalType":"string"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"decimals","type":"int32","internalType":"int32"}],"stateMutability":"payable"},{"type":"function","name":"associate","inputs":[],"outputs":[{"name":"responseCode","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"amount","type":"int64","internalType":"int64"}],"outputs":[{"name":"responseCode","type":"int256","internalType":"int256"},{"name":"newTotalSupply","type":"int64","internalType":"int64"},{"name":"serialNumbers","type":"int64[]","internalType":"int64[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"tokenAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"AssociatedToken","inputs":[{"name":"tokenAddress","type":"address","indexed":false,"internalType":"address"},{"name":"userAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CreatedToken","inputs":[{"name":"tokenAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MintedToken","inputs":[{"name":"tokenAddress","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"int64","indexed":false,"internalType":"int64"},{"name":"newTotalSupply","type":"int64","indexed":false,"internalType":"int64"}],"anonymous":false}],"bytecode":{"object":"0x60806040819052600380546001600160a01b0319166101671790556200119b3881900390819083398101604081905262000039916200083e565b600160208181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb499190915560027fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f5560047fd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f5560087f7dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60b5560107fedc95719e9a3b28dd8e80877cb5880a9be7de1a13fc8b05e7999683b6b567643557fe2689cd4a84e23ad2f564004f1c9013e9589d260bde6380aba3ca7e09e4df40c8190556006600090815260407f8f331abe73332f95a25873e8b430885974c0409691f89d643119a11623a7924a819055805180840182528281528151600580825260c0820190935230949193926127109284928392909182015b6200017a62000713565b81526020019060019003908162000170579050509050620001b660006006600060405180602001604052806000815250620004d560201b60201c565b81600081518110620001cc57620001cc620008d9565b6020026020010181905250620001fb60016000604051806020016040528060008152506200051860201b60201c565b81600181518110620002115762000211620008d9565b60200260200101819052506200024060026000604051806020016040528060008152506200051860201b60201c565b81600281518110620002565762000256620008d9565b60200260200101819052506200028560036000604051806020016040528060008152506200051860201b60201c565b816003815181106200029b576200029b620008d9565b6020026020010181905250620002ca60046000604051806020016040528060008152506200051860201b60201c565b81600481518110620002e057620002e0620008d9565b602002602001018190525060006040518060600160405280600060070b8152602001886001600160a01b03168152602001627a120060070b815250905060006040518061012001604052808c81526020018b8152602001896001600160a01b031681526020018881526020016001151581526020018660070b81526020018515158152602001848152602001838152509050600080600360009054906101000a90046001600160a01b03166001600160a01b0316630fb65bf334858b8f6040518563ffffffff1660e01b8152600401620003bd93929190620009ee565b604080518083038185885af1158015620003db573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062000402919062000b28565b915060070b9150601660030b8214620004715760405162461bcd60e51b815260206004820152602760248201527f485453546f6b656e3a204572726f72206372656174696e672066756e6769626c60448201526632903a37b5b2b760c91b606482015260840160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f7bb17726df1f3adee8aa00ba8e8bc5d6f182af3bbf77604639cb7f008dd3b4ed9060200160405180910390a15050505050505050505050505062000b77565b620004df62000713565b6040518060400160405280620004fc87876200055960201b60201c565b81526020016200050d8585620005a3565b905295945050505050565b6200052262000713565b60405180604001604052806200053e86620006ce60201b60201c565b81526020016200054f8585620005a3565b9052949350505050565b600062000581836006811115620005745762000574620008c3565b600160ff9091161b821790565b90506200059c826006811115620005745762000574620008c3565b9392505050565b620005ea6040518060a0016040528060001515815260200160006001600160a01b03168152602001606081526020016060815260200160006001600160a01b031681525090565b6000836004811115620006015762000601620008c3565b03620006115760018152620006c8565b6001836004811115620006285762000628620008c3565b0362000645576000546001600160a01b03166020820152620006c8565b60028360048111156200065c576200065c620008c3565b036200066f5760408101829052620006c8565b6003836004811115620006865762000686620008c3565b03620006995760608101829052620006c8565b6004836004811115620006b057620006b0620008c3565b03620006c8576000546001600160a01b031660808201525b92915050565b600060016000836006811115620006e957620006e9620008c3565b6006811115620006fd57620006fd620008c3565b8152602001908152602001600020549050919050565b6040518060400160405280600081526020016200076c6040518060a0016040528060001515815260200160006001600160a01b03168152602001606081526020016060815260200160006001600160a01b031681525090565b905290565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620007a45781810151838201526020016200078a565b50506000910152565b600082601f830112620007bf57600080fd5b81516001600160401b0380821115620007dc57620007dc62000771565b604051601f8301601f19908116603f0116810190828211818310171562000807576200080762000771565b816040528381528660208588010111156200082157600080fd5b6200083484602083016020890162000787565b9695505050505050565b6000806000606084860312156200085457600080fd5b83516001600160401b03808211156200086c57600080fd5b6200087a87838801620007ad565b945060208601519150808211156200089157600080fd5b50620008a086828701620007ad565b92505060408401518060030b8114620008b857600080fd5b809150509250925092565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526200090981602086016020860162000787565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015620009e157858303601f1901895281518051845284015160408585018190528151151581860152818601516001600160a01b039081166060808801919091529183015160a06080808901829052919390929091620009a060e08a0186620008ef565b92860151898403603f1901858b0152929450620009be8584620008ef565b9501511660c097909701969096525050988401989250908301906001016200093a565b5090979650505050505050565b606081526000845161016080606085015262000a0f6101c0850183620008ef565b91506020870151605f198086850301608087015262000a2f8483620008ef565b93506040890151915062000a4e60a08701836001600160a01b03169052565b60608901519150808685030160c087015262000a6b8483620008ef565b93506080890151915062000a8360e087018315159052565b60a0890151915061010062000a9c8188018460070b9052565b60c08a0151151561012088015260e08a01518786038301610140890152925062000ac785846200091d565b9450808a01519250505062000b02828601828051600790810b83526020808301516001600160a01b031690840152604091820151900b910152565b5050600785900b6020840152905062000b20604083018460030b9052565b949350505050565b6000806040838503121562000b3c57600080fd5b82518060070b811462000b4e57600080fd5b60208401519092506001600160a01b038116811462000b6c57600080fd5b809150509250929050565b6106148062000b876000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630a754de6146100465780639d76ea5814610061578063fec156ff1461008c575b600080fd5b61004e6100ae565b6040519081526020015b60405180910390f35b600254610074906001600160a01b031681565b6040516001600160a01b039091168152602001610058565b61009f61009a366004610364565b610168565b60405161005893929190610388565b6002546040805163053aa6f360e11b815290516000926001600160a01b031691630a754de6916004808301926020929190829003018187875af11580156100f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061011d91906103e7565b600254604080516001600160a01b0390921682523360208301529192507f486bcb01e604496e2a4caa3ae8178d59ffedc37c140f1d4ad838b06cb1286547910160405180910390a190565b60035460025460408051600080825260208201909252909283926060926001600160a01b039283169263e0f4059a9216908790866101b6565b60608152602001906001900390816101a15790505b506040518463ffffffff1660e01b81526004016101d593929190610416565b6000604051808303816000875af11580156101f4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261021c91908101906104d2565b60079290920b945092509050601683146102725760405162461bcd60e51b815260206004820152601360248201527222b93937b91036b4b73a34b733903a37b5b2b760691b604482015260640160405180910390fd5b600254604080516001600160a01b039092168252600786810b602084015284900b82820152517f6c15495b81c1c2bd8a5a79faf952be7bdb9deceb303a554e2ec44d0736d6e0bf9181900360600190a160035460025460405163eca3691760e01b81526001600160a01b039182166004820152306024820152336044820152600787900b606482015291169063eca36917906084016020604051808303816000875af1158015610326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034a91906105c1565b509193909250565b8060070b811461036157600080fd5b50565b60006020828403121561037657600080fd5b813561038181610352565b9392505050565b600060608201858352602060078660070b60208601526060604086015282865180855260808701915060208801945060005b818110156103d8578551840b835294840194918401916001016103ba565b50909998505050505050505050565b6000602082840312156103f957600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b60006060820160018060a01b038616835260208560070b818501526060604085015281855180845260808601915060808160051b87010193508287016000805b838110156104b257888703607f1901855282518051808952835b8181101561048b578281018901518a82018a01528801610470565b508881018801849052601f01601f1916909701860196509385019391850191600101610456565b50949a9950505050505050505050565b80516104cd81610352565b919050565b6000806000606084860312156104e757600080fd5b83516104f281610352565b8093505060208085015161050581610352565b604086015190935067ffffffffffffffff8082111561052357600080fd5b818701915087601f83011261053757600080fd5b81518181111561054957610549610400565b8060051b604051601f19603f8301168101818110858211171561056e5761056e610400565b60405291825284820192508381018501918a83111561058c57600080fd5b938501935b828510156105b1576105a2856104c2565b84529385019392850192610591565b8096505050505050509250925092565b6000602082840312156105d357600080fd5b81516103818161035256fea26469706673582212205822e2fa7050651ecd10f8b4233a6ae8f6b92d8b7769a9f17be584abf9f789e464736f6c63430008180033","sourceMap":"282:2770:1:-:0;;;;;686:67;;;-1:-1:-1;;;;;;686:67:1;422:5;686:67;;;760:1608;;;;;;;;282:2770;760:1608;;;;;;;;;;:::i;:::-;601:1:9;575:23;;;;;:27;;;;636:1;612:21;:25;674:1;647:24;:28;710:1;685:22;:26;748:2;721:24;:29;760:21;:26;;;805:13;-1:-1:-1;796:23:9;;;760:21;796:23;:28;;;930:23:1;;;;;;;;;;1145:37;;769:11:9;1145:37:1;;;;;;;;;915:4;;930:23;;-1:-1:-1;1019:5:1;;-1:-1:-1;;;;1145:37:1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1100:82;;1202:87;1215:13;1230;1245:32;1279:9;;;;;;;;;;;;1202:12;;;:87;;:::i;:::-;1192:4;1197:1;1192:7;;;;;;;;:::i;:::-;;;;;;:97;;;;1309:70;1322:11;1335:32;1369:9;;;;;;;;;;;;1309:12;;;:70;;:::i;:::-;1299:4;1304:1;1299:7;;;;;;;;:::i;:::-;;;;;;:80;;;;1399:73;1412:14;1428:32;1462:9;;;;;;;;;;;;1399:12;;;:73;;:::i;:::-;1389:4;1394:1;1389:7;;;;;;;;:::i;:::-;;;;;;:83;;;;1492:71;1505:12;1519:32;1553:9;;;;;;;;;;;;1492:12;;;:71;;:::i;:::-;1482:4;1487:1;1482:7;;;;;;;;:::i;:::-;;;;;;:81;;;;1583:73;1596:14;1612:32;1646:9;;;;;;;;;;;;1583:12;;;:73;;:::i;:::-;1573:4;1578:1;1573:7;;;;;;;;:::i;:::-;;;;;;:83;;;;1667:40;1710:70;;;;;;;;1750:1;1710:70;;;;;;1753:8;-1:-1:-1;;;;;1710:70:1;;;;;1763:7;1710:70;;;;;1667:113;;1791:44;1838:145;;;;;;;;1883:9;1838:145;;;;1894:11;1838:145;;;;1907:8;-1:-1:-1;;;;;1838:145:1;;;;;1917:4;1838:145;;;;1923:4;1838:145;;;;;;1929:9;1838:145;;;;;;1940:19;1838:145;;;;;;1961:4;1838:145;;;;1967:6;1838:145;;;1791:192;;1995:16;2013:27;2056:3;;;;;;;;;-1:-1:-1;;;;;2056:3:1;-1:-1:-1;;;;;2056:23:1;;2087:9;2098:5;2105:18;2125:8;2056:78;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1994:140;;;;;;2723:2:5;2149:43:1;;:12;:43;2145:123;;2208:49;;-1:-1:-1;;;2208:49:1;;6987:2:165;2208:49:1;;;6969:21:165;7026:2;7006:18;;;6999:30;7065:34;7045:18;;;7038:62;-1:-1:-1;;;7116:18:165;;;7109:37;7163:19;;2208:49:1;;;;;;;2145:123;2278:12;:34;;-1:-1:-1;;;;;;2278:34:1;-1:-1:-1;;;;;2278:34:1;;;;;;;;2328:33;;7339:51:165;;;2328:33:1;;7327:2:165;7312:18;2328:33:1;;;;;;;878:1490;;;;;;;;;;760:1608;;;282:2770;;2994:380:9;3161:44;;:::i;:::-;3228:139;;;;;;;;3270:39;3287:9;3298:10;3270:16;;;:39;;:::i;:::-;3228:139;;;;3323:34;3339:12;3353:3;3323:15;:34::i;:::-;3228:139;;3217:150;2994:380;-1:-1:-1;;;;;2994:380:9:o;2395:296::-;2532:44;;:::i;:::-;2599:85;;;;;;;;2628:19;2639:7;2628:10;;;:19;;:::i;:::-;2599:85;;;;2649:34;2665:12;2679:3;2649:15;:34::i;:::-;2599:85;;2588:96;2395:296;-1:-1:-1;;;;2395:296:9:o;3380:217::-;3468:15;3505:32;3526:9;3520:16;;;;;;;;:::i;:::-;5420:1;5623:12;;;;;5615:21;;;5523:120;3505:32;3495:42;;3557:33;3578:10;3572:17;;;;;;;;:::i;3557:33::-;3547:43;3380:217;-1:-1:-1;;;3380:217:9:o;4187:744::-;4304:44;282:2770:1;;;;;;;;;;;;;;;;-1:-1:-1;;;;;282:2770:1;;;;;;;;;;;;;;;;-1:-1:-1;;;;;282:2770:1;;;;;;4304:44:9;4384:32;4368:12;:48;;;;;;;;:::i;:::-;;4364:561;;4461:4;4432:33;;4364:561;;;4502:24;4486:12;:40;;;;;;;;:::i;:::-;;4482:443;;4564:14;;-1:-1:-1;;;;;4564:14:9;4542:19;;;:36;4482:443;;;4615:20;4599:12;:36;;;;;;;;:::i;:::-;;4595:330;;4651:16;;;:22;;;4595:330;;;4710:22;4694:12;:38;;;;;;;;:::i;:::-;;4690:235;;4748:24;;;:30;;;4690:235;;;4815:36;4799:12;:52;;;;;;;;:::i;:::-;;4795:130;;4900:14;;-1:-1:-1;;;;;4900:14:9;4867:30;;;:47;4795:130;4187:744;;;;:::o;4071:110::-;4131:7;4157:8;:17;4166:7;4157:17;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4150:24;;4071:110;;;:::o;282:2770:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;282:2770:1;;;;;;;;;;;;;;;;-1:-1:-1;;;;;282:2770:1;;;;;;;;;;:::o;14:127:165:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:250;231:1;241:113;255:6;252:1;249:13;241:113;;;331:11;;;325:18;312:11;;;305:39;277:2;270:10;241:113;;;-1:-1:-1;;388:1:165;370:16;;363:27;146:250::o;401:699::-;455:5;508:3;501:4;493:6;489:17;485:27;475:55;;526:1;523;516:12;475:55;549:13;;-1:-1:-1;;;;;611:10:165;;;608:36;;;624:18;;:::i;:::-;699:2;693:9;667:2;753:13;;-1:-1:-1;;749:22:165;;;773:2;745:31;741:40;729:53;;;797:18;;;817:22;;;794:46;791:72;;;843:18;;:::i;:::-;883:10;879:2;872:22;918:2;910:6;903:18;964:3;957:4;952:2;944:6;940:15;936:26;933:35;930:55;;;981:1;978;971:12;930:55;994:76;1067:2;1060:4;1052:6;1048:17;1041:4;1033:6;1029:17;994:76;:::i;:::-;1088:6;401:699;-1:-1:-1;;;;;;401:699:165:o;1105:716::-;1211:6;1219;1227;1280:2;1268:9;1259:7;1255:23;1251:32;1248:52;;;1296:1;1293;1286:12;1248:52;1323:16;;-1:-1:-1;;;;;1388:14:165;;;1385:34;;;1415:1;1412;1405:12;1385:34;1438:61;1491:7;1482:6;1471:9;1467:22;1438:61;:::i;:::-;1428:71;;1545:2;1534:9;1530:18;1524:25;1508:41;;1574:2;1564:8;1561:16;1558:36;;;1590:1;1587;1580:12;1558:36;;1613:63;1668:7;1657:8;1646:9;1642:24;1613:63;:::i;:::-;1603:73;;;1719:2;1708:9;1704:18;1698:25;1766:5;1763:1;1752:20;1745:5;1742:31;1732:59;;1787:1;1784;1777:12;1732:59;1810:5;1800:15;;;1105:716;;;;;:::o;1826:127::-;1887:10;1882:3;1878:20;1875:1;1868:31;1918:4;1915:1;1908:15;1942:4;1939:1;1932:15;1958:127;2019:10;2014:3;2010:20;2007:1;2000:31;2050:4;2047:1;2040:15;2074:4;2071:1;2064:15;2090:271;2132:3;2170:5;2164:12;2197:6;2192:3;2185:19;2213:76;2282:6;2275:4;2270:3;2266:14;2259:4;2252:5;2248:16;2213:76;:::i;:::-;2343:2;2322:15;-1:-1:-1;;2318:29:165;2309:39;;;;2350:4;2305:50;;2090:271;-1:-1:-1;;2090:271:165:o;2667:1519::-;2728:3;2759;2791:5;2785:12;2818:6;2813:3;2806:19;2844:4;2873:2;2868:3;2864:12;2857:19;;2929:2;2919:6;2916:1;2912:14;2905:5;2901:26;2897:35;2966:2;2959:5;2955:14;2987:1;2997:1163;3011:6;3008:1;3005:13;2997:1163;;;3076:16;;;-1:-1:-1;;3072:30:165;3060:43;;3126:13;;3192:9;;3179:23;;3241:11;;3235:18;3162:4;3273:13;;;3266:25;;;3340:19;;3333:27;3326:35;3311:13;;;3304:58;3403:21;;;3397:28;-1:-1:-1;;;;;3527:23:165;;;3448:2;3512:13;;;3505:46;;;;3592:21;;;3586:28;3481:3;3664;3687:13;;;3680:25;;;3586:28;;3481:3;;3448:2;;3732:49;3776:3;3766:14;;3586:28;3732:49;:::i;:::-;3822:21;;;3816:28;3883:17;;;-1:-1:-1;;3879:31:165;3864:13;;;3857:54;3718:63;;-1:-1:-1;3938:41:165;3718:63;3816:28;3938:41;:::i;:::-;4025:21;;4019:28;4015:37;4009:3;3999:14;;;;3992:61;;;;-1:-1:-1;;4138:12:165;;;;3924:55;-1:-1:-1;4103:15:165;;;;3033:1;3026:9;2997:1163;;;-1:-1:-1;4176:4:165;;2667:1519;-1:-1:-1;;;;;;;2667:1519:165:o;4551:1772::-;4786:2;4775:9;4768:21;4749:4;4824:6;4818:13;4850:6;4892:2;4887;4876:9;4872:18;4865:30;4918:52;4965:3;4954:9;4950:19;4936:12;4918:52;:::i;:::-;4904:66;;5019:4;5011:6;5007:17;5001:24;5048:2;5044:7;5116:2;5104:9;5096:6;5092:22;5088:31;5082:3;5071:9;5067:19;5060:60;5143:41;5177:6;5161:14;5143:41;:::i;:::-;5129:55;;5233:4;5225:6;5221:17;5215:24;5193:46;;5248:55;5298:3;5287:9;5283:19;5267:14;-1:-1:-1;;;;;2432:31:165;2420:44;;2366:104;5248:55;5352:2;5344:6;5340:15;5334:22;5312:44;;5421:2;5409:9;5401:6;5397:22;5393:31;5387:3;5376:9;5372:19;5365:60;5448:41;5482:6;5466:14;5448:41;:::i;:::-;5434:55;;5538:3;5530:6;5526:16;5520:23;5498:45;;5552:52;5599:3;5588:9;5584:19;5568:14;2545:13;2538:21;2526:34;;2475:91;5552:52;5653:3;5645:6;5641:16;5635:23;5613:45;;5677:3;5689:52;5737:2;5726:9;5722:18;5706:14;2646:1;2635:20;2623:33;;2571:91;5689:52;5790:3;5778:16;;5772:23;2545:13;2538:21;5851:3;5836:19;;2526:34;5905:3;5893:16;;5887:23;5951:22;;;5947:31;;5941:3;5926:19;;5919:60;5887:23;-1:-1:-1;6002:60:165;5955:6;5887:23;6002:60;:::i;:::-;5988:74;;6111:2;6103:6;6099:15;6093:22;6071:44;;;;6124:60;6180:2;6169:9;6165:18;6149:14;4277:12;;4274:1;4263:27;;;4251:40;;4344:4;4333:16;;;4327:23;-1:-1:-1;;;;;4323:49:165;4307:14;;;4300:73;4436:4;4425:16;;;4419:23;4405:38;;4389:14;;4382:62;4191:259;6124:60;-1:-1:-1;;2646:1:165;2635:20;;;6256:4;6241:20;;2623:33;6201:6;-1:-1:-1;6271:46:165;6311:4;6300:9;6296:20;6288:6;4530:1;4519:20;4507:33;;4455:91;6271:46;4551:1772;;;;;;:::o;6328:452::-;6405:6;6413;6466:2;6454:9;6445:7;6441:23;6437:32;6434:52;;;6482:1;6479;6472:12;6434:52;6514:9;6508:16;6567:5;6564:1;6553:20;6546:5;6543:31;6533:59;;6588:1;6585;6578:12;6533:59;6661:2;6646:18;;6640:25;6611:5;;-1:-1:-1;;;;;;6696:33:165;;6684:46;;6674:74;;6744:1;6741;6734:12;6674:74;6767:7;6757:17;;;6328:452;;;;;:::o;7193:203::-;282:2770:1;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630a754de6146100465780639d76ea5814610061578063fec156ff1461008c575b600080fd5b61004e6100ae565b6040519081526020015b60405180910390f35b600254610074906001600160a01b031681565b6040516001600160a01b039091168152602001610058565b61009f61009a366004610364565b610168565b60405161005893929190610388565b6002546040805163053aa6f360e11b815290516000926001600160a01b031691630a754de6916004808301926020929190829003018187875af11580156100f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061011d91906103e7565b600254604080516001600160a01b0390921682523360208301529192507f486bcb01e604496e2a4caa3ae8178d59ffedc37c140f1d4ad838b06cb1286547910160405180910390a190565b60035460025460408051600080825260208201909252909283926060926001600160a01b039283169263e0f4059a9216908790866101b6565b60608152602001906001900390816101a15790505b506040518463ffffffff1660e01b81526004016101d593929190610416565b6000604051808303816000875af11580156101f4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261021c91908101906104d2565b60079290920b945092509050601683146102725760405162461bcd60e51b815260206004820152601360248201527222b93937b91036b4b73a34b733903a37b5b2b760691b604482015260640160405180910390fd5b600254604080516001600160a01b039092168252600786810b602084015284900b82820152517f6c15495b81c1c2bd8a5a79faf952be7bdb9deceb303a554e2ec44d0736d6e0bf9181900360600190a160035460025460405163eca3691760e01b81526001600160a01b039182166004820152306024820152336044820152600787900b606482015291169063eca36917906084016020604051808303816000875af1158015610326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034a91906105c1565b509193909250565b8060070b811461036157600080fd5b50565b60006020828403121561037657600080fd5b813561038181610352565b9392505050565b600060608201858352602060078660070b60208601526060604086015282865180855260808701915060208801945060005b818110156103d8578551840b835294840194918401916001016103ba565b50909998505050505050505050565b6000602082840312156103f957600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b60006060820160018060a01b038616835260208560070b818501526060604085015281855180845260808601915060808160051b87010193508287016000805b838110156104b257888703607f1901855282518051808952835b8181101561048b578281018901518a82018a01528801610470565b508881018801849052601f01601f1916909701860196509385019391850191600101610456565b50949a9950505050505050505050565b80516104cd81610352565b919050565b6000806000606084860312156104e757600080fd5b83516104f281610352565b8093505060208085015161050581610352565b604086015190935067ffffffffffffffff8082111561052357600080fd5b818701915087601f83011261053757600080fd5b81518181111561054957610549610400565b8060051b604051601f19603f8301168101818110858211171561056e5761056e610400565b60405291825284820192508381018501918a83111561058c57600080fd5b938501935b828510156105b1576105a2856104c2565b84529385019392850192610591565b8096505050505050509250925092565b6000602082840312156105d357600080fd5b81516103818161035256fea26469706673582212205822e2fa7050651ecd10f8b4233a6ae8f6b92d8b7769a9f17be584abf9f789e464736f6c63430008180033","sourceMap":"282:2770:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2871:179;;;:::i;:::-;;;160:25:165;;;148:2;133:18;2871:179:1;;;;;;;;333:27;;;;;-1:-1:-1;;;;;333:27:1;;;;;;-1:-1:-1;;;;;360:32:165;;;342:51;;330:2;315:18;333:27:1;196:203:165;2374:490:1;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;2871:179::-;2962:12;;2957:30;;;-1:-1:-1;;;2957:30:1;;;;2908:20;;-1:-1:-1;;;;;2962:12:1;;2957:28;;:30;;;;;;;;;;;;;;2908:20;2962:12;2957:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3018:12;;3002:41;;;-1:-1:-1;;;;;3018:12:1;;;1997:34:165;;3032:10:1;2062:2:165;2047:18;;2040:43;2940:47:1;;-1:-1:-1;3002:41:1;;1932:18:165;3002:41:1;;;;;;;2871:179;:::o;2374:490::-;2551:3;;2565:12;;2587:14;;;2422:16;2587:14;;;;;;;;;2422:16;;;;2462:28;;-1:-1:-1;;;;;2551:3:1;;;;:13;;2565:12;;2579:6;;2422:16;2587:14;;;;;;;;;;;;;;;;;;;;2551:51;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2551:51:1;;;;;;;;;;;;:::i;:::-;2503:99;;;;;;-1:-1:-1;2503:99:1;-1:-1:-1;2503:99:1;-1:-1:-1;2723:2:5;2617:43:1;;2613:103;;2676:29;;-1:-1:-1;;;2676:29:1;;5339:2:165;2676:29:1;;;5321:21:165;5378:2;5358:18;;;5351:30;-1:-1:-1;;;5397:18:165;;;5390:49;5456:18;;2676:29:1;;;;;;;2613:103;2743:12;;2731:49;;;-1:-1:-1;;;;;2743:12:1;;;5679:51:165;;5777:1;5766:21;;;5761:2;5746:18;;5739:49;5824:21;;;5804:18;;;5797:49;2731::1;;;;;;5667:2:165;2731:49:1;;;2791:3;;2809:12;;2791:66;;-1:-1:-1;;;2791:66:1;;-1:-1:-1;;;;;2809:12:1;;;2791:66;;;6122:34:165;2831:4:1;6172:18:165;;;6165:43;2838:10:1;6224:18:165;;;6217:43;6307:1;6296:21;;;6276:18;;;6269:49;2791:3:1;;;:17;;6056:19:165;;2791:66:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2374:490;;;;;:::o;404:118:165:-;491:5;488:1;477:20;470:5;467:31;457:59;;512:1;509;502:12;457:59;404:118;:::o;527:243::-;584:6;637:2;625:9;616:7;612:23;608:32;605:52;;;653:1;650;643:12;605:52;692:9;679:23;711:29;734:5;711:29;:::i;:::-;759:5;527:243;-1:-1:-1;;;527:243:165:o;775:816::-;963:4;1011:2;1000:9;996:18;1041:6;1030:9;1023:25;1067:2;1088:1;1139:6;1136:1;1125:21;1120:2;1109:9;1105:18;1098:49;1183:2;1178;1167:9;1163:18;1156:30;1206:6;1241;1235:13;1272:6;1264;1257:22;1310:3;1299:9;1295:19;1288:26;;1349:2;1341:6;1337:15;1323:29;;1370:1;1380:185;1394:6;1391:1;1388:13;1380:185;;;1470:13;;1455:29;;1443:42;;1540:15;;;;1505:12;;;;1416:1;1409:9;1380:185;;;-1:-1:-1;1582:3:165;;775:816;-1:-1:-1;;;;;;;;;775:816:165:o;1596:184::-;1666:6;1719:2;1707:9;1698:7;1694:23;1690:32;1687:52;;;1735:1;1732;1725:12;1687:52;-1:-1:-1;1758:16:165;;1596:184;-1:-1:-1;1596:184:165:o;2094:127::-;2155:10;2150:3;2146:20;2143:1;2136:31;2186:4;2183:1;2176:15;2210:4;2207:1;2200:15;2226:1383;2438:4;2486:2;2475:9;2471:18;2545:1;2541;2536:3;2532:11;2528:19;2520:6;2516:32;2505:9;2498:51;2568:2;2620:6;2617:1;2606:21;2601:2;2590:9;2586:18;2579:49;2664:2;2659;2648:9;2644:18;2637:30;2687:6;2722;2716:13;2753:6;2745;2738:22;2791:3;2780:9;2776:19;2769:26;;2854:3;2844:6;2841:1;2837:14;2826:9;2822:30;2818:40;2804:54;;2893:2;2885:6;2881:15;2914:1;2935;2945:635;2961:6;2956:3;2953:15;2945:635;;;3030:22;;;-1:-1:-1;;3026:37:165;3014:50;;3087:13;;3129:9;;3151:24;;;3199:1;3213:157;3229:8;3224:3;3221:17;3213:157;;;3337:12;;;3333:21;;3327:28;3304:16;;;3300:25;;3293:63;3248:12;;3213:157;;;-1:-1:-1;3394:21:165;;;3390:30;;3383:41;;;3490:2;3467:17;-1:-1:-1;;3463:31:165;3451:44;;;3447:53;;;-1:-1:-1;3558:12:165;;;;3523:15;;;;2987:1;2978:11;2945:635;;;-1:-1:-1;3597:6:165;;2226:1383;-1:-1:-1;;;;;;;;;;2226:1383:165:o;3614:134::-;3691:13;;3713:29;3691:13;3713:29;:::i;:::-;3614:134;;;:::o;3753:1379::-;3860:6;3868;3876;3929:2;3917:9;3908:7;3904:23;3900:32;3897:52;;;3945:1;3942;3935:12;3897:52;3977:9;3971:16;3996:29;4019:5;3996:29;:::i;:::-;4044:5;4034:15;;;4068:2;4115;4104:9;4100:18;4094:25;4128:31;4151:7;4128:31;:::i;:::-;4229:2;4214:18;;4208:25;4178:7;;-1:-1:-1;4252:18:165;4282:14;;;4279:34;;;4309:1;4306;4299:12;4279:34;4347:6;4336:9;4332:22;4322:32;;4392:7;4385:4;4381:2;4377:13;4373:27;4363:55;;4414:1;4411;4404:12;4363:55;4443:2;4437:9;4465:2;4461;4458:10;4455:36;;;4471:18;;:::i;:::-;4517:2;4514:1;4510:10;4549:2;4543:9;4612:2;4608:7;4603:2;4599;4595:11;4591:25;4583:6;4579:38;4667:6;4655:10;4652:22;4647:2;4635:10;4632:18;4629:46;4626:72;;;4678:18;;:::i;:::-;4714:2;4707:22;4764:18;;;4798:15;;;;-1:-1:-1;4840:11:165;;;4836:20;;;4868:19;;;4865:39;;;4900:1;4897;4890:12;4865:39;4924:11;;;;4944:157;4960:6;4955:3;4952:15;4944:157;;;5026:32;5054:3;5026:32;:::i;:::-;5014:45;;4977:12;;;;5079;;;;4944:157;;;5120:6;5110:16;;;;;;;;3753:1379;;;;;:::o;6329:247::-;6397:6;6450:2;6438:9;6429:7;6425:23;6421:32;6418:52;;;6466:1;6463;6456:12;6418:52;6498:9;6492:16;6517:29;6540:5;6517:29;:::i","linkReferences":{}},"methodIdentifiers":{"associate()":"0a754de6","mint(int64)":"fec156ff","tokenAddress()":"9d76ea58"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tokenName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"int32\",\"name\":\"decimals\",\"type\":\"int32\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"}],\"name\":\"AssociatedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"CreatedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"},{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"newTotalSupply\",\"type\":\"int64\"}],\"name\":\"MintedToken\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"associate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"responseCode\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"responseCode\",\"type\":\"int256\"},{\"internalType\":\"int64\",\"name\":\"newTotalSupply\",\"type\":\"int64\"},{\"internalType\":\"int64[]\",\"name\":\"serialNumbers\",\"type\":\"int64[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/HTSTokenFactory.sol\":\"HTSToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/HTSTokenFactory.sol\":{\"keccak256\":\"0x887d990d032a7bf13cd31a11930a56c7bb23ce63e5781d0ddbebda1c8eb15d5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9bc2ef60ed0f1f91250f3c7c9f8b4434f9f122fe651a741db53700fa72ac44a\",\"dweb:/ipfs/QmfVyMvjXMh2FS249WEJ98MFLNQDL6LSqBzmGZMAHGSPRv\"]},\"contracts/common/hedera/ExpiryHelper.sol\":{\"keccak256\":\"0x80c84ea8126b556444c5d9e09cd770a61b916db4b713e5b880089f08333190a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c2c586147447052170984ba25688757db5a2ac1c8f49b173441b8e8cdc03e7d9\",\"dweb:/ipfs/QmZpMjo2KKZfniMZaez73ExCVLbssVEUaepRFVkM4aSwzY\"]},\"contracts/common/hedera/HederaResponseCodes.sol\":{\"keccak256\":\"0x85734572347c25f45480488ad4fdb63ed749a794daac839540f5b0eb7dbb22e6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addc4c8c31e1b3fd001986599856bb39e9cb4532a922155f699aae1686563e63\",\"dweb:/ipfs/QmXJES7o4xoSowiDo3qm3Mr3LaWm7g5qTQosw5EAAiz9R5\"]},\"contracts/common/hedera/HederaTokenService.sol\":{\"keccak256\":\"0x91138524b7d67ef498b1cade84eb4f79b5d7cc8b3b59f6c2f60439b91f6c3e79\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4d3a8bcc40da8200571c06b531fcb6b964dfb8d3cb2fd0e96300452b301e2db9\",\"dweb:/ipfs/Qmcv17ozumtuJLNYZz2evqUbRc2dyvprVYeh7Rq1qBrjHG\"]},\"contracts/common/hedera/IHRC.sol\":{\"keccak256\":\"0xa5e623207cec464b0965f98d87db307893dd22d5f46654923e36141bdcb93657\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f3da162916df8236e8c84fa7a0e35757e7c6b3e6af93e98bebe23a03177a0fa9\",\"dweb:/ipfs/Qmb8ZbsGQqbaqpZEhACfuV1FfTDZYKrjbyzUDamYN5gD1c\"]},\"contracts/common/hedera/IHederaTokenService.sol\":{\"keccak256\":\"0xd0606986a26e82ecd4c2cadd498a74fe9fc2061bd65f4e90592d51962ffbd245\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://786b1c29918038c33f7154c7df73d1a668482965ad0dfe920309533314050b6d\",\"dweb:/ipfs/QmV2Lvy9wvWBxXfSz2tPimZf5xEsDwsWqqujyY2a75i7Te\"]},\"contracts/common/hedera/KeyHelper.sol\":{\"keccak256\":\"0xf3a6185aacf2e4964df0a4ad35f4190abe75fb7ed8e6846459513df86a08389a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8700852d1b95bb75bb4f2dd0b8eeb97829d7baa5c3440db874c09d043d2f7a89\",\"dweb:/ipfs/QmP7JneGLR9QHFsGZmDmqUWQDQ6TjWcQWZnbjuxLYzx6dB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"tokenName","type":"string"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"int32","name":"decimals","type":"int32"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address","indexed":false},{"internalType":"address","name":"userAddress","type":"address","indexed":false}],"type":"event","name":"AssociatedToken","anonymous":false},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address","indexed":false}],"type":"event","name":"CreatedToken","anonymous":false},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address","indexed":false},{"internalType":"int64","name":"amount","type":"int64","indexed":false},{"internalType":"int64","name":"newTotalSupply","type":"int64","indexed":false}],"type":"event","name":"MintedToken","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"associate","outputs":[{"internalType":"uint256","name":"responseCode","type":"uint256"}]},{"inputs":[{"internalType":"int64","name":"amount","type":"int64"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"int256","name":"responseCode","type":"int256"},{"internalType":"int64","name":"newTotalSupply","type":"int64"},{"internalType":"int64[]","name":"serialNumbers","type":"int64[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/common/HTSTokenFactory.sol":"HTSToken"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/HTSTokenFactory.sol":{"keccak256":"0x887d990d032a7bf13cd31a11930a56c7bb23ce63e5781d0ddbebda1c8eb15d5c","urls":["bzz-raw://d9bc2ef60ed0f1f91250f3c7c9f8b4434f9f122fe651a741db53700fa72ac44a","dweb:/ipfs/QmfVyMvjXMh2FS249WEJ98MFLNQDL6LSqBzmGZMAHGSPRv"],"license":"MIT"},"contracts/common/hedera/ExpiryHelper.sol":{"keccak256":"0x80c84ea8126b556444c5d9e09cd770a61b916db4b713e5b880089f08333190a6","urls":["bzz-raw://c2c586147447052170984ba25688757db5a2ac1c8f49b173441b8e8cdc03e7d9","dweb:/ipfs/QmZpMjo2KKZfniMZaez73ExCVLbssVEUaepRFVkM4aSwzY"],"license":"Apache-2.0"},"contracts/common/hedera/HederaResponseCodes.sol":{"keccak256":"0x85734572347c25f45480488ad4fdb63ed749a794daac839540f5b0eb7dbb22e6","urls":["bzz-raw://addc4c8c31e1b3fd001986599856bb39e9cb4532a922155f699aae1686563e63","dweb:/ipfs/QmXJES7o4xoSowiDo3qm3Mr3LaWm7g5qTQosw5EAAiz9R5"],"license":"Apache-2.0"},"contracts/common/hedera/HederaTokenService.sol":{"keccak256":"0x91138524b7d67ef498b1cade84eb4f79b5d7cc8b3b59f6c2f60439b91f6c3e79","urls":["bzz-raw://4d3a8bcc40da8200571c06b531fcb6b964dfb8d3cb2fd0e96300452b301e2db9","dweb:/ipfs/Qmcv17ozumtuJLNYZz2evqUbRc2dyvprVYeh7Rq1qBrjHG"],"license":"Apache-2.0"},"contracts/common/hedera/IHRC.sol":{"keccak256":"0xa5e623207cec464b0965f98d87db307893dd22d5f46654923e36141bdcb93657","urls":["bzz-raw://f3da162916df8236e8c84fa7a0e35757e7c6b3e6af93e98bebe23a03177a0fa9","dweb:/ipfs/Qmb8ZbsGQqbaqpZEhACfuV1FfTDZYKrjbyzUDamYN5gD1c"],"license":"Apache-2.0"},"contracts/common/hedera/IHederaTokenService.sol":{"keccak256":"0xd0606986a26e82ecd4c2cadd498a74fe9fc2061bd65f4e90592d51962ffbd245","urls":["bzz-raw://786b1c29918038c33f7154c7df73d1a668482965ad0dfe920309533314050b6d","dweb:/ipfs/QmV2Lvy9wvWBxXfSz2tPimZf5xEsDwsWqqujyY2a75i7Te"],"license":"Apache-2.0"},"contracts/common/hedera/KeyHelper.sol":{"keccak256":"0xf3a6185aacf2e4964df0a4ad35f4190abe75fb7ed8e6846459513df86a08389a","urls":["bzz-raw://8700852d1b95bb75bb4f2dd0b8eeb97829d7baa5c3440db874c09d043d2f7a89","dweb:/ipfs/QmP7JneGLR9QHFsGZmDmqUWQDQ6TjWcQWZnbjuxLYzx6dB"],"license":"Apache-2.0"}},"version":1},"id":1} \ No newline at end of file diff --git a/out/HTSTokenFactory.sol/HTSTokenFactory.json b/out/HTSTokenFactory.sol/HTSTokenFactory.json new file mode 100644 index 0000000..cfbf597 --- /dev/null +++ b/out/HTSTokenFactory.sol/HTSTokenFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"deployToken","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"}],"outputs":[{"name":"token","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"tokenDeployed","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"TokenDeployed","inputs":[{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"deployer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061167f806100206000396000f3fe6080604052600436106200002c5760003560e01c80631d12b9381462000031578063a7aa9e8b1462000064575b600080fd5b62000048620000423660046200031e565b6200009e565b6040516001600160a01b03909116815260200160405180910390f35b3480156200007157600080fd5b50620000486200008336600462000389565b6000602081905290815260409020546001600160a01b031681565b600080338484604051602001620000b893929190620003c9565b60408051601f1981840301815291815281516020928301206000818152928390529120549091506001600160a01b031615620001335760405162461bcd60e51b8152602060048201526016602482015275151bdad95b88185b1c9958591e4819195c1b1bde595960521b604482015260640160405180910390fd5b62000140818585620001ae565b6000828152602081815260409182902080546001600160a01b0319166001600160a01b038516908117909155825190815233918101919091529193507ff9a44e6db3fb6e0eb31c4013bda8c662fecef1768dd2412270cc8f8821cbccf3910160405180910390a15092915050565b60008060405180602001620001c39062000265565b6020820181038252601f19601f82011660405250905060008484604051602001620001f092919062000449565b604051602081830303815290604052905060008282604051602001620002189291906200047b565b604051602081830303815290604052905062000235878262000240565b979650505050505050565b60008082602001835185818334f592505050803b6200025e57600080fd5b9392505050565b61119b80620004af83390190565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200029b57600080fd5b813567ffffffffffffffff80821115620002b957620002b962000273565b604051601f8301601f19908116603f01168101908282118183101715620002e457620002e462000273565b81604052838152866020858801011115620002fe57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156200033257600080fd5b823567ffffffffffffffff808211156200034b57600080fd5b620003598683870162000289565b935060208501359150808211156200037057600080fd5b506200037f8582860162000289565b9150509250929050565b6000602082840312156200039c57600080fd5b5035919050565b60005b83811015620003c0578181015183820152602001620003a6565b50506000910152565b6bffffffffffffffffffffffff198460601b16815260008351620003f5816014850160208801620003a3565b8351908301906200040e816014840160208801620003a3565b0160140195945050505050565b6000815180845262000435816020860160208601620003a3565b601f01601f19169290920160200192915050565b6040815260006200045e60408301856200041b565b82810360208401526200047281856200041b565b95945050505050565b600083516200048f818460208801620003a3565b835190830190620004a5818360208801620003a3565b0194935050505056fe60806040819052600380546001600160a01b0319166101671790556200119b3881900390819083398101604081905262000039916200083e565b600160208181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb499190915560027fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f5560047fd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f5560087f7dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60b5560107fedc95719e9a3b28dd8e80877cb5880a9be7de1a13fc8b05e7999683b6b567643557fe2689cd4a84e23ad2f564004f1c9013e9589d260bde6380aba3ca7e09e4df40c8190556006600090815260407f8f331abe73332f95a25873e8b430885974c0409691f89d643119a11623a7924a819055805180840182528281528151600580825260c0820190935230949193926127109284928392909182015b6200017a62000713565b81526020019060019003908162000170579050509050620001b660006006600060405180602001604052806000815250620004d560201b60201c565b81600081518110620001cc57620001cc620008d9565b6020026020010181905250620001fb60016000604051806020016040528060008152506200051860201b60201c565b81600181518110620002115762000211620008d9565b60200260200101819052506200024060026000604051806020016040528060008152506200051860201b60201c565b81600281518110620002565762000256620008d9565b60200260200101819052506200028560036000604051806020016040528060008152506200051860201b60201c565b816003815181106200029b576200029b620008d9565b6020026020010181905250620002ca60046000604051806020016040528060008152506200051860201b60201c565b81600481518110620002e057620002e0620008d9565b602002602001018190525060006040518060600160405280600060070b8152602001886001600160a01b03168152602001627a120060070b815250905060006040518061012001604052808c81526020018b8152602001896001600160a01b031681526020018881526020016001151581526020018660070b81526020018515158152602001848152602001838152509050600080600360009054906101000a90046001600160a01b03166001600160a01b0316630fb65bf334858b8f6040518563ffffffff1660e01b8152600401620003bd93929190620009ee565b604080518083038185885af1158015620003db573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062000402919062000b28565b915060070b9150601660030b8214620004715760405162461bcd60e51b815260206004820152602760248201527f485453546f6b656e3a204572726f72206372656174696e672066756e6769626c60448201526632903a37b5b2b760c91b606482015260840160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f7bb17726df1f3adee8aa00ba8e8bc5d6f182af3bbf77604639cb7f008dd3b4ed9060200160405180910390a15050505050505050505050505062000b77565b620004df62000713565b6040518060400160405280620004fc87876200055960201b60201c565b81526020016200050d8585620005a3565b905295945050505050565b6200052262000713565b60405180604001604052806200053e86620006ce60201b60201c565b81526020016200054f8585620005a3565b9052949350505050565b600062000581836006811115620005745762000574620008c3565b600160ff9091161b821790565b90506200059c826006811115620005745762000574620008c3565b9392505050565b620005ea6040518060a0016040528060001515815260200160006001600160a01b03168152602001606081526020016060815260200160006001600160a01b031681525090565b6000836004811115620006015762000601620008c3565b03620006115760018152620006c8565b6001836004811115620006285762000628620008c3565b0362000645576000546001600160a01b03166020820152620006c8565b60028360048111156200065c576200065c620008c3565b036200066f5760408101829052620006c8565b6003836004811115620006865762000686620008c3565b03620006995760608101829052620006c8565b6004836004811115620006b057620006b0620008c3565b03620006c8576000546001600160a01b031660808201525b92915050565b600060016000836006811115620006e957620006e9620008c3565b6006811115620006fd57620006fd620008c3565b8152602001908152602001600020549050919050565b6040518060400160405280600081526020016200076c6040518060a0016040528060001515815260200160006001600160a01b03168152602001606081526020016060815260200160006001600160a01b031681525090565b905290565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620007a45781810151838201526020016200078a565b50506000910152565b600082601f830112620007bf57600080fd5b81516001600160401b0380821115620007dc57620007dc62000771565b604051601f8301601f19908116603f0116810190828211818310171562000807576200080762000771565b816040528381528660208588010111156200082157600080fd5b6200083484602083016020890162000787565b9695505050505050565b6000806000606084860312156200085457600080fd5b83516001600160401b03808211156200086c57600080fd5b6200087a87838801620007ad565b945060208601519150808211156200089157600080fd5b50620008a086828701620007ad565b92505060408401518060030b8114620008b857600080fd5b809150509250925092565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526200090981602086016020860162000787565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015620009e157858303601f1901895281518051845284015160408585018190528151151581860152818601516001600160a01b039081166060808801919091529183015160a06080808901829052919390929091620009a060e08a0186620008ef565b92860151898403603f1901858b0152929450620009be8584620008ef565b9501511660c097909701969096525050988401989250908301906001016200093a565b5090979650505050505050565b606081526000845161016080606085015262000a0f6101c0850183620008ef565b91506020870151605f198086850301608087015262000a2f8483620008ef565b93506040890151915062000a4e60a08701836001600160a01b03169052565b60608901519150808685030160c087015262000a6b8483620008ef565b93506080890151915062000a8360e087018315159052565b60a0890151915061010062000a9c8188018460070b9052565b60c08a0151151561012088015260e08a01518786038301610140890152925062000ac785846200091d565b9450808a01519250505062000b02828601828051600790810b83526020808301516001600160a01b031690840152604091820151900b910152565b5050600785900b6020840152905062000b20604083018460030b9052565b949350505050565b6000806040838503121562000b3c57600080fd5b82518060070b811462000b4e57600080fd5b60208401519092506001600160a01b038116811462000b6c57600080fd5b809150509250929050565b6106148062000b876000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630a754de6146100465780639d76ea5814610061578063fec156ff1461008c575b600080fd5b61004e6100ae565b6040519081526020015b60405180910390f35b600254610074906001600160a01b031681565b6040516001600160a01b039091168152602001610058565b61009f61009a366004610364565b610168565b60405161005893929190610388565b6002546040805163053aa6f360e11b815290516000926001600160a01b031691630a754de6916004808301926020929190829003018187875af11580156100f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061011d91906103e7565b600254604080516001600160a01b0390921682523360208301529192507f486bcb01e604496e2a4caa3ae8178d59ffedc37c140f1d4ad838b06cb1286547910160405180910390a190565b60035460025460408051600080825260208201909252909283926060926001600160a01b039283169263e0f4059a9216908790866101b6565b60608152602001906001900390816101a15790505b506040518463ffffffff1660e01b81526004016101d593929190610416565b6000604051808303816000875af11580156101f4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261021c91908101906104d2565b60079290920b945092509050601683146102725760405162461bcd60e51b815260206004820152601360248201527222b93937b91036b4b73a34b733903a37b5b2b760691b604482015260640160405180910390fd5b600254604080516001600160a01b039092168252600786810b602084015284900b82820152517f6c15495b81c1c2bd8a5a79faf952be7bdb9deceb303a554e2ec44d0736d6e0bf9181900360600190a160035460025460405163eca3691760e01b81526001600160a01b039182166004820152306024820152336044820152600787900b606482015291169063eca36917906084016020604051808303816000875af1158015610326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034a91906105c1565b509193909250565b8060070b811461036157600080fd5b50565b60006020828403121561037657600080fd5b813561038181610352565b9392505050565b600060608201858352602060078660070b60208601526060604086015282865180855260808701915060208801945060005b818110156103d8578551840b835294840194918401916001016103ba565b50909998505050505050505050565b6000602082840312156103f957600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b60006060820160018060a01b038616835260208560070b818501526060604085015281855180845260808601915060808160051b87010193508287016000805b838110156104b257888703607f1901855282518051808952835b8181101561048b578281018901518a82018a01528801610470565b508881018801849052601f01601f1916909701860196509385019391850191600101610456565b50949a9950505050505050505050565b80516104cd81610352565b919050565b6000806000606084860312156104e757600080fd5b83516104f281610352565b8093505060208085015161050581610352565b604086015190935067ffffffffffffffff8082111561052357600080fd5b818701915087601f83011261053757600080fd5b81518181111561054957610549610400565b8060051b604051601f19603f8301168101818110858211171561056e5761056e610400565b60405291825284820192508381018501918a83111561058c57600080fd5b938501935b828510156105b1576105a2856104c2565b84529385019392850192610591565b8096505050505050509250925092565b6000602082840312156105d357600080fd5b81516103818161035256fea26469706673582212205822e2fa7050651ecd10f8b4233a6ae8f6b92d8b7769a9f17be584abf9f789e464736f6c63430008180033a26469706673582212209473e2633a91b1e943c59b35c09fa9ef28d009c4c960d2d26586a45b1c386c0e64736f6c63430008180033","sourceMap":"3054:2085:1:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106200002c5760003560e01c80631d12b9381462000031578063a7aa9e8b1462000064575b600080fd5b62000048620000423660046200031e565b6200009e565b6040516001600160a01b03909116815260200160405180910390f35b3480156200007157600080fd5b50620000486200008336600462000389565b6000602081905290815260409020546001600160a01b031681565b600080338484604051602001620000b893929190620003c9565b60408051601f1981840301815291815281516020928301206000818152928390529120549091506001600160a01b031615620001335760405162461bcd60e51b8152602060048201526016602482015275151bdad95b88185b1c9958591e4819195c1b1bde595960521b604482015260640160405180910390fd5b62000140818585620001ae565b6000828152602081815260409182902080546001600160a01b0319166001600160a01b038516908117909155825190815233918101919091529193507ff9a44e6db3fb6e0eb31c4013bda8c662fecef1768dd2412270cc8f8821cbccf3910160405180910390a15092915050565b60008060405180602001620001c39062000265565b6020820181038252601f19601f82011660405250905060008484604051602001620001f092919062000449565b604051602081830303815290604052905060008282604051602001620002189291906200047b565b604051602081830303815290604052905062000235878262000240565b979650505050505050565b60008082602001835185818334f592505050803b6200025e57600080fd5b9392505050565b61119b80620004af83390190565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200029b57600080fd5b813567ffffffffffffffff80821115620002b957620002b962000273565b604051601f8301601f19908116603f01168101908282118183101715620002e457620002e462000273565b81604052838152866020858801011115620002fe57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156200033257600080fd5b823567ffffffffffffffff808211156200034b57600080fd5b620003598683870162000289565b935060208501359150808211156200037057600080fd5b506200037f8582860162000289565b9150509250929050565b6000602082840312156200039c57600080fd5b5035919050565b60005b83811015620003c0578181015183820152602001620003a6565b50506000910152565b6bffffffffffffffffffffffff198460601b16815260008351620003f5816014850160208801620003a3565b8351908301906200040e816014840160208801620003a3565b0160140195945050505050565b6000815180845262000435816020860160208601620003a3565b601f01601f19169290920160200192915050565b6040815260006200045e60408301856200041b565b82810360208401526200047281856200041b565b95945050505050565b600083516200048f818460208801620003a3565b835190830190620004a5818360208801620003a3565b0194935050505056fe60806040819052600380546001600160a01b0319166101671790556200119b3881900390819083398101604081905262000039916200083e565b600160208181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb499190915560027fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f5560047fd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f5560087f7dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60b5560107fedc95719e9a3b28dd8e80877cb5880a9be7de1a13fc8b05e7999683b6b567643557fe2689cd4a84e23ad2f564004f1c9013e9589d260bde6380aba3ca7e09e4df40c8190556006600090815260407f8f331abe73332f95a25873e8b430885974c0409691f89d643119a11623a7924a819055805180840182528281528151600580825260c0820190935230949193926127109284928392909182015b6200017a62000713565b81526020019060019003908162000170579050509050620001b660006006600060405180602001604052806000815250620004d560201b60201c565b81600081518110620001cc57620001cc620008d9565b6020026020010181905250620001fb60016000604051806020016040528060008152506200051860201b60201c565b81600181518110620002115762000211620008d9565b60200260200101819052506200024060026000604051806020016040528060008152506200051860201b60201c565b81600281518110620002565762000256620008d9565b60200260200101819052506200028560036000604051806020016040528060008152506200051860201b60201c565b816003815181106200029b576200029b620008d9565b6020026020010181905250620002ca60046000604051806020016040528060008152506200051860201b60201c565b81600481518110620002e057620002e0620008d9565b602002602001018190525060006040518060600160405280600060070b8152602001886001600160a01b03168152602001627a120060070b815250905060006040518061012001604052808c81526020018b8152602001896001600160a01b031681526020018881526020016001151581526020018660070b81526020018515158152602001848152602001838152509050600080600360009054906101000a90046001600160a01b03166001600160a01b0316630fb65bf334858b8f6040518563ffffffff1660e01b8152600401620003bd93929190620009ee565b604080518083038185885af1158015620003db573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062000402919062000b28565b915060070b9150601660030b8214620004715760405162461bcd60e51b815260206004820152602760248201527f485453546f6b656e3a204572726f72206372656174696e672066756e6769626c60448201526632903a37b5b2b760c91b606482015260840160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f7bb17726df1f3adee8aa00ba8e8bc5d6f182af3bbf77604639cb7f008dd3b4ed9060200160405180910390a15050505050505050505050505062000b77565b620004df62000713565b6040518060400160405280620004fc87876200055960201b60201c565b81526020016200050d8585620005a3565b905295945050505050565b6200052262000713565b60405180604001604052806200053e86620006ce60201b60201c565b81526020016200054f8585620005a3565b9052949350505050565b600062000581836006811115620005745762000574620008c3565b600160ff9091161b821790565b90506200059c826006811115620005745762000574620008c3565b9392505050565b620005ea6040518060a0016040528060001515815260200160006001600160a01b03168152602001606081526020016060815260200160006001600160a01b031681525090565b6000836004811115620006015762000601620008c3565b03620006115760018152620006c8565b6001836004811115620006285762000628620008c3565b0362000645576000546001600160a01b03166020820152620006c8565b60028360048111156200065c576200065c620008c3565b036200066f5760408101829052620006c8565b6003836004811115620006865762000686620008c3565b03620006995760608101829052620006c8565b6004836004811115620006b057620006b0620008c3565b03620006c8576000546001600160a01b031660808201525b92915050565b600060016000836006811115620006e957620006e9620008c3565b6006811115620006fd57620006fd620008c3565b8152602001908152602001600020549050919050565b6040518060400160405280600081526020016200076c6040518060a0016040528060001515815260200160006001600160a01b03168152602001606081526020016060815260200160006001600160a01b031681525090565b905290565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620007a45781810151838201526020016200078a565b50506000910152565b600082601f830112620007bf57600080fd5b81516001600160401b0380821115620007dc57620007dc62000771565b604051601f8301601f19908116603f0116810190828211818310171562000807576200080762000771565b816040528381528660208588010111156200082157600080fd5b6200083484602083016020890162000787565b9695505050505050565b6000806000606084860312156200085457600080fd5b83516001600160401b03808211156200086c57600080fd5b6200087a87838801620007ad565b945060208601519150808211156200089157600080fd5b50620008a086828701620007ad565b92505060408401518060030b8114620008b857600080fd5b809150509250925092565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526200090981602086016020860162000787565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015620009e157858303601f1901895281518051845284015160408585018190528151151581860152818601516001600160a01b039081166060808801919091529183015160a06080808901829052919390929091620009a060e08a0186620008ef565b92860151898403603f1901858b0152929450620009be8584620008ef565b9501511660c097909701969096525050988401989250908301906001016200093a565b5090979650505050505050565b606081526000845161016080606085015262000a0f6101c0850183620008ef565b91506020870151605f198086850301608087015262000a2f8483620008ef565b93506040890151915062000a4e60a08701836001600160a01b03169052565b60608901519150808685030160c087015262000a6b8483620008ef565b93506080890151915062000a8360e087018315159052565b60a0890151915061010062000a9c8188018460070b9052565b60c08a0151151561012088015260e08a01518786038301610140890152925062000ac785846200091d565b9450808a01519250505062000b02828601828051600790810b83526020808301516001600160a01b031690840152604091820151900b910152565b5050600785900b6020840152905062000b20604083018460030b9052565b949350505050565b6000806040838503121562000b3c57600080fd5b82518060070b811462000b4e57600080fd5b60208401519092506001600160a01b038116811462000b6c57600080fd5b809150509250929050565b6106148062000b876000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630a754de6146100465780639d76ea5814610061578063fec156ff1461008c575b600080fd5b61004e6100ae565b6040519081526020015b60405180910390f35b600254610074906001600160a01b031681565b6040516001600160a01b039091168152602001610058565b61009f61009a366004610364565b610168565b60405161005893929190610388565b6002546040805163053aa6f360e11b815290516000926001600160a01b031691630a754de6916004808301926020929190829003018187875af11580156100f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061011d91906103e7565b600254604080516001600160a01b0390921682523360208301529192507f486bcb01e604496e2a4caa3ae8178d59ffedc37c140f1d4ad838b06cb1286547910160405180910390a190565b60035460025460408051600080825260208201909252909283926060926001600160a01b039283169263e0f4059a9216908790866101b6565b60608152602001906001900390816101a15790505b506040518463ffffffff1660e01b81526004016101d593929190610416565b6000604051808303816000875af11580156101f4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261021c91908101906104d2565b60079290920b945092509050601683146102725760405162461bcd60e51b815260206004820152601360248201527222b93937b91036b4b73a34b733903a37b5b2b760691b604482015260640160405180910390fd5b600254604080516001600160a01b039092168252600786810b602084015284900b82820152517f6c15495b81c1c2bd8a5a79faf952be7bdb9deceb303a554e2ec44d0736d6e0bf9181900360600190a160035460025460405163eca3691760e01b81526001600160a01b039182166004820152306024820152336044820152600787900b606482015291169063eca36917906084016020604051808303816000875af1158015610326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034a91906105c1565b509193909250565b8060070b811461036157600080fd5b50565b60006020828403121561037657600080fd5b813561038181610352565b9392505050565b600060608201858352602060078660070b60208601526060604086015282865180855260808701915060208801945060005b818110156103d8578551840b835294840194918401916001016103ba565b50909998505050505050505050565b6000602082840312156103f957600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b60006060820160018060a01b038616835260208560070b818501526060604085015281855180845260808601915060808160051b87010193508287016000805b838110156104b257888703607f1901855282518051808952835b8181101561048b578281018901518a82018a01528801610470565b508881018801849052601f01601f1916909701860196509385019391850191600101610456565b50949a9950505050505050505050565b80516104cd81610352565b919050565b6000806000606084860312156104e757600080fd5b83516104f281610352565b8093505060208085015161050581610352565b604086015190935067ffffffffffffffff8082111561052357600080fd5b818701915087601f83011261053757600080fd5b81518181111561054957610549610400565b8060051b604051601f19603f8301168101818110858211171561056e5761056e610400565b60405291825284820192508381018501918a83111561058c57600080fd5b938501935b828510156105b1576105a2856104c2565b84529385019392850192610591565b8096505050505050509250925092565b6000602082840312156105d357600080fd5b81516103818161035256fea26469706673582212205822e2fa7050651ecd10f8b4233a6ae8f6b92d8b7769a9f17be584abf9f789e464736f6c63430008180033a26469706673582212209473e2633a91b1e943c59b35c09fa9ef28d009c4c960d2d26586a45b1c386c0e64736f6c63430008180033","sourceMap":"3054:2085:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;3463:435;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1582:32:165;;;1564:51;;1552:2;1537:18;3463:435:1;;;;;;;3125:48;;;;;;;;;;-1:-1:-1;3125:48:1;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3125:48:1;;;3463:435;3574:13;3599:12;3649:10;3661:4;3667:6;3632:42;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3632:42:1;;;;;;;;;3622:53;;3632:42;3622:53;;;;3725:1;3694:19;;;;;;;;;;3622:53;;-1:-1:-1;;;;;;3694:19:1;:33;3686:68;;;;-1:-1:-1;;;3686:68:1;;2890:2:165;3686:68:1;;;2872:21:165;2929:2;2909:18;;;2902:30;-1:-1:-1;;;2948:18:165;;;2941:52;3010:18;;3686:68:1;;;;;;;;3773:32;3786:4;3792;3798:6;3773:12;:32::i;:::-;3816:13;:19;;;;;;;;;;;;:27;;-1:-1:-1;;;;;;3816:27:1;-1:-1:-1;;;;;3816:27:1;;;;;;;;3859:32;;3251:34:165;;;3880:10:1;3301:18:165;;;3294:43;;;;3816:27:1;;-1:-1:-1;3859:32:1;;3186:18:165;3859:32:1;;;;;;;3589:309;3463:435;;;;:::o;4043:422::-;4168:7;4187:18;4208:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4187:48;;4245:27;4299:4;4317:6;4275:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4245:88;;4343:27;4390:5;4397:14;4373:39;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4343:69;;4429:29;4437:4;4443:14;4429:7;:29::i;:::-;4422:36;4043:422;-1:-1:-1;;;;;;;4043:422:1:o;4604:533::-;4675:7;4694:12;4825:8;4819:4;4815:19;4902:8;4896:15;5009:4;4995:12;4981;4968:11;4960:54;4952:62;;;;5049:4;5037:17;5027:73;;5084:1;5081;5074:12;5027:73;5126:4;4604:533;-1:-1:-1;;;4604:533:1:o;-1:-1:-1:-;;;;;;;;:::o;14:127:165:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:719;189:5;242:3;235:4;227:6;223:17;219:27;209:55;;260:1;257;250:12;209:55;296:6;283:20;322:18;359:2;355;352:10;349:36;;;365:18;;:::i;:::-;440:2;434:9;408:2;494:13;;-1:-1:-1;;490:22:165;;;514:2;486:31;482:40;470:53;;;538:18;;;558:22;;;535:46;532:72;;;584:18;;:::i;:::-;624:10;620:2;613:22;659:2;651:6;644:18;705:3;698:4;693:2;685:6;681:15;677:26;674:35;671:55;;;722:1;719;712:12;671:55;786:2;779:4;771:6;767:17;760:4;752:6;748:17;735:54;833:1;826:4;821:2;813:6;809:15;805:26;798:37;853:6;844:15;;;;;;146:719;;;;:::o;870:543::-;958:6;966;1019:2;1007:9;998:7;994:23;990:32;987:52;;;1035:1;1032;1025:12;987:52;1075:9;1062:23;1104:18;1145:2;1137:6;1134:14;1131:34;;;1161:1;1158;1151:12;1131:34;1184:50;1226:7;1217:6;1206:9;1202:22;1184:50;:::i;:::-;1174:60;;1287:2;1276:9;1272:18;1259:32;1243:48;;1316:2;1306:8;1303:16;1300:36;;;1332:1;1329;1322:12;1300:36;;1355:52;1399:7;1388:8;1377:9;1373:24;1355:52;:::i;:::-;1345:62;;;870:543;;;;;:::o;1626:180::-;1685:6;1738:2;1726:9;1717:7;1713:23;1709:32;1706:52;;;1754:1;1751;1744:12;1706:52;-1:-1:-1;1777:23:165;;1626:180;-1:-1:-1;1626:180:165:o;1811:250::-;1896:1;1906:113;1920:6;1917:1;1914:13;1906:113;;;1996:11;;;1990:18;1977:11;;;1970:39;1942:2;1935:10;1906:113;;;-1:-1:-1;;2053:1:165;2035:16;;2028:27;1811:250::o;2066:617::-;2328:26;2324:31;2315:6;2311:2;2307:15;2303:53;2298:3;2291:66;2273:3;2386:6;2380:13;2402:75;2470:6;2465:2;2460:3;2456:12;2449:4;2441:6;2437:17;2402:75;:::i;:::-;2537:13;;2496:16;;;;2559:76;2537:13;2621:2;2613:11;;2606:4;2594:17;;2559:76;:::i;:::-;2655:17;2674:2;2651:26;;2066:617;-1:-1:-1;;;;;2066:617:165:o;3348:271::-;3390:3;3428:5;3422:12;3455:6;3450:3;3443:19;3471:76;3540:6;3533:4;3528:3;3524:14;3517:4;3510:5;3506:16;3471:76;:::i;:::-;3601:2;3580:15;-1:-1:-1;;3576:29:165;3567:39;;;;3608:4;3563:50;;3348:271;-1:-1:-1;;3348:271:165:o;3624:383::-;3821:2;3810:9;3803:21;3784:4;3847:45;3888:2;3877:9;3873:18;3865:6;3847:45;:::i;:::-;3940:9;3932:6;3928:22;3923:2;3912:9;3908:18;3901:50;3968:33;3994:6;3986;3968:33;:::i;:::-;3960:41;3624:383;-1:-1:-1;;;;;3624:383:165:o;4012:492::-;4187:3;4225:6;4219:13;4241:66;4300:6;4295:3;4288:4;4280:6;4276:17;4241:66;:::i;:::-;4370:13;;4329:16;;;;4392:70;4370:13;4329:16;4439:4;4427:17;;4392:70;:::i;:::-;4478:20;;4012:492;-1:-1:-1;;;;4012:492:165:o","linkReferences":{}},"methodIdentifiers":{"deployToken(string,string)":"1d12b938","tokenDeployed(bytes32)":"a7aa9e8b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"TokenDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"deployToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"tokenDeployed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"deployToken(string,string)\":{\"details\":\"Deploys a token using CREATE2 opcode.\",\"params\":{\"name\":\"string \",\"symbol\":\"string \"},\"returns\":{\"token\":\"address of the deployed Token.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/HTSTokenFactory.sol\":\"HTSTokenFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/HTSTokenFactory.sol\":{\"keccak256\":\"0x887d990d032a7bf13cd31a11930a56c7bb23ce63e5781d0ddbebda1c8eb15d5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9bc2ef60ed0f1f91250f3c7c9f8b4434f9f122fe651a741db53700fa72ac44a\",\"dweb:/ipfs/QmfVyMvjXMh2FS249WEJ98MFLNQDL6LSqBzmGZMAHGSPRv\"]},\"contracts/common/hedera/ExpiryHelper.sol\":{\"keccak256\":\"0x80c84ea8126b556444c5d9e09cd770a61b916db4b713e5b880089f08333190a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c2c586147447052170984ba25688757db5a2ac1c8f49b173441b8e8cdc03e7d9\",\"dweb:/ipfs/QmZpMjo2KKZfniMZaez73ExCVLbssVEUaepRFVkM4aSwzY\"]},\"contracts/common/hedera/HederaResponseCodes.sol\":{\"keccak256\":\"0x85734572347c25f45480488ad4fdb63ed749a794daac839540f5b0eb7dbb22e6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addc4c8c31e1b3fd001986599856bb39e9cb4532a922155f699aae1686563e63\",\"dweb:/ipfs/QmXJES7o4xoSowiDo3qm3Mr3LaWm7g5qTQosw5EAAiz9R5\"]},\"contracts/common/hedera/HederaTokenService.sol\":{\"keccak256\":\"0x91138524b7d67ef498b1cade84eb4f79b5d7cc8b3b59f6c2f60439b91f6c3e79\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4d3a8bcc40da8200571c06b531fcb6b964dfb8d3cb2fd0e96300452b301e2db9\",\"dweb:/ipfs/Qmcv17ozumtuJLNYZz2evqUbRc2dyvprVYeh7Rq1qBrjHG\"]},\"contracts/common/hedera/IHRC.sol\":{\"keccak256\":\"0xa5e623207cec464b0965f98d87db307893dd22d5f46654923e36141bdcb93657\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f3da162916df8236e8c84fa7a0e35757e7c6b3e6af93e98bebe23a03177a0fa9\",\"dweb:/ipfs/Qmb8ZbsGQqbaqpZEhACfuV1FfTDZYKrjbyzUDamYN5gD1c\"]},\"contracts/common/hedera/IHederaTokenService.sol\":{\"keccak256\":\"0xd0606986a26e82ecd4c2cadd498a74fe9fc2061bd65f4e90592d51962ffbd245\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://786b1c29918038c33f7154c7df73d1a668482965ad0dfe920309533314050b6d\",\"dweb:/ipfs/QmV2Lvy9wvWBxXfSz2tPimZf5xEsDwsWqqujyY2a75i7Te\"]},\"contracts/common/hedera/KeyHelper.sol\":{\"keccak256\":\"0xf3a6185aacf2e4964df0a4ad35f4190abe75fb7ed8e6846459513df86a08389a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8700852d1b95bb75bb4f2dd0b8eeb97829d7baa5c3440db874c09d043d2f7a89\",\"dweb:/ipfs/QmP7JneGLR9QHFsGZmDmqUWQDQ6TjWcQWZnbjuxLYzx6dB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"address","name":"deployer","type":"address","indexed":false}],"type":"event","name":"TokenDeployed","anonymous":false},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"stateMutability":"payable","type":"function","name":"deployToken","outputs":[{"internalType":"address","name":"token","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"tokenDeployed","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"deployToken(string,string)":{"details":"Deploys a token using CREATE2 opcode.","params":{"name":"string ","symbol":"string "},"returns":{"token":"address of the deployed Token."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/common/HTSTokenFactory.sol":"HTSTokenFactory"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/HTSTokenFactory.sol":{"keccak256":"0x887d990d032a7bf13cd31a11930a56c7bb23ce63e5781d0ddbebda1c8eb15d5c","urls":["bzz-raw://d9bc2ef60ed0f1f91250f3c7c9f8b4434f9f122fe651a741db53700fa72ac44a","dweb:/ipfs/QmfVyMvjXMh2FS249WEJ98MFLNQDL6LSqBzmGZMAHGSPRv"],"license":"MIT"},"contracts/common/hedera/ExpiryHelper.sol":{"keccak256":"0x80c84ea8126b556444c5d9e09cd770a61b916db4b713e5b880089f08333190a6","urls":["bzz-raw://c2c586147447052170984ba25688757db5a2ac1c8f49b173441b8e8cdc03e7d9","dweb:/ipfs/QmZpMjo2KKZfniMZaez73ExCVLbssVEUaepRFVkM4aSwzY"],"license":"Apache-2.0"},"contracts/common/hedera/HederaResponseCodes.sol":{"keccak256":"0x85734572347c25f45480488ad4fdb63ed749a794daac839540f5b0eb7dbb22e6","urls":["bzz-raw://addc4c8c31e1b3fd001986599856bb39e9cb4532a922155f699aae1686563e63","dweb:/ipfs/QmXJES7o4xoSowiDo3qm3Mr3LaWm7g5qTQosw5EAAiz9R5"],"license":"Apache-2.0"},"contracts/common/hedera/HederaTokenService.sol":{"keccak256":"0x91138524b7d67ef498b1cade84eb4f79b5d7cc8b3b59f6c2f60439b91f6c3e79","urls":["bzz-raw://4d3a8bcc40da8200571c06b531fcb6b964dfb8d3cb2fd0e96300452b301e2db9","dweb:/ipfs/Qmcv17ozumtuJLNYZz2evqUbRc2dyvprVYeh7Rq1qBrjHG"],"license":"Apache-2.0"},"contracts/common/hedera/IHRC.sol":{"keccak256":"0xa5e623207cec464b0965f98d87db307893dd22d5f46654923e36141bdcb93657","urls":["bzz-raw://f3da162916df8236e8c84fa7a0e35757e7c6b3e6af93e98bebe23a03177a0fa9","dweb:/ipfs/Qmb8ZbsGQqbaqpZEhACfuV1FfTDZYKrjbyzUDamYN5gD1c"],"license":"Apache-2.0"},"contracts/common/hedera/IHederaTokenService.sol":{"keccak256":"0xd0606986a26e82ecd4c2cadd498a74fe9fc2061bd65f4e90592d51962ffbd245","urls":["bzz-raw://786b1c29918038c33f7154c7df73d1a668482965ad0dfe920309533314050b6d","dweb:/ipfs/QmV2Lvy9wvWBxXfSz2tPimZf5xEsDwsWqqujyY2a75i7Te"],"license":"Apache-2.0"},"contracts/common/hedera/KeyHelper.sol":{"keccak256":"0xf3a6185aacf2e4964df0a4ad35f4190abe75fb7ed8e6846459513df86a08389a","urls":["bzz-raw://8700852d1b95bb75bb4f2dd0b8eeb97829d7baa5c3440db874c09d043d2f7a89","dweb:/ipfs/QmP7JneGLR9QHFsGZmDmqUWQDQ6TjWcQWZnbjuxLYzx6dB"],"license":"Apache-2.0"}},"version":1},"id":1} \ No newline at end of file diff --git a/out/HederaNFT.sol/HederaNFT.json b/out/HederaNFT.sol/HederaNFT.json new file mode 100644 index 0000000..88da3c0 --- /dev/null +++ b/out/HederaNFT.sol/HederaNFT.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"initialOwner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeMint","inputs":[{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b50604051620013e6380380620013e6833981016040819052620000349162000128565b806040518060400160405280600781526020016612de58d5195cdd60ca1b8152506040518060400160405280600381526020016212d65560ea1b815250816000908162000082919062000201565b50600162000091828262000201565b5050506001600160a01b038116620000c357604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000ce81620000d6565b5050620002cd565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000602082840312156200013b57600080fd5b81516001600160a01b03811681146200015357600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200018557607f821691505b602082108103620001a657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001fc576000816000526020600020601f850160051c81016020861015620001d75750805b601f850160051c820191505b81811015620001f857828155600101620001e3565b5050505b505050565b81516001600160401b038111156200021d576200021d6200015a565b62000235816200022e845462000170565b84620001ac565b602080601f8311600181146200026d5760008415620002545750858301515b600019600386901b1c1916600185901b178555620001f8565b600085815260208120601f198616915b828110156200029e578886015182559484019460019091019084016200027d565b5085821015620002bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61110980620002dd6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a2578063a22cb46511610071578063a22cb4651461021b578063b88d4fde1461022e578063c87b56dd14610241578063e985e9c514610254578063f2fde38b1461026757600080fd5b806370a08231146101d9578063715018a6146101fa5780638da5cb5b1461020257806395d89b411461021357600080fd5b806323b872dd116100de57806323b872dd1461018d57806340d097c3146101a057806342842e0e146101b35780636352211e146101c657600080fd5b806301ffc9a71461011057806306fdde0314610138578063081812fc1461014d578063095ea7b314610178575b600080fd5b61012361011e366004610d52565b61027a565b60405190151581526020015b60405180910390f35b6101406102cc565b60405161012f9190610dbf565b61016061015b366004610dd2565b61035e565b6040516001600160a01b03909116815260200161012f565b61018b610186366004610e07565b610387565b005b61018b61019b366004610e31565b610396565b61018b6101ae366004610e6d565b610426565b61018b6101c1366004610e31565b61044c565b6101606101d4366004610dd2565b61046c565b6101ec6101e7366004610e6d565b610477565b60405190815260200161012f565b61018b6104bf565b6006546001600160a01b0316610160565b6101406104d3565b61018b610229366004610e88565b6104e2565b61018b61023c366004610eda565b6104ed565b61014061024f366004610dd2565b610504565b610123610262366004610fb6565b610579565b61018b610275366004610e6d565b6105a7565b60006001600160e01b031982166380ac58cd60e01b14806102ab57506001600160e01b03198216635b5e139f60e01b145b806102c657506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600080546102db90610fe9565b80601f016020809104026020016040519081016040528092919081815260200182805461030790610fe9565b80156103545780601f1061032957610100808354040283529160200191610354565b820191906000526020600020905b81548152906001019060200180831161033757829003601f168201915b5050505050905090565b6000610369826105e5565b506000828152600460205260409020546001600160a01b03166102c6565b61039282823361061e565b5050565b6001600160a01b0382166103c557604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103d283833361062b565b9050836001600160a01b0316816001600160a01b031614610420576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016103bc565b50505050565b6007546104338282610724565b6007805490600061044383611023565b91905055505050565b610467838383604051806020016040528060008152506104ed565b505050565b60006102c6826105e5565b60006001600160a01b0382166104a3576040516322718ad960e21b8152600060048201526024016103bc565b506001600160a01b031660009081526003602052604090205490565b6104c761073e565b6104d1600061076b565b565b6060600180546102db90610fe9565b6103923383836107bd565b6104f8848484610396565b6104208484848461085c565b606061050f826105e5565b50600061052760408051602081019091526000815290565b905060008151116105475760405180602001604052806000815250610572565b8061055184610985565b60405160200161056292919061104a565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6105af61073e565b6001600160a01b0381166105d957604051631e4fbdf760e01b8152600060048201526024016103bc565b6105e28161076b565b50565b6000818152600260205260408120546001600160a01b0316806102c657604051637e27328960e01b8152600481018490526024016103bc565b6104678383836001610a18565b6000828152600260205260408120546001600160a01b039081169083161561065857610658818486610b1e565b6001600160a01b0381161561069657610675600085600080610a18565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b038516156106c5576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b610392828260405180602001604052806000815250610b82565b6006546001600160a01b031633146104d15760405163118cdaa760e01b81523360048201526024016103bc565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166107ef57604051630b61174360e31b81526001600160a01b03831660048201526024016103bc565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561042057604051630a85bd0160e11b81526001600160a01b0384169063150b7a029061089e903390889087908790600401611079565b6020604051808303816000875af19250505080156108d9575060408051601f3d908101601f191682019092526108d6918101906110b6565b60015b610942573d808015610907576040519150601f19603f3d011682016040523d82523d6000602084013e61090c565b606091505b50805160000361093a57604051633250574960e11b81526001600160a01b03851660048201526024016103bc565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461097e57604051633250574960e11b81526001600160a01b03851660048201526024016103bc565b5050505050565b6060600061099283610b99565b600101905060008167ffffffffffffffff8111156109b2576109b2610ec4565b6040519080825280601f01601f1916602001820160405280156109dc576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846109e657509392505050565b8080610a2c57506001600160a01b03821615155b15610aee576000610a3c846105e5565b90506001600160a01b03831615801590610a685750826001600160a01b0316816001600160a01b031614155b8015610a7b5750610a798184610579565b155b15610aa45760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016103bc565b8115610aec5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610b29838383610c71565b610467576001600160a01b038316610b5757604051637e27328960e01b8152600481018290526024016103bc565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016103bc565b610b8c8383610cd7565b610467600084848461085c565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610bd85772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c04576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c2257662386f26fc10000830492506010015b6305f5e1008310610c3a576305f5e100830492506008015b6127108310610c4e57612710830492506004015b60648310610c60576064830492506002015b600a83106102c65760010192915050565b60006001600160a01b03831615801590610ccf5750826001600160a01b0316846001600160a01b03161480610cab5750610cab8484610579565b80610ccf57506000828152600460205260409020546001600160a01b038481169116145b949350505050565b6001600160a01b038216610d0157604051633250574960e11b8152600060048201526024016103bc565b6000610d0f8383600061062b565b90506001600160a01b03811615610467576040516339e3563760e11b8152600060048201526024016103bc565b6001600160e01b0319811681146105e257600080fd5b600060208284031215610d6457600080fd5b813561057281610d3c565b60005b83811015610d8a578181015183820152602001610d72565b50506000910152565b60008151808452610dab816020860160208601610d6f565b601f01601f19169290920160200192915050565b6020815260006105726020830184610d93565b600060208284031215610de457600080fd5b5035919050565b80356001600160a01b0381168114610e0257600080fd5b919050565b60008060408385031215610e1a57600080fd5b610e2383610deb565b946020939093013593505050565b600080600060608486031215610e4657600080fd5b610e4f84610deb565b9250610e5d60208501610deb565b9150604084013590509250925092565b600060208284031215610e7f57600080fd5b61057282610deb565b60008060408385031215610e9b57600080fd5b610ea483610deb565b915060208301358015158114610eb957600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610ef057600080fd5b610ef985610deb565b9350610f0760208601610deb565b925060408501359150606085013567ffffffffffffffff80821115610f2b57600080fd5b818701915087601f830112610f3f57600080fd5b813581811115610f5157610f51610ec4565b604051601f8201601f19908116603f01168101908382118183101715610f7957610f79610ec4565b816040528281528a6020848701011115610f9257600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610fc957600080fd5b610fd283610deb565b9150610fe060208401610deb565b90509250929050565b600181811c90821680610ffd57607f821691505b60208210810361101d57634e487b7160e01b600052602260045260246000fd5b50919050565b60006001820161104357634e487b7160e01b600052601160045260246000fd5b5060010190565b6000835161105c818460208801610d6f565b835190830190611070818360208801610d6f565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906110ac90830184610d93565b9695505050505050565b6000602082840312156110c857600080fd5b815161057281610d3c56fea2646970667358221220d480d96daff632eeb47109b166250fa75a9d997a752d2fd9060c0585f96f08e564736f6c63430008180033","sourceMap":"198:321:100:-:0;;;242:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;309:12;1381:113:147;;;;;;;;;;;;;-1:-1:-1;;;1381:113:147;;;;;;;;;;;;;;;;-1:-1:-1;;;1381:113:147;;;1455:5;1447;:13;;;;;;:::i;:::-;-1:-1:-1;1470:7:147;:17;1480:7;1470;:17;:::i;:::-;-1:-1:-1;;;;;;;;1273:26:141;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;3167:51:165;3140:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;242:83:100;198:321;;2912:187:141;3004:6;;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;;3052:40;;3004:6;;;3020:17;3004:6;;3052:40;;2985:16;;3052:40;2975:124;2912:187;:::o;14:290:165:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:165;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:165:o;309:127::-;370:10;365:3;361:20;358:1;351:31;401:4;398:1;391:15;425:4;422:1;415:15;441:380;520:1;516:12;;;;563;;;584:61;;638:4;630:6;626:17;616:27;;584:61;691:2;683:6;680:14;660:18;657:38;654:161;;737:10;732:3;728:20;725:1;718:31;772:4;769:1;762:15;800:4;797:1;790:15;654:161;;441:380;;;:::o;952:543::-;1054:2;1049:3;1046:11;1043:446;;;1090:1;1114:5;1111:1;1104:16;1158:4;1155:1;1145:18;1228:2;1216:10;1212:19;1209:1;1205:27;1199:4;1195:38;1264:4;1252:10;1249:20;1246:47;;;-1:-1:-1;1287:4:165;1246:47;1342:2;1337:3;1333:12;1330:1;1326:20;1320:4;1316:31;1306:41;;1397:82;1415:2;1408:5;1405:13;1397:82;;;1460:17;;;1441:1;1430:13;1397:82;;;1401:3;;;1043:446;952:543;;;:::o;1671:1345::-;1791:10;;-1:-1:-1;;;;;1813:30:165;;1810:56;;;1846:18;;:::i;:::-;1875:97;1965:6;1925:38;1957:4;1951:11;1925:38;:::i;:::-;1919:4;1875:97;:::i;:::-;2027:4;;2084:2;2073:14;;2101:1;2096:663;;;;2803:1;2820:6;2817:89;;;-1:-1:-1;2872:19:165;;;2866:26;2817:89;-1:-1:-1;;1628:1:165;1624:11;;;1620:24;1616:29;1606:40;1652:1;1648:11;;;1603:57;2919:81;;2066:944;;2096:663;899:1;892:14;;;936:4;923:18;;-1:-1:-1;;2132:20:165;;;2250:236;2264:7;2261:1;2258:14;2250:236;;;2353:19;;;2347:26;2332:42;;2445:27;;;;2413:1;2401:14;;;;2280:19;;2250:236;;;2254:3;2514:6;2505:7;2502:19;2499:201;;;2575:19;;;2569:26;-1:-1:-1;;2658:1:165;2654:14;;;2670:3;2650:24;2646:37;2642:42;2627:58;2612:74;;2499:201;-1:-1:-1;;;;;2746:1:165;2730:14;;;2726:22;2713:36;;-1:-1:-1;1671:1345:165:o;3021:203::-;198:321:100;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a2578063a22cb46511610071578063a22cb4651461021b578063b88d4fde1461022e578063c87b56dd14610241578063e985e9c514610254578063f2fde38b1461026757600080fd5b806370a08231146101d9578063715018a6146101fa5780638da5cb5b1461020257806395d89b411461021357600080fd5b806323b872dd116100de57806323b872dd1461018d57806340d097c3146101a057806342842e0e146101b35780636352211e146101c657600080fd5b806301ffc9a71461011057806306fdde0314610138578063081812fc1461014d578063095ea7b314610178575b600080fd5b61012361011e366004610d52565b61027a565b60405190151581526020015b60405180910390f35b6101406102cc565b60405161012f9190610dbf565b61016061015b366004610dd2565b61035e565b6040516001600160a01b03909116815260200161012f565b61018b610186366004610e07565b610387565b005b61018b61019b366004610e31565b610396565b61018b6101ae366004610e6d565b610426565b61018b6101c1366004610e31565b61044c565b6101606101d4366004610dd2565b61046c565b6101ec6101e7366004610e6d565b610477565b60405190815260200161012f565b61018b6104bf565b6006546001600160a01b0316610160565b6101406104d3565b61018b610229366004610e88565b6104e2565b61018b61023c366004610eda565b6104ed565b61014061024f366004610dd2565b610504565b610123610262366004610fb6565b610579565b61018b610275366004610e6d565b6105a7565b60006001600160e01b031982166380ac58cd60e01b14806102ab57506001600160e01b03198216635b5e139f60e01b145b806102c657506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600080546102db90610fe9565b80601f016020809104026020016040519081016040528092919081815260200182805461030790610fe9565b80156103545780601f1061032957610100808354040283529160200191610354565b820191906000526020600020905b81548152906001019060200180831161033757829003601f168201915b5050505050905090565b6000610369826105e5565b506000828152600460205260409020546001600160a01b03166102c6565b61039282823361061e565b5050565b6001600160a01b0382166103c557604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103d283833361062b565b9050836001600160a01b0316816001600160a01b031614610420576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016103bc565b50505050565b6007546104338282610724565b6007805490600061044383611023565b91905055505050565b610467838383604051806020016040528060008152506104ed565b505050565b60006102c6826105e5565b60006001600160a01b0382166104a3576040516322718ad960e21b8152600060048201526024016103bc565b506001600160a01b031660009081526003602052604090205490565b6104c761073e565b6104d1600061076b565b565b6060600180546102db90610fe9565b6103923383836107bd565b6104f8848484610396565b6104208484848461085c565b606061050f826105e5565b50600061052760408051602081019091526000815290565b905060008151116105475760405180602001604052806000815250610572565b8061055184610985565b60405160200161056292919061104a565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6105af61073e565b6001600160a01b0381166105d957604051631e4fbdf760e01b8152600060048201526024016103bc565b6105e28161076b565b50565b6000818152600260205260408120546001600160a01b0316806102c657604051637e27328960e01b8152600481018490526024016103bc565b6104678383836001610a18565b6000828152600260205260408120546001600160a01b039081169083161561065857610658818486610b1e565b6001600160a01b0381161561069657610675600085600080610a18565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b038516156106c5576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b610392828260405180602001604052806000815250610b82565b6006546001600160a01b031633146104d15760405163118cdaa760e01b81523360048201526024016103bc565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166107ef57604051630b61174360e31b81526001600160a01b03831660048201526024016103bc565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561042057604051630a85bd0160e11b81526001600160a01b0384169063150b7a029061089e903390889087908790600401611079565b6020604051808303816000875af19250505080156108d9575060408051601f3d908101601f191682019092526108d6918101906110b6565b60015b610942573d808015610907576040519150601f19603f3d011682016040523d82523d6000602084013e61090c565b606091505b50805160000361093a57604051633250574960e11b81526001600160a01b03851660048201526024016103bc565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461097e57604051633250574960e11b81526001600160a01b03851660048201526024016103bc565b5050505050565b6060600061099283610b99565b600101905060008167ffffffffffffffff8111156109b2576109b2610ec4565b6040519080825280601f01601f1916602001820160405280156109dc576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846109e657509392505050565b8080610a2c57506001600160a01b03821615155b15610aee576000610a3c846105e5565b90506001600160a01b03831615801590610a685750826001600160a01b0316816001600160a01b031614155b8015610a7b5750610a798184610579565b155b15610aa45760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016103bc565b8115610aec5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610b29838383610c71565b610467576001600160a01b038316610b5757604051637e27328960e01b8152600481018290526024016103bc565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016103bc565b610b8c8383610cd7565b610467600084848461085c565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610bd85772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c04576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c2257662386f26fc10000830492506010015b6305f5e1008310610c3a576305f5e100830492506008015b6127108310610c4e57612710830492506004015b60648310610c60576064830492506002015b600a83106102c65760010192915050565b60006001600160a01b03831615801590610ccf5750826001600160a01b0316846001600160a01b03161480610cab5750610cab8484610579565b80610ccf57506000828152600460205260409020546001600160a01b038481169116145b949350505050565b6001600160a01b038216610d0157604051633250574960e11b8152600060048201526024016103bc565b6000610d0f8383600061062b565b90506001600160a01b03811615610467576040516339e3563760e11b8152600060048201526024016103bc565b6001600160e01b0319811681146105e257600080fd5b600060208284031215610d6457600080fd5b813561057281610d3c565b60005b83811015610d8a578181015183820152602001610d72565b50506000910152565b60008151808452610dab816020860160208601610d6f565b601f01601f19169290920160200192915050565b6020815260006105726020830184610d93565b600060208284031215610de457600080fd5b5035919050565b80356001600160a01b0381168114610e0257600080fd5b919050565b60008060408385031215610e1a57600080fd5b610e2383610deb565b946020939093013593505050565b600080600060608486031215610e4657600080fd5b610e4f84610deb565b9250610e5d60208501610deb565b9150604084013590509250925092565b600060208284031215610e7f57600080fd5b61057282610deb565b60008060408385031215610e9b57600080fd5b610ea483610deb565b915060208301358015158114610eb957600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610ef057600080fd5b610ef985610deb565b9350610f0760208601610deb565b925060408501359150606085013567ffffffffffffffff80821115610f2b57600080fd5b818701915087601f830112610f3f57600080fd5b813581811115610f5157610f51610ec4565b604051601f8201601f19908116603f01168101908382118183101715610f7957610f79610ec4565b816040528281528a6020848701011115610f9257600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610fc957600080fd5b610fd283610deb565b9150610fe060208401610deb565b90509250929050565b600181811c90821680610ffd57607f821691505b60208210810361101d57634e487b7160e01b600052602260045260246000fd5b50919050565b60006001820161104357634e487b7160e01b600052601160045260246000fd5b5060010190565b6000835161105c818460208801610d6f565b835190830190611070818360208801610d6f565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906110ac90830184610d93565b9695505050505050565b6000602082840312156110c857600080fd5b815161057281610d3c56fea2646970667358221220d480d96daff632eeb47109b166250fa75a9d997a752d2fd9060c0585f96f08e564736f6c63430008180033","sourceMap":"198:321:100:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1561:300:147;;;;;;:::i;:::-;;:::i;:::-;;;565:14:165;;558:22;540:41;;528:2;513:18;1561:300:147;;;;;;;;2365:89;;;:::i;:::-;;;;;;;:::i;3497:154::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:165;;;1679:51;;1667:2;1652:18;3497:154:147;1533:203:165;3323:113:147;;;;;;:::i;:::-;;:::i;:::-;;4143:578;;;;;;:::i;:::-;;:::i;369:148:100:-;;;;;;:::i;:::-;;:::i;4787:132:147:-;;;;;;:::i;:::-;;:::i;2185:118::-;;;;;;:::i;:::-;;:::i;1920:208::-;;;;;;:::i;:::-;;:::i;:::-;;;2848:25:165;;;2836:2;2821:18;1920:208:147;2702:177:165;2293:101:141;;;:::i;1638:85::-;1710:6;;-1:-1:-1;;;;;1710:6:141;1638:85;;2518:93:147;;;:::i;3718:144::-;;;;;;:::i;:::-;;:::i;4985:208::-;;;;;;:::i;:::-;;:::i;2677:255::-;;;;;;:::i;:::-;;:::i;3928:153::-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;1561:300:147:-;1663:4;-1:-1:-1;;;;;;1698:40:147;;-1:-1:-1;;;1698:40:147;;:104;;-1:-1:-1;;;;;;;1754:48:147;;-1:-1:-1;;;1754:48:147;1698:104;:156;;;-1:-1:-1;;;;;;;;;;861:40:158;;;1818:36:147;1679:175;1561:300;-1:-1:-1;;1561:300:147:o;2365:89::-;2410:13;2442:5;2435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:89;:::o;3497:154::-;3564:7;3583:22;3597:7;3583:13;:22::i;:::-;-1:-1:-1;6008:7:147;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:147;3623:21;5938:127;3323:113;3394:35;3403:2;3407:7;735:10:152;3394:8:147;:35::i;:::-;3323:113;;:::o;4143:578::-;-1:-1:-1;;;;;4237:16:147;;4233:87;;4276:33;;-1:-1:-1;;;4276:33:147;;4306:1;4276:33;;;1679:51:165;1652:18;;4276:33:147;;;;;;;;4233:87;4538:21;4562:34;4570:2;4574:7;735:10:152;4562:7:147;:34::i;:::-;4538:58;;4627:4;-1:-1:-1;;;;;4610:21:147;:13;-1:-1:-1;;;;;4610:21:147;;4606:109;;4654:50;;-1:-1:-1;;;4654:50:147;;-1:-1:-1;;;;;5419:15:165;;;4654:50:147;;;5401:34:165;5451:18;;;5444:34;;;5514:15;;5494:18;;;5487:43;5336:18;;4654:50:147;5161:375:165;4606:109:147;4223:498;4143:578;;;:::o;369:148:100:-;436:15;;461:22;471:2;436:15;461:9;:22::i;:::-;493:15;:17;;;:15;:17;;;:::i;:::-;;;;;;408:109;369:148;:::o;4787:132:147:-;4873:39;4890:4;4896:2;4900:7;4873:39;;;;;;;;;;;;:16;:39::i;:::-;4787:132;;;:::o;2185:118::-;2248:7;2274:22;2288:7;2274:13;:22::i;1920:208::-;1983:7;-1:-1:-1;;;;;2006:19:147;;2002:87;;2048:30;;-1:-1:-1;;;2048:30:147;;2075:1;2048:30;;;1679:51:165;1652:18;;2048:30:147;1533:203:165;2002:87:147;-1:-1:-1;;;;;;2105:16:147;;;;;:9;:16;;;;;;;1920:208::o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2518:93:147:-;2565:13;2597:7;2590:14;;;;;:::i;3718:144::-;3803:52;735:10:152;3836:8:147;3846;3803:18;:52::i;4985:208::-;5098:31;5111:4;5117:2;5121:7;5098:12;:31::i;:::-;5139:47;5162:4;5168:2;5172:7;5181:4;5139:22;:47::i;2677:255::-;2741:13;2766:22;2780:7;2766:13;:22::i;:::-;;2799:21;2823:10;3250:9;;;;;;;;;-1:-1:-1;3250:9:147;;;3174:92;2823:10;2799:34;;2874:1;2856:7;2850:21;:25;:75;;;;;;;;;;;;;;;;;2892:7;2901:18;:7;:16;:18::i;:::-;2878:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2850:75;2843:82;2677:255;-1:-1:-1;;;2677:255:147:o;3928:153::-;-1:-1:-1;;;;;4039:25:147;;;4016:4;4039:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;3928:153::o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;1679:51:165::0;1652:18;;2672:31:141::1;1533:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;16138:241:147:-;16201:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:147;;16263:88;;16309:31;;-1:-1:-1;;;16309:31:147;;;;;2848:25:165;;;2821:18;;16309:31:147;2702:177:165;14418:120:147;14498:33;14507:2;14511:7;14520:4;14526;14498:8;:33::i;8838:795::-;8924:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:147;;;;9035:18;;;9031:86;;9069:37;9086:4;9092;9098:7;9069:16;:37::i;:::-;-1:-1:-1;;;;;9161:18:147;;;9157:256;;9277:48;9294:1;9298:7;9315:1;9319:5;9277:8;:48::i;:::-;-1:-1:-1;;;;;9368:15:147;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;9368:20:147;;;9157:256;-1:-1:-1;;;;;9427:16:147;;;9423:107;;-1:-1:-1;;;;;9487:13:147;;;;;;:9;:13;;;;;:18;;9504:1;9487:18;;;9423:107;9540:16;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9540:21:147;-1:-1:-1;;;;;9540:21:147;;;;;;;;;9577:27;;9540:16;;9577:27;;;;;;;9622:4;8838:795;-1:-1:-1;;;;8838:795:147:o;10633:100::-;10700:26;10710:2;10714:7;10700:26;;;;;;;;;;;;:9;:26::i;1796:162:141:-;1710:6;;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;1679:51:165;1652:18;;1901:40:141;1533:203:165;2912:187:141;3004:6;;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;;3052:40;;3004:6;;;3020:17;3004:6;;3052:40;;2985:16;;3052:40;2975:124;2912:187;:::o;15591:312:147:-;-1:-1:-1;;;;;15698:22:147;;15694:91;;15743:31;;-1:-1:-1;;;15743:31:147;;-1:-1:-1;;;;;1697:32:165;;15743:31:147;;;1679:51:165;1652:18;;15743:31:147;1533:203:165;15694:91:147;-1:-1:-1;;;;;15794:25:147;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;15794:46:147;;;;;;;;;;15855:41;;540::165;;;15855::147;;513:18:165;15855:41:147;;;;;;;15591:312;;;:::o;16918:782::-;-1:-1:-1;;;;;17034:14:147;;;:18;17030:664;;17072:71;;-1:-1:-1;;;17072:71:147;;-1:-1:-1;;;;;17072:36:147;;;;;:71;;735:10:152;;17123:4:147;;17129:7;;17138:4;;17072:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17072:71:147;;;;;;;;-1:-1:-1;;17072:71:147;;;;;;;;;;;;:::i;:::-;;;17068:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17381:6;:13;17398:1;17381:18;17377:293;;17430:25;;-1:-1:-1;;;17430:25:147;;-1:-1:-1;;;;;1697:32:165;;17430:25:147;;;1679:51:165;1652:18;;17430:25:147;1533:203:165;17377:293:147;17622:6;17616:13;17607:6;17603:2;17599:15;17592:38;17068:616;-1:-1:-1;;;;;;17190:51:147;;-1:-1:-1;;;17190:51:147;17186:130;;17272:25;;-1:-1:-1;;;17272:25:147;;-1:-1:-1;;;;;1697:32:165;;17272:25:147;;;1679:51:165;1652:18;;17272:25:147;1533:203:165;17186:130:147;17144:186;16918:782;;;;:::o;637:698:155:-;693:13;742:14;759:17;770:5;759:10;:17::i;:::-;779:1;759:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:18:155;-1:-1:-1;794:41:155;-1:-1:-1;955:28:155;;;971:2;955:28;1010:282;-1:-1:-1;;1041:5:155;-1:-1:-1;;;1175:2:155;1164:14;;1159:32;1041:5;1146:46;1236:2;1227:11;;;-1:-1:-1;1256:21:155;1010:282;1256:21;-1:-1:-1;1312:6:155;637:698;-1:-1:-1;;;637:698:155:o;14720:662:147:-;14880:9;:31;;;-1:-1:-1;;;;;;14893:18:147;;;;14880:31;14876:460;;;14927:13;14943:22;14957:7;14943:13;:22::i;:::-;14927:38;-1:-1:-1;;;;;;15093:18:147;;;;;;:35;;;15124:4;-1:-1:-1;;;;;15115:13:147;:5;-1:-1:-1;;;;;15115:13:147;;;15093:35;:69;;;;;15133:29;15150:5;15157:4;15133:16;:29::i;:::-;15132:30;15093:69;15089:142;;;15189:27;;-1:-1:-1;;;15189:27:147;;-1:-1:-1;;;;;1697:32:165;;15189:27:147;;;1679:51:165;1652:18;;15189:27:147;1533:203:165;15089:142:147;15249:9;15245:81;;;15303:7;15299:2;-1:-1:-1;;;;;15283:28:147;15292:5;-1:-1:-1;;;;;15283:28:147;;;;;;;;;;;15245:81;14913:423;14876:460;-1:-1:-1;;15346:24:147;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15346:29:147;-1:-1:-1;;;;;15346:29:147;;;;;;;;;;14720:662::o;7082:368::-;7194:38;7208:5;7215:7;7224;7194:13;:38::i;:::-;7189:255;;-1:-1:-1;;;;;7252:19:147;;7248:186;;7298:31;;-1:-1:-1;;;7298:31:147;;;;;2848:25:165;;;2821:18;;7298:31:147;2702:177:165;7248:186:147;7375:44;;-1:-1:-1;;;7375:44:147;;-1:-1:-1;;;;;7351:32:165;;7375:44:147;;;7333:51:165;7400:18;;;7393:34;;;7306:18;;7375:44:147;7159:274:165;10954:182:147;11048:18;11054:2;11058:7;11048:5;:18::i;:::-;11076:53;11107:1;11111:2;11115:7;11124:4;11076:22;:53::i;12214:916:160:-;12267:7;;-1:-1:-1;;;12342:17:160;;12338:103;;-1:-1:-1;;;12379:17:160;;;-1:-1:-1;12424:2:160;12414:12;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;-1:-1:-1;12540:2:160;12530:12;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;-1:-1:-1;12656:2:160;12646:12;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;-1:-1:-1;12770:1:160;12760:11;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;-1:-1:-1;12883:1:160;12873:11;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;-1:-1:-1;12996:1:160;12986:11;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;13117:6;12214:916;-1:-1:-1;;12214:916:160:o;6376:272:147:-;6479:4;-1:-1:-1;;;;;6514:21:147;;;;;;:127;;;6561:7;-1:-1:-1;;;;;6552:16:147;:5;-1:-1:-1;;;;;6552:16:147;;:52;;;;6572:32;6589:5;6596:7;6572:16;:32::i;:::-;6552:88;;;-1:-1:-1;6008:7:147;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6608:32:147;;;6034:24;;6608:32;6552:88;6495:146;6376:272;-1:-1:-1;;;;6376:272:147:o;9955:327::-;-1:-1:-1;;;;;10022:16:147;;10018:87;;10061:33;;-1:-1:-1;;;10061:33:147;;10091:1;10061:33;;;1679:51:165;1652:18;;10061:33:147;1533:203:165;10018:87:147;10114:21;10138:32;10146:2;10150:7;10167:1;10138:7;:32::i;:::-;10114:56;-1:-1:-1;;;;;;10184:27:147;;;10180:96;;10234:31;;-1:-1:-1;;;10234:31:147;;10262:1;10234:31;;;1679:51:165;1652:18;;10234:31:147;1533:203:165;14:131;-1:-1:-1;;;;;;88:32:165;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:165;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:165;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:165:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:165;;1348:180;-1:-1:-1;1348:180:165:o;1741:173::-;1809:20;;-1:-1:-1;;;;;1858:31:165;;1848:42;;1838:70;;1904:1;1901;1894:12;1838:70;1741:173;;;:::o;1919:254::-;1987:6;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2087:29;2106:9;2087:29;:::i;:::-;2077:39;2163:2;2148:18;;;;2135:32;;-1:-1:-1;;;1919:254:165:o;2178:328::-;2255:6;2263;2271;2324:2;2312:9;2303:7;2299:23;2295:32;2292:52;;;2340:1;2337;2330:12;2292:52;2363:29;2382:9;2363:29;:::i;:::-;2353:39;;2411:38;2445:2;2434:9;2430:18;2411:38;:::i;:::-;2401:48;;2496:2;2485:9;2481:18;2468:32;2458:42;;2178:328;;;;;:::o;2511:186::-;2570:6;2623:2;2611:9;2602:7;2598:23;2594:32;2591:52;;;2639:1;2636;2629:12;2591:52;2662:29;2681:9;2662:29;:::i;2884:347::-;2949:6;2957;3010:2;2998:9;2989:7;2985:23;2981:32;2978:52;;;3026:1;3023;3016:12;2978:52;3049:29;3068:9;3049:29;:::i;:::-;3039:39;;3128:2;3117:9;3113:18;3100:32;3175:5;3168:13;3161:21;3154:5;3151:32;3141:60;;3197:1;3194;3187:12;3141:60;3220:5;3210:15;;;2884:347;;;;;:::o;3236:127::-;3297:10;3292:3;3288:20;3285:1;3278:31;3328:4;3325:1;3318:15;3352:4;3349:1;3342:15;3368:1138;3463:6;3471;3479;3487;3540:3;3528:9;3519:7;3515:23;3511:33;3508:53;;;3557:1;3554;3547:12;3508:53;3580:29;3599:9;3580:29;:::i;:::-;3570:39;;3628:38;3662:2;3651:9;3647:18;3628:38;:::i;:::-;3618:48;;3713:2;3702:9;3698:18;3685:32;3675:42;;3768:2;3757:9;3753:18;3740:32;3791:18;3832:2;3824:6;3821:14;3818:34;;;3848:1;3845;3838:12;3818:34;3886:6;3875:9;3871:22;3861:32;;3931:7;3924:4;3920:2;3916:13;3912:27;3902:55;;3953:1;3950;3943:12;3902:55;3989:2;3976:16;4011:2;4007;4004:10;4001:36;;;4017:18;;:::i;:::-;4092:2;4086:9;4060:2;4146:13;;-1:-1:-1;;4142:22:165;;;4166:2;4138:31;4134:40;4122:53;;;4190:18;;;4210:22;;;4187:46;4184:72;;;4236:18;;:::i;:::-;4276:10;4272:2;4265:22;4311:2;4303:6;4296:18;4351:7;4346:2;4341;4337;4333:11;4329:20;4326:33;4323:53;;;4372:1;4369;4362:12;4323:53;4428:2;4423;4419;4415:11;4410:2;4402:6;4398:15;4385:46;4473:1;4468:2;4463;4455:6;4451:15;4447:24;4440:35;4494:6;4484:16;;;;;;;3368:1138;;;;;;;:::o;4511:260::-;4579:6;4587;4640:2;4628:9;4619:7;4615:23;4611:32;4608:52;;;4656:1;4653;4646:12;4608:52;4679:29;4698:9;4679:29;:::i;:::-;4669:39;;4727:38;4761:2;4750:9;4746:18;4727:38;:::i;:::-;4717:48;;4511:260;;;;;:::o;4776:380::-;4855:1;4851:12;;;;4898;;;4919:61;;4973:4;4965:6;4961:17;4951:27;;4919:61;5026:2;5018:6;5015:14;4995:18;4992:38;4989:161;;5072:10;5067:3;5063:20;5060:1;5053:31;5107:4;5104:1;5097:15;5135:4;5132:1;5125:15;4989:161;;4776:380;;;:::o;5541:232::-;5580:3;5601:17;;;5598:140;;5660:10;5655:3;5651:20;5648:1;5641:31;5695:4;5692:1;5685:15;5723:4;5720:1;5713:15;5598:140;-1:-1:-1;5765:1:165;5754:13;;5541:232::o;5778:496::-;5957:3;5995:6;5989:13;6011:66;6070:6;6065:3;6058:4;6050:6;6046:17;6011:66;:::i;:::-;6140:13;;6099:16;;;;6162:70;6140:13;6099:16;6209:4;6197:17;;6162:70;:::i;:::-;6248:20;;5778:496;-1:-1:-1;;;;5778:496:165:o;6279:489::-;-1:-1:-1;;;;;6548:15:165;;;6530:34;;6600:15;;6595:2;6580:18;;6573:43;6647:2;6632:18;;6625:34;;;6695:3;6690:2;6675:18;;6668:31;;;6473:4;;6716:46;;6742:19;;6734:6;6716:46;:::i;:::-;6708:54;6279:489;-1:-1:-1;;;;;;6279:489:165:o;6773:249::-;6842:6;6895:2;6883:9;6874:7;6870:23;6866:32;6863:52;;;6911:1;6908;6901:12;6863:52;6943:9;6937:16;6962:30;6986:5;6962:30;:::i","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","renounceOwnership()":"715018a6","safeMint(address)":"40d097c3","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"safeMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"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.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc4626/HederaNFT.sol\":\"HederaNFT\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc4626/HederaNFT.sol\":{\"keccak256\":\"0x5d112e37ea36a27072bcb62496760728827744e3ad0ad60ad24f92b80b647b1a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40f029a434457aa005ff1bb1da97abb16ee7db66d91cbe57520c44633b568343\",\"dweb:/ipfs/QmcEpVMWeUXEKzFT3sNErdamZpZJfWv4m5hZXb1NLbQVE5\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"safeMint"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"owner()":{"details":"Returns the address of the current owner."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"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."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc4626/HederaNFT.sol":"HederaNFT"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc4626/HederaNFT.sol":{"keccak256":"0x5d112e37ea36a27072bcb62496760728827744e3ad0ad60ad24f92b80b647b1a","urls":["bzz-raw://40f029a434457aa005ff1bb1da97abb16ee7db66d91cbe57520c44633b568343","dweb:/ipfs/QmcEpVMWeUXEKzFT3sNErdamZpZJfWv4m5hZXb1NLbQVE5"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784","urls":["bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd","dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"}},"version":1},"id":100} \ No newline at end of file diff --git a/out/HederaTokenService.sol/HederaTokenService.json b/out/HederaTokenService.sol/HederaTokenService.json new file mode 100644 index 0000000..0f9b05a --- /dev/null +++ b/out/HederaTokenService.sol/HederaTokenService.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"redirectForToken","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"encodedFunctionSelector","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"responseCode","type":"int256","internalType":"int256"},{"name":"response","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFromNFT","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"serialNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"event","name":"CallResponseEvent","inputs":[{"name":"","type":"bool","indexed":false,"internalType":"bool"},{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"redirectForToken(address,bytes)":"618dc65e","transferFrom(address,address,address,uint256)":"15dacbea","transferFromNFT(address,address,address,uint256)":"9b23d3d9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"CallResponseEvent\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedFunctionSelector\",\"type\":\"bytes\"}],\"name\":\"redirectForToken\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"responseCode\",\"type\":\"int256\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"serialNumber\",\"type\":\"uint256\"}],\"name\":\"transferFromNFT\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"redirectForToken(address,bytes)\":{\"params\":{\"encodedFunctionSelector\":\"The function selector from the ERC20 interface + the bytes input for the function called\",\"token\":\"The token address\"},\"returns\":{\"response\":\"The result of the call that had been encoded and sent for execution.\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"transferFrom(address,address,address,uint256)\":{\"params\":{\"amount\":\"The amount of tokens to transfer from `from` to `to`\",\"from\":\"The account address of the owner of the token, on the behalf of which to transfer `amount` tokens\",\"to\":\"The account address of the receiver of the `amount` tokens\",\"token\":\"The address of the fungible Hedera token to transfer\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"transferFromNFT(address,address,address,uint256)\":{\"params\":{\"from\":\"The account address of the owner of `serialNumber` of `token`\",\"serialNumber\":\"The NFT serial number to transfer\",\"to\":\"The account address of the receiver of `serialNumber`\",\"token\":\"The address of the non-fungible Hedera token to transfer\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"CallResponseEvent(bool,bytes)\":{\"notice\":\"Generic event\"}},\"kind\":\"user\",\"methods\":{\"redirectForToken(address,bytes)\":{\"notice\":\"Redirect for token\"},\"transferFrom(address,address,address,uint256)\":{\"notice\":\"Only applicable to fungible tokens\"},\"transferFromNFT(address,address,address,uint256)\":{\"notice\":\"Transfers `serialNumber` of `token` from `from` to `to` using the allowance mechanism. Only applicable to NFT tokens\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/hedera/HederaTokenService.sol\":\"HederaTokenService\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/hedera/HederaResponseCodes.sol\":{\"keccak256\":\"0x85734572347c25f45480488ad4fdb63ed749a794daac839540f5b0eb7dbb22e6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addc4c8c31e1b3fd001986599856bb39e9cb4532a922155f699aae1686563e63\",\"dweb:/ipfs/QmXJES7o4xoSowiDo3qm3Mr3LaWm7g5qTQosw5EAAiz9R5\"]},\"contracts/common/hedera/HederaTokenService.sol\":{\"keccak256\":\"0x91138524b7d67ef498b1cade84eb4f79b5d7cc8b3b59f6c2f60439b91f6c3e79\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4d3a8bcc40da8200571c06b531fcb6b964dfb8d3cb2fd0e96300452b301e2db9\",\"dweb:/ipfs/Qmcv17ozumtuJLNYZz2evqUbRc2dyvprVYeh7Rq1qBrjHG\"]},\"contracts/common/hedera/IHederaTokenService.sol\":{\"keccak256\":\"0xd0606986a26e82ecd4c2cadd498a74fe9fc2061bd65f4e90592d51962ffbd245\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://786b1c29918038c33f7154c7df73d1a668482965ad0dfe920309533314050b6d\",\"dweb:/ipfs/QmV2Lvy9wvWBxXfSz2tPimZf5xEsDwsWqqujyY2a75i7Te\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bool","name":"","type":"bool","indexed":false},{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"CallResponseEvent","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes","name":"encodedFunctionSelector","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"redirectForToken","outputs":[{"internalType":"int256","name":"responseCode","type":"int256"},{"internalType":"bytes","name":"response","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"serialNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFromNFT","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]}],"devdoc":{"kind":"dev","methods":{"redirectForToken(address,bytes)":{"params":{"encodedFunctionSelector":"The function selector from the ERC20 interface + the bytes input for the function called","token":"The token address"},"returns":{"response":"The result of the call that had been encoded and sent for execution.","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"transferFrom(address,address,address,uint256)":{"params":{"amount":"The amount of tokens to transfer from `from` to `to`","from":"The account address of the owner of the token, on the behalf of which to transfer `amount` tokens","to":"The account address of the receiver of the `amount` tokens","token":"The address of the fungible Hedera token to transfer"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"transferFromNFT(address,address,address,uint256)":{"params":{"from":"The account address of the owner of `serialNumber` of `token`","serialNumber":"The NFT serial number to transfer","to":"The account address of the receiver of `serialNumber`","token":"The address of the non-fungible Hedera token to transfer"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}}},"version":1},"userdoc":{"kind":"user","methods":{"redirectForToken(address,bytes)":{"notice":"Redirect for token"},"transferFrom(address,address,address,uint256)":{"notice":"Only applicable to fungible tokens"},"transferFromNFT(address,address,address,uint256)":{"notice":"Transfers `serialNumber` of `token` from `from` to `to` using the allowance mechanism. Only applicable to NFT tokens"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/common/hedera/HederaTokenService.sol":"HederaTokenService"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/hedera/HederaResponseCodes.sol":{"keccak256":"0x85734572347c25f45480488ad4fdb63ed749a794daac839540f5b0eb7dbb22e6","urls":["bzz-raw://addc4c8c31e1b3fd001986599856bb39e9cb4532a922155f699aae1686563e63","dweb:/ipfs/QmXJES7o4xoSowiDo3qm3Mr3LaWm7g5qTQosw5EAAiz9R5"],"license":"Apache-2.0"},"contracts/common/hedera/HederaTokenService.sol":{"keccak256":"0x91138524b7d67ef498b1cade84eb4f79b5d7cc8b3b59f6c2f60439b91f6c3e79","urls":["bzz-raw://4d3a8bcc40da8200571c06b531fcb6b964dfb8d3cb2fd0e96300452b301e2db9","dweb:/ipfs/Qmcv17ozumtuJLNYZz2evqUbRc2dyvprVYeh7Rq1qBrjHG"],"license":"Apache-2.0"},"contracts/common/hedera/IHederaTokenService.sol":{"keccak256":"0xd0606986a26e82ecd4c2cadd498a74fe9fc2061bd65f4e90592d51962ffbd245","urls":["bzz-raw://786b1c29918038c33f7154c7df73d1a668482965ad0dfe920309533314050b6d","dweb:/ipfs/QmV2Lvy9wvWBxXfSz2tPimZf5xEsDwsWqqujyY2a75i7Te"],"license":"Apache-2.0"}},"version":1},"id":6} \ No newline at end of file diff --git a/out/IAFactory.sol/IAFactory.json b/out/IAFactory.sol/IAFactory.json new file mode 100644 index 0000000..f667ead --- /dev/null +++ b/out/IAFactory.sol/IAFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"trexFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deployIA","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deployedByFactory","inputs":[{"name":"_ia","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"ImplementationAuthorityDeployed","inputs":[{"name":"_ia","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50604051612b6f380380612b6f83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b612adc806100936000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806352f1431b1461003b578063de87aeeb1461006b575b600080fd5b61004e61004936600461051f565b6100a7565b6040516001600160a01b0390911681526020015b60405180910390f35b61009761007936600461051f565b6001600160a01b031660009081526001602052604090205460ff1690565b6040519015158152602001610062565b6000805460408051632d5f118760e01b8152905133926001600160a01b031691632d5f11879160048083019260209291908290030181865afa1580156100f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101159190610543565b6001600160a01b03161461016f5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79207265666572656e63652049412063616e206465706c6f7900000000604482015260640160405180910390fd5b600080336001600160a01b0316632c5d4f8e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d49190610543565b306040516101e1906104fa565b92151583526001600160a01b039182166020840152166040820152606001604051809103906000f08015801561021b573d6000803e3d6000fd5b509050806001600160a01b0316630f3ca8ca336001600160a01b031663fabec44a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561026b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028f9190610576565b604080516001600160e01b031960e085901b168152825160ff908116600483015260208401518116602483015292909101519091166044820152606401600060405180830381600087803b1580156102e657600080fd5b505af11580156102fa573d6000803e3d6000fd5b50505050806001600160a01b031663f38d2491336001600160a01b031663fabec44a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561034b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036f9190610576565b604080516001600160e01b031960e085901b168152825160ff908116600483015260208401518116602483015292909101519091166044820152606401600060405180830381600087803b1580156103c657600080fd5b505af11580156103da573d6000803e3d6000fd5b50505050806001600160a01b031663f2fde38b846001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044f9190610543565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561049057600080fd5b505af11580156104a4573d6000803e3d6000fd5b505050506001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f37ea3036943d4133847a61180abdc134103db7e6a69cf0c4e2dbbda8827b0d909190a292915050565b6124b6806105f183390190565b6001600160a01b038116811461051c57600080fd5b50565b60006020828403121561053157600080fd5b813561053c81610507565b9392505050565b60006020828403121561055557600080fd5b815161053c81610507565b805160ff8116811461057157600080fd5b919050565b60006060828403121561058857600080fd5b6040516060810181811067ffffffffffffffff821117156105b957634e487b7160e01b600052604160045260246000fd5b6040526105c583610560565b81526105d360208401610560565b60208201526105e460408401610560565b6040820152939250505056fe60806040523480156200001157600080fd5b50604051620024b6380380620024b683398101604081905262000034916200019b565b33806200005b57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b62000066816200012e565b50600380546001600160a81b031916841515610100600160a81b03198116919091176101006001600160a01b0386811691820292909217909355600480546001600160a01b0319169185169190911790556040805191825260208201929092527f2a6aba4ff896a38777fb29a590abf5d340a4ba64314bcadf68be9c3ee92b485a910160405180910390a16040516001600160a01b038216907f5fb25b36f93b3d8443f7502abdc1157f581f15db724459ffb2800fce6132a00890600090a2505050620001eb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200019657600080fd5b919050565b600080600060608486031215620001b157600080fd5b83518015158114620001c257600080fd5b9250620001d2602085016200017e565b9150620001e2604085016200017e565b90509250925092565b6122bb80620001fb6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80637f82a5e7116100b8578063cd24be221161007c578063cd24be2214610295578063cf49020e1461029d578063f2fde38b146102b0578063f38d2491146102c3578063fabec44a146102d6578063fedcc0521461035557600080fd5b80637f82a5e7146101e85780638da5cb5b146101fb5780639585548a1461020c5780639e3e7bb91461021f578063afce4bea1461022757600080fd5b80636df23789116100ff5780636df23789146101aa5780636ff6e83f146101bd578063709bc7f3146101c5578063715018a6146101cd57806371673bd0146101d557600080fd5b80630f3ca8ca1461013c5780631320a65a146101515780631ee9ce8b1461016c5780632c5d4f8e1461018c57806361f89825146101a2575b600080fd5b61014f61014a366004611d86565b61035d565b005b60035460ff1660405190151581526020015b60405180910390f35b610174610634565b6040516001600160a01b039091168152602001610163565b60035461010090046001600160a01b0316610174565b610174610696565b61014f6101b8366004611dbe565b6106f8565b610174610822565b610174610884565b61014f6108e3565b61014f6101e3366004611ddb565b6108f7565b61014f6101f6366004611e1c565b61090e565b6000546001600160a01b0316610174565b61014f61021a366004611ddb565b61153f565b6101746117cb565b61023a610235366004611d86565b61182d565b604051610163919081516001600160a01b03908116825260208084015182169083015260408084015182169083015260608084015182169083015260808084015182169083015260a092830151169181019190915260c00190565b6101746118e5565b61014f6102ab366004611dbe565b611963565b61014f6102be366004611dbe565b611a8b565b61014f6102d1366004611d86565b611ac9565b6103296040805160608101825260008082526020820181905291810191909152506040805160608101825260015460ff808216835261010082048116602084015262010000909104169181019190915290565b60408051825160ff90811682526020808501518216908301529282015190921690820152606001610163565b610174611c3f565b60035460ff16156103bf5760405162461bcd60e51b815260206004820152602160248201527f63616e6e6f742063616c6c206f6e207265666572656e636520636f6e747261636044820152601d60fa1b60648201526084015b60405180910390fd5b60006002816103db6103d636869003860186611e9b565b611ca1565b81526020810191909152604001600020546001600160a01b0316146104425760405162461bcd60e51b815260206004820152601760248201527f76657273696f6e206665746368656420616c726561647900000000000000000060448201526064016103b6565b61044a6118e5565b6001600160a01b031663afce4bea826040518263ffffffff1660e01b81526004016104759190611eef565b60c060405180830381865afa158015610492573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b69190611f37565b600260006104cc6103d636869003860186611e9b565b815260208082019290925260409081016000908120845181546001600160a01b03199081166001600160a01b039283161783559486015160018301805487169183169190911790559285015160028083018054871692861692909217909155606086015160038301805487169186169190911790556080860151600483018054871691861691909117905560a090950151600590910180549094169216919091179091556105826103d636859003850185611e9b565b81526020019081526020016000206040516105eb919081546001600160a01b03908116825260018301548116602083015260028301548116604083015260038301548116606083015260048301548116608083015260059092015490911660a082015260c00190565b6040518091039020816040516106019190611ff0565b604051908190038120907f5846080f2085e3dfad8cb250efdba145f8982d2e81ba7f74478da7fab659322b90600090a350565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152600090600290829061067490611ca1565b81526020810191909152604001600020600201546001600160a01b0316919050565b6040805160608101825260015460ff808216835261010082048116602084015262010000909104169181019190915260009060029082906106d690611ca1565b81526020810191909152604001600020600501546001600160a01b0316919050565b610700611cf1565b60035460ff1680156107845750306001600160a01b0316816001600160a01b0316632d5f11876040518163ffffffff1660e01b8152600401602060405180830381865afa158015610755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107799190612037565b6001600160a01b0316145b6107d05760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79207265666572656e636520636f6e74726163742063616e2063616c6c60448201526064016103b6565b60038054610100600160a81b0319166101006001600160a01b038416908102919091179091556040517ff068c7797c3b666af662a0e2f018804080dc37610a1b82b55006872b06d30ef590600090a250565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152600090600290829061086290611ca1565b81526020810191909152604001600020600101546001600160a01b0316919050565b6040805160608101825260015460ff808216835261010082048116602084015262010000909104169181019190915260009060029082906108c490611ca1565b81526020810191909152604001600020546001600160a01b0316919050565b6108eb611cf1565b6108f56000611d1e565b565b610901828261153f565b61090a82611ac9565b5050565b6001600160a01b0382166109645760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016103b6565b6001600160a01b03811615801561097e575060035460ff16155b156109de5760405162461bcd60e51b815260206004820152602a60248201527f6f6e6c79207265666572656e636520636f6e74726163742063616e206465706c6044820152696f79206e65772049417360b01b60648201526084016103b6565b6000826001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190612037565b90506000836001600160a01b0316636290865d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa89190612037565b90506000826001600160a01b031663f11abfd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0e9190612037565b90506000836001600160a01b0316633b3e12f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b749190612037565b90506000846001600160a01b031663b4f3fcb76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bda9190612037565b9050336001600160a01b0316876001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190612037565b6001600160a01b0316141580610cd15750336001600160a01b0316856001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc59190612037565b6001600160a01b031614155b80610d4f5750336001600160a01b0316846001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d439190612037565b6001600160a01b031614155b80610dcd5750336001600160a01b0316836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc19190612037565b6001600160a01b031614155b80610e4b5750336001600160a01b0316826001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3f9190612037565b6001600160a01b031614155b80610ec95750336001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd9190612037565b6001600160a01b031614155b15610f295760405162461bcd60e51b815260206004820152602a60248201527f63616c6c6572204e4f54206f776e6572206f6620616c6c20636f6e74726163746044820152691cc81a5b5c1858dd195960b21b60648201526084016103b6565b6001600160a01b038616610fb057600480546040516352f1431b60e01b81526001600160a01b038a8116938201939093529116906352f1431b906024016020604051808303816000875af1158015610f85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa99190612037565b9550611259565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152610fe890611ca1565b61104d876001600160a01b031663fabec44a6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611029573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d69190612054565b146110b55760405162461bcd60e51b815260206004820152603260248201527f76657273696f6e206f66206e65772049412068617320746f206265207468652060448201527173616d652061732063757272656e7420494160701b60648201526084016103b6565b856001600160a01b0316631320a65a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611117919061209c565b801561113c57506111266118e5565b6001600160a01b0316866001600160a01b031614155b156111895760405162461bcd60e51b815260206004820181905260248201527f6e6577204941206973204e4f54207265666572656e636520636f6e747261637460448201526064016103b6565b6004805460405163de87aeeb60e01b81526001600160a01b038981169382019390935291169063de87aeeb90602401602060405180830381865afa1580156111d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f9919061209c565b15801561121f57506112096118e5565b6001600160a01b0316866001600160a01b031614155b156112595760405162461bcd60e51b815260206004820152600a602482015269696e76616c696420494160b01b60448201526064016103b6565b6040516392dd9d6560e01b81526001600160a01b0387811660048301528816906392dd9d6590602401600060405180830381600087803b15801561129c57600080fd5b505af11580156112b0573d6000803e3d6000fd5b50506040516392dd9d6560e01b81526001600160a01b038981166004830152881692506392dd9d659150602401600060405180830381600087803b1580156112f757600080fd5b505af115801561130b573d6000803e3d6000fd5b50506040516392dd9d6560e01b81526001600160a01b038981166004830152871692506392dd9d659150602401600060405180830381600087803b15801561135257600080fd5b505af1158015611366573d6000803e3d6000fd5b50506040516392dd9d6560e01b81526001600160a01b038981166004830152851692506392dd9d659150602401600060405180830381600087803b1580156113ad57600080fd5b505af11580156113c1573d6000803e3d6000fd5b50506040516392dd9d6560e01b81526001600160a01b038981166004830152841692506392dd9d659150602401600060405180830381600087803b15801561140857600080fd5b505af115801561141c573d6000803e3d6000fd5b50505050306001600160a01b0316836001600160a01b0316632d5f11876040518163ffffffff1660e01b8152600401602060405180830381865afa158015611468573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148c9190612037565b6001600160a01b0316036114f6576040516392dd9d6560e01b81526001600160a01b0387811660048301528416906392dd9d6590602401600060405180830381600087803b1580156114dd57600080fd5b505af11580156114f1573d6000803e3d6000fd5b505050505b856001600160a01b0316876001600160a01b03167ff79ab4f8584958d3168dac16d1d96119f728316536f50639339b4202837051c860405160405180910390a350505050505050565b611547611cf1565b60035460ff166115aa5760405162461bcd60e51b815260206004820152602860248201527f4f4e4c59207265666572656e636520636f6e74726163742063616e206164642060448201526776657273696f6e7360c01b60648201526084016103b6565b60006002816115c16103d636879003870187611e9b565b81526020810191909152604001600020546001600160a01b0316146116215760405162461bcd60e51b815260206004820152601660248201527576657273696f6e20616c72656164792065786973747360501b60448201526064016103b6565b60006116336040830160208401611dbe565b6001600160a01b031614158015611663575060006116576060830160408401611dbe565b6001600160a01b031614155b80156116885750600061167c6080830160608401611dbe565b6001600160a01b031614155b80156116ad575060006116a160c0830160a08401611dbe565b6001600160a01b031614155b80156116d2575060006116c660a0830160808401611dbe565b6001600160a01b031614155b80156116f4575060006116e86020830183611dbe565b6001600160a01b031614155b6117405760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016103b6565b80600260006117576103d636879003870187611e9b565b8152602001908152602001600020818161177191906120de565b5050604051611781908290612184565b6040518091039020826040516117979190611ff0565b604051908190038120907faecad55510e8cbc2b82b73c5c6d78c169403cb719460198f517d41cf7700b71b90600090a35050565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152600090600290829061180b90611ca1565b81526020810191909152604001600020600301546001600160a01b0316919050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152600260006118756103d636869003860186611e9b565b81526020808201929092526040908101600020815160c08101835281546001600160a01b039081168252600183015481169482019490945260028201548416928101929092526003810154831660608301526004810154831660808301526005015490911660a082015292915050565b6000600360019054906101000a90046001600160a01b03166001600160a01b0316632d5f11876040518163ffffffff1660e01b8152600401602060405180830381865afa15801561193a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195e9190612037565b905090565b61196b611cf1565b60035460ff1680156119f5575060035460408051632d5f118760e01b81529051309261010090046001600160a01b031691632d5f11879160048083019260209291908290030181865afa1580156119c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ea9190612037565b6001600160a01b0316145b611a415760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79207265666572656e636520636f6e74726163742063616e2063616c6c60448201526064016103b6565b600480546001600160a01b0319166001600160a01b0383169081179091556040517f5fb25b36f93b3d8443f7502abdc1157f581f15db724459ffb2800fce6132a00890600090a250565b611a93611cf1565b6001600160a01b038116611abd57604051631e4fbdf760e01b8152600060048201526024016103b6565b611ac681611d1e565b50565b611ad1611cf1565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152611b0990611ca1565b611b1b6103d636849003840184611e9b565b03611b615760405162461bcd60e51b815260206004820152601660248201527576657273696f6e20616c726561647920696e2075736560501b60448201526064016103b6565b6000600281611b786103d636869003860186611e9b565b81526020810191909152604001600020546001600160a01b031603611bef5760405162461bcd60e51b815260206004820152602760248201527f696e76616c696420617267756d656e74202d206e6f6e206578697374696e67206044820152663b32b939b4b7b760c91b60648201526084016103b6565b806001611bfc8282612218565b5050604051611c0c908290611ff0565b604051908190038120907f0a46bc1766225d5a82bc50155575dc428902e93470e34ceaf7e0faae128fe0ab90600090a250565b6040805160608101825260015460ff80821683526101008204811660208401526201000090910416918101919091526000906002908290611c7f90611ca1565b81526020810191909152604001600020600401546001600160a01b0316919050565b805160208083015160409384015184516001600160f81b031960f895861b81168286015292851b83166021820152931b166022830152825180830360030181526023909201909252805191012090565b6000546001600160a01b031633146108f55760405163118cdaa760e01b81523360048201526024016103b6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060608284031215611d8057600080fd5b50919050565b600060608284031215611d9857600080fd5b611da28383611d6e565b9392505050565b6001600160a01b0381168114611ac657600080fd5b600060208284031215611dd057600080fd5b8135611da281611da9565b600080828403610120811215611df057600080fd5b611dfa8585611d6e565b925060c0605f1982011215611e0e57600080fd5b506060830190509250929050565b60008060408385031215611e2f57600080fd5b8235611e3a81611da9565b91506020830135611e4a81611da9565b809150509250929050565b6040516060810167ffffffffffffffff81118282101715611e8657634e487b7160e01b600052604160045260246000fd5b60405290565b60ff81168114611ac657600080fd5b600060608284031215611ead57600080fd5b611eb5611e55565b8235611ec081611e8c565b81526020830135611ed081611e8c565b60208201526040830135611ee381611e8c565b60408201529392505050565b606081018235611efe81611e8c565b60ff1682526020830135611f1181611e8c565b60ff1660208301526040830135611f2781611e8c565b60ff811660408401525092915050565b600060c08284031215611f4957600080fd5b60405160c0810181811067ffffffffffffffff82111715611f7a57634e487b7160e01b600052604160045260246000fd5b6040528251611f8881611da9565b81526020830151611f9881611da9565b60208201526040830151611fab81611da9565b60408201526060830151611fbe81611da9565b60608201526080830151611fd181611da9565b608082015260a0830151611fe481611da9565b60a08201529392505050565b60008235611ffd81611e8c565b60ff168252602083013561201081611e8c565b60ff166020830152604083013561202681611e8c565b60ff16604083015250606001919050565b60006020828403121561204957600080fd5b8151611da281611da9565b60006060828403121561206657600080fd5b61206e611e55565b825161207981611e8c565b8152602083015161208981611e8c565b60208201526040830151611ee381611e8c565b6000602082840312156120ae57600080fd5b81518015158114611da257600080fd5b80546001600160a01b0319166001600160a01b0392909216919091179055565b81356120e981611da9565b6120f381836120be565b50602082013561210281611da9565b61210f81600184016120be565b50604082013561211e81611da9565b61212b81600284016120be565b50606082013561213a81611da9565b61214781600384016120be565b50608082013561215681611da9565b61216381600484016120be565b5060a082013561217281611da9565b61217f81600584016120be565b505050565b6000823561219181611da9565b6001600160a01b0390811683526020840135906121ad82611da9565b90811660208401526040840135906121c482611da9565b90811660408401526060840135906121db82611da9565b90811660608401526080840135906121f282611da9565b908116608084015260a08401359061220982611da9565b1660a08301525060c001919050565b813561222381611e8c565b60ff8116905081548160ff198216178355602084013561224281611e8c565b61ff008160081b169050808361ffff19841617178455604085013561226681611e8c565b62ff00008160101b168462ffffff19851617831717855550505050505056fea264697066735822122068f79642f5d24a1684426b71e3cd30b9f225db39583a46ccd73265564b674e2e64736f6c63430008180033a26469706673582212201568a744e141e7a74ea382a67f34288784876466a4e4c103c3a5ec4573588f4864736f6c63430008180033","sourceMap":"3887:1401:70:-:0;;;4171:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4215:12;:26;;-1:-1:-1;;;;;;4215:26:70;-1:-1:-1;;;;;4215:26:70;;;;;;;;;;3887:1401;;14:290:165;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:165;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:165:o;:::-;3887:1401:70;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c806352f1431b1461003b578063de87aeeb1461006b575b600080fd5b61004e61004936600461051f565b6100a7565b6040516001600160a01b0390911681526020015b60405180910390f35b61009761007936600461051f565b6001600160a01b031660009081526001602052604090205460ff1690565b6040519015158152602001610062565b6000805460408051632d5f118760e01b8152905133926001600160a01b031691632d5f11879160048083019260209291908290030181865afa1580156100f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101159190610543565b6001600160a01b03161461016f5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79207265666572656e63652049412063616e206465706c6f7900000000604482015260640160405180910390fd5b600080336001600160a01b0316632c5d4f8e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d49190610543565b306040516101e1906104fa565b92151583526001600160a01b039182166020840152166040820152606001604051809103906000f08015801561021b573d6000803e3d6000fd5b509050806001600160a01b0316630f3ca8ca336001600160a01b031663fabec44a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561026b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028f9190610576565b604080516001600160e01b031960e085901b168152825160ff908116600483015260208401518116602483015292909101519091166044820152606401600060405180830381600087803b1580156102e657600080fd5b505af11580156102fa573d6000803e3d6000fd5b50505050806001600160a01b031663f38d2491336001600160a01b031663fabec44a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561034b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036f9190610576565b604080516001600160e01b031960e085901b168152825160ff908116600483015260208401518116602483015292909101519091166044820152606401600060405180830381600087803b1580156103c657600080fd5b505af11580156103da573d6000803e3d6000fd5b50505050806001600160a01b031663f2fde38b846001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044f9190610543565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561049057600080fd5b505af11580156104a4573d6000803e3d6000fd5b505050506001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f37ea3036943d4133847a61180abdc134103db7e6a69cf0c4e2dbbda8827b0d909190a292915050565b6124b6806105f183390190565b6001600160a01b038116811461051c57600080fd5b50565b60006020828403121561053157600080fd5b813561053c81610507565b9392505050565b60006020828403121561055557600080fd5b815161053c81610507565b805160ff8116811461057157600080fd5b919050565b60006060828403121561058857600080fd5b6040516060810181811067ffffffffffffffff821117156105b957634e487b7160e01b600052604160045260246000fd5b6040526105c583610560565b81526105d360208401610560565b60208201526105e460408401610560565b6040820152939250505056fe60806040523480156200001157600080fd5b50604051620024b6380380620024b683398101604081905262000034916200019b565b33806200005b57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b62000066816200012e565b50600380546001600160a81b031916841515610100600160a81b03198116919091176101006001600160a01b0386811691820292909217909355600480546001600160a01b0319169185169190911790556040805191825260208201929092527f2a6aba4ff896a38777fb29a590abf5d340a4ba64314bcadf68be9c3ee92b485a910160405180910390a16040516001600160a01b038216907f5fb25b36f93b3d8443f7502abdc1157f581f15db724459ffb2800fce6132a00890600090a2505050620001eb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200019657600080fd5b919050565b600080600060608486031215620001b157600080fd5b83518015158114620001c257600080fd5b9250620001d2602085016200017e565b9150620001e2604085016200017e565b90509250925092565b6122bb80620001fb6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80637f82a5e7116100b8578063cd24be221161007c578063cd24be2214610295578063cf49020e1461029d578063f2fde38b146102b0578063f38d2491146102c3578063fabec44a146102d6578063fedcc0521461035557600080fd5b80637f82a5e7146101e85780638da5cb5b146101fb5780639585548a1461020c5780639e3e7bb91461021f578063afce4bea1461022757600080fd5b80636df23789116100ff5780636df23789146101aa5780636ff6e83f146101bd578063709bc7f3146101c5578063715018a6146101cd57806371673bd0146101d557600080fd5b80630f3ca8ca1461013c5780631320a65a146101515780631ee9ce8b1461016c5780632c5d4f8e1461018c57806361f89825146101a2575b600080fd5b61014f61014a366004611d86565b61035d565b005b60035460ff1660405190151581526020015b60405180910390f35b610174610634565b6040516001600160a01b039091168152602001610163565b60035461010090046001600160a01b0316610174565b610174610696565b61014f6101b8366004611dbe565b6106f8565b610174610822565b610174610884565b61014f6108e3565b61014f6101e3366004611ddb565b6108f7565b61014f6101f6366004611e1c565b61090e565b6000546001600160a01b0316610174565b61014f61021a366004611ddb565b61153f565b6101746117cb565b61023a610235366004611d86565b61182d565b604051610163919081516001600160a01b03908116825260208084015182169083015260408084015182169083015260608084015182169083015260808084015182169083015260a092830151169181019190915260c00190565b6101746118e5565b61014f6102ab366004611dbe565b611963565b61014f6102be366004611dbe565b611a8b565b61014f6102d1366004611d86565b611ac9565b6103296040805160608101825260008082526020820181905291810191909152506040805160608101825260015460ff808216835261010082048116602084015262010000909104169181019190915290565b60408051825160ff90811682526020808501518216908301529282015190921690820152606001610163565b610174611c3f565b60035460ff16156103bf5760405162461bcd60e51b815260206004820152602160248201527f63616e6e6f742063616c6c206f6e207265666572656e636520636f6e747261636044820152601d60fa1b60648201526084015b60405180910390fd5b60006002816103db6103d636869003860186611e9b565b611ca1565b81526020810191909152604001600020546001600160a01b0316146104425760405162461bcd60e51b815260206004820152601760248201527f76657273696f6e206665746368656420616c726561647900000000000000000060448201526064016103b6565b61044a6118e5565b6001600160a01b031663afce4bea826040518263ffffffff1660e01b81526004016104759190611eef565b60c060405180830381865afa158015610492573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b69190611f37565b600260006104cc6103d636869003860186611e9b565b815260208082019290925260409081016000908120845181546001600160a01b03199081166001600160a01b039283161783559486015160018301805487169183169190911790559285015160028083018054871692861692909217909155606086015160038301805487169186169190911790556080860151600483018054871691861691909117905560a090950151600590910180549094169216919091179091556105826103d636859003850185611e9b565b81526020019081526020016000206040516105eb919081546001600160a01b03908116825260018301548116602083015260028301548116604083015260038301548116606083015260048301548116608083015260059092015490911660a082015260c00190565b6040518091039020816040516106019190611ff0565b604051908190038120907f5846080f2085e3dfad8cb250efdba145f8982d2e81ba7f74478da7fab659322b90600090a350565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152600090600290829061067490611ca1565b81526020810191909152604001600020600201546001600160a01b0316919050565b6040805160608101825260015460ff808216835261010082048116602084015262010000909104169181019190915260009060029082906106d690611ca1565b81526020810191909152604001600020600501546001600160a01b0316919050565b610700611cf1565b60035460ff1680156107845750306001600160a01b0316816001600160a01b0316632d5f11876040518163ffffffff1660e01b8152600401602060405180830381865afa158015610755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107799190612037565b6001600160a01b0316145b6107d05760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79207265666572656e636520636f6e74726163742063616e2063616c6c60448201526064016103b6565b60038054610100600160a81b0319166101006001600160a01b038416908102919091179091556040517ff068c7797c3b666af662a0e2f018804080dc37610a1b82b55006872b06d30ef590600090a250565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152600090600290829061086290611ca1565b81526020810191909152604001600020600101546001600160a01b0316919050565b6040805160608101825260015460ff808216835261010082048116602084015262010000909104169181019190915260009060029082906108c490611ca1565b81526020810191909152604001600020546001600160a01b0316919050565b6108eb611cf1565b6108f56000611d1e565b565b610901828261153f565b61090a82611ac9565b5050565b6001600160a01b0382166109645760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016103b6565b6001600160a01b03811615801561097e575060035460ff16155b156109de5760405162461bcd60e51b815260206004820152602a60248201527f6f6e6c79207265666572656e636520636f6e74726163742063616e206465706c6044820152696f79206e65772049417360b01b60648201526084016103b6565b6000826001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190612037565b90506000836001600160a01b0316636290865d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa89190612037565b90506000826001600160a01b031663f11abfd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0e9190612037565b90506000836001600160a01b0316633b3e12f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b749190612037565b90506000846001600160a01b031663b4f3fcb76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bda9190612037565b9050336001600160a01b0316876001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190612037565b6001600160a01b0316141580610cd15750336001600160a01b0316856001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc59190612037565b6001600160a01b031614155b80610d4f5750336001600160a01b0316846001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d439190612037565b6001600160a01b031614155b80610dcd5750336001600160a01b0316836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc19190612037565b6001600160a01b031614155b80610e4b5750336001600160a01b0316826001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3f9190612037565b6001600160a01b031614155b80610ec95750336001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd9190612037565b6001600160a01b031614155b15610f295760405162461bcd60e51b815260206004820152602a60248201527f63616c6c6572204e4f54206f776e6572206f6620616c6c20636f6e74726163746044820152691cc81a5b5c1858dd195960b21b60648201526084016103b6565b6001600160a01b038616610fb057600480546040516352f1431b60e01b81526001600160a01b038a8116938201939093529116906352f1431b906024016020604051808303816000875af1158015610f85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa99190612037565b9550611259565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152610fe890611ca1565b61104d876001600160a01b031663fabec44a6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611029573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d69190612054565b146110b55760405162461bcd60e51b815260206004820152603260248201527f76657273696f6e206f66206e65772049412068617320746f206265207468652060448201527173616d652061732063757272656e7420494160701b60648201526084016103b6565b856001600160a01b0316631320a65a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611117919061209c565b801561113c57506111266118e5565b6001600160a01b0316866001600160a01b031614155b156111895760405162461bcd60e51b815260206004820181905260248201527f6e6577204941206973204e4f54207265666572656e636520636f6e747261637460448201526064016103b6565b6004805460405163de87aeeb60e01b81526001600160a01b038981169382019390935291169063de87aeeb90602401602060405180830381865afa1580156111d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f9919061209c565b15801561121f57506112096118e5565b6001600160a01b0316866001600160a01b031614155b156112595760405162461bcd60e51b815260206004820152600a602482015269696e76616c696420494160b01b60448201526064016103b6565b6040516392dd9d6560e01b81526001600160a01b0387811660048301528816906392dd9d6590602401600060405180830381600087803b15801561129c57600080fd5b505af11580156112b0573d6000803e3d6000fd5b50506040516392dd9d6560e01b81526001600160a01b038981166004830152881692506392dd9d659150602401600060405180830381600087803b1580156112f757600080fd5b505af115801561130b573d6000803e3d6000fd5b50506040516392dd9d6560e01b81526001600160a01b038981166004830152871692506392dd9d659150602401600060405180830381600087803b15801561135257600080fd5b505af1158015611366573d6000803e3d6000fd5b50506040516392dd9d6560e01b81526001600160a01b038981166004830152851692506392dd9d659150602401600060405180830381600087803b1580156113ad57600080fd5b505af11580156113c1573d6000803e3d6000fd5b50506040516392dd9d6560e01b81526001600160a01b038981166004830152841692506392dd9d659150602401600060405180830381600087803b15801561140857600080fd5b505af115801561141c573d6000803e3d6000fd5b50505050306001600160a01b0316836001600160a01b0316632d5f11876040518163ffffffff1660e01b8152600401602060405180830381865afa158015611468573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148c9190612037565b6001600160a01b0316036114f6576040516392dd9d6560e01b81526001600160a01b0387811660048301528416906392dd9d6590602401600060405180830381600087803b1580156114dd57600080fd5b505af11580156114f1573d6000803e3d6000fd5b505050505b856001600160a01b0316876001600160a01b03167ff79ab4f8584958d3168dac16d1d96119f728316536f50639339b4202837051c860405160405180910390a350505050505050565b611547611cf1565b60035460ff166115aa5760405162461bcd60e51b815260206004820152602860248201527f4f4e4c59207265666572656e636520636f6e74726163742063616e206164642060448201526776657273696f6e7360c01b60648201526084016103b6565b60006002816115c16103d636879003870187611e9b565b81526020810191909152604001600020546001600160a01b0316146116215760405162461bcd60e51b815260206004820152601660248201527576657273696f6e20616c72656164792065786973747360501b60448201526064016103b6565b60006116336040830160208401611dbe565b6001600160a01b031614158015611663575060006116576060830160408401611dbe565b6001600160a01b031614155b80156116885750600061167c6080830160608401611dbe565b6001600160a01b031614155b80156116ad575060006116a160c0830160a08401611dbe565b6001600160a01b031614155b80156116d2575060006116c660a0830160808401611dbe565b6001600160a01b031614155b80156116f4575060006116e86020830183611dbe565b6001600160a01b031614155b6117405760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016103b6565b80600260006117576103d636879003870187611e9b565b8152602001908152602001600020818161177191906120de565b5050604051611781908290612184565b6040518091039020826040516117979190611ff0565b604051908190038120907faecad55510e8cbc2b82b73c5c6d78c169403cb719460198f517d41cf7700b71b90600090a35050565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152600090600290829061180b90611ca1565b81526020810191909152604001600020600301546001600160a01b0316919050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152600260006118756103d636869003860186611e9b565b81526020808201929092526040908101600020815160c08101835281546001600160a01b039081168252600183015481169482019490945260028201548416928101929092526003810154831660608301526004810154831660808301526005015490911660a082015292915050565b6000600360019054906101000a90046001600160a01b03166001600160a01b0316632d5f11876040518163ffffffff1660e01b8152600401602060405180830381865afa15801561193a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195e9190612037565b905090565b61196b611cf1565b60035460ff1680156119f5575060035460408051632d5f118760e01b81529051309261010090046001600160a01b031691632d5f11879160048083019260209291908290030181865afa1580156119c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ea9190612037565b6001600160a01b0316145b611a415760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79207265666572656e636520636f6e74726163742063616e2063616c6c60448201526064016103b6565b600480546001600160a01b0319166001600160a01b0383169081179091556040517f5fb25b36f93b3d8443f7502abdc1157f581f15db724459ffb2800fce6132a00890600090a250565b611a93611cf1565b6001600160a01b038116611abd57604051631e4fbdf760e01b8152600060048201526024016103b6565b611ac681611d1e565b50565b611ad1611cf1565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152611b0990611ca1565b611b1b6103d636849003840184611e9b565b03611b615760405162461bcd60e51b815260206004820152601660248201527576657273696f6e20616c726561647920696e2075736560501b60448201526064016103b6565b6000600281611b786103d636869003860186611e9b565b81526020810191909152604001600020546001600160a01b031603611bef5760405162461bcd60e51b815260206004820152602760248201527f696e76616c696420617267756d656e74202d206e6f6e206578697374696e67206044820152663b32b939b4b7b760c91b60648201526084016103b6565b806001611bfc8282612218565b5050604051611c0c908290611ff0565b604051908190038120907f0a46bc1766225d5a82bc50155575dc428902e93470e34ceaf7e0faae128fe0ab90600090a250565b6040805160608101825260015460ff80821683526101008204811660208401526201000090910416918101919091526000906002908290611c7f90611ca1565b81526020810191909152604001600020600401546001600160a01b0316919050565b805160208083015160409384015184516001600160f81b031960f895861b81168286015292851b83166021820152931b166022830152825180830360030181526023909201909252805191012090565b6000546001600160a01b031633146108f55760405163118cdaa760e01b81523360048201526024016103b6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060608284031215611d8057600080fd5b50919050565b600060608284031215611d9857600080fd5b611da28383611d6e565b9392505050565b6001600160a01b0381168114611ac657600080fd5b600060208284031215611dd057600080fd5b8135611da281611da9565b600080828403610120811215611df057600080fd5b611dfa8585611d6e565b925060c0605f1982011215611e0e57600080fd5b506060830190509250929050565b60008060408385031215611e2f57600080fd5b8235611e3a81611da9565b91506020830135611e4a81611da9565b809150509250929050565b6040516060810167ffffffffffffffff81118282101715611e8657634e487b7160e01b600052604160045260246000fd5b60405290565b60ff81168114611ac657600080fd5b600060608284031215611ead57600080fd5b611eb5611e55565b8235611ec081611e8c565b81526020830135611ed081611e8c565b60208201526040830135611ee381611e8c565b60408201529392505050565b606081018235611efe81611e8c565b60ff1682526020830135611f1181611e8c565b60ff1660208301526040830135611f2781611e8c565b60ff811660408401525092915050565b600060c08284031215611f4957600080fd5b60405160c0810181811067ffffffffffffffff82111715611f7a57634e487b7160e01b600052604160045260246000fd5b6040528251611f8881611da9565b81526020830151611f9881611da9565b60208201526040830151611fab81611da9565b60408201526060830151611fbe81611da9565b60608201526080830151611fd181611da9565b608082015260a0830151611fe481611da9565b60a08201529392505050565b60008235611ffd81611e8c565b60ff168252602083013561201081611e8c565b60ff166020830152604083013561202681611e8c565b60ff16604083015250606001919050565b60006020828403121561204957600080fd5b8151611da281611da9565b60006060828403121561206657600080fd5b61206e611e55565b825161207981611e8c565b8152602083015161208981611e8c565b60208201526040830151611ee381611e8c565b6000602082840312156120ae57600080fd5b81518015158114611da257600080fd5b80546001600160a01b0319166001600160a01b0392909216919091179055565b81356120e981611da9565b6120f381836120be565b50602082013561210281611da9565b61210f81600184016120be565b50604082013561211e81611da9565b61212b81600284016120be565b50606082013561213a81611da9565b61214781600384016120be565b50608082013561215681611da9565b61216381600484016120be565b5060a082013561217281611da9565b61217f81600584016120be565b505050565b6000823561219181611da9565b6001600160a01b0390811683526020840135906121ad82611da9565b90811660208401526040840135906121c482611da9565b90811660408401526060840135906121db82611da9565b90811660608401526080840135906121f282611da9565b908116608084015260a08401359061220982611da9565b1660a08301525060c001919050565b813561222381611e8c565b60ff8116905081548160ff198216178355602084013561224281611e8c565b61ff008160081b169050808361ffff19841617178455604085013561226681611e8c565b62ff00008160101b168462ffffff19851617831717855550505050505056fea264697066735822122068f79642f5d24a1684426b71e3cd30b9f225db39583a46ccd73265564b674e2e64736f6c63430008180033a26469706673582212201568a744e141e7a74ea382a67f34288784876466a4e4c103c3a5ec4573588f4864736f6c63430008180033","sourceMap":"3887:1401:70:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4310:780;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;566:32:165;;;548:51;;536:2;521:18;4310:780:70;;;;;;;;5161:125;;;;;;:::i;:::-;-1:-1:-1;;;;;5256:23:70;5233:4;5256:23;;;:18;:23;;;;;;;;;5161:125;;;;775:14:165;;768:22;750:41;;738:2;723:18;5161:125:70;610:187:165;4310:780:70;4371:7;4406:12;;4393:55;;;-1:-1:-1;;;4393:55:70;;;;4452:10;;-1:-1:-1;;;;;4406:12:70;;4393:53;;:55;;;;;;;;;;;;;;4406:12;4393:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4393:69:70;;4389:129;;4478:38;;-1:-1:-1;;;4478:38:70;;1260:2:165;4478:38:70;;;1242:21:165;1299:2;1279:18;;;1272:30;1338;1318:18;;;1311:58;1386:18;;4478:38:70;;;;;;;4389:129;4527:34;4604:5;4640:10;-1:-1:-1;;;;;4611:55:70;;:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4678:4;4572:112;;;;;:::i;:::-;1636:14:165;;1629:22;1611:41;;-1:-1:-1;;;;;1726:15:165;;;1721:2;1706:18;;1699:43;1778:15;1773:2;1758:18;;1751:43;1599:2;1584:18;4572:112:70;;;;;;;;;;;;;;;;;;;;;;;4527:157;;4694:6;-1:-1:-1;;;;;4694:19:70;;4743:10;-1:-1:-1;;;;;4714:58:70;;:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4694:81;;;-1:-1:-1;;;;;;4694:81:70;;;;;;;2919:13:165;;2934:4;2915:24;;;4694:81:70;;;2897:43:165;3000:4;2988:17;;2982:24;2978:35;;2956:20;;;2949:65;3062:17;;;;3056:24;3052:35;;;3030:20;;;3023:65;2870:18;;4694:81:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4785:6;-1:-1:-1;;;;;4785:21:70;;4836:10;-1:-1:-1;;;;;4807:58:70;;:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4785:83;;;-1:-1:-1;;;;;;4785:83:70;;;;;;;2919:13:165;;2934:4;2915:24;;;4785:83:70;;;2897:43:165;3000:4;2988:17;;2982:24;2978:35;;2956:20;;;2949:65;3062:17;;;;3056:24;3052:35;;;3030:20;;;3023:65;2870:18;;4785:83:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4886:6;-1:-1:-1;;;;;4878:33:70;;4920:6;-1:-1:-1;;;;;4912:21:70;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4878:58;;-1:-1:-1;;;;;;4878:58:70;;;;;;;-1:-1:-1;;;;;566:32:165;;;4878:58:70;;;548:51:165;521:18;;4878:58:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;4946:35:70;;;;;;4984:4;4946:35;;;;;;;;:42;;-1:-1:-1;;4946:42:70;;;;;;;5003:48;;;4946:35;5003:48;5076:6;4310:780;-1:-1:-1;;4310:780:70:o;-1:-1:-1:-;;;;;;;;:::o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:247::-;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;:::-;386:5;150:247;-1:-1:-1;;;150:247:165:o;802:251::-;872:6;925:2;913:9;904:7;900:23;896:32;893:52;;;941:1;938;931:12;893:52;973:9;967:16;992:31;1017:5;992:31;:::i;1805:160::-;1882:13;;1935:4;1924:16;;1914:27;;1904:55;;1955:1;1952;1945:12;1904:55;1805:160;;;:::o;1970:724::-;2066:6;2119:2;2107:9;2098:7;2094:23;2090:32;2087:52;;;2135:1;2132;2125:12;2087:52;2168:2;2162:9;2210:2;2202:6;2198:15;2279:6;2267:10;2264:22;2243:18;2231:10;2228:34;2225:62;2222:185;;;2329:10;2324:3;2320:20;2317:1;2310:31;2364:4;2361:1;2354:15;2392:4;2389:1;2382:15;2222:185;2423:2;2416:22;2462:38;2490:9;2462:38;:::i;:::-;2454:6;2447:54;2534:47;2577:2;2566:9;2562:18;2534:47;:::i;:::-;2529:2;2521:6;2517:15;2510:72;2615:47;2658:2;2647:9;2643:18;2615:47;:::i;:::-;2610:2;2598:15;;2591:72;2602:6;1970:724;-1:-1:-1;;;1970:724:165:o","linkReferences":{}},"methodIdentifiers":{"deployIA(address)":"52f1431b","deployedByFactory(address)":"de87aeeb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"trexFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_ia\",\"type\":\"address\"}],\"name\":\"ImplementationAuthorityDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"deployIA\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ia\",\"type\":\"address\"}],\"name\":\"deployedByFactory\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"deployIA(address)\":{\"details\":\"See {IIAFactory-deployIA}.\"},\"deployedByFactory(address)\":{\"details\":\"See {IIAFactory-deployedByFactory}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ImplementationAuthorityDeployed(address)\":{\"notice\":\"event emitted when a new TREXImplementationAuthority is deployed\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"functions\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/proxy/authority/IAFactory.sol\":\"IAFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/factory/ITREXFactory.sol\":{\"keccak256\":\"0xb95c6d68ed87b0b92621dc7f50d6c761e21fc98f5c5390e37df019127a9f6c9a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4e38726754a9d9cf0ac73961ba6f7313dd3fea9ff6ea73e33ced23418f812939\",\"dweb:/ipfs/QmQNgh8YNoDGguvSzRuTvKu7eXrqW8K53CxPkuq6RN8HnT\"]},\"contracts/erc3643/proxy/authority/IAFactory.sol\":{\"keccak256\":\"0xedcb7949c51d58a3aadd059c34090ddc99adfea2ed4417fbb9b3d3fc799c7db1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f5158d2abafe06ba797a89abef911cf149ec79bc0ade13f8060155115174f4e5\",\"dweb:/ipfs/QmUWVGvHeDyT6EicP35umbKsbJQ4tTeCEogD49EeBWUcyG\"]},\"contracts/erc3643/proxy/authority/IIAFactory.sol\":{\"keccak256\":\"0x380617d537e848980ebb0e37279615561daad93c77f36ca5d65db481937c76ab\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5b9e5470d367d02a3f5bcf44615fa7722a9fdc4352535c5459e556b03648d6d0\",\"dweb:/ipfs/QmSNkfeAd9soJytsK4FmY9F7559fSrLFuK22SgH5hoHohw\"]},\"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol\":{\"keccak256\":\"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa\",\"dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc\"]},\"contracts/erc3643/proxy/authority/TREXImplementationAuthority.sol\":{\"keccak256\":\"0x412a1a8abff09f73da645c7d268d763281404e0082b3fab2cee74fcbcde69e8d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a64c19fc35d1569ebfb5172e583595241e2eed223974a1bb76ab1b91c017dbe7\",\"dweb:/ipfs/QmYSQgSV4kEm5gVHgiRHyuJ2LmCzSq4pH7pFcpas7LXV4z\"]},\"contracts/erc3643/proxy/interface/IProxy.sol\":{\"keccak256\":\"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65\",\"dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"trexFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_ia","type":"address","indexed":true}],"type":"event","name":"ImplementationAuthorityDeployed","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deployIA","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_ia","type":"address"}],"stateMutability":"view","type":"function","name":"deployedByFactory","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"deployIA(address)":{"details":"See {IIAFactory-deployIA}."},"deployedByFactory(address)":{"details":"See {IIAFactory-deployedByFactory}."}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"functions"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/proxy/authority/IAFactory.sol":"IAFactory"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/factory/ITREXFactory.sol":{"keccak256":"0xb95c6d68ed87b0b92621dc7f50d6c761e21fc98f5c5390e37df019127a9f6c9a","urls":["bzz-raw://4e38726754a9d9cf0ac73961ba6f7313dd3fea9ff6ea73e33ced23418f812939","dweb:/ipfs/QmQNgh8YNoDGguvSzRuTvKu7eXrqW8K53CxPkuq6RN8HnT"],"license":"GPL-3.0"},"contracts/erc3643/proxy/authority/IAFactory.sol":{"keccak256":"0xedcb7949c51d58a3aadd059c34090ddc99adfea2ed4417fbb9b3d3fc799c7db1","urls":["bzz-raw://f5158d2abafe06ba797a89abef911cf149ec79bc0ade13f8060155115174f4e5","dweb:/ipfs/QmUWVGvHeDyT6EicP35umbKsbJQ4tTeCEogD49EeBWUcyG"],"license":"GPL-3.0"},"contracts/erc3643/proxy/authority/IIAFactory.sol":{"keccak256":"0x380617d537e848980ebb0e37279615561daad93c77f36ca5d65db481937c76ab","urls":["bzz-raw://5b9e5470d367d02a3f5bcf44615fa7722a9fdc4352535c5459e556b03648d6d0","dweb:/ipfs/QmSNkfeAd9soJytsK4FmY9F7559fSrLFuK22SgH5hoHohw"],"license":"GPL-3.0"},"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol":{"keccak256":"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5","urls":["bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa","dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc"],"license":"GPL-3.0"},"contracts/erc3643/proxy/authority/TREXImplementationAuthority.sol":{"keccak256":"0x412a1a8abff09f73da645c7d268d763281404e0082b3fab2cee74fcbcde69e8d","urls":["bzz-raw://a64c19fc35d1569ebfb5172e583595241e2eed223974a1bb76ab1b91c017dbe7","dweb:/ipfs/QmYSQgSV4kEm5gVHgiRHyuJ2LmCzSq4pH7pFcpas7LXV4z"],"license":"GPL-3.0"},"contracts/erc3643/proxy/interface/IProxy.sol":{"keccak256":"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536","urls":["bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65","dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":70} \ No newline at end of file diff --git a/out/IAccessControl.sol/IAccessControl.json b/out/IAccessControl.sol/IAccessControl.json new file mode 100644 index 0000000..f5eced3 --- /dev/null +++ b/out/IAccessControl.sol/IAccessControl.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"}],"devdoc":{"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":"IAccessControl"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"}},"version":1},"id":140} \ No newline at end of file diff --git a/out/IClaimIssuer.sol/IClaimIssuer.json b/out/IClaimIssuer.sol/IClaimIssuer.json new file mode 100644 index 0000000..6cc2fa1 --- /dev/null +++ b/out/IClaimIssuer.sol/IClaimIssuer.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addClaim","inputs":[{"name":"_topic","type":"uint256","internalType":"uint256"},{"name":"_scheme","type":"uint256","internalType":"uint256"},{"name":"issuer","type":"address","internalType":"address"},{"name":"_signature","type":"bytes","internalType":"bytes"},{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_uri","type":"string","internalType":"string"}],"outputs":[{"name":"claimRequestId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"addKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"},{"name":"_keyType","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"_id","type":"uint256","internalType":"uint256"},{"name":"_approve","type":"bool","internalType":"bool"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"execute","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"executionId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"getClaim","inputs":[{"name":"_claimId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"topic","type":"uint256","internalType":"uint256"},{"name":"scheme","type":"uint256","internalType":"uint256"},{"name":"issuer","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"uri","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getClaimIdsByTopic","inputs":[{"name":"_topic","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"claimIds","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"purposes","type":"uint256[]","internalType":"uint256[]"},{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getKeyPurposes","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_purposes","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getKeysByPurpose","inputs":[{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keys","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"isClaimRevoked","inputs":[{"name":"_sig","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isClaimValid","inputs":[{"name":"_identity","type":"address","internalType":"contract IIdentity"},{"name":"claimTopic","type":"uint256","internalType":"uint256"},{"name":"sig","type":"bytes","internalType":"bytes"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyHasPurpose","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeClaim","inputs":[{"name":"_claimId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokeClaim","inputs":[{"name":"_claimId","type":"bytes32","internalType":"bytes32"},{"name":"_identity","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokeClaimBySignature","inputs":[{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approved","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ClaimAdded","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimChanged","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimRemoved","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimRevoked","inputs":[{"name":"signature","type":"bytes","indexed":true,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Executed","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ExecutionFailed","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ExecutionRequested","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"KeyAdded","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"purpose","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"keyType","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"KeyRemoved","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"purpose","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"keyType","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addClaim(uint256,uint256,address,bytes,bytes,string)":"b1a34e0d","addKey(bytes32,uint256,uint256)":"1d381240","approve(uint256,bool)":"747442d3","execute(address,uint256,bytes)":"b61d27f6","getClaim(bytes32)":"c9100bcb","getClaimIdsByTopic(uint256)":"80e9e9e1","getKey(bytes32)":"12aaac70","getKeyPurposes(bytes32)":"fb307b34","getKeysByPurpose(uint256)":"9010f726","isClaimRevoked(bytes)":"2646b264","isClaimValid(address,uint256,bytes,bytes)":"c0969a6e","keyHasPurpose(bytes32,uint256)":"d202158d","removeClaim(bytes32)":"4eee424a","removeKey(bytes32,uint256)":"53d413c5","revokeClaim(bytes32,address)":"73c33708","revokeClaimBySignature(bytes)":"9f7f9edd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"Approved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"ClaimRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Executed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_topic\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_scheme\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"_uri\",\"type\":\"string\"}],\"name\":\"addClaim\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimRequestId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_keyType\",\"type\":\"uint256\"}],\"name\":\"addKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_approve\",\"type\":\"bool\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimId\",\"type\":\"bytes32\"}],\"name\":\"getClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_topic\",\"type\":\"uint256\"}],\"name\":\"getClaimIdsByTopic\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"claimIds\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getKey\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"purposes\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getKeyPurposes\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_purposes\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"getKeysByPurpose\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"keys\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_sig\",\"type\":\"bytes\"}],\"name\":\"isClaimRevoked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IIdentity\",\"name\":\"_identity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sig\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"isClaimValid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"keyHasPurpose\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimId\",\"type\":\"bytes32\"}],\"name\":\"removeClaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"removeKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_identity\",\"type\":\"address\"}],\"name\":\"revokeClaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"revokeClaimBySignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approved(uint256,bool)\":{\"details\":\"Emitted when an execution request was approved. Specification: MUST be triggered when approve was successfully called.\"},\"ClaimAdded(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was added. Specification: MUST be triggered when a claim was successfully added.\"},\"ClaimChanged(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was changed. Specification: MUST be triggered when addClaim was successfully called on an existing claimId.\"},\"ClaimRemoved(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was removed. Specification: MUST be triggered when removeClaim was successfully called.\"},\"ClaimRevoked(bytes)\":{\"details\":\"Emitted when a claim is revoked. Specification: MUST be triggered when revoking a claim.\"},\"Executed(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execute operation was approved and successfully performed. Specification: MUST be triggered when approve was called and the execution was successfully approved.\"},\"ExecutionFailed(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execute operation was called and failed Specification: MUST be triggered when execute call failed\"},\"ExecutionRequested(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execution request was performed via `execute`. Specification: MUST be triggered when execute was successfully called.\"},\"KeyAdded(bytes32,uint256,uint256)\":{\"details\":\"Emitted when a key was added to the Identity. Specification: MUST be triggered when addKey was successfully called.\"},\"KeyRemoved(bytes32,uint256,uint256)\":{\"details\":\"Emitted when a key was removed from the Identity. Specification: MUST be triggered when removeKey was successfully called.\"}},\"kind\":\"dev\",\"methods\":{\"addClaim(uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Add or update a claim. Triggers Event: `ClaimAdded`, `ClaimChanged` Specification: Add or update a claim from an issuer. _signature is a signed message of the following structure: `keccak256(abi.encode(address identityHolder_address, uint256 topic, bytes data))`. Claim IDs are generated using `keccak256(abi.encode(address issuer_address + uint256 topic))`.\"},\"addKey(bytes32,uint256,uint256)\":{\"details\":\"Adds a _key to the identity. The _purpose specifies the purpose of the key. Triggers Event: `KeyAdded` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval.\"},\"approve(uint256,bool)\":{\"details\":\"Approves an execution. Triggers Event: `Approved` Triggers on execution successful Event: `Executed` Triggers on execution failure Event: `ExecutionFailed`\"},\"execute(address,uint256,bytes)\":{\"details\":\"Passes an execution instruction to an ERC734 identity. How the execution is handled is up to the identity implementation: An execution COULD be requested and require `approve` to be called with one or more keys of purpose 1 or 2 to approve this execution. Execute COULD be used as the only accessor for `addKey` and `removeKey`. Triggers Event: ExecutionRequested Triggers on direct execution Event: Executed\"},\"getClaim(bytes32)\":{\"details\":\"Get a claim by its ID. Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`.\"},\"getClaimIdsByTopic(uint256)\":{\"details\":\"Returns an array of claim IDs by topic.\"},\"getKey(bytes32)\":{\"details\":\"Returns the full key data, if present in the identity.\"},\"getKeyPurposes(bytes32)\":{\"details\":\"Returns the list of purposes associated with a key.\"},\"getKeysByPurpose(uint256)\":{\"details\":\"Returns an array of public key bytes32 held by this identity.\"},\"isClaimRevoked(bytes)\":{\"details\":\"Returns revocation status of a claim.\",\"params\":{\"_sig\":\"the signature of the claim\"},\"returns\":{\"_0\":\"isRevoked true if the claim is revoked and false otherwise\"}},\"isClaimValid(address,uint256,bytes,bytes)\":{\"details\":\"Checks if a claim is valid.\",\"params\":{\"_identity\":\"the identity contract related to the claim\",\"claimTopic\":\"the claim topic of the claim\",\"data\":\"the data field of the claim\",\"sig\":\"the signature of the claim\"},\"returns\":{\"_0\":\"claimValid true if the claim is valid, false otherwise\"}},\"keyHasPurpose(bytes32,uint256)\":{\"details\":\"Returns TRUE if a key is present and has the given purpose. If the key is not present it returns FALSE.\"},\"removeClaim(bytes32)\":{\"details\":\"Removes a claim. Triggers Event: `ClaimRemoved` Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`.\"},\"removeKey(bytes32,uint256)\":{\"details\":\"Removes _purpose for _key from the identity. Triggers Event: `KeyRemoved` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval.\"},\"revokeClaim(bytes32,address)\":{\"details\":\"Revoke a claim previously issued, the claim is no longer considered as valid after revocation.\",\"params\":{\"_claimId\":\"the id of the claim\",\"_identity\":\"the address of the identity contract\"},\"returns\":{\"_0\":\"isRevoked true when the claim is revoked\"}},\"revokeClaimBySignature(bytes)\":{\"details\":\"Revoke a claim previously issued, the claim is no longer considered as valid after revocation.\",\"params\":{\"signature\":\"the signature of the claim\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"revokeClaim(bytes32,address)\":{\"notice\":\"will fetch the claim from the identity contract (unsafe).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onchainid/interface/IClaimIssuer.sol\":\"IClaimIssuer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"Approved","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimRemoved","anonymous":false},{"inputs":[{"internalType":"bytes","name":"signature","type":"bytes","indexed":true}],"type":"event","name":"ClaimRevoked","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Executed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"ExecutionFailed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"ExecutionRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"uint256","name":"purpose","type":"uint256","indexed":true},{"internalType":"uint256","name":"keyType","type":"uint256","indexed":true}],"type":"event","name":"KeyAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"uint256","name":"purpose","type":"uint256","indexed":true},{"internalType":"uint256","name":"keyType","type":"uint256","indexed":true}],"type":"event","name":"KeyRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_topic","type":"uint256"},{"internalType":"uint256","name":"_scheme","type":"uint256"},{"internalType":"address","name":"issuer","type":"address"},{"internalType":"bytes","name":"_signature","type":"bytes"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"string","name":"_uri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addClaim","outputs":[{"internalType":"bytes32","name":"claimRequestId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"},{"internalType":"uint256","name":"_keyType","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addKey","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"bool","name":"_approve","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"execute","outputs":[{"internalType":"uint256","name":"executionId","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"_claimId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClaim","outputs":[{"internalType":"uint256","name":"topic","type":"uint256"},{"internalType":"uint256","name":"scheme","type":"uint256"},{"internalType":"address","name":"issuer","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string","name":"uri","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"_topic","type":"uint256"}],"stateMutability":"view","type":"function","name":"getClaimIdsByTopic","outputs":[{"internalType":"bytes32[]","name":"claimIds","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKey","outputs":[{"internalType":"uint256[]","name":"purposes","type":"uint256[]"},{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"bytes32","name":"key","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeyPurposes","outputs":[{"internalType":"uint256[]","name":"_purposes","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"view","type":"function","name":"getKeysByPurpose","outputs":[{"internalType":"bytes32[]","name":"keys","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes","name":"_sig","type":"bytes"}],"stateMutability":"view","type":"function","name":"isClaimRevoked","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"contract IIdentity","name":"_identity","type":"address"},{"internalType":"uint256","name":"claimTopic","type":"uint256"},{"internalType":"bytes","name":"sig","type":"bytes"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"isClaimValid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"view","type":"function","name":"keyHasPurpose","outputs":[{"internalType":"bool","name":"exists","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_claimId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeClaim","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeKey","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_claimId","type":"bytes32"},{"internalType":"address","name":"_identity","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeClaim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"revokeClaimBySignature"}],"devdoc":{"kind":"dev","methods":{"addClaim(uint256,uint256,address,bytes,bytes,string)":{"details":"Add or update a claim. Triggers Event: `ClaimAdded`, `ClaimChanged` Specification: Add or update a claim from an issuer. _signature is a signed message of the following structure: `keccak256(abi.encode(address identityHolder_address, uint256 topic, bytes data))`. Claim IDs are generated using `keccak256(abi.encode(address issuer_address + uint256 topic))`."},"addKey(bytes32,uint256,uint256)":{"details":"Adds a _key to the identity. The _purpose specifies the purpose of the key. Triggers Event: `KeyAdded` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval."},"approve(uint256,bool)":{"details":"Approves an execution. Triggers Event: `Approved` Triggers on execution successful Event: `Executed` Triggers on execution failure Event: `ExecutionFailed`"},"execute(address,uint256,bytes)":{"details":"Passes an execution instruction to an ERC734 identity. How the execution is handled is up to the identity implementation: An execution COULD be requested and require `approve` to be called with one or more keys of purpose 1 or 2 to approve this execution. Execute COULD be used as the only accessor for `addKey` and `removeKey`. Triggers Event: ExecutionRequested Triggers on direct execution Event: Executed"},"getClaim(bytes32)":{"details":"Get a claim by its ID. Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`."},"getClaimIdsByTopic(uint256)":{"details":"Returns an array of claim IDs by topic."},"getKey(bytes32)":{"details":"Returns the full key data, if present in the identity."},"getKeyPurposes(bytes32)":{"details":"Returns the list of purposes associated with a key."},"getKeysByPurpose(uint256)":{"details":"Returns an array of public key bytes32 held by this identity."},"isClaimRevoked(bytes)":{"details":"Returns revocation status of a claim.","params":{"_sig":"the signature of the claim"},"returns":{"_0":"isRevoked true if the claim is revoked and false otherwise"}},"isClaimValid(address,uint256,bytes,bytes)":{"details":"Checks if a claim is valid.","params":{"_identity":"the identity contract related to the claim","claimTopic":"the claim topic of the claim","data":"the data field of the claim","sig":"the signature of the claim"},"returns":{"_0":"claimValid true if the claim is valid, false otherwise"}},"keyHasPurpose(bytes32,uint256)":{"details":"Returns TRUE if a key is present and has the given purpose. If the key is not present it returns FALSE."},"removeClaim(bytes32)":{"details":"Removes a claim. Triggers Event: `ClaimRemoved` Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`."},"removeKey(bytes32,uint256)":{"details":"Removes _purpose for _key from the identity. Triggers Event: `KeyRemoved` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval."},"revokeClaim(bytes32,address)":{"details":"Revoke a claim previously issued, the claim is no longer considered as valid after revocation.","params":{"_claimId":"the id of the claim","_identity":"the address of the identity contract"},"returns":{"_0":"isRevoked true when the claim is revoked"}},"revokeClaimBySignature(bytes)":{"details":"Revoke a claim previously issued, the claim is no longer considered as valid after revocation.","params":{"signature":"the signature of the claim"}}},"version":1},"userdoc":{"kind":"user","methods":{"revokeClaim(bytes32,address)":{"notice":"will fetch the claim from the identity contract (unsafe)."}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onchainid/interface/IClaimIssuer.sol":"IClaimIssuer"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"}},"version":1},"id":119} \ No newline at end of file diff --git a/out/IClaimTopicsRegistry.sol/IClaimTopicsRegistry.json b/out/IClaimTopicsRegistry.sol/IClaimTopicsRegistry.json new file mode 100644 index 0000000..b2bb1f4 --- /dev/null +++ b/out/IClaimTopicsRegistry.sol/IClaimTopicsRegistry.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addClaimTopic","inputs":[{"name":"_claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getClaimTopics","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"removeClaimTopic","inputs":[{"name":"_claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ClaimTopicAdded","inputs":[{"name":"claimTopic","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimTopicRemoved","inputs":[{"name":"claimTopic","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addClaimTopic(uint256)":"c7b22551","getClaimTopics()":"df09d604","removeClaimTopic(uint256)":"08297846"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"ClaimTopicAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"ClaimTopicRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimTopic\",\"type\":\"uint256\"}],\"name\":\"addClaimTopic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getClaimTopics\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimTopic\",\"type\":\"uint256\"}],\"name\":\"removeClaimTopic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addClaimTopic(uint256)\":{\"details\":\"Add a trusted claim topic (For example: KYC=1, AML=2). Only owner can call. emits `ClaimTopicAdded` event cannot add more than 15 topics for 1 token as adding more could create gas issues\",\"params\":{\"_claimTopic\":\"The claim topic index\"}},\"getClaimTopics()\":{\"details\":\"Get the trusted claim topics for the security token\",\"returns\":{\"_0\":\"Array of trusted claim topics\"}},\"removeClaimTopic(uint256)\":{\"details\":\"Remove a trusted claim topic (For example: KYC=1, AML=2). Only owner can call. emits `ClaimTopicRemoved` event\",\"params\":{\"_claimTopic\":\"The claim topic index\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ClaimTopicAdded(uint256)\":{\"notice\":\"this event is emitted when a claim topic has been added to the ClaimTopicsRegistry the event is emitted by the 'addClaimTopic' function `claimTopic` is the required claim added to the Claim Topics Registry\"},\"ClaimTopicRemoved(uint256)\":{\"notice\":\"this event is emitted when a claim topic has been removed from the ClaimTopicsRegistry the event is emitted by the 'removeClaimTopic' function `claimTopic` is the required claim removed from the Claim Topics Registry\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":\"IClaimTopicsRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256","indexed":true}],"type":"event","name":"ClaimTopicAdded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256","indexed":true}],"type":"event","name":"ClaimTopicRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_claimTopic","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addClaimTopic"},{"inputs":[],"stateMutability":"view","type":"function","name":"getClaimTopics","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"_claimTopic","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeClaimTopic"}],"devdoc":{"kind":"dev","methods":{"addClaimTopic(uint256)":{"details":"Add a trusted claim topic (For example: KYC=1, AML=2). Only owner can call. emits `ClaimTopicAdded` event cannot add more than 15 topics for 1 token as adding more could create gas issues","params":{"_claimTopic":"The claim topic index"}},"getClaimTopics()":{"details":"Get the trusted claim topics for the security token","returns":{"_0":"Array of trusted claim topics"}},"removeClaimTopic(uint256)":{"details":"Remove a trusted claim topic (For example: KYC=1, AML=2). Only owner can call. emits `ClaimTopicRemoved` event","params":{"_claimTopic":"The claim topic index"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":"IClaimTopicsRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"}},"version":1},"id":79} \ No newline at end of file diff --git a/out/ICompliance.sol/ICompliance.json b/out/ICompliance.sol/ICompliance.json new file mode 100644 index 0000000..7189668 --- /dev/null +++ b/out/ICompliance.sol/ICompliance.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenBound","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"TokenAgentAdded","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentRemoved","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addTokenAgent(address)":"ff3e6954","bindToken(address)":"3ff5aa02","canTransfer(address,address,uint256)":"e46638e6","created(address,uint256)":"5f8dead3","destroyed(address,uint256)":"8d2ea772","isTokenAgent(address)":"346531fa","isTokenBound(address)":"993e8b95","removeTokenAgent(address)":"cdde2932","transferred(address,address,uint256)":"8baf29b4","unbindToken(address)":"40db3b50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"addTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"isTokenAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"removeTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addTokenAgent(address)\":{\"details\":\"adds an agent to the list of token agents\",\"params\":{\"_agentAddress\":\"address of the agent to be added Emits a TokenAgentAdded event\"}},\"bindToken(address)\":{\"details\":\"binds a token to the compliance contract\",\"params\":{\"_token\":\"address of the token to bind Emits a TokenBound event\"}},\"canTransfer(address,address,uint256)\":{\"details\":\"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"created(address,uint256)\":{\"details\":\"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_to\":\"The address of the receiver\"}},\"destroyed(address,uint256)\":{\"details\":\"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the receiver\"}},\"isTokenAgent(address)\":{\"details\":\"Returns true if the Address is in the list of token agents\",\"params\":{\"_agentAddress\":\"address of this agent\"}},\"isTokenBound(address)\":{\"details\":\"Returns true if the address given corresponds to a token that is bound with the Compliance contract\",\"params\":{\"_token\":\"address of the token\"}},\"removeTokenAgent(address)\":{\"details\":\"remove Agent from the list of token agents\",\"params\":{\"_agentAddress\":\"address of the agent to be removed (must be added first) Emits a TokenAgentRemoved event\"}},\"transferred(address,address,uint256)\":{\"details\":\"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"unbindToken(address)\":{\"details\":\"unbinds a token from the compliance contract\",\"params\":{\"_token\":\"address of the token to unbind Emits a TokenUnbound event\"}}},\"version\":1},\"userdoc\":{\"events\":{\"TokenAgentAdded(address)\":{\"notice\":\"this event is emitted when the Agent has been added on the allowedList of this Compliance. the event is emitted by the Compliance constructor and by the addTokenAgent function `_agentAddress` is the address of the Agent to add\"},\"TokenAgentRemoved(address)\":{\"notice\":\"this event is emitted when the Agent has been removed from the agent list of this Compliance. the event is emitted by the Compliance constructor and by the removeTokenAgent function `_agentAddress` is the address of the Agent to remove\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/legacy/ICompliance.sol\":\"ICompliance\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/legacy/ICompliance.sol\":{\"keccak256\":\"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e\",\"dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenAgent"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenAgent"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"}],"devdoc":{"kind":"dev","methods":{"addTokenAgent(address)":{"details":"adds an agent to the list of token agents","params":{"_agentAddress":"address of the agent to be added Emits a TokenAgentAdded event"}},"bindToken(address)":{"details":"binds a token to the compliance contract","params":{"_token":"address of the token to bind Emits a TokenBound event"}},"canTransfer(address,address,uint256)":{"details":"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"created(address,uint256)":{"details":"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_to":"The address of the receiver"}},"destroyed(address,uint256)":{"details":"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the receiver"}},"isTokenAgent(address)":{"details":"Returns true if the Address is in the list of token agents","params":{"_agentAddress":"address of this agent"}},"isTokenBound(address)":{"details":"Returns true if the address given corresponds to a token that is bound with the Compliance contract","params":{"_token":"address of the token"}},"removeTokenAgent(address)":{"details":"remove Agent from the list of token agents","params":{"_agentAddress":"address of the agent to be removed (must be added first) Emits a TokenAgentRemoved event"}},"transferred(address,address,uint256)":{"details":"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"unbindToken(address)":{"details":"unbinds a token from the compliance contract","params":{"_token":"address of the token to unbind Emits a TokenUnbound event"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/legacy/ICompliance.sol":"ICompliance"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/legacy/ICompliance.sol":{"keccak256":"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7","urls":["bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e","dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV"],"license":"GPL-3.0"}},"version":1},"id":26} \ No newline at end of file diff --git a/out/IDVATransferManager.sol/IDVATransferManager.json b/out/IDVATransferManager.sol/IDVATransferManager.json new file mode 100644 index 0000000..edefa68 --- /dev/null +++ b/out/IDVATransferManager.sol/IDVATransferManager.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"approveTransfer","inputs":[{"name":"transferID","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"calculateTransferID","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_recipient","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"cancelTransfer","inputs":[{"name":"transferID","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegateApproveTransfer","inputs":[{"name":"transferID","type":"bytes32","internalType":"bytes32"},{"name":"signatures","type":"tuple[]","internalType":"struct IDVATransferManager.Signature[]","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getApprovalCriteria","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IDVATransferManager.ApprovalCriteria","components":[{"name":"includeRecipientApprover","type":"bool","internalType":"bool"},{"name":"includeAgentApprover","type":"bool","internalType":"bool"},{"name":"sequentialApproval","type":"bool","internalType":"bool"},{"name":"additionalApprovers","type":"address[]","internalType":"address[]"},{"name":"hash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getNextApprover","inputs":[{"name":"transferID","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nextApprover","type":"address","internalType":"address"},{"name":"anyTokenAgent","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getNextTxNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTransfer","inputs":[{"name":"transferID","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IDVATransferManager.Transfer","components":[{"name":"tokenAddress","type":"address","internalType":"address"},{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"status","type":"uint8","internalType":"enum IDVATransferManager.TransferStatus"},{"name":"approvers","type":"tuple[]","internalType":"struct IDVATransferManager.Approver[]","components":[{"name":"wallet","type":"address","internalType":"address"},{"name":"anyTokenAgent","type":"bool","internalType":"bool"},{"name":"approved","type":"bool","internalType":"bool"}]},{"name":"approvalCriteriaHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"initiateTransfer","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"rejectTransfer","inputs":[{"name":"transferID","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalCriteria","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"},{"name":"includeRecipientApprover","type":"bool","internalType":"bool"},{"name":"includeAgentApprover","type":"bool","internalType":"bool"},{"name":"sequentialApproval","type":"bool","internalType":"bool"},{"name":"additionalApprovers","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ApprovalCriteriaSet","inputs":[{"name":"tokenAddress","type":"address","indexed":false,"internalType":"address"},{"name":"includeRecipientApprover","type":"bool","indexed":false,"internalType":"bool"},{"name":"includeAgentApprover","type":"bool","indexed":false,"internalType":"bool"},{"name":"sequentialApproval","type":"bool","indexed":false,"internalType":"bool"},{"name":"additionalApprovers","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"hash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"TransferApprovalStateReset","inputs":[{"name":"transferID","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"approvalCriteriaHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"TransferApproved","inputs":[{"name":"transferID","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"approver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TransferCancelled","inputs":[{"name":"transferID","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"TransferCompleted","inputs":[{"name":"transferID","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"tokenAddress","type":"address","indexed":false,"internalType":"address"},{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TransferInitiated","inputs":[{"name":"transferID","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"tokenAddress","type":"address","indexed":false,"internalType":"address"},{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"approvalCriteriaHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"TransferRejected","inputs":[{"name":"transferID","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"rejectedBy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ApprovalsMustBeSequential","inputs":[{"name":"_transferID","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ApproverNotFound","inputs":[{"name":"_transferID","type":"bytes32","internalType":"bytes32"},{"name":"_approver","type":"address","internalType":"address"}]},{"type":"error","name":"DVAManagerIsNotVerifiedForTheToken","inputs":[{"name":"_tokenAddress","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidTransferID","inputs":[{"name":"_transferID","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OnlyTokenAgentCanCall","inputs":[{"name":"_tokenAddress","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyTransferSenderCanCall","inputs":[{"name":"_transferID","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"RecipientIsNotVerified","inputs":[{"name":"_tokenAddress","type":"address","internalType":"address"},{"name":"_recipient","type":"address","internalType":"address"}]},{"type":"error","name":"SignaturesCanNotBeEmpty","inputs":[{"name":"_transferID","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"TokenIsNotRegistered","inputs":[{"name":"_tokenAddress","type":"address","internalType":"address"}]},{"type":"error","name":"TransferIsNotInPendingStatus","inputs":[{"name":"_transferID","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approveTransfer(bytes32)":"ba33984a","calculateTransferID(uint256,address,address,uint256)":"c341a1c2","cancelTransfer(bytes32)":"b329bf5c","delegateApproveTransfer(bytes32,(uint8,bytes32,bytes32)[])":"dd1db9cf","getApprovalCriteria(address)":"90906f9d","getNextApprover(bytes32)":"c38756cc","getNextTxNonce()":"7087dbf9","getTransfer(bytes32)":"260958a5","initiateTransfer(address,address,uint256)":"bc0755e1","name()":"06fdde03","rejectTransfer(bytes32)":"7fbeb89c","setApprovalCriteria(address,bool,bool,bool,address[])":"6e710bf3"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_transferID\",\"type\":\"bytes32\"}],\"name\":\"ApprovalsMustBeSequential\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_transferID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_approver\",\"type\":\"address\"}],\"name\":\"ApproverNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddress\",\"type\":\"address\"}],\"name\":\"DVAManagerIsNotVerifiedForTheToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_transferID\",\"type\":\"bytes32\"}],\"name\":\"InvalidTransferID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddress\",\"type\":\"address\"}],\"name\":\"OnlyTokenAgentCanCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_transferID\",\"type\":\"bytes32\"}],\"name\":\"OnlyTransferSenderCanCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"RecipientIsNotVerified\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_transferID\",\"type\":\"bytes32\"}],\"name\":\"SignaturesCanNotBeEmpty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddress\",\"type\":\"address\"}],\"name\":\"TokenIsNotRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_transferID\",\"type\":\"bytes32\"}],\"name\":\"TransferIsNotInPendingStatus\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"includeRecipientApprover\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"includeAgentApprover\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"sequentialApproval\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"additionalApprovers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"ApprovalCriteriaSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"approvalCriteriaHash\",\"type\":\"bytes32\"}],\"name\":\"TransferApprovalStateReset\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"TransferApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"}],\"name\":\"TransferCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"approvalCriteriaHash\",\"type\":\"bytes32\"}],\"name\":\"TransferInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rejectedBy\",\"type\":\"address\"}],\"name\":\"TransferRejected\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"}],\"name\":\"approveTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"calculateTransferID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"}],\"name\":\"cancelTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct IDVATransferManager.Signature[]\",\"name\":\"signatures\",\"type\":\"tuple[]\"}],\"name\":\"delegateApproveTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"getApprovalCriteria\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"includeRecipientApprover\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"includeAgentApprover\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"sequentialApproval\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"additionalApprovers\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"internalType\":\"struct IDVATransferManager.ApprovalCriteria\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"}],\"name\":\"getNextApprover\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"nextApprover\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"anyTokenAgent\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextTxNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"}],\"name\":\"getTransfer\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"enum IDVATransferManager.TransferStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"anyTokenAgent\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"internalType\":\"struct IDVATransferManager.Approver[]\",\"name\":\"approvers\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"approvalCriteriaHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct IDVATransferManager.Transfer\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"initiateTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transferID\",\"type\":\"bytes32\"}],\"name\":\"rejectTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"includeRecipientApprover\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"includeAgentApprover\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"sequentialApproval\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"additionalApprovers\",\"type\":\"address[]\"}],\"name\":\"setApprovalCriteria\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approveTransfer(bytes32)\":{\"details\":\"approves a transfer\",\"params\":{\"transferID\":\"is the unique ID of the transfer msg.sender must be an approver of the transfer emits a `TransferApproved` event emits a `TransferCompleted` event (if all approvers approved the transfer) emits a `TransferApprovalStateReset` event (if transfer approval criteria have been reset)\"}},\"calculateTransferID(uint256,address,address,uint256)\":{\"details\":\"calculates unique transfer ID\",\"params\":{\"_amount\":\"is the transfer amount returns a unique transfer ID\",\"_nonce\":\"is the unique nonce value\",\"_recipient\":\"is the recipient of the transfer\",\"_sender\":\"is the sender of the transfer\"}},\"cancelTransfer(bytes32)\":{\"details\":\"cancels a transfer\",\"params\":{\"transferID\":\"is the unique ID of the transfer msg.sender must be the sender of the transfer emits a `TransferCancelled` event\"}},\"delegateApproveTransfer(bytes32,(uint8,bytes32,bytes32)[])\":{\"details\":\"approves a transfer with delegated signatures\",\"params\":{\"signatures\":\"is the array of signatures of the approvers emits a `TransferApproved` event emits a `TransferCompleted` event (if all approvers approved the transfer) emits a `TransferApprovalStateReset` event (if transfer approval criteria have been reset)\",\"transferID\":\"is the unique ID of the transfer\"}},\"getApprovalCriteria(address)\":{\"details\":\"getter for the approval criteria of tokens\",\"params\":{\"tokenAddress\":\"is the address of the token returns approval criteria of the token\"}},\"getNextApprover(bytes32)\":{\"details\":\"getter for the next approver of a transfer\",\"params\":{\"transferID\":\"is the unique ID of the transfer returns address of the next approver and any token agent flag\"}},\"getNextTxNonce()\":{\"details\":\"getter for the next unique nonce value returns nonce\"},\"getTransfer(bytes32)\":{\"details\":\"getter for the transfer\",\"params\":{\"transferID\":\"is the unique ID of the transfer returns transfer\"}},\"initiateTransfer(address,address,uint256)\":{\"details\":\"initiates a new transfer\",\"params\":{\"amount\":\"is the transfer amount Approval criteria must be preset for the given token address Sender must give DvA an allowance of at least the specified amount Receiver must be verified for the given token address emits a `TransferInitiated` event\",\"recipient\":\"is the address of the recipient\",\"tokenAddress\":\"is the address of the token\"}},\"name()\":{\"details\":\"getter for the name of the manager\",\"returns\":{\"_name\":\"the name of the manager\"}},\"rejectTransfer(bytes32)\":{\"details\":\"rejects a transfer\",\"params\":{\"transferID\":\"is the unique ID of the transfer msg.sender must be an approver of the transfer emits a `TransferRejected` event emits a `TransferApprovalStateReset` event (if transfer approval criteria have been reset)\"}},\"setApprovalCriteria(address,bool,bool,bool,address[])\":{\"details\":\"modify the approval criteria of a token\",\"params\":{\"additionalApprovers\":\"are the addresses of additional approvers to be added to the approver list Only token owner can call this function DVATransferManager must be an agent of the given token emits an `ApprovalCriteriaSet` event\",\"includeAgentApprover\":\"determines whether the agent is included in the approver list\",\"includeRecipientApprover\":\"determines whether the recipient is included in the approver list\",\"sequentialApproval\":\"determines whether approvals must be sequential\",\"tokenAddress\":\"is the token address.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ApprovalCriteriaSet(address,bool,bool,bool,address[],bytes32)\":{\"notice\":\"this event is emitted whenever an approval criteria of a token is modified. the event is emitted by 'setApprovalCriteria' function. `tokenAddress` is the token address. `includeRecipientApprover` determines whether the recipient is included in the approver list `includeAgentApprover` determines whether the agent is included in the approver list `sequentialApproval` determines whether approvals must be sequential `additionalApprovers` are the addresses of additional approvers to be added to the approver list `hash` is the approval criteria hash\"},\"TransferApprovalStateReset(bytes32,bytes32)\":{\"notice\":\"this event is emitted whenever a transfer approval criteria are reset the event is emitted by 'approveTransfer' and 'rejectTransfer' functions. `transferID` is the unique ID of the transfer `approvers` is the list of approvers `approvalCriteriaHash` is the approval criteria hash\"},\"TransferApproved(bytes32,address)\":{\"notice\":\"this event is emitted whenever a transfer is approved by an approver the event is emitted by 'approveTransfer' function. `transferID` is the unique ID of the transfer `approver` is the approver address\"},\"TransferCancelled(bytes32)\":{\"notice\":\"this event is emitted whenever a transfer is cancelled by the sender the event is emitted by 'cancelTransfer' function. `transferID` is the unique ID of the transfer\"},\"TransferCompleted(bytes32,address,address,address,uint256)\":{\"notice\":\"this event is emitted whenever all approvers approve a transfer the event is emitted by 'approveTransfer' function. `transferID` is the unique ID of the transfer `tokenAddress` is the token address `sender` is the address of the sender `recipient` is the address of the recipient `amount` is the amount of the transfer\"},\"TransferInitiated(bytes32,address,address,address,uint256,bytes32)\":{\"notice\":\"this event is emitted whenever a transfer is initiated the event is emitted by 'initiateTransfer' function. `transferID` is the unique ID of the transfer `tokenAddress` is the token address `sender` is the address of the sender `recipient` is the address of the recipient `amount` is the amount of the transfer `approvers` is the list of approvers `approvalCriteriaHash` is the approval criteria hash\"},\"TransferRejected(bytes32,address)\":{\"notice\":\"this event is emitted whenever a transfer is rejected by an approver the event is emitted by 'rejectTransfer' function. `transferID` is the unique ID of the transfer `rejectedBy` is the approver address\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/DVA/IDVATransferManager.sol\":\"IDVATransferManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/DVA/IDVATransferManager.sol\":{\"keccak256\":\"0xf2455e9def4225009ec29dcdd1487e184db0d2bc2572501031ed02e209dfa4ad\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dce26ae2b1eee4b2e7ca5a94807b4bca9ab08e0a7a01a5e8ac57fa9a9a1b30f0\",\"dweb:/ipfs/QmZsvjDLn8SeNJhB15TxNmRD9xbVMVijTmu21j5HbWbkbn\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_transferID","type":"bytes32"}],"type":"error","name":"ApprovalsMustBeSequential"},{"inputs":[{"internalType":"bytes32","name":"_transferID","type":"bytes32"},{"internalType":"address","name":"_approver","type":"address"}],"type":"error","name":"ApproverNotFound"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"type":"error","name":"DVAManagerIsNotVerifiedForTheToken"},{"inputs":[{"internalType":"bytes32","name":"_transferID","type":"bytes32"}],"type":"error","name":"InvalidTransferID"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"type":"error","name":"OnlyTokenAgentCanCall"},{"inputs":[{"internalType":"bytes32","name":"_transferID","type":"bytes32"}],"type":"error","name":"OnlyTransferSenderCanCall"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"type":"error","name":"RecipientIsNotVerified"},{"inputs":[{"internalType":"bytes32","name":"_transferID","type":"bytes32"}],"type":"error","name":"SignaturesCanNotBeEmpty"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"type":"error","name":"TokenIsNotRegistered"},{"inputs":[{"internalType":"bytes32","name":"_transferID","type":"bytes32"}],"type":"error","name":"TransferIsNotInPendingStatus"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address","indexed":false},{"internalType":"bool","name":"includeRecipientApprover","type":"bool","indexed":false},{"internalType":"bool","name":"includeAgentApprover","type":"bool","indexed":false},{"internalType":"bool","name":"sequentialApproval","type":"bool","indexed":false},{"internalType":"address[]","name":"additionalApprovers","type":"address[]","indexed":false},{"internalType":"bytes32","name":"hash","type":"bytes32","indexed":false}],"type":"event","name":"ApprovalCriteriaSet","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"approvalCriteriaHash","type":"bytes32","indexed":false}],"type":"event","name":"TransferApprovalStateReset","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32","indexed":false},{"internalType":"address","name":"approver","type":"address","indexed":false}],"type":"event","name":"TransferApproved","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32","indexed":false}],"type":"event","name":"TransferCancelled","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32","indexed":false},{"internalType":"address","name":"tokenAddress","type":"address","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"address","name":"recipient","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"TransferCompleted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32","indexed":false},{"internalType":"address","name":"tokenAddress","type":"address","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"address","name":"recipient","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes32","name":"approvalCriteriaHash","type":"bytes32","indexed":false}],"type":"event","name":"TransferInitiated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32","indexed":false},{"internalType":"address","name":"rejectedBy","type":"address","indexed":false}],"type":"event","name":"TransferRejected","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"approveTransfer"},{"inputs":[{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"pure","type":"function","name":"calculateTransferID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"cancelTransfer"},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32"},{"internalType":"struct IDVATransferManager.Signature[]","name":"signatures","type":"tuple[]","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"delegateApproveTransfer"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getApprovalCriteria","outputs":[{"internalType":"struct IDVATransferManager.ApprovalCriteria","name":"","type":"tuple","components":[{"internalType":"bool","name":"includeRecipientApprover","type":"bool"},{"internalType":"bool","name":"includeAgentApprover","type":"bool"},{"internalType":"bool","name":"sequentialApproval","type":"bool"},{"internalType":"address[]","name":"additionalApprovers","type":"address[]"},{"internalType":"bytes32","name":"hash","type":"bytes32"}]}]},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getNextApprover","outputs":[{"internalType":"address","name":"nextApprover","type":"address"},{"internalType":"bool","name":"anyTokenAgent","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getNextTxNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getTransfer","outputs":[{"internalType":"struct IDVATransferManager.Transfer","name":"","type":"tuple","components":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum IDVATransferManager.TransferStatus","name":"status","type":"uint8"},{"internalType":"struct IDVATransferManager.Approver[]","name":"approvers","type":"tuple[]","components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"anyTokenAgent","type":"bool"},{"internalType":"bool","name":"approved","type":"bool"}]},{"internalType":"bytes32","name":"approvalCriteriaHash","type":"bytes32"}]}]},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initiateTransfer"},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[{"internalType":"bytes32","name":"transferID","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"rejectTransfer"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"bool","name":"includeRecipientApprover","type":"bool"},{"internalType":"bool","name":"includeAgentApprover","type":"bool"},{"internalType":"bool","name":"sequentialApproval","type":"bool"},{"internalType":"address[]","name":"additionalApprovers","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalCriteria"}],"devdoc":{"kind":"dev","methods":{"approveTransfer(bytes32)":{"details":"approves a transfer","params":{"transferID":"is the unique ID of the transfer msg.sender must be an approver of the transfer emits a `TransferApproved` event emits a `TransferCompleted` event (if all approvers approved the transfer) emits a `TransferApprovalStateReset` event (if transfer approval criteria have been reset)"}},"calculateTransferID(uint256,address,address,uint256)":{"details":"calculates unique transfer ID","params":{"_amount":"is the transfer amount returns a unique transfer ID","_nonce":"is the unique nonce value","_recipient":"is the recipient of the transfer","_sender":"is the sender of the transfer"}},"cancelTransfer(bytes32)":{"details":"cancels a transfer","params":{"transferID":"is the unique ID of the transfer msg.sender must be the sender of the transfer emits a `TransferCancelled` event"}},"delegateApproveTransfer(bytes32,(uint8,bytes32,bytes32)[])":{"details":"approves a transfer with delegated signatures","params":{"signatures":"is the array of signatures of the approvers emits a `TransferApproved` event emits a `TransferCompleted` event (if all approvers approved the transfer) emits a `TransferApprovalStateReset` event (if transfer approval criteria have been reset)","transferID":"is the unique ID of the transfer"}},"getApprovalCriteria(address)":{"details":"getter for the approval criteria of tokens","params":{"tokenAddress":"is the address of the token returns approval criteria of the token"}},"getNextApprover(bytes32)":{"details":"getter for the next approver of a transfer","params":{"transferID":"is the unique ID of the transfer returns address of the next approver and any token agent flag"}},"getNextTxNonce()":{"details":"getter for the next unique nonce value returns nonce"},"getTransfer(bytes32)":{"details":"getter for the transfer","params":{"transferID":"is the unique ID of the transfer returns transfer"}},"initiateTransfer(address,address,uint256)":{"details":"initiates a new transfer","params":{"amount":"is the transfer amount Approval criteria must be preset for the given token address Sender must give DvA an allowance of at least the specified amount Receiver must be verified for the given token address emits a `TransferInitiated` event","recipient":"is the address of the recipient","tokenAddress":"is the address of the token"}},"name()":{"details":"getter for the name of the manager","returns":{"_name":"the name of the manager"}},"rejectTransfer(bytes32)":{"details":"rejects a transfer","params":{"transferID":"is the unique ID of the transfer msg.sender must be an approver of the transfer emits a `TransferRejected` event emits a `TransferApprovalStateReset` event (if transfer approval criteria have been reset)"}},"setApprovalCriteria(address,bool,bool,bool,address[])":{"details":"modify the approval criteria of a token","params":{"additionalApprovers":"are the addresses of additional approvers to be added to the approver list Only token owner can call this function DVATransferManager must be an agent of the given token emits an `ApprovalCriteriaSet` event","includeAgentApprover":"determines whether the agent is included in the approver list","includeRecipientApprover":"determines whether the recipient is included in the approver list","sequentialApproval":"determines whether approvals must be sequential","tokenAddress":"is the token address."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/DVA/IDVATransferManager.sol":"IDVATransferManager"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/DVA/IDVATransferManager.sol":{"keccak256":"0xf2455e9def4225009ec29dcdd1487e184db0d2bc2572501031ed02e209dfa4ad","urls":["bzz-raw://dce26ae2b1eee4b2e7ca5a94807b4bca9ab08e0a7a01a5e8ac57fa9a9a1b30f0","dweb:/ipfs/QmZsvjDLn8SeNJhB15TxNmRD9xbVMVijTmu21j5HbWbkbn"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":14} \ No newline at end of file diff --git a/out/IERC165.sol/IERC165.json b/out/IERC165.sol/IERC165.json new file mode 100644 index 0000000..0687f6b --- /dev/null +++ b/out/IERC165.sol/IERC165.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.\",\"params\":{\"interfaceID\":\"The interface identifier, as specified in ERC-165\"},\"returns\":{\"_0\":\"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.","params":{"interfaceID":"The interface identifier, as specified in ERC-165"},"returns":{"_0":"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise"}}},"version":1},"userdoc":{"kind":"user","methods":{"supportsInterface(bytes4)":{"notice":"Query if a contract implements an interface"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC165.sol":"IERC165"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"}},"version":1},"id":12} \ No newline at end of file diff --git a/out/IERC20.sol/IERC20.json b/out/IERC20.sol/IERC20.json new file mode 100644 index 0000000..85ee639 --- /dev/null +++ b/out/IERC20.sol/IERC20.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"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.This includes the optional name, symbol, and decimals metadata.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set, where `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`\"},\"approve(address,uint256)\":{\"notice\":\"Sets `amount` as the allowance of `spender` over the caller's tokens.\"},\"balanceOf(address)\":{\"notice\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"notice\":\"Returns the decimals places of the token.\"},\"name()\":{\"notice\":\"Returns the name of the token.\"},\"symbol()\":{\"notice\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"notice\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"notice\":\"Moves `amount` tokens from the caller's account to `to`.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729"}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`"},"approve(address,uint256)":{"notice":"Sets `amount` as the allowance of `spender` over the caller's tokens."},"balanceOf(address)":{"notice":"Returns the amount of tokens owned by `account`."},"decimals()":{"notice":"Returns the decimals places of the token."},"name()":{"notice":"Returns the name of the token."},"symbol()":{"notice":"Returns the symbol of the token."},"totalSupply()":{"notice":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"notice":"Moves `amount` tokens from the caller's account to `to`."},"transferFrom(address,address,uint256)":{"notice":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance."}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC20.sol":"IERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"}},"version":1},"id":13} \ No newline at end of file diff --git a/out/IERC20Metadata.sol/IERC20Metadata.json b/out/IERC20Metadata.sol/IERC20Metadata.json new file mode 100644 index 0000000..a9d3636 --- /dev/null +++ b/out/IERC20Metadata.sol/IERC20Metadata.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"value\",\"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\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard.\",\"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 a `value` amount of tokens 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 value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of 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 a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` 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\":{\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"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 a `value` amount of tokens 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 value of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of 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 a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` 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":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":"IERC20Metadata"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"}},"version":1},"id":146} \ No newline at end of file diff --git a/out/IERC4626.sol/IERC4626.json b/out/IERC4626.sol/IERC4626.json new file mode 100644 index 0000000..5fc88f7 --- /dev/null +++ b/out/IERC4626.sol/IERC4626.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"assetsOf","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"assetsPerShare","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"maxDeposit","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"maxMint","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"maxRedeem","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxWithdraw","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"previewDeposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewMint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewRedeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewWithdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalAssets","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"MaxRewardTokensAmount","inputs":[]},{"type":"error","name":"ZeroShares","inputs":[{"name":"numberOfShares","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","assetsOf(address)":"2c62fa10","assetsPerShare()":"35d16e17","balanceOf(address)":"70a08231","decimals()":"313ce567","deposit(uint256,address)":"6e553f65","maxDeposit(address)":"402d267d","maxMint(address)":"c63d75b6","maxRedeem(address)":"d905777e","maxWithdraw(address)":"ce96cb77","mint(uint256,address)":"94bf804d","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","previewDeposit(uint256)":"ef8b30f7","previewMint(uint256)":"b3d7f6b9","previewRedeem(uint256)":"4cdad506","previewWithdraw(uint256)":"0a28a477","redeem(uint256,address,address)":"ba087652","symbol()":"95d89b41","totalAssets()":"01e1d114","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256,address,address)":"b460af94"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MaxRewardTokensAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfShares\",\"type\":\"uint256\"}],\"name\":\"ZeroShares\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"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\":\"user\",\"type\":\"address\"}],\"name\":\"assetsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assetsPerShare\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"maxRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"maxWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssets\",\"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\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Deposit(address,address,uint256,uint256)\":{\"details\":\"Emitted after the deposit.\",\"params\":{\"assets\":\"The amount of assets that were deposited.\",\"receiver\":\"The address that received the shares created after the deposit.\",\"sender\":\"The address of the account that performed the deposit.\",\"shares\":\"The number of shares that were minted.\"}},\"Withdraw(address,address,uint256,uint256)\":{\"details\":\"Emitted when shares are withdrawn from the vault in exchange for underlying assets.\",\"params\":{\"assets\":\"The amount of withdrawn assets.\",\"receiver\":\"The assets receiver address.\",\"sender\":\"The sender address.\",\"shares\":\"The number of shares that were burned.\"}}},\"kind\":\"dev\",\"methods\":{\"assetsOf(address)\":{\"details\":\"Calculates the amount of underlying assets.\",\"params\":{\"user\":\"The address of the user.\"},\"returns\":{\"_0\":\"The amount of underlying assets equivalent to the user's shares.\"}},\"assetsPerShare()\":{\"details\":\"Calculates how much one share is worth in terms of the underlying asset.\",\"returns\":{\"_0\":\"The amount of assets one share can redeem.\"}},\"deposit(uint256,address)\":{\"details\":\"Deposits staking token to the Vault and returns shares.\",\"params\":{\"assets\":\"The amount of staking token to send.\",\"receiver\":\"The shares receiver address.\"},\"returns\":{\"shares\":\"The amount of shares to receive.\"}},\"maxDeposit(address)\":{\"details\":\"Returns the maximum amount of underlying assets that can be deposited by user.\",\"returns\":{\"_0\":\"The maximum assets amount that can be deposited.\"}},\"maxMint(address)\":{\"details\":\"Returns the maximum amount of shares that can be minted by user.\",\"returns\":{\"_0\":\"The maximum amount of shares that can be minted.\"}},\"maxRedeem(address)\":{\"details\":\"Returns the maximum amount of shares that can be redeemed by user.\",\"params\":{\"user\":\"The user address.\"},\"returns\":{\"_0\":\"The maximum amount of shares that can be redeemed.\"}},\"maxWithdraw(address)\":{\"details\":\"Calculates the maximum amount of assets that can be withdrawn.\",\"params\":{\"user\":\"The user address.\"},\"returns\":{\"_0\":\"The maximum amount of assets that can be withdrawn.\"}},\"mint(uint256,address)\":{\"details\":\"Mints the underlying token.\",\"params\":{\"receiver\":\"The receiver of tokens.\",\"shares\":\"The amount of shares to send.\"},\"returns\":{\"amount\":\"The amount of tokens to receive.\"}},\"previewDeposit(uint256)\":{\"details\":\"Calculates the number of shares that will be minted for a given amount.\",\"params\":{\"assets\":\"The underlying assets amount to deposit.\"},\"returns\":{\"shares\":\"The estimated amount of shares that can be minted.\"}},\"previewMint(uint256)\":{\"details\":\"Calculates the amount of underlying assets equivalent to a given number of shares.\",\"params\":{\"shares\":\"The shares amount to mint.\"},\"returns\":{\"amount\":\"The estimated underlying assets amount.\"}},\"previewRedeem(uint256)\":{\"details\":\"Calculates the amount of underlying assets equivalent to a specific number of shares.\",\"params\":{\"shares\":\"The shares amount to redeem.\"},\"returns\":{\"amount\":\"The estimated underlying assets amount that can be redeemed.\"}},\"previewWithdraw(uint256)\":{\"details\":\"Calculates the amount of shares that would be burned for a given assets amount.\",\"params\":{\"assets\":\"The amount of underlying assets to withdraw.\"},\"returns\":{\"shares\":\"The estimated number of shares that would be burned.\"}},\"redeem(uint256,address,address)\":{\"details\":\"Redeems shares for underlying assets.\",\"params\":{\"from\":\"The owner of the shares.\",\"receiver\":\"The staking token receiver.\",\"shares\":\"The amount of shares.\"},\"returns\":{\"amount\":\"The amount of shares to burn.\"}},\"totalAssets()\":{\"details\":\"Returns amount of assets on the contract balance.\",\"returns\":{\"_0\":\"Asset balance of this contract.\"}},\"withdraw(uint256,address,address)\":{\"details\":\"Withdraws staking token and burns shares.\",\"params\":{\"amount\":\"The amount of assets.\",\"from\":\"The owner of the shares.\",\"receiver\":\"The staking token receiver.\"},\"returns\":{\"shares\":\"The amount of shares to burn.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Deposit event.\"},\"Withdraw(address,address,uint256,uint256)\":{\"notice\":\"Withdraw event.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc4626/interfaces/IERC4626.sol\":\"IERC4626\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc4626/ERC20.sol\":{\"keccak256\":\"0x33fe85bf9c3a26cc53c74f425a248df6664a2c85c7b872ce9567a8b785619879\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://b42e32a0a88263829f727e8cc5efae644c89db3ad3900daad3918aa75bea756f\",\"dweb:/ipfs/QmQC7KSYBVuNnojtMrJ99rcSsfBhBAK5wSjuTVjANxLvCB\"]},\"contracts/erc4626/interfaces/IERC4626.sol\":{\"keccak256\":\"0x7935c852530f140c6a6b9c295503a4d3ccf83cb5ac5c5f1615e2d7248690e1b3\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2b26de597cefe1da676035b5f64766fdb7628355bddb14c67ee55b910f31419f\",\"dweb:/ipfs/QmUfmGqb4rP17aTeQ1uwZrHbe9jBJ8amCEhdpBoFN2gzRk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"MaxRewardTokensAmount"},{"inputs":[{"internalType":"uint256","name":"numberOfShares","type":"uint256"}],"type":"error","name":"ZeroShares"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"assetsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"assetsPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"maxDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"maxMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"maxRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewDeposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewMint","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewRedeem","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"from","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"from","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"assetsOf(address)":{"details":"Calculates the amount of underlying assets.","params":{"user":"The address of the user."},"returns":{"_0":"The amount of underlying assets equivalent to the user's shares."}},"assetsPerShare()":{"details":"Calculates how much one share is worth in terms of the underlying asset.","returns":{"_0":"The amount of assets one share can redeem."}},"deposit(uint256,address)":{"details":"Deposits staking token to the Vault and returns shares.","params":{"assets":"The amount of staking token to send.","receiver":"The shares receiver address."},"returns":{"shares":"The amount of shares to receive."}},"maxDeposit(address)":{"details":"Returns the maximum amount of underlying assets that can be deposited by user.","returns":{"_0":"The maximum assets amount that can be deposited."}},"maxMint(address)":{"details":"Returns the maximum amount of shares that can be minted by user.","returns":{"_0":"The maximum amount of shares that can be minted."}},"maxRedeem(address)":{"details":"Returns the maximum amount of shares that can be redeemed by user.","params":{"user":"The user address."},"returns":{"_0":"The maximum amount of shares that can be redeemed."}},"maxWithdraw(address)":{"details":"Calculates the maximum amount of assets that can be withdrawn.","params":{"user":"The user address."},"returns":{"_0":"The maximum amount of assets that can be withdrawn."}},"mint(uint256,address)":{"details":"Mints the underlying token.","params":{"receiver":"The receiver of tokens.","shares":"The amount of shares to send."},"returns":{"amount":"The amount of tokens to receive."}},"previewDeposit(uint256)":{"details":"Calculates the number of shares that will be minted for a given amount.","params":{"assets":"The underlying assets amount to deposit."},"returns":{"shares":"The estimated amount of shares that can be minted."}},"previewMint(uint256)":{"details":"Calculates the amount of underlying assets equivalent to a given number of shares.","params":{"shares":"The shares amount to mint."},"returns":{"amount":"The estimated underlying assets amount."}},"previewRedeem(uint256)":{"details":"Calculates the amount of underlying assets equivalent to a specific number of shares.","params":{"shares":"The shares amount to redeem."},"returns":{"amount":"The estimated underlying assets amount that can be redeemed."}},"previewWithdraw(uint256)":{"details":"Calculates the amount of shares that would be burned for a given assets amount.","params":{"assets":"The amount of underlying assets to withdraw."},"returns":{"shares":"The estimated number of shares that would be burned."}},"redeem(uint256,address,address)":{"details":"Redeems shares for underlying assets.","params":{"from":"The owner of the shares.","receiver":"The staking token receiver.","shares":"The amount of shares."},"returns":{"amount":"The amount of shares to burn."}},"totalAssets()":{"details":"Returns amount of assets on the contract balance.","returns":{"_0":"Asset balance of this contract."}},"withdraw(uint256,address,address)":{"details":"Withdraws staking token and burns shares.","params":{"amount":"The amount of assets.","from":"The owner of the shares.","receiver":"The staking token receiver."},"returns":{"shares":"The amount of shares to burn."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc4626/interfaces/IERC4626.sol":"IERC4626"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc4626/ERC20.sol":{"keccak256":"0x33fe85bf9c3a26cc53c74f425a248df6664a2c85c7b872ce9567a8b785619879","urls":["bzz-raw://b42e32a0a88263829f727e8cc5efae644c89db3ad3900daad3918aa75bea756f","dweb:/ipfs/QmQC7KSYBVuNnojtMrJ99rcSsfBhBAK5wSjuTVjANxLvCB"],"license":"AGPL-3.0-only"},"contracts/erc4626/interfaces/IERC4626.sol":{"keccak256":"0x7935c852530f140c6a6b9c295503a4d3ccf83cb5ac5c5f1615e2d7248690e1b3","urls":["bzz-raw://2b26de597cefe1da676035b5f64766fdb7628355bddb14c67ee55b910f31419f","dweb:/ipfs/QmUfmGqb4rP17aTeQ1uwZrHbe9jBJ8amCEhdpBoFN2gzRk"],"license":"AGPL-3.0-only"}},"version":1},"id":107} \ No newline at end of file diff --git a/out/IERC721.sol/IERC721.json b/out/IERC721.sol/IERC721.json new file mode 100644 index 0000000..cc4813a --- /dev/null +++ b/out/IERC721.sol/IERC721.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"approve","inputs":[{"name":"_approved","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_operator","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"_from","type":"address","indexed":true,"internalType":"address"},{"name":"_to","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721 Note: the ERC-165 identifier for this interface is 0x80ac58cd.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"This emits when the approved address for an NFT is changed or reaffirmed. The zero address indicates there is no approved address. When a Transfer event emits, this also indicates that the approved address for that NFT (if any) is reset to none.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"This emits when an operator is enabled or disabled for an owner. The operator can manage all NFTs of the owner.\"},\"Transfer(address,address,uint256)\":{\"details\":\"This emits when ownership of any NFT changes by any mechanism. This event emits when NFTs are created (`from` == 0) and destroyed (`to` == 0). Exception: during contract creation, any number of NFTs may be created and assigned without emitting Transfer. At the time of any transfer, the approved address for that NFT (if any) is reset to none.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.\",\"params\":{\"_approved\":\"The new approved NFT controller\",\"_tokenId\":\"The NFT to approve\"}},\"balanceOf(address)\":{\"details\":\"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.\",\"params\":{\"_owner\":\"An address for whom to query the balance\"},\"returns\":{\"_0\":\"The number of NFTs owned by `_owner`, possibly zero\"}},\"getApproved(uint256)\":{\"details\":\"Throws if `_tokenId` is not a valid NFT.\",\"params\":{\"_tokenId\":\"The NFT to find the approved address for\"},\"returns\":{\"_0\":\"The approved address for this NFT, or the zero address if there is none\"}},\"isApprovedForAll(address,address)\":{\"params\":{\"_operator\":\"The address that acts on behalf of the owner\",\"_owner\":\"The address that owns the NFTs\"},\"returns\":{\"_0\":\"True if `_operator` is an approved operator for `_owner`, false otherwise\"}},\"ownerOf(uint256)\":{\"details\":\"NFTs assigned to zero address are considered invalid, and queries about them do throw.\",\"params\":{\"_tokenId\":\"The identifier for an NFT\"},\"returns\":{\"_0\":\"The address of the owner of the NFT\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"This works identically to the other function with an extra data parameter, except this function just sets data to \\\"\\\".\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\"}},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this function checks if `_to` is a smart contract (code size > 0). If so, it calls `onERC721Received` on `_to` and throws if the return value is not `bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))`.\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\",\"data\":\"Additional data with no specified format, sent in call to `_to`\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner.\",\"params\":{\"_approved\":\"True if the operator is approved, false to revoke approval\",\"_operator\":\"Address to add to the set of authorized operators\"}},\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.\",\"params\":{\"interfaceID\":\"The interface identifier, as specified in ERC-165\"},\"returns\":{\"_0\":\"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT.\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\"}}},\"title\":\"ERC-721 Non-Fungible Token Standard\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"approve(address,uint256)\":{\"notice\":\"Change or reaffirm the approved address for an NFT\"},\"balanceOf(address)\":{\"notice\":\"Count all NFTs assigned to an owner\"},\"getApproved(uint256)\":{\"notice\":\"Get the approved address for a single NFT\"},\"isApprovedForAll(address,address)\":{\"notice\":\"Query if an address is an authorized operator for another address\"},\"ownerOf(uint256)\":{\"notice\":\"Find the owner of an NFT\"},\"safeTransferFrom(address,address,uint256)\":{\"notice\":\"Transfers the ownership of an NFT from one address to another address\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"Transfers the ownership of an NFT from one address to another address\"},\"setApprovalForAll(address,bool)\":{\"notice\":\"Enable or disable approval for a third party (\\\"operator\\\") to manage all of `msg.sender`'s assets\"},\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_approved","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_operator","type":"address","indexed":true},{"internalType":"bool","name":"_approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":true},{"internalType":"address","name":"_to","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"_approved","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.","params":{"_approved":"The new approved NFT controller","_tokenId":"The NFT to approve"}},"balanceOf(address)":{"details":"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.","params":{"_owner":"An address for whom to query the balance"},"returns":{"_0":"The number of NFTs owned by `_owner`, possibly zero"}},"getApproved(uint256)":{"details":"Throws if `_tokenId` is not a valid NFT.","params":{"_tokenId":"The NFT to find the approved address for"},"returns":{"_0":"The approved address for this NFT, or the zero address if there is none"}},"isApprovedForAll(address,address)":{"params":{"_operator":"The address that acts on behalf of the owner","_owner":"The address that owns the NFTs"},"returns":{"_0":"True if `_operator` is an approved operator for `_owner`, false otherwise"}},"ownerOf(uint256)":{"details":"NFTs assigned to zero address are considered invalid, and queries about them do throw.","params":{"_tokenId":"The identifier for an NFT"},"returns":{"_0":"The address of the owner of the NFT"}},"safeTransferFrom(address,address,uint256)":{"details":"This works identically to the other function with an extra data parameter, except this function just sets data to \"\".","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer"}},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this function checks if `_to` is a smart contract (code size > 0). If so, it calls `onERC721Received` on `_to` and throws if the return value is not `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer","data":"Additional data with no specified format, sent in call to `_to`"}},"setApprovalForAll(address,bool)":{"details":"Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner.","params":{"_approved":"True if the operator is approved, false to revoke approval","_operator":"Address to add to the set of authorized operators"}},"supportsInterface(bytes4)":{"details":"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.","params":{"interfaceID":"The interface identifier, as specified in ERC-165"},"returns":{"_0":"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise"}},"transferFrom(address,address,uint256)":{"details":"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT.","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer"}}},"version":1},"userdoc":{"kind":"user","methods":{"approve(address,uint256)":{"notice":"Change or reaffirm the approved address for an NFT"},"balanceOf(address)":{"notice":"Count all NFTs assigned to an owner"},"getApproved(uint256)":{"notice":"Get the approved address for a single NFT"},"isApprovedForAll(address,address)":{"notice":"Query if an address is an authorized operator for another address"},"ownerOf(uint256)":{"notice":"Find the owner of an NFT"},"safeTransferFrom(address,address,uint256)":{"notice":"Transfers the ownership of an NFT from one address to another address"},"safeTransferFrom(address,address,uint256,bytes)":{"notice":"Transfers the ownership of an NFT from one address to another address"},"setApprovalForAll(address,bool)":{"notice":"Enable or disable approval for a third party (\"operator\") to manage all of `msg.sender`'s assets"},"supportsInterface(bytes4)":{"notice":"Query if a contract implements an interface"},"transferFrom(address,address,uint256)":{"notice":"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC721.sol":"IERC721"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"}},"version":1},"id":14} \ No newline at end of file diff --git a/out/IERC721.sol/IERC721Enumerable.json b/out/IERC721.sol/IERC721Enumerable.json new file mode 100644 index 0000000..11b8c17 --- /dev/null +++ b/out/IERC721.sol/IERC721Enumerable.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"approve","inputs":[{"name":"_approved","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"tokenByIndex","inputs":[{"name":"_index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokenOfOwnerByIndex","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_operator","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"_from","type":"address","indexed":true,"internalType":"address"},{"name":"_to","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","tokenByIndex(uint256)":"4f6ccce7","tokenOfOwnerByIndex(address,uint256)":"2f745c59","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"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\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721 Note: the ERC-165 identifier for this interface is 0x780e9d63.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"This emits when the approved address for an NFT is changed or reaffirmed. The zero address indicates there is no approved address. When a Transfer event emits, this also indicates that the approved address for that NFT (if any) is reset to none.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"This emits when an operator is enabled or disabled for an owner. The operator can manage all NFTs of the owner.\"},\"Transfer(address,address,uint256)\":{\"details\":\"This emits when ownership of any NFT changes by any mechanism. This event emits when NFTs are created (`from` == 0) and destroyed (`to` == 0). Exception: during contract creation, any number of NFTs may be created and assigned without emitting Transfer. At the time of any transfer, the approved address for that NFT (if any) is reset to none.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.\",\"params\":{\"_approved\":\"The new approved NFT controller\",\"_tokenId\":\"The NFT to approve\"}},\"balanceOf(address)\":{\"details\":\"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.\",\"params\":{\"_owner\":\"An address for whom to query the balance\"},\"returns\":{\"_0\":\"The number of NFTs owned by `_owner`, possibly zero\"}},\"getApproved(uint256)\":{\"details\":\"Throws if `_tokenId` is not a valid NFT.\",\"params\":{\"_tokenId\":\"The NFT to find the approved address for\"},\"returns\":{\"_0\":\"The approved address for this NFT, or the zero address if there is none\"}},\"isApprovedForAll(address,address)\":{\"params\":{\"_operator\":\"The address that acts on behalf of the owner\",\"_owner\":\"The address that owns the NFTs\"},\"returns\":{\"_0\":\"True if `_operator` is an approved operator for `_owner`, false otherwise\"}},\"ownerOf(uint256)\":{\"details\":\"NFTs assigned to zero address are considered invalid, and queries about them do throw.\",\"params\":{\"_tokenId\":\"The identifier for an NFT\"},\"returns\":{\"_0\":\"The address of the owner of the NFT\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"This works identically to the other function with an extra data parameter, except this function just sets data to \\\"\\\".\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\"}},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this function checks if `_to` is a smart contract (code size > 0). If so, it calls `onERC721Received` on `_to` and throws if the return value is not `bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))`.\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\",\"data\":\"Additional data with no specified format, sent in call to `_to`\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner.\",\"params\":{\"_approved\":\"True if the operator is approved, false to revoke approval\",\"_operator\":\"Address to add to the set of authorized operators\"}},\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.\",\"params\":{\"interfaceID\":\"The interface identifier, as specified in ERC-165\"},\"returns\":{\"_0\":\"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise\"}},\"tokenByIndex(uint256)\":{\"details\":\"Throws if `_index` >= `totalSupply()`.\",\"params\":{\"_index\":\"A counter less than `totalSupply()`\"},\"returns\":{\"_0\":\"The token identifier for the `_index`th NFT, (sort order not specified)\"}},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Throws if `_index` >= `balanceOf(_owner)` or if `_owner` is the zero address, representing invalid NFTs.\",\"params\":{\"_index\":\"A counter less than `balanceOf(_owner)`\",\"_owner\":\"An address where we are interested in NFTs owned by them\"},\"returns\":{\"_0\":\"The token identifier for the `_index`th NFT assigned to `_owner`, (sort order not specified)\"}},\"totalSupply()\":{\"returns\":{\"_0\":\"A count of valid NFTs tracked by this contract, where each one of them has an assigned and queryable owner not equal to the zero address\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT.\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\"}}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional enumeration extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"approve(address,uint256)\":{\"notice\":\"Change or reaffirm the approved address for an NFT\"},\"balanceOf(address)\":{\"notice\":\"Count all NFTs assigned to an owner\"},\"getApproved(uint256)\":{\"notice\":\"Get the approved address for a single NFT\"},\"isApprovedForAll(address,address)\":{\"notice\":\"Query if an address is an authorized operator for another address\"},\"ownerOf(uint256)\":{\"notice\":\"Find the owner of an NFT\"},\"safeTransferFrom(address,address,uint256)\":{\"notice\":\"Transfers the ownership of an NFT from one address to another address\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"Transfers the ownership of an NFT from one address to another address\"},\"setApprovalForAll(address,bool)\":{\"notice\":\"Enable or disable approval for a third party (\\\"operator\\\") to manage all of `msg.sender`'s assets\"},\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\"},\"tokenByIndex(uint256)\":{\"notice\":\"Enumerate valid NFTs\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"notice\":\"Enumerate NFTs assigned to an owner\"},\"totalSupply()\":{\"notice\":\"Count NFTs tracked by this contract\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IERC721.sol\":\"IERC721Enumerable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_approved","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_operator","type":"address","indexed":true},{"internalType":"bool","name":"_approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":true},{"internalType":"address","name":"_to","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"_approved","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.","params":{"_approved":"The new approved NFT controller","_tokenId":"The NFT to approve"}},"balanceOf(address)":{"details":"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.","params":{"_owner":"An address for whom to query the balance"},"returns":{"_0":"The number of NFTs owned by `_owner`, possibly zero"}},"getApproved(uint256)":{"details":"Throws if `_tokenId` is not a valid NFT.","params":{"_tokenId":"The NFT to find the approved address for"},"returns":{"_0":"The approved address for this NFT, or the zero address if there is none"}},"isApprovedForAll(address,address)":{"params":{"_operator":"The address that acts on behalf of the owner","_owner":"The address that owns the NFTs"},"returns":{"_0":"True if `_operator` is an approved operator for `_owner`, false otherwise"}},"ownerOf(uint256)":{"details":"NFTs assigned to zero address are considered invalid, and queries about them do throw.","params":{"_tokenId":"The identifier for an NFT"},"returns":{"_0":"The address of the owner of the NFT"}},"safeTransferFrom(address,address,uint256)":{"details":"This works identically to the other function with an extra data parameter, except this function just sets data to \"\".","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer"}},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this function checks if `_to` is a smart contract (code size > 0). If so, it calls `onERC721Received` on `_to` and throws if the return value is not `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer","data":"Additional data with no specified format, sent in call to `_to`"}},"setApprovalForAll(address,bool)":{"details":"Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner.","params":{"_approved":"True if the operator is approved, false to revoke approval","_operator":"Address to add to the set of authorized operators"}},"supportsInterface(bytes4)":{"details":"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.","params":{"interfaceID":"The interface identifier, as specified in ERC-165"},"returns":{"_0":"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise"}},"tokenByIndex(uint256)":{"details":"Throws if `_index` >= `totalSupply()`.","params":{"_index":"A counter less than `totalSupply()`"},"returns":{"_0":"The token identifier for the `_index`th NFT, (sort order not specified)"}},"tokenOfOwnerByIndex(address,uint256)":{"details":"Throws if `_index` >= `balanceOf(_owner)` or if `_owner` is the zero address, representing invalid NFTs.","params":{"_index":"A counter less than `balanceOf(_owner)`","_owner":"An address where we are interested in NFTs owned by them"},"returns":{"_0":"The token identifier for the `_index`th NFT assigned to `_owner`, (sort order not specified)"}},"totalSupply()":{"returns":{"_0":"A count of valid NFTs tracked by this contract, where each one of them has an assigned and queryable owner not equal to the zero address"}},"transferFrom(address,address,uint256)":{"details":"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT.","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer"}}},"version":1},"userdoc":{"kind":"user","methods":{"approve(address,uint256)":{"notice":"Change or reaffirm the approved address for an NFT"},"balanceOf(address)":{"notice":"Count all NFTs assigned to an owner"},"getApproved(uint256)":{"notice":"Get the approved address for a single NFT"},"isApprovedForAll(address,address)":{"notice":"Query if an address is an authorized operator for another address"},"ownerOf(uint256)":{"notice":"Find the owner of an NFT"},"safeTransferFrom(address,address,uint256)":{"notice":"Transfers the ownership of an NFT from one address to another address"},"safeTransferFrom(address,address,uint256,bytes)":{"notice":"Transfers the ownership of an NFT from one address to another address"},"setApprovalForAll(address,bool)":{"notice":"Enable or disable approval for a third party (\"operator\") to manage all of `msg.sender`'s assets"},"supportsInterface(bytes4)":{"notice":"Query if a contract implements an interface"},"tokenByIndex(uint256)":{"notice":"Enumerate valid NFTs"},"tokenOfOwnerByIndex(address,uint256)":{"notice":"Enumerate NFTs assigned to an owner"},"totalSupply()":{"notice":"Count NFTs tracked by this contract"},"transferFrom(address,address,uint256)":{"notice":"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC721.sol":"IERC721Enumerable"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"}},"version":1},"id":14} \ No newline at end of file diff --git a/out/IERC721.sol/IERC721Metadata.json b/out/IERC721.sol/IERC721Metadata.json new file mode 100644 index 0000000..7c3f123 --- /dev/null +++ b/out/IERC721.sol/IERC721Metadata.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"approve","inputs":[{"name":"_approved","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"_symbol","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_operator","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"_from","type":"address","indexed":true,"internalType":"address"},{"name":"_to","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721 Note: the ERC-165 identifier for this interface is 0x5b5e139f.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"This emits when the approved address for an NFT is changed or reaffirmed. The zero address indicates there is no approved address. When a Transfer event emits, this also indicates that the approved address for that NFT (if any) is reset to none.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"This emits when an operator is enabled or disabled for an owner. The operator can manage all NFTs of the owner.\"},\"Transfer(address,address,uint256)\":{\"details\":\"This emits when ownership of any NFT changes by any mechanism. This event emits when NFTs are created (`from` == 0) and destroyed (`to` == 0). Exception: during contract creation, any number of NFTs may be created and assigned without emitting Transfer. At the time of any transfer, the approved address for that NFT (if any) is reset to none.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.\",\"params\":{\"_approved\":\"The new approved NFT controller\",\"_tokenId\":\"The NFT to approve\"}},\"balanceOf(address)\":{\"details\":\"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.\",\"params\":{\"_owner\":\"An address for whom to query the balance\"},\"returns\":{\"_0\":\"The number of NFTs owned by `_owner`, possibly zero\"}},\"getApproved(uint256)\":{\"details\":\"Throws if `_tokenId` is not a valid NFT.\",\"params\":{\"_tokenId\":\"The NFT to find the approved address for\"},\"returns\":{\"_0\":\"The approved address for this NFT, or the zero address if there is none\"}},\"isApprovedForAll(address,address)\":{\"params\":{\"_operator\":\"The address that acts on behalf of the owner\",\"_owner\":\"The address that owns the NFTs\"},\"returns\":{\"_0\":\"True if `_operator` is an approved operator for `_owner`, false otherwise\"}},\"ownerOf(uint256)\":{\"details\":\"NFTs assigned to zero address are considered invalid, and queries about them do throw.\",\"params\":{\"_tokenId\":\"The identifier for an NFT\"},\"returns\":{\"_0\":\"The address of the owner of the NFT\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"This works identically to the other function with an extra data parameter, except this function just sets data to \\\"\\\".\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\"}},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this function checks if `_to` is a smart contract (code size > 0). If so, it calls `onERC721Received` on `_to` and throws if the return value is not `bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))`.\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\",\"data\":\"Additional data with no specified format, sent in call to `_to`\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner.\",\"params\":{\"_approved\":\"True if the operator is approved, false to revoke approval\",\"_operator\":\"Address to add to the set of authorized operators\"}},\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.\",\"params\":{\"interfaceID\":\"The interface identifier, as specified in ERC-165\"},\"returns\":{\"_0\":\"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise\"}},\"tokenURI(uint256)\":{\"details\":\"Throws if `_tokenId` is not a valid NFT. URIs are defined in RFC 3986. The URI may point to a JSON file that conforms to the \\\"ERC721 Metadata JSON Schema\\\".\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT.\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\"}}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"approve(address,uint256)\":{\"notice\":\"Change or reaffirm the approved address for an NFT\"},\"balanceOf(address)\":{\"notice\":\"Count all NFTs assigned to an owner\"},\"getApproved(uint256)\":{\"notice\":\"Get the approved address for a single NFT\"},\"isApprovedForAll(address,address)\":{\"notice\":\"Query if an address is an authorized operator for another address\"},\"name()\":{\"notice\":\"A descriptive name for a collection of NFTs in this contract\"},\"ownerOf(uint256)\":{\"notice\":\"Find the owner of an NFT\"},\"safeTransferFrom(address,address,uint256)\":{\"notice\":\"Transfers the ownership of an NFT from one address to another address\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"Transfers the ownership of an NFT from one address to another address\"},\"setApprovalForAll(address,bool)\":{\"notice\":\"Enable or disable approval for a third party (\\\"operator\\\") to manage all of `msg.sender`'s assets\"},\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\"},\"symbol()\":{\"notice\":\"An abbreviated name for NFTs in this contract\"},\"tokenURI(uint256)\":{\"notice\":\"A distinct Uniform Resource Identifier (URI) for a given asset.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IERC721.sol\":\"IERC721Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_approved","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_operator","type":"address","indexed":true},{"internalType":"bool","name":"_approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":true},{"internalType":"address","name":"_to","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"_approved","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"_symbol","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.","params":{"_approved":"The new approved NFT controller","_tokenId":"The NFT to approve"}},"balanceOf(address)":{"details":"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.","params":{"_owner":"An address for whom to query the balance"},"returns":{"_0":"The number of NFTs owned by `_owner`, possibly zero"}},"getApproved(uint256)":{"details":"Throws if `_tokenId` is not a valid NFT.","params":{"_tokenId":"The NFT to find the approved address for"},"returns":{"_0":"The approved address for this NFT, or the zero address if there is none"}},"isApprovedForAll(address,address)":{"params":{"_operator":"The address that acts on behalf of the owner","_owner":"The address that owns the NFTs"},"returns":{"_0":"True if `_operator` is an approved operator for `_owner`, false otherwise"}},"ownerOf(uint256)":{"details":"NFTs assigned to zero address are considered invalid, and queries about them do throw.","params":{"_tokenId":"The identifier for an NFT"},"returns":{"_0":"The address of the owner of the NFT"}},"safeTransferFrom(address,address,uint256)":{"details":"This works identically to the other function with an extra data parameter, except this function just sets data to \"\".","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer"}},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this function checks if `_to` is a smart contract (code size > 0). If so, it calls `onERC721Received` on `_to` and throws if the return value is not `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer","data":"Additional data with no specified format, sent in call to `_to`"}},"setApprovalForAll(address,bool)":{"details":"Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner.","params":{"_approved":"True if the operator is approved, false to revoke approval","_operator":"Address to add to the set of authorized operators"}},"supportsInterface(bytes4)":{"details":"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.","params":{"interfaceID":"The interface identifier, as specified in ERC-165"},"returns":{"_0":"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise"}},"tokenURI(uint256)":{"details":"Throws if `_tokenId` is not a valid NFT. URIs are defined in RFC 3986. The URI may point to a JSON file that conforms to the \"ERC721 Metadata JSON Schema\"."},"transferFrom(address,address,uint256)":{"details":"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT.","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer"}}},"version":1},"userdoc":{"kind":"user","methods":{"approve(address,uint256)":{"notice":"Change or reaffirm the approved address for an NFT"},"balanceOf(address)":{"notice":"Count all NFTs assigned to an owner"},"getApproved(uint256)":{"notice":"Get the approved address for a single NFT"},"isApprovedForAll(address,address)":{"notice":"Query if an address is an authorized operator for another address"},"name()":{"notice":"A descriptive name for a collection of NFTs in this contract"},"ownerOf(uint256)":{"notice":"Find the owner of an NFT"},"safeTransferFrom(address,address,uint256)":{"notice":"Transfers the ownership of an NFT from one address to another address"},"safeTransferFrom(address,address,uint256,bytes)":{"notice":"Transfers the ownership of an NFT from one address to another address"},"setApprovalForAll(address,bool)":{"notice":"Enable or disable approval for a third party (\"operator\") to manage all of `msg.sender`'s assets"},"supportsInterface(bytes4)":{"notice":"Query if a contract implements an interface"},"symbol()":{"notice":"An abbreviated name for NFTs in this contract"},"tokenURI(uint256)":{"notice":"A distinct Uniform Resource Identifier (URI) for a given asset."},"transferFrom(address,address,uint256)":{"notice":"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC721.sol":"IERC721Metadata"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"}},"version":1},"id":14} \ No newline at end of file diff --git a/out/IERC721.sol/IERC721TokenReceiver.json b/out/IERC721.sol/IERC721TokenReceiver.json new file mode 100644 index 0000000..7903b5d --- /dev/null +++ b/out/IERC721.sol/IERC721TokenReceiver.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Note: the ERC-165 identifier for this interface is 0x150b7a02.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"The ERC721 smart contract calls this function on the recipient after a `transfer`. This function MAY throw to revert and reject the transfer. Return of other than the magic value MUST result in the transaction being reverted. Note: the contract address is always the message sender.\",\"params\":{\"_data\":\"Additional data with no specified format\",\"_from\":\"The address which previously owned the token\",\"_operator\":\"The address which called `safeTransferFrom` function\",\"_tokenId\":\"The NFT identifier which is being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))` unless throwing\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"notice\":\"Handle the receipt of an NFT\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IERC721.sol\":\"IERC721TokenReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"The ERC721 smart contract calls this function on the recipient after a `transfer`. This function MAY throw to revert and reject the transfer. Return of other than the magic value MUST result in the transaction being reverted. Note: the contract address is always the message sender.","params":{"_data":"Additional data with no specified format","_from":"The address which previously owned the token","_operator":"The address which called `safeTransferFrom` function","_tokenId":"The NFT identifier which is being transferred"},"returns":{"_0":"`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))` unless throwing"}}},"version":1},"userdoc":{"kind":"user","methods":{"onERC721Received(address,address,uint256,bytes)":{"notice":"Handle the receipt of an NFT"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC721.sol":"IERC721TokenReceiver"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"}},"version":1},"id":14} \ No newline at end of file diff --git a/out/IERC721Metadata.sol/IERC721Metadata.json b/out/IERC721Metadata.sol/IERC721Metadata.json new file mode 100644 index 0000000..d55b958 --- /dev/null +++ b/out/IERC721Metadata.sol/IERC721Metadata.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":"IERC721Metadata"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":150} \ No newline at end of file diff --git a/out/IERC721Receiver.sol/IERC721Receiver.json b/out/IERC721Receiver.sol/IERC721Receiver.json new file mode 100644 index 0000000..8b8e2b6 --- /dev/null +++ b/out/IERC721Receiver.sol/IERC721Receiver.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":"IERC721Receiver"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"}},"version":1},"id":149} \ No newline at end of file diff --git a/out/IERC734.sol/IERC734.json b/out/IERC734.sol/IERC734.json new file mode 100644 index 0000000..bacafe3 --- /dev/null +++ b/out/IERC734.sol/IERC734.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"},{"name":"_keyType","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"_id","type":"uint256","internalType":"uint256"},{"name":"_approve","type":"bool","internalType":"bool"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"execute","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"executionId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"getKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"purposes","type":"uint256[]","internalType":"uint256[]"},{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getKeyPurposes","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_purposes","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getKeysByPurpose","inputs":[{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keys","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"keyHasPurpose","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approved","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Executed","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ExecutionFailed","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ExecutionRequested","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"KeyAdded","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"purpose","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"keyType","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"KeyRemoved","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"purpose","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"keyType","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addKey(bytes32,uint256,uint256)":"1d381240","approve(uint256,bool)":"747442d3","execute(address,uint256,bytes)":"b61d27f6","getKey(bytes32)":"12aaac70","getKeyPurposes(bytes32)":"fb307b34","getKeysByPurpose(uint256)":"9010f726","keyHasPurpose(bytes32,uint256)":"d202158d","removeKey(bytes32,uint256)":"53d413c5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"Approved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Executed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_keyType\",\"type\":\"uint256\"}],\"name\":\"addKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_approve\",\"type\":\"bool\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getKey\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"purposes\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getKeyPurposes\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_purposes\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"getKeysByPurpose\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"keys\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"keyHasPurpose\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"removeKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"interface of the ERC734 (Key Holder) standard as defined in the EIP.\",\"events\":{\"Approved(uint256,bool)\":{\"details\":\"Emitted when an execution request was approved. Specification: MUST be triggered when approve was successfully called.\"},\"Executed(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execute operation was approved and successfully performed. Specification: MUST be triggered when approve was called and the execution was successfully approved.\"},\"ExecutionFailed(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execute operation was called and failed Specification: MUST be triggered when execute call failed\"},\"ExecutionRequested(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execution request was performed via `execute`. Specification: MUST be triggered when execute was successfully called.\"},\"KeyAdded(bytes32,uint256,uint256)\":{\"details\":\"Emitted when a key was added to the Identity. Specification: MUST be triggered when addKey was successfully called.\"},\"KeyRemoved(bytes32,uint256,uint256)\":{\"details\":\"Emitted when a key was removed from the Identity. Specification: MUST be triggered when removeKey was successfully called.\"}},\"kind\":\"dev\",\"methods\":{\"addKey(bytes32,uint256,uint256)\":{\"details\":\"Adds a _key to the identity. The _purpose specifies the purpose of the key. Triggers Event: `KeyAdded` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval.\"},\"approve(uint256,bool)\":{\"details\":\"Approves an execution. Triggers Event: `Approved` Triggers on execution successful Event: `Executed` Triggers on execution failure Event: `ExecutionFailed`\"},\"execute(address,uint256,bytes)\":{\"details\":\"Passes an execution instruction to an ERC734 identity. How the execution is handled is up to the identity implementation: An execution COULD be requested and require `approve` to be called with one or more keys of purpose 1 or 2 to approve this execution. Execute COULD be used as the only accessor for `addKey` and `removeKey`. Triggers Event: ExecutionRequested Triggers on direct execution Event: Executed\"},\"getKey(bytes32)\":{\"details\":\"Returns the full key data, if present in the identity.\"},\"getKeyPurposes(bytes32)\":{\"details\":\"Returns the list of purposes associated with a key.\"},\"getKeysByPurpose(uint256)\":{\"details\":\"Returns an array of public key bytes32 held by this identity.\"},\"keyHasPurpose(bytes32,uint256)\":{\"details\":\"Returns TRUE if a key is present and has the given purpose. If the key is not present it returns FALSE.\"},\"removeKey(bytes32,uint256)\":{\"details\":\"Removes _purpose for _key from the identity. Triggers Event: `KeyRemoved` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onchainid/interface/IERC734.sol\":\"IERC734\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"Approved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Executed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"ExecutionFailed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"ExecutionRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"uint256","name":"purpose","type":"uint256","indexed":true},{"internalType":"uint256","name":"keyType","type":"uint256","indexed":true}],"type":"event","name":"KeyAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"uint256","name":"purpose","type":"uint256","indexed":true},{"internalType":"uint256","name":"keyType","type":"uint256","indexed":true}],"type":"event","name":"KeyRemoved","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"},{"internalType":"uint256","name":"_keyType","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addKey","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"bool","name":"_approve","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"execute","outputs":[{"internalType":"uint256","name":"executionId","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKey","outputs":[{"internalType":"uint256[]","name":"purposes","type":"uint256[]"},{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"bytes32","name":"key","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeyPurposes","outputs":[{"internalType":"uint256[]","name":"_purposes","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"view","type":"function","name":"getKeysByPurpose","outputs":[{"internalType":"bytes32[]","name":"keys","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"view","type":"function","name":"keyHasPurpose","outputs":[{"internalType":"bool","name":"exists","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeKey","outputs":[{"internalType":"bool","name":"success","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"addKey(bytes32,uint256,uint256)":{"details":"Adds a _key to the identity. The _purpose specifies the purpose of the key. Triggers Event: `KeyAdded` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval."},"approve(uint256,bool)":{"details":"Approves an execution. Triggers Event: `Approved` Triggers on execution successful Event: `Executed` Triggers on execution failure Event: `ExecutionFailed`"},"execute(address,uint256,bytes)":{"details":"Passes an execution instruction to an ERC734 identity. How the execution is handled is up to the identity implementation: An execution COULD be requested and require `approve` to be called with one or more keys of purpose 1 or 2 to approve this execution. Execute COULD be used as the only accessor for `addKey` and `removeKey`. Triggers Event: ExecutionRequested Triggers on direct execution Event: Executed"},"getKey(bytes32)":{"details":"Returns the full key data, if present in the identity."},"getKeyPurposes(bytes32)":{"details":"Returns the list of purposes associated with a key."},"getKeysByPurpose(uint256)":{"details":"Returns an array of public key bytes32 held by this identity."},"keyHasPurpose(bytes32,uint256)":{"details":"Returns TRUE if a key is present and has the given purpose. If the key is not present it returns FALSE."},"removeKey(bytes32,uint256)":{"details":"Removes _purpose for _key from the identity. Triggers Event: `KeyRemoved` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onchainid/interface/IERC734.sol":"IERC734"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"}},"version":1},"id":120} \ No newline at end of file diff --git a/out/IERC735.sol/IERC735.json b/out/IERC735.sol/IERC735.json new file mode 100644 index 0000000..acd13b2 --- /dev/null +++ b/out/IERC735.sol/IERC735.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addClaim","inputs":[{"name":"_topic","type":"uint256","internalType":"uint256"},{"name":"_scheme","type":"uint256","internalType":"uint256"},{"name":"issuer","type":"address","internalType":"address"},{"name":"_signature","type":"bytes","internalType":"bytes"},{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_uri","type":"string","internalType":"string"}],"outputs":[{"name":"claimRequestId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getClaim","inputs":[{"name":"_claimId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"topic","type":"uint256","internalType":"uint256"},{"name":"scheme","type":"uint256","internalType":"uint256"},{"name":"issuer","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"uri","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getClaimIdsByTopic","inputs":[{"name":"_topic","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"claimIds","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"removeClaim","inputs":[{"name":"_claimId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"ClaimAdded","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimChanged","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimRemoved","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addClaim(uint256,uint256,address,bytes,bytes,string)":"b1a34e0d","getClaim(bytes32)":"c9100bcb","getClaimIdsByTopic(uint256)":"80e9e9e1","removeClaim(bytes32)":"4eee424a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_topic\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_scheme\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"_uri\",\"type\":\"string\"}],\"name\":\"addClaim\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimRequestId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimId\",\"type\":\"bytes32\"}],\"name\":\"getClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_topic\",\"type\":\"uint256\"}],\"name\":\"getClaimIdsByTopic\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"claimIds\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimId\",\"type\":\"bytes32\"}],\"name\":\"removeClaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"interface of the ERC735 (Claim Holder) standard as defined in the EIP.\",\"events\":{\"ClaimAdded(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was added. Specification: MUST be triggered when a claim was successfully added.\"},\"ClaimChanged(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was changed. Specification: MUST be triggered when addClaim was successfully called on an existing claimId.\"},\"ClaimRemoved(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was removed. Specification: MUST be triggered when removeClaim was successfully called.\"}},\"kind\":\"dev\",\"methods\":{\"addClaim(uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Add or update a claim. Triggers Event: `ClaimAdded`, `ClaimChanged` Specification: Add or update a claim from an issuer. _signature is a signed message of the following structure: `keccak256(abi.encode(address identityHolder_address, uint256 topic, bytes data))`. Claim IDs are generated using `keccak256(abi.encode(address issuer_address + uint256 topic))`.\"},\"getClaim(bytes32)\":{\"details\":\"Get a claim by its ID. Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`.\"},\"getClaimIdsByTopic(uint256)\":{\"details\":\"Returns an array of claim IDs by topic.\"},\"removeClaim(bytes32)\":{\"details\":\"Removes a claim. Triggers Event: `ClaimRemoved` Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onchainid/interface/IERC735.sol\":\"IERC735\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_topic","type":"uint256"},{"internalType":"uint256","name":"_scheme","type":"uint256"},{"internalType":"address","name":"issuer","type":"address"},{"internalType":"bytes","name":"_signature","type":"bytes"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"string","name":"_uri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addClaim","outputs":[{"internalType":"bytes32","name":"claimRequestId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_claimId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClaim","outputs":[{"internalType":"uint256","name":"topic","type":"uint256"},{"internalType":"uint256","name":"scheme","type":"uint256"},{"internalType":"address","name":"issuer","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string","name":"uri","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"_topic","type":"uint256"}],"stateMutability":"view","type":"function","name":"getClaimIdsByTopic","outputs":[{"internalType":"bytes32[]","name":"claimIds","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"_claimId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeClaim","outputs":[{"internalType":"bool","name":"success","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"addClaim(uint256,uint256,address,bytes,bytes,string)":{"details":"Add or update a claim. Triggers Event: `ClaimAdded`, `ClaimChanged` Specification: Add or update a claim from an issuer. _signature is a signed message of the following structure: `keccak256(abi.encode(address identityHolder_address, uint256 topic, bytes data))`. Claim IDs are generated using `keccak256(abi.encode(address issuer_address + uint256 topic))`."},"getClaim(bytes32)":{"details":"Get a claim by its ID. Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`."},"getClaimIdsByTopic(uint256)":{"details":"Returns an array of claim IDs by topic."},"removeClaim(bytes32)":{"details":"Removes a claim. Triggers Event: `ClaimRemoved` Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onchainid/interface/IERC735.sol":"IERC735"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"}},"version":1},"id":121} \ No newline at end of file diff --git a/out/IHRC.sol/IHRC.json b/out/IHRC.sol/IHRC.json new file mode 100644 index 0000000..6376f57 --- /dev/null +++ b/out/IHRC.sol/IHRC.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"associate","inputs":[],"outputs":[{"name":"responseCode","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"dissociate","inputs":[],"outputs":[{"name":"responseCode","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"associate()":"0a754de6","dissociate()":"5c9217e0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"associate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"responseCode\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dissociate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"responseCode\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/hedera/IHRC.sol\":\"IHRC\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/hedera/IHRC.sol\":{\"keccak256\":\"0xa5e623207cec464b0965f98d87db307893dd22d5f46654923e36141bdcb93657\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f3da162916df8236e8c84fa7a0e35757e7c6b3e6af93e98bebe23a03177a0fa9\",\"dweb:/ipfs/Qmb8ZbsGQqbaqpZEhACfuV1FfTDZYKrjbyzUDamYN5gD1c\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"associate","outputs":[{"internalType":"uint256","name":"responseCode","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"dissociate","outputs":[{"internalType":"uint256","name":"responseCode","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/common/hedera/IHRC.sol":"IHRC"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/hedera/IHRC.sol":{"keccak256":"0xa5e623207cec464b0965f98d87db307893dd22d5f46654923e36141bdcb93657","urls":["bzz-raw://f3da162916df8236e8c84fa7a0e35757e7c6b3e6af93e98bebe23a03177a0fa9","dweb:/ipfs/Qmb8ZbsGQqbaqpZEhACfuV1FfTDZYKrjbyzUDamYN5gD1c"],"license":"Apache-2.0"}},"version":1},"id":7} \ No newline at end of file diff --git a/out/IIAFactory.sol/IIAFactory.json b/out/IIAFactory.sol/IIAFactory.json new file mode 100644 index 0000000..e60fa17 --- /dev/null +++ b/out/IIAFactory.sol/IIAFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"deployIA","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deployedByFactory","inputs":[{"name":"_ia","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"ImplementationAuthorityDeployed","inputs":[{"name":"_ia","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"deployIA(address)":"52f1431b","deployedByFactory(address)":"de87aeeb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_ia\",\"type\":\"address\"}],\"name\":\"ImplementationAuthorityDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"deployIA\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ia\",\"type\":\"address\"}],\"name\":\"deployedByFactory\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"deployIA(address)\":{\"details\":\"deploy a new TREXImplementationAuthority smart contract\",\"params\":{\"_token\":\"the token for which the new IA will be used function called by the `changeImplementationAuthority` function can be called only by the reference TREXImplementationAuthority contract the new contract deployed will contain all the versions from reference IA the new contract will be set on the same version as the reference IA ownership of the new IA is transferred to the Owner of the token emits a `ImplementationAuthorityDeployed` event returns the address of the IA contract deployed\"}},\"deployedByFactory(address)\":{\"details\":\"function used to know if an IA contract was deployed by the factory or not\",\"params\":{\"_ia\":\"the address of TREXImplementationAuthority contract\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ImplementationAuthorityDeployed(address)\":{\"notice\":\"event emitted when a new TREXImplementationAuthority is deployed\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/proxy/authority/IIAFactory.sol\":\"IIAFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/proxy/authority/IIAFactory.sol\":{\"keccak256\":\"0x380617d537e848980ebb0e37279615561daad93c77f36ca5d65db481937c76ab\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5b9e5470d367d02a3f5bcf44615fa7722a9fdc4352535c5459e556b03648d6d0\",\"dweb:/ipfs/QmSNkfeAd9soJytsK4FmY9F7559fSrLFuK22SgH5hoHohw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_ia","type":"address","indexed":true}],"type":"event","name":"ImplementationAuthorityDeployed","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deployIA","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_ia","type":"address"}],"stateMutability":"view","type":"function","name":"deployedByFactory","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"deployIA(address)":{"details":"deploy a new TREXImplementationAuthority smart contract","params":{"_token":"the token for which the new IA will be used function called by the `changeImplementationAuthority` function can be called only by the reference TREXImplementationAuthority contract the new contract deployed will contain all the versions from reference IA the new contract will be set on the same version as the reference IA ownership of the new IA is transferred to the Owner of the token emits a `ImplementationAuthorityDeployed` event returns the address of the IA contract deployed"}},"deployedByFactory(address)":{"details":"function used to know if an IA contract was deployed by the factory or not","params":{"_ia":"the address of TREXImplementationAuthority contract"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/proxy/authority/IIAFactory.sol":"IIAFactory"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/proxy/authority/IIAFactory.sol":{"keccak256":"0x380617d537e848980ebb0e37279615561daad93c77f36ca5d65db481937c76ab","urls":["bzz-raw://5b9e5470d367d02a3f5bcf44615fa7722a9fdc4352535c5459e556b03648d6d0","dweb:/ipfs/QmSNkfeAd9soJytsK4FmY9F7559fSrLFuK22SgH5hoHohw"],"license":"GPL-3.0"}},"version":1},"id":71} \ No newline at end of file diff --git a/out/IIdFactory.sol/IIdFactory.json b/out/IIdFactory.sol/IIdFactory.json new file mode 100644 index 0000000..6b67cc9 --- /dev/null +++ b/out/IIdFactory.sol/IIdFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addTokenFactory","inputs":[{"name":"_factory","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createIdentity","inputs":[{"name":"_wallet","type":"address","internalType":"address"},{"name":"_salt","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createIdentityWithManagementKeys","inputs":[{"name":"_wallet","type":"address","internalType":"address"},{"name":"_salt","type":"string","internalType":"string"},{"name":"_managementKeys","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createTokenIdentity","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_tokenOwner","type":"address","internalType":"address"},{"name":"_salt","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"getIdentity","inputs":[{"name":"_wallet","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getToken","inputs":[{"name":"_identity","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getWallets","inputs":[{"name":"_identity","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"implementationAuthority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isSaltTaken","inputs":[{"name":"_salt","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenFactory","inputs":[{"name":"_factory","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"linkWallet","inputs":[{"name":"_newWallet","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenFactory","inputs":[{"name":"_factory","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unlinkWallet","inputs":[{"name":"_oldWallet","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Deployed","inputs":[{"name":"_addr","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenFactoryAdded","inputs":[{"name":"factory","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenFactoryRemoved","inputs":[{"name":"factory","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenLinked","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"identity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"WalletLinked","inputs":[{"name":"wallet","type":"address","indexed":true,"internalType":"address"},{"name":"identity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"WalletUnlinked","inputs":[{"name":"wallet","type":"address","indexed":true,"internalType":"address"},{"name":"identity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addTokenFactory(address)":"9ce19365","createIdentity(address,string)":"8e952bfe","createIdentityWithManagementKeys(address,string,bytes32[])":"fe5cd59a","createTokenIdentity(address,address,string)":"3d56ff66","getIdentity(address)":"2fea7b81","getToken(address)":"59770438","getWallets(address)":"422c29a4","implementationAuthority()":"2307f882","isSaltTaken(string)":"3a500451","isTokenFactory(address)":"3e3bc3d7","linkWallet(address)":"b8bb8126","removeTokenFactory(address)":"937529ef","unlinkWallet(address)":"5027dbe2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"Deployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"name\":\"TokenFactoryAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"name\":\"TokenFactoryRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"TokenLinked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"WalletLinked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"WalletUnlinked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factory\",\"type\":\"address\"}],\"name\":\"addTokenFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_salt\",\"type\":\"string\"}],\"name\":\"createIdentity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_salt\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"_managementKeys\",\"type\":\"bytes32[]\"}],\"name\":\"createIdentityWithManagementKeys\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_salt\",\"type\":\"string\"}],\"name\":\"createTokenIdentity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"}],\"name\":\"getIdentity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identity\",\"type\":\"address\"}],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identity\",\"type\":\"address\"}],\"name\":\"getWallets\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementationAuthority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_salt\",\"type\":\"string\"}],\"name\":\"isSaltTaken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factory\",\"type\":\"address\"}],\"name\":\"isTokenFactory\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newWallet\",\"type\":\"address\"}],\"name\":\"linkWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factory\",\"type\":\"address\"}],\"name\":\"removeTokenFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oldWallet\",\"type\":\"address\"}],\"name\":\"unlinkWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addTokenFactory(address)\":{\"details\":\"function used to register an address as a token factory\",\"params\":{\"_factory\":\"the address of the token factory can be called only by Owner _factory cannot be registered yet once the factory has been registered it can deploy token identities\"}},\"createIdentity(address,string)\":{\"details\":\"function used to create a new Identity proxy from the factory\",\"params\":{\"_salt\":\"the salt used by create2 to issue the contract requires a new salt for each deployment _wallet cannot be linked to another ONCHAINID only Owner can call => Owner is supposed to be a smart contract, managing the accessibility of the function, including calls to oracles for multichain deployment security (avoid identity theft), defining payment requirements, etc.\",\"_wallet\":\"the wallet address of the primary owner of this ONCHAINID contract\"}},\"createIdentityWithManagementKeys(address,string,bytes32[])\":{\"details\":\"function used to create a new Identity proxy from the factory, setting the wallet and listed keys as MANAGEMENT keys.\",\"params\":{\"_managementKeys\":\"A list of keys hash (keccak256(abiEncoded())) to add as MANAGEMENT keys. requires a new salt for each deployment _wallet cannot be linked to another ONCHAINID only Owner can call => Owner is supposed to be a smart contract, managing the accessibility of the function, including calls to oracles for multichain deployment security (avoid identity theft), defining payment requirements, etc.\",\"_salt\":\"the salt used by create2 to issue the contract\",\"_wallet\":\"the wallet address of the primary owner of this ONCHAINID contract\"}},\"createTokenIdentity(address,address,string)\":{\"details\":\"function used to create a new Token Identity proxy from the factory\",\"params\":{\"_salt\":\"the salt used by create2 to issue the contract requires a new salt for each deployment _token cannot be linked to another ONCHAINID only Token factory or owner can call (owner should only use its privilege for tokens not issued by a Token factory onchain\",\"_token\":\"the address of the token contract\",\"_tokenOwner\":\"the owner address of the token\"}},\"getIdentity(address)\":{\"details\":\"getter for OID contract corresponding to a wallet/token\",\"params\":{\"_wallet\":\"the wallet/token address\"}},\"getToken(address)\":{\"details\":\"getter to fetch the token address linked to an OID contract\",\"params\":{\"_identity\":\"the address of the OID contract returns the address linked to the OID\"}},\"getWallets(address)\":{\"details\":\"getter to fetch the array of wallets linked to an OID contract\",\"params\":{\"_identity\":\"the address of the OID contract returns an array of addresses linked to the OID\"}},\"implementationAuthority()\":{\"details\":\"getter for the implementation authority used by this factory.\"},\"isSaltTaken(string)\":{\"details\":\"getter to know if a salt is taken for the create2 deployment\",\"params\":{\"_salt\":\"the salt used for deployment\"}},\"isTokenFactory(address)\":{\"details\":\"getter to know if an address is registered as token factory or not\",\"params\":{\"_factory\":\"the address of the factory returns true if the address corresponds to a registered factory\"}},\"linkWallet(address)\":{\"details\":\"function used to link a new wallet to an existing identity\",\"params\":{\"_newWallet\":\"the address of the wallet to link requires msg.sender to be linked to an existing onchainid the _newWallet will be linked to the same OID contract as msg.sender _newWallet cannot be linked to an OID yet _newWallet cannot be address 0 cannot link more than 100 wallets to an OID, for gas consumption reason\"}},\"removeTokenFactory(address)\":{\"details\":\"function used to unregister an address previously registered as a token factory\",\"params\":{\"_factory\":\"the address of the token factory can be called only by Owner _factory has to be registered previously once the factory has been unregistered it cannot deploy token identities anymore\"}},\"unlinkWallet(address)\":{\"details\":\"function used to unlink a wallet from an existing identity\",\"params\":{\"_oldWallet\":\"the address of the wallet to unlink requires msg.sender to be linked to the same onchainid as _oldWallet msg.sender cannot be _oldWallet to keep at least 1 wallet linked to any OID _oldWallet cannot be address 0\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Deployed(address)\":{\"notice\":\"events\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onchainid/factory/IIdFactory.sol\":\"IIdFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/onchainid/factory/IIdFactory.sol\":{\"keccak256\":\"0x7176e78517381538ff4cc3fe4a4b9adb0a05d86e8750836801010af3cc2b9cc4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ea9875f1fdde42326e9bd66aa7605811f886bff7125af16579ba71fb3aa29d9e\",\"dweb:/ipfs/QmbyoWxwe2D4sdSFs191ukHZnS1uEpdKm9a85FBGK51Cy3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_addr","type":"address","indexed":true}],"type":"event","name":"Deployed","anonymous":false},{"inputs":[{"internalType":"address","name":"factory","type":"address","indexed":true}],"type":"event","name":"TokenFactoryAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"factory","type":"address","indexed":true}],"type":"event","name":"TokenFactoryRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"address","name":"identity","type":"address","indexed":true}],"type":"event","name":"TokenLinked","anonymous":false},{"inputs":[{"internalType":"address","name":"wallet","type":"address","indexed":true},{"internalType":"address","name":"identity","type":"address","indexed":true}],"type":"event","name":"WalletLinked","anonymous":false},{"inputs":[{"internalType":"address","name":"wallet","type":"address","indexed":true},{"internalType":"address","name":"identity","type":"address","indexed":true}],"type":"event","name":"WalletUnlinked","anonymous":false},{"inputs":[{"internalType":"address","name":"_factory","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenFactory"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"string","name":"_salt","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createIdentity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"string","name":"_salt","type":"string"},{"internalType":"bytes32[]","name":"_managementKeys","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"createIdentityWithManagementKeys","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_tokenOwner","type":"address"},{"internalType":"string","name":"_salt","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createTokenIdentity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"stateMutability":"view","type":"function","name":"getIdentity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_identity","type":"address"}],"stateMutability":"view","type":"function","name":"getToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_identity","type":"address"}],"stateMutability":"view","type":"function","name":"getWallets","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"implementationAuthority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"_salt","type":"string"}],"stateMutability":"view","type":"function","name":"isSaltTaken","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_factory","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenFactory","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"linkWallet"},{"inputs":[{"internalType":"address","name":"_factory","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenFactory"},{"inputs":[{"internalType":"address","name":"_oldWallet","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unlinkWallet"}],"devdoc":{"kind":"dev","methods":{"addTokenFactory(address)":{"details":"function used to register an address as a token factory","params":{"_factory":"the address of the token factory can be called only by Owner _factory cannot be registered yet once the factory has been registered it can deploy token identities"}},"createIdentity(address,string)":{"details":"function used to create a new Identity proxy from the factory","params":{"_salt":"the salt used by create2 to issue the contract requires a new salt for each deployment _wallet cannot be linked to another ONCHAINID only Owner can call => Owner is supposed to be a smart contract, managing the accessibility of the function, including calls to oracles for multichain deployment security (avoid identity theft), defining payment requirements, etc.","_wallet":"the wallet address of the primary owner of this ONCHAINID contract"}},"createIdentityWithManagementKeys(address,string,bytes32[])":{"details":"function used to create a new Identity proxy from the factory, setting the wallet and listed keys as MANAGEMENT keys.","params":{"_managementKeys":"A list of keys hash (keccak256(abiEncoded())) to add as MANAGEMENT keys. requires a new salt for each deployment _wallet cannot be linked to another ONCHAINID only Owner can call => Owner is supposed to be a smart contract, managing the accessibility of the function, including calls to oracles for multichain deployment security (avoid identity theft), defining payment requirements, etc.","_salt":"the salt used by create2 to issue the contract","_wallet":"the wallet address of the primary owner of this ONCHAINID contract"}},"createTokenIdentity(address,address,string)":{"details":"function used to create a new Token Identity proxy from the factory","params":{"_salt":"the salt used by create2 to issue the contract requires a new salt for each deployment _token cannot be linked to another ONCHAINID only Token factory or owner can call (owner should only use its privilege for tokens not issued by a Token factory onchain","_token":"the address of the token contract","_tokenOwner":"the owner address of the token"}},"getIdentity(address)":{"details":"getter for OID contract corresponding to a wallet/token","params":{"_wallet":"the wallet/token address"}},"getToken(address)":{"details":"getter to fetch the token address linked to an OID contract","params":{"_identity":"the address of the OID contract returns the address linked to the OID"}},"getWallets(address)":{"details":"getter to fetch the array of wallets linked to an OID contract","params":{"_identity":"the address of the OID contract returns an array of addresses linked to the OID"}},"implementationAuthority()":{"details":"getter for the implementation authority used by this factory."},"isSaltTaken(string)":{"details":"getter to know if a salt is taken for the create2 deployment","params":{"_salt":"the salt used for deployment"}},"isTokenFactory(address)":{"details":"getter to know if an address is registered as token factory or not","params":{"_factory":"the address of the factory returns true if the address corresponds to a registered factory"}},"linkWallet(address)":{"details":"function used to link a new wallet to an existing identity","params":{"_newWallet":"the address of the wallet to link requires msg.sender to be linked to an existing onchainid the _newWallet will be linked to the same OID contract as msg.sender _newWallet cannot be linked to an OID yet _newWallet cannot be address 0 cannot link more than 100 wallets to an OID, for gas consumption reason"}},"removeTokenFactory(address)":{"details":"function used to unregister an address previously registered as a token factory","params":{"_factory":"the address of the token factory can be called only by Owner _factory has to be registered previously once the factory has been unregistered it cannot deploy token identities anymore"}},"unlinkWallet(address)":{"details":"function used to unlink a wallet from an existing identity","params":{"_oldWallet":"the address of the wallet to unlink requires msg.sender to be linked to the same onchainid as _oldWallet msg.sender cannot be _oldWallet to keep at least 1 wallet linked to any OID _oldWallet cannot be address 0"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onchainid/factory/IIdFactory.sol":"IIdFactory"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onchainid/factory/IIdFactory.sol":{"keccak256":"0x7176e78517381538ff4cc3fe4a4b9adb0a05d86e8750836801010af3cc2b9cc4","urls":["bzz-raw://ea9875f1fdde42326e9bd66aa7605811f886bff7125af16579ba71fb3aa29d9e","dweb:/ipfs/QmbyoWxwe2D4sdSFs191ukHZnS1uEpdKm9a85FBGK51Cy3"],"license":"GPL-3.0"}},"version":1},"id":116} \ No newline at end of file diff --git a/out/IIdentity.sol/IIdentity.json b/out/IIdentity.sol/IIdentity.json new file mode 100644 index 0000000..b050f07 --- /dev/null +++ b/out/IIdentity.sol/IIdentity.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addClaim","inputs":[{"name":"_topic","type":"uint256","internalType":"uint256"},{"name":"_scheme","type":"uint256","internalType":"uint256"},{"name":"issuer","type":"address","internalType":"address"},{"name":"_signature","type":"bytes","internalType":"bytes"},{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_uri","type":"string","internalType":"string"}],"outputs":[{"name":"claimRequestId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"addKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"},{"name":"_keyType","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"_id","type":"uint256","internalType":"uint256"},{"name":"_approve","type":"bool","internalType":"bool"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"execute","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"executionId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"getClaim","inputs":[{"name":"_claimId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"topic","type":"uint256","internalType":"uint256"},{"name":"scheme","type":"uint256","internalType":"uint256"},{"name":"issuer","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"uri","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getClaimIdsByTopic","inputs":[{"name":"_topic","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"claimIds","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"purposes","type":"uint256[]","internalType":"uint256[]"},{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getKeyPurposes","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_purposes","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getKeysByPurpose","inputs":[{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keys","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"isClaimValid","inputs":[{"name":"_identity","type":"address","internalType":"contract IIdentity"},{"name":"claimTopic","type":"uint256","internalType":"uint256"},{"name":"sig","type":"bytes","internalType":"bytes"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyHasPurpose","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeClaim","inputs":[{"name":"_claimId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approved","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ClaimAdded","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimChanged","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimRemoved","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"Executed","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ExecutionFailed","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ExecutionRequested","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"KeyAdded","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"purpose","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"keyType","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"KeyRemoved","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"purpose","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"keyType","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addClaim(uint256,uint256,address,bytes,bytes,string)":"b1a34e0d","addKey(bytes32,uint256,uint256)":"1d381240","approve(uint256,bool)":"747442d3","execute(address,uint256,bytes)":"b61d27f6","getClaim(bytes32)":"c9100bcb","getClaimIdsByTopic(uint256)":"80e9e9e1","getKey(bytes32)":"12aaac70","getKeyPurposes(bytes32)":"fb307b34","getKeysByPurpose(uint256)":"9010f726","isClaimValid(address,uint256,bytes,bytes)":"c0969a6e","keyHasPurpose(bytes32,uint256)":"d202158d","removeClaim(bytes32)":"4eee424a","removeKey(bytes32,uint256)":"53d413c5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"Approved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Executed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_topic\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_scheme\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"_uri\",\"type\":\"string\"}],\"name\":\"addClaim\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimRequestId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_keyType\",\"type\":\"uint256\"}],\"name\":\"addKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_approve\",\"type\":\"bool\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimId\",\"type\":\"bytes32\"}],\"name\":\"getClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_topic\",\"type\":\"uint256\"}],\"name\":\"getClaimIdsByTopic\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"claimIds\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getKey\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"purposes\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getKeyPurposes\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_purposes\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"getKeysByPurpose\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"keys\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IIdentity\",\"name\":\"_identity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sig\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"isClaimValid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"keyHasPurpose\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimId\",\"type\":\"bytes32\"}],\"name\":\"removeClaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"removeKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approved(uint256,bool)\":{\"details\":\"Emitted when an execution request was approved. Specification: MUST be triggered when approve was successfully called.\"},\"ClaimAdded(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was added. Specification: MUST be triggered when a claim was successfully added.\"},\"ClaimChanged(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was changed. Specification: MUST be triggered when addClaim was successfully called on an existing claimId.\"},\"ClaimRemoved(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was removed. Specification: MUST be triggered when removeClaim was successfully called.\"},\"Executed(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execute operation was approved and successfully performed. Specification: MUST be triggered when approve was called and the execution was successfully approved.\"},\"ExecutionFailed(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execute operation was called and failed Specification: MUST be triggered when execute call failed\"},\"ExecutionRequested(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execution request was performed via `execute`. Specification: MUST be triggered when execute was successfully called.\"},\"KeyAdded(bytes32,uint256,uint256)\":{\"details\":\"Emitted when a key was added to the Identity. Specification: MUST be triggered when addKey was successfully called.\"},\"KeyRemoved(bytes32,uint256,uint256)\":{\"details\":\"Emitted when a key was removed from the Identity. Specification: MUST be triggered when removeKey was successfully called.\"}},\"kind\":\"dev\",\"methods\":{\"addClaim(uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Add or update a claim. Triggers Event: `ClaimAdded`, `ClaimChanged` Specification: Add or update a claim from an issuer. _signature is a signed message of the following structure: `keccak256(abi.encode(address identityHolder_address, uint256 topic, bytes data))`. Claim IDs are generated using `keccak256(abi.encode(address issuer_address + uint256 topic))`.\"},\"addKey(bytes32,uint256,uint256)\":{\"details\":\"Adds a _key to the identity. The _purpose specifies the purpose of the key. Triggers Event: `KeyAdded` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval.\"},\"approve(uint256,bool)\":{\"details\":\"Approves an execution. Triggers Event: `Approved` Triggers on execution successful Event: `Executed` Triggers on execution failure Event: `ExecutionFailed`\"},\"execute(address,uint256,bytes)\":{\"details\":\"Passes an execution instruction to an ERC734 identity. How the execution is handled is up to the identity implementation: An execution COULD be requested and require `approve` to be called with one or more keys of purpose 1 or 2 to approve this execution. Execute COULD be used as the only accessor for `addKey` and `removeKey`. Triggers Event: ExecutionRequested Triggers on direct execution Event: Executed\"},\"getClaim(bytes32)\":{\"details\":\"Get a claim by its ID. Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`.\"},\"getClaimIdsByTopic(uint256)\":{\"details\":\"Returns an array of claim IDs by topic.\"},\"getKey(bytes32)\":{\"details\":\"Returns the full key data, if present in the identity.\"},\"getKeyPurposes(bytes32)\":{\"details\":\"Returns the list of purposes associated with a key.\"},\"getKeysByPurpose(uint256)\":{\"details\":\"Returns an array of public key bytes32 held by this identity.\"},\"isClaimValid(address,uint256,bytes,bytes)\":{\"details\":\"Checks if a claim is valid.\",\"params\":{\"_identity\":\"the identity contract related to the claim\",\"claimTopic\":\"the claim topic of the claim\",\"data\":\"the data field of the claim\",\"sig\":\"the signature of the claim\"},\"returns\":{\"_0\":\"claimValid true if the claim is valid, false otherwise\"}},\"keyHasPurpose(bytes32,uint256)\":{\"details\":\"Returns TRUE if a key is present and has the given purpose. If the key is not present it returns FALSE.\"},\"removeClaim(bytes32)\":{\"details\":\"Removes a claim. Triggers Event: `ClaimRemoved` Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`.\"},\"removeKey(bytes32,uint256)\":{\"details\":\"Removes _purpose for _key from the identity. Triggers Event: `KeyRemoved` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onchainid/interface/IIdentity.sol\":\"IIdentity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"Approved","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Executed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"ExecutionFailed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"ExecutionRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"uint256","name":"purpose","type":"uint256","indexed":true},{"internalType":"uint256","name":"keyType","type":"uint256","indexed":true}],"type":"event","name":"KeyAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"uint256","name":"purpose","type":"uint256","indexed":true},{"internalType":"uint256","name":"keyType","type":"uint256","indexed":true}],"type":"event","name":"KeyRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_topic","type":"uint256"},{"internalType":"uint256","name":"_scheme","type":"uint256"},{"internalType":"address","name":"issuer","type":"address"},{"internalType":"bytes","name":"_signature","type":"bytes"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"string","name":"_uri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addClaim","outputs":[{"internalType":"bytes32","name":"claimRequestId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"},{"internalType":"uint256","name":"_keyType","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addKey","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"bool","name":"_approve","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"execute","outputs":[{"internalType":"uint256","name":"executionId","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"_claimId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClaim","outputs":[{"internalType":"uint256","name":"topic","type":"uint256"},{"internalType":"uint256","name":"scheme","type":"uint256"},{"internalType":"address","name":"issuer","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string","name":"uri","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"_topic","type":"uint256"}],"stateMutability":"view","type":"function","name":"getClaimIdsByTopic","outputs":[{"internalType":"bytes32[]","name":"claimIds","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKey","outputs":[{"internalType":"uint256[]","name":"purposes","type":"uint256[]"},{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"bytes32","name":"key","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeyPurposes","outputs":[{"internalType":"uint256[]","name":"_purposes","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"view","type":"function","name":"getKeysByPurpose","outputs":[{"internalType":"bytes32[]","name":"keys","type":"bytes32[]"}]},{"inputs":[{"internalType":"contract IIdentity","name":"_identity","type":"address"},{"internalType":"uint256","name":"claimTopic","type":"uint256"},{"internalType":"bytes","name":"sig","type":"bytes"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"isClaimValid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"view","type":"function","name":"keyHasPurpose","outputs":[{"internalType":"bool","name":"exists","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_claimId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeClaim","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeKey","outputs":[{"internalType":"bool","name":"success","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"addClaim(uint256,uint256,address,bytes,bytes,string)":{"details":"Add or update a claim. Triggers Event: `ClaimAdded`, `ClaimChanged` Specification: Add or update a claim from an issuer. _signature is a signed message of the following structure: `keccak256(abi.encode(address identityHolder_address, uint256 topic, bytes data))`. Claim IDs are generated using `keccak256(abi.encode(address issuer_address + uint256 topic))`."},"addKey(bytes32,uint256,uint256)":{"details":"Adds a _key to the identity. The _purpose specifies the purpose of the key. Triggers Event: `KeyAdded` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval."},"approve(uint256,bool)":{"details":"Approves an execution. Triggers Event: `Approved` Triggers on execution successful Event: `Executed` Triggers on execution failure Event: `ExecutionFailed`"},"execute(address,uint256,bytes)":{"details":"Passes an execution instruction to an ERC734 identity. How the execution is handled is up to the identity implementation: An execution COULD be requested and require `approve` to be called with one or more keys of purpose 1 or 2 to approve this execution. Execute COULD be used as the only accessor for `addKey` and `removeKey`. Triggers Event: ExecutionRequested Triggers on direct execution Event: Executed"},"getClaim(bytes32)":{"details":"Get a claim by its ID. Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`."},"getClaimIdsByTopic(uint256)":{"details":"Returns an array of claim IDs by topic."},"getKey(bytes32)":{"details":"Returns the full key data, if present in the identity."},"getKeyPurposes(bytes32)":{"details":"Returns the list of purposes associated with a key."},"getKeysByPurpose(uint256)":{"details":"Returns an array of public key bytes32 held by this identity."},"isClaimValid(address,uint256,bytes,bytes)":{"details":"Checks if a claim is valid.","params":{"_identity":"the identity contract related to the claim","claimTopic":"the claim topic of the claim","data":"the data field of the claim","sig":"the signature of the claim"},"returns":{"_0":"claimValid true if the claim is valid, false otherwise"}},"keyHasPurpose(bytes32,uint256)":{"details":"Returns TRUE if a key is present and has the given purpose. If the key is not present it returns FALSE."},"removeClaim(bytes32)":{"details":"Removes a claim. Triggers Event: `ClaimRemoved` Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`."},"removeKey(bytes32,uint256)":{"details":"Removes _purpose for _key from the identity. Triggers Event: `KeyRemoved` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onchainid/interface/IIdentity.sol":"IIdentity"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"}},"version":1},"id":122} \ No newline at end of file diff --git a/out/IIdentityRegistry.sol/IIdentityRegistry.json b/out/IIdentityRegistry.sol/IIdentityRegistry.json new file mode 100644 index 0000000..704f434 --- /dev/null +++ b/out/IIdentityRegistry.sol/IIdentityRegistry.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"batchRegisterIdentity","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_identities","type":"address[]","internalType":"contract IIdentity[]"},{"name":"_countries","type":"uint16[]","internalType":"uint16[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"contains","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"deleteIdentity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"identity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract IIdentity"}],"stateMutability":"view"},{"type":"function","name":"identityStorage","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IIdentityRegistryStorage"}],"stateMutability":"view"},{"type":"function","name":"investorCountry","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"isVerified","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"issuersRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITrustedIssuersRegistry"}],"stateMutability":"view"},{"type":"function","name":"registerIdentity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_identity","type":"address","internalType":"contract IIdentity"},{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setClaimTopicsRegistry","inputs":[{"name":"_claimTopicsRegistry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIdentityRegistryStorage","inputs":[{"name":"_identityRegistryStorage","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTrustedIssuersRegistry","inputs":[{"name":"_trustedIssuersRegistry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"topicsRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IClaimTopicsRegistry"}],"stateMutability":"view"},{"type":"function","name":"updateCountry","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateIdentity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_identity","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ClaimTopicsRegistrySet","inputs":[{"name":"claimTopicsRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CountryUpdated","inputs":[{"name":"investorAddress","type":"address","indexed":true,"internalType":"address"},{"name":"country","type":"uint16","indexed":true,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"IdentityRegistered","inputs":[{"name":"investorAddress","type":"address","indexed":true,"internalType":"address"},{"name":"identity","type":"address","indexed":true,"internalType":"contract IIdentity"}],"anonymous":false},{"type":"event","name":"IdentityRemoved","inputs":[{"name":"investorAddress","type":"address","indexed":true,"internalType":"address"},{"name":"identity","type":"address","indexed":true,"internalType":"contract IIdentity"}],"anonymous":false},{"type":"event","name":"IdentityStorageSet","inputs":[{"name":"identityStorage","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"IdentityUpdated","inputs":[{"name":"oldIdentity","type":"address","indexed":true,"internalType":"contract IIdentity"},{"name":"newIdentity","type":"address","indexed":true,"internalType":"contract IIdentity"}],"anonymous":false},{"type":"event","name":"TrustedIssuersRegistrySet","inputs":[{"name":"trustedIssuersRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"batchRegisterIdentity(address[],address[],uint16[])":"653dc9f1","contains(address)":"5dbe47e8","deleteIdentity(address)":"a8d29d1d","identity(address)":"f0eb5e54","identityStorage()":"f11abfd8","investorCountry(address)":"7e42683b","isVerified(address)":"b9209e33","issuersRegistry()":"b4f3fcb7","registerIdentity(address,address,uint16)":"454a03e0","setClaimTopicsRegistry(address)":"670af6a9","setIdentityRegistryStorage(address)":"26d941ae","setTrustedIssuersRegistry(address)":"e744d789","topicsRegistry()":"3b3e12f4","updateCountry(address,uint16)":"3b239a7f","updateIdentity(address,address)":"8e098ca1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimTopicsRegistry\",\"type\":\"address\"}],\"name\":\"ClaimTopicsRegistrySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"country\",\"type\":\"uint16\"}],\"name\":\"CountryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IIdentity\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"IdentityRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IIdentity\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"IdentityRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"identityStorage\",\"type\":\"address\"}],\"name\":\"IdentityStorageSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IIdentity\",\"name\":\"oldIdentity\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IIdentity\",\"name\":\"newIdentity\",\"type\":\"address\"}],\"name\":\"IdentityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"trustedIssuersRegistry\",\"type\":\"address\"}],\"name\":\"TrustedIssuersRegistrySet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"contract IIdentity[]\",\"name\":\"_identities\",\"type\":\"address[]\"},{\"internalType\":\"uint16[]\",\"name\":\"_countries\",\"type\":\"uint16[]\"}],\"name\":\"batchRegisterIdentity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"contains\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"deleteIdentity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"identity\",\"outputs\":[{\"internalType\":\"contract IIdentity\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identityStorage\",\"outputs\":[{\"internalType\":\"contract IIdentityRegistryStorage\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"investorCountry\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"isVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"issuersRegistry\",\"outputs\":[{\"internalType\":\"contract ITrustedIssuersRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_identity\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"registerIdentity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_claimTopicsRegistry\",\"type\":\"address\"}],\"name\":\"setClaimTopicsRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identityRegistryStorage\",\"type\":\"address\"}],\"name\":\"setIdentityRegistryStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_trustedIssuersRegistry\",\"type\":\"address\"}],\"name\":\"setTrustedIssuersRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"topicsRegistry\",\"outputs\":[{\"internalType\":\"contract IClaimTopicsRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"updateCountry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_identity\",\"type\":\"address\"}],\"name\":\"updateIdentity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"batchRegisterIdentity(address[],address[],uint16[])\":{\"details\":\"function allowing to register identities in batch This function can only be called by a wallet set as agent of the smart contract Requires that none of the users has an identity contract already registered. IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \\\"OUT OF GAS\\\" TRANSACTION\",\"params\":{\"_countries\":\"The countries of the corresponding investors emits _userAddresses.length `IdentityRegistered` events\",\"_identities\":\"The addresses of the corresponding identity contracts\",\"_userAddresses\":\"The addresses of the users\"}},\"contains(address)\":{\"details\":\"This functions checks whether a wallet has its Identity registered or not in the Identity Registry.\",\"params\":{\"_userAddress\":\"The address of the user to be checked.\"},\"returns\":{\"_0\":\"'True' if the address is contained in the Identity Registry, 'false' if not.\"}},\"deleteIdentity(address)\":{\"details\":\"Removes an user from the identity registry. Requires that the user have an identity contract already deployed that will be deleted. This function can only be called by a wallet set as agent of the smart contract\",\"params\":{\"_userAddress\":\"The address of the user to be removed emits `IdentityRemoved` event\"}},\"identity(address)\":{\"details\":\"Returns the onchainID of an investor.\",\"params\":{\"_userAddress\":\"The wallet of the investor\"}},\"identityStorage()\":{\"details\":\"Returns the IdentityRegistryStorage linked to the current IdentityRegistry.\"},\"investorCountry(address)\":{\"details\":\"Returns the country code of an investor.\",\"params\":{\"_userAddress\":\"The wallet of the investor\"}},\"isVerified(address)\":{\"details\":\"This functions checks whether an identity contract corresponding to the provided user address has the required claims or not based on the data fetched from trusted issuers registry and from the claim topics registry\",\"params\":{\"_userAddress\":\"The address of the user to be verified.\"},\"returns\":{\"_0\":\"'True' if the address is verified, 'false' if not.\"}},\"issuersRegistry()\":{\"details\":\"Returns the TrustedIssuersRegistry linked to the current IdentityRegistry.\"},\"registerIdentity(address,address,uint16)\":{\"details\":\"Register an identity contract corresponding to a user address. Requires that the user doesn't have an identity contract already registered. This function can only be called by a wallet set as agent of the smart contract\",\"params\":{\"_country\":\"The country of the investor emits `IdentityRegistered` event\",\"_identity\":\"The address of the user's identity contract\",\"_userAddress\":\"The address of the user\"}},\"setClaimTopicsRegistry(address)\":{\"details\":\"Replace the actual claimTopicsRegistry contract with a new one. This function can only be called by the wallet set as owner of the smart contract\",\"params\":{\"_claimTopicsRegistry\":\"The address of the new claim Topics Registry emits `ClaimTopicsRegistrySet` event\"}},\"setIdentityRegistryStorage(address)\":{\"details\":\"Replace the actual identityRegistryStorage contract with a new one. This function can only be called by the wallet set as owner of the smart contract\",\"params\":{\"_identityRegistryStorage\":\"The address of the new Identity Registry Storage emits `IdentityStorageSet` event\"}},\"setTrustedIssuersRegistry(address)\":{\"details\":\"Replace the actual trustedIssuersRegistry contract with a new one. This function can only be called by the wallet set as owner of the smart contract\",\"params\":{\"_trustedIssuersRegistry\":\"The address of the new Trusted Issuers Registry emits `TrustedIssuersRegistrySet` event\"}},\"topicsRegistry()\":{\"details\":\"Returns the ClaimTopicsRegistry linked to the current IdentityRegistry.\"},\"updateCountry(address,uint16)\":{\"details\":\"Updates the country corresponding to a user address. Requires that the user should have an identity contract already deployed that will be replaced. This function can only be called by a wallet set as agent of the smart contract\",\"params\":{\"_country\":\"The new country of the user emits `CountryUpdated` event\",\"_userAddress\":\"The address of the user\"}},\"updateIdentity(address,address)\":{\"details\":\"Updates an identity contract corresponding to a user address. Requires that the user address should be the owner of the identity contract. Requires that the user should have an identity contract already deployed that will be replaced. This function can only be called by a wallet set as agent of the smart contract\",\"params\":{\"_identity\":\"The address of the user's new identity contract emits `IdentityUpdated` event\",\"_userAddress\":\"The address of the user\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ClaimTopicsRegistrySet(address)\":{\"notice\":\"this event is emitted when the ClaimTopicsRegistry has been set for the IdentityRegistry the event is emitted by the IdentityRegistry constructor `claimTopicsRegistry` is the address of the Claim Topics Registry contract\"},\"CountryUpdated(address,uint16)\":{\"notice\":\"this event is emitted when an Identity's country has been updated the event is emitted by the 'updateCountry' function `investorAddress` is the address on which the country has been updated `country` is the numeric code (ISO 3166-1) of the new country\"},\"IdentityRegistered(address,address)\":{\"notice\":\"this event is emitted when an Identity is registered into the Identity Registry. the event is emitted by the 'registerIdentity' function `investorAddress` is the address of the investor's wallet `identity` is the address of the Identity smart contract (onchainID)\"},\"IdentityRemoved(address,address)\":{\"notice\":\"this event is emitted when an Identity is removed from the Identity Registry. the event is emitted by the 'deleteIdentity' function `investorAddress` is the address of the investor's wallet `identity` is the address of the Identity smart contract (onchainID)\"},\"IdentityStorageSet(address)\":{\"notice\":\"this event is emitted when the IdentityRegistryStorage has been set for the IdentityRegistry the event is emitted by the IdentityRegistry constructor `identityStorage` is the address of the Identity Registry Storage contract\"},\"IdentityUpdated(address,address)\":{\"notice\":\"this event is emitted when an Identity has been updated the event is emitted by the 'updateIdentity' function `oldIdentity` is the old Identity contract's address to update `newIdentity` is the new Identity contract's\"},\"TrustedIssuersRegistrySet(address)\":{\"notice\":\"this event is emitted when the TrustedIssuersRegistry has been set for the IdentityRegistry the event is emitted by the IdentityRegistry constructor `trustedIssuersRegistry` is the address of the Trusted Issuers Registry contract\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":\"IIdentityRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"claimTopicsRegistry","type":"address","indexed":true}],"type":"event","name":"ClaimTopicsRegistrySet","anonymous":false},{"inputs":[{"internalType":"address","name":"investorAddress","type":"address","indexed":true},{"internalType":"uint16","name":"country","type":"uint16","indexed":true}],"type":"event","name":"CountryUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"investorAddress","type":"address","indexed":true},{"internalType":"contract IIdentity","name":"identity","type":"address","indexed":true}],"type":"event","name":"IdentityRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"investorAddress","type":"address","indexed":true},{"internalType":"contract IIdentity","name":"identity","type":"address","indexed":true}],"type":"event","name":"IdentityRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"identityStorage","type":"address","indexed":true}],"type":"event","name":"IdentityStorageSet","anonymous":false},{"inputs":[{"internalType":"contract IIdentity","name":"oldIdentity","type":"address","indexed":true},{"internalType":"contract IIdentity","name":"newIdentity","type":"address","indexed":true}],"type":"event","name":"IdentityUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"trustedIssuersRegistry","type":"address","indexed":true}],"type":"event","name":"TrustedIssuersRegistrySet","anonymous":false},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"contract IIdentity[]","name":"_identities","type":"address[]"},{"internalType":"uint16[]","name":"_countries","type":"uint16[]"}],"stateMutability":"nonpayable","type":"function","name":"batchRegisterIdentity"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"contains","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deleteIdentity"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"identity","outputs":[{"internalType":"contract IIdentity","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"identityStorage","outputs":[{"internalType":"contract IIdentityRegistryStorage","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"investorCountry","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"issuersRegistry","outputs":[{"internalType":"contract ITrustedIssuersRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"contract IIdentity","name":"_identity","type":"address"},{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"registerIdentity"},{"inputs":[{"internalType":"address","name":"_claimTopicsRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setClaimTopicsRegistry"},{"inputs":[{"internalType":"address","name":"_identityRegistryStorage","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setIdentityRegistryStorage"},{"inputs":[{"internalType":"address","name":"_trustedIssuersRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTrustedIssuersRegistry"},{"inputs":[],"stateMutability":"view","type":"function","name":"topicsRegistry","outputs":[{"internalType":"contract IClaimTopicsRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"updateCountry"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"contract IIdentity","name":"_identity","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateIdentity"}],"devdoc":{"kind":"dev","methods":{"batchRegisterIdentity(address[],address[],uint16[])":{"details":"function allowing to register identities in batch This function can only be called by a wallet set as agent of the smart contract Requires that none of the users has an identity contract already registered. IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \"OUT OF GAS\" TRANSACTION","params":{"_countries":"The countries of the corresponding investors emits _userAddresses.length `IdentityRegistered` events","_identities":"The addresses of the corresponding identity contracts","_userAddresses":"The addresses of the users"}},"contains(address)":{"details":"This functions checks whether a wallet has its Identity registered or not in the Identity Registry.","params":{"_userAddress":"The address of the user to be checked."},"returns":{"_0":"'True' if the address is contained in the Identity Registry, 'false' if not."}},"deleteIdentity(address)":{"details":"Removes an user from the identity registry. Requires that the user have an identity contract already deployed that will be deleted. This function can only be called by a wallet set as agent of the smart contract","params":{"_userAddress":"The address of the user to be removed emits `IdentityRemoved` event"}},"identity(address)":{"details":"Returns the onchainID of an investor.","params":{"_userAddress":"The wallet of the investor"}},"identityStorage()":{"details":"Returns the IdentityRegistryStorage linked to the current IdentityRegistry."},"investorCountry(address)":{"details":"Returns the country code of an investor.","params":{"_userAddress":"The wallet of the investor"}},"isVerified(address)":{"details":"This functions checks whether an identity contract corresponding to the provided user address has the required claims or not based on the data fetched from trusted issuers registry and from the claim topics registry","params":{"_userAddress":"The address of the user to be verified."},"returns":{"_0":"'True' if the address is verified, 'false' if not."}},"issuersRegistry()":{"details":"Returns the TrustedIssuersRegistry linked to the current IdentityRegistry."},"registerIdentity(address,address,uint16)":{"details":"Register an identity contract corresponding to a user address. Requires that the user doesn't have an identity contract already registered. This function can only be called by a wallet set as agent of the smart contract","params":{"_country":"The country of the investor emits `IdentityRegistered` event","_identity":"The address of the user's identity contract","_userAddress":"The address of the user"}},"setClaimTopicsRegistry(address)":{"details":"Replace the actual claimTopicsRegistry contract with a new one. This function can only be called by the wallet set as owner of the smart contract","params":{"_claimTopicsRegistry":"The address of the new claim Topics Registry emits `ClaimTopicsRegistrySet` event"}},"setIdentityRegistryStorage(address)":{"details":"Replace the actual identityRegistryStorage contract with a new one. This function can only be called by the wallet set as owner of the smart contract","params":{"_identityRegistryStorage":"The address of the new Identity Registry Storage emits `IdentityStorageSet` event"}},"setTrustedIssuersRegistry(address)":{"details":"Replace the actual trustedIssuersRegistry contract with a new one. This function can only be called by the wallet set as owner of the smart contract","params":{"_trustedIssuersRegistry":"The address of the new Trusted Issuers Registry emits `TrustedIssuersRegistrySet` event"}},"topicsRegistry()":{"details":"Returns the ClaimTopicsRegistry linked to the current IdentityRegistry."},"updateCountry(address,uint16)":{"details":"Updates the country corresponding to a user address. Requires that the user should have an identity contract already deployed that will be replaced. This function can only be called by a wallet set as agent of the smart contract","params":{"_country":"The new country of the user emits `CountryUpdated` event","_userAddress":"The address of the user"}},"updateIdentity(address,address)":{"details":"Updates an identity contract corresponding to a user address. Requires that the user address should be the owner of the identity contract. Requires that the user should have an identity contract already deployed that will be replaced. This function can only be called by a wallet set as agent of the smart contract","params":{"_identity":"The address of the user's new identity contract emits `IdentityUpdated` event","_userAddress":"The address of the user"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/registry/interface/IIdentityRegistry.sol":"IIdentityRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"}},"version":1},"id":80} \ No newline at end of file diff --git a/out/IIdentityRegistryStorage.sol/IIdentityRegistryStorage.json b/out/IIdentityRegistryStorage.sol/IIdentityRegistryStorage.json new file mode 100644 index 0000000..016c015 --- /dev/null +++ b/out/IIdentityRegistryStorage.sol/IIdentityRegistryStorage.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addIdentityToStorage","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_identity","type":"address","internalType":"contract IIdentity"},{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindIdentityRegistry","inputs":[{"name":"_identityRegistry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"linkedIdentityRegistries","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"modifyStoredIdentity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_identity","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"modifyStoredInvestorCountry","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeIdentityFromStorage","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"storedIdentity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract IIdentity"}],"stateMutability":"view"},{"type":"function","name":"storedInvestorCountry","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"unbindIdentityRegistry","inputs":[{"name":"_identityRegistry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"CountryModified","inputs":[{"name":"investorAddress","type":"address","indexed":true,"internalType":"address"},{"name":"country","type":"uint16","indexed":true,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"IdentityModified","inputs":[{"name":"oldIdentity","type":"address","indexed":true,"internalType":"contract IIdentity"},{"name":"newIdentity","type":"address","indexed":true,"internalType":"contract IIdentity"}],"anonymous":false},{"type":"event","name":"IdentityRegistryBound","inputs":[{"name":"identityRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"IdentityRegistryUnbound","inputs":[{"name":"identityRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"IdentityStored","inputs":[{"name":"investorAddress","type":"address","indexed":true,"internalType":"address"},{"name":"identity","type":"address","indexed":true,"internalType":"contract IIdentity"}],"anonymous":false},{"type":"event","name":"IdentityUnstored","inputs":[{"name":"investorAddress","type":"address","indexed":true,"internalType":"address"},{"name":"identity","type":"address","indexed":true,"internalType":"contract IIdentity"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addIdentityToStorage(address,address,uint16)":"a53410dd","bindIdentityRegistry(address)":"690a49f9","linkedIdentityRegistries()":"bf9eb959","modifyStoredIdentity(address,address)":"e805cf86","modifyStoredInvestorCountry(address,uint16)":"9f3418d5","removeIdentityFromStorage(address)":"cf191bcd","storedIdentity(address)":"7988d3a5","storedInvestorCountry(address)":"727e13bc","unbindIdentityRegistry(address)":"97a012f7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"country\",\"type\":\"uint16\"}],\"name\":\"CountryModified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IIdentity\",\"name\":\"oldIdentity\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IIdentity\",\"name\":\"newIdentity\",\"type\":\"address\"}],\"name\":\"IdentityModified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"identityRegistry\",\"type\":\"address\"}],\"name\":\"IdentityRegistryBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"identityRegistry\",\"type\":\"address\"}],\"name\":\"IdentityRegistryUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IIdentity\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"IdentityStored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IIdentity\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"IdentityUnstored\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_identity\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"addIdentityToStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identityRegistry\",\"type\":\"address\"}],\"name\":\"bindIdentityRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"linkedIdentityRegistries\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_identity\",\"type\":\"address\"}],\"name\":\"modifyStoredIdentity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"modifyStoredInvestorCountry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"removeIdentityFromStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"storedIdentity\",\"outputs\":[{\"internalType\":\"contract IIdentity\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"storedInvestorCountry\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identityRegistry\",\"type\":\"address\"}],\"name\":\"unbindIdentityRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addIdentityToStorage(address,address,uint16)\":{\"details\":\"adds an identity contract corresponding to a user address in the storage. Requires that the user doesn't have an identity contract already registered. This function can only be called by an address set as agent of the smart contract\",\"params\":{\"_country\":\"The country of the investor emits `IdentityStored` event\",\"_identity\":\"The address of the user's identity contract\",\"_userAddress\":\"The address of the user\"}},\"bindIdentityRegistry(address)\":{\"params\":{\"_identityRegistry\":\"The identity registry address to add.\"}},\"linkedIdentityRegistries()\":{\"details\":\"Returns the identity registries linked to the storage contract\"},\"modifyStoredIdentity(address,address)\":{\"details\":\"Updates an identity contract corresponding to a user address. Requires that the user address should be the owner of the identity contract. Requires that the user should have an identity contract already deployed that will be replaced. This function can only be called by an address set as agent of the smart contract\",\"params\":{\"_identity\":\"The address of the user's new identity contract emits `IdentityModified` event\",\"_userAddress\":\"The address of the user\"}},\"modifyStoredInvestorCountry(address,uint16)\":{\"details\":\"Updates the country corresponding to a user address. Requires that the user should have an identity contract already deployed that will be replaced. This function can only be called by an address set as agent of the smart contract\",\"params\":{\"_country\":\"The new country of the user emits `CountryModified` event\",\"_userAddress\":\"The address of the user\"}},\"removeIdentityFromStorage(address)\":{\"details\":\"Removes an user from the storage. Requires that the user have an identity contract already deployed that will be deleted. This function can only be called by an address set as agent of the smart contract\",\"params\":{\"_userAddress\":\"The address of the user to be removed emits `IdentityUnstored` event\"}},\"storedIdentity(address)\":{\"details\":\"Returns the onchainID of an investor.\",\"params\":{\"_userAddress\":\"The wallet of the investor\"}},\"storedInvestorCountry(address)\":{\"details\":\"Returns the country code of an investor.\",\"params\":{\"_userAddress\":\"The wallet of the investor\"}},\"unbindIdentityRegistry(address)\":{\"params\":{\"_identityRegistry\":\"The identity registry address to remove.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"CountryModified(address,uint16)\":{\"notice\":\"this event is emitted when an Identity's country has been updated the event is emitted by the 'updateCountry' function `investorAddress` is the address on which the country has been updated `country` is the numeric code (ISO 3166-1) of the new country\"},\"IdentityModified(address,address)\":{\"notice\":\"this event is emitted when an Identity has been updated the event is emitted by the 'updateIdentity' function `oldIdentity` is the old Identity contract's address to update `newIdentity` is the new Identity contract's\"},\"IdentityRegistryBound(address)\":{\"notice\":\"this event is emitted when an Identity Registry is bound to the storage contract the event is emitted by the 'addIdentityRegistry' function `identityRegistry` is the address of the identity registry added\"},\"IdentityRegistryUnbound(address)\":{\"notice\":\"this event is emitted when an Identity Registry is unbound from the storage contract the event is emitted by the 'removeIdentityRegistry' function `identityRegistry` is the address of the identity registry removed\"},\"IdentityStored(address,address)\":{\"notice\":\"this event is emitted when an Identity is registered into the storage contract. the event is emitted by the 'registerIdentity' function `investorAddress` is the address of the investor's wallet `identity` is the address of the Identity smart contract (onchainID)\"},\"IdentityUnstored(address,address)\":{\"notice\":\"this event is emitted when an Identity is removed from the storage contract. the event is emitted by the 'deleteIdentity' function `investorAddress` is the address of the investor's wallet `identity` is the address of the Identity smart contract (onchainID)\"}},\"kind\":\"user\",\"methods\":{\"bindIdentityRegistry(address)\":{\"notice\":\"Adds an identity registry as agent of the Identity Registry Storage Contract. This function can only be called by the wallet set as owner of the smart contract This function adds the identity registry to the list of identityRegistries linked to the storage contract cannot bind more than 300 IR to 1 IRS\"},\"unbindIdentityRegistry(address)\":{\"notice\":\"Removes an identity registry from being agent of the Identity Registry Storage Contract. This function can only be called by the wallet set as owner of the smart contract This function removes the identity registry from the list of identityRegistries linked to the storage contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":\"IIdentityRegistryStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"investorAddress","type":"address","indexed":true},{"internalType":"uint16","name":"country","type":"uint16","indexed":true}],"type":"event","name":"CountryModified","anonymous":false},{"inputs":[{"internalType":"contract IIdentity","name":"oldIdentity","type":"address","indexed":true},{"internalType":"contract IIdentity","name":"newIdentity","type":"address","indexed":true}],"type":"event","name":"IdentityModified","anonymous":false},{"inputs":[{"internalType":"address","name":"identityRegistry","type":"address","indexed":true}],"type":"event","name":"IdentityRegistryBound","anonymous":false},{"inputs":[{"internalType":"address","name":"identityRegistry","type":"address","indexed":true}],"type":"event","name":"IdentityRegistryUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"investorAddress","type":"address","indexed":true},{"internalType":"contract IIdentity","name":"identity","type":"address","indexed":true}],"type":"event","name":"IdentityStored","anonymous":false},{"inputs":[{"internalType":"address","name":"investorAddress","type":"address","indexed":true},{"internalType":"contract IIdentity","name":"identity","type":"address","indexed":true}],"type":"event","name":"IdentityUnstored","anonymous":false},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"contract IIdentity","name":"_identity","type":"address"},{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"addIdentityToStorage"},{"inputs":[{"internalType":"address","name":"_identityRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindIdentityRegistry"},{"inputs":[],"stateMutability":"view","type":"function","name":"linkedIdentityRegistries","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"contract IIdentity","name":"_identity","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"modifyStoredIdentity"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"modifyStoredInvestorCountry"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeIdentityFromStorage"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"storedIdentity","outputs":[{"internalType":"contract IIdentity","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"storedInvestorCountry","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"address","name":"_identityRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindIdentityRegistry"}],"devdoc":{"kind":"dev","methods":{"addIdentityToStorage(address,address,uint16)":{"details":"adds an identity contract corresponding to a user address in the storage. Requires that the user doesn't have an identity contract already registered. This function can only be called by an address set as agent of the smart contract","params":{"_country":"The country of the investor emits `IdentityStored` event","_identity":"The address of the user's identity contract","_userAddress":"The address of the user"}},"bindIdentityRegistry(address)":{"params":{"_identityRegistry":"The identity registry address to add."}},"linkedIdentityRegistries()":{"details":"Returns the identity registries linked to the storage contract"},"modifyStoredIdentity(address,address)":{"details":"Updates an identity contract corresponding to a user address. Requires that the user address should be the owner of the identity contract. Requires that the user should have an identity contract already deployed that will be replaced. This function can only be called by an address set as agent of the smart contract","params":{"_identity":"The address of the user's new identity contract emits `IdentityModified` event","_userAddress":"The address of the user"}},"modifyStoredInvestorCountry(address,uint16)":{"details":"Updates the country corresponding to a user address. Requires that the user should have an identity contract already deployed that will be replaced. This function can only be called by an address set as agent of the smart contract","params":{"_country":"The new country of the user emits `CountryModified` event","_userAddress":"The address of the user"}},"removeIdentityFromStorage(address)":{"details":"Removes an user from the storage. Requires that the user have an identity contract already deployed that will be deleted. This function can only be called by an address set as agent of the smart contract","params":{"_userAddress":"The address of the user to be removed emits `IdentityUnstored` event"}},"storedIdentity(address)":{"details":"Returns the onchainID of an investor.","params":{"_userAddress":"The wallet of the investor"}},"storedInvestorCountry(address)":{"details":"Returns the country code of an investor.","params":{"_userAddress":"The wallet of the investor"}},"unbindIdentityRegistry(address)":{"params":{"_identityRegistry":"The identity registry address to remove."}}},"version":1},"userdoc":{"kind":"user","methods":{"bindIdentityRegistry(address)":{"notice":"Adds an identity registry as agent of the Identity Registry Storage Contract. This function can only be called by the wallet set as owner of the smart contract This function adds the identity registry to the list of identityRegistries linked to the storage contract cannot bind more than 300 IR to 1 IRS"},"unbindIdentityRegistry(address)":{"notice":"Removes an identity registry from being agent of the Identity Registry Storage Contract. This function can only be called by the wallet set as owner of the smart contract This function removes the identity registry from the list of identityRegistries linked to the storage contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":"IIdentityRegistryStorage"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"}},"version":1},"id":81} \ No newline at end of file diff --git a/out/IImplementationAuthority.sol/IImplementationAuthority.json b/out/IImplementationAuthority.sol/IImplementationAuthority.json new file mode 100644 index 0000000..44c7676 --- /dev/null +++ b/out/IImplementationAuthority.sol/IImplementationAuthority.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"getImplementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"updateImplementation","inputs":[{"name":"_newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"UpdatedImplementation","inputs":[{"name":"newAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getImplementation()":"aaf10f42","updateImplementation(address)":"025b22bc"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"UpdatedImplementation\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newImplementation\",\"type\":\"address\"}],\"name\":\"updateImplementation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getImplementation()\":{\"details\":\"returns the address of the implementation\"},\"updateImplementation(address)\":{\"details\":\"updates the address used as implementation by the proxies linked to this ImplementationAuthority contract\",\"params\":{\"_newImplementation\":\"the address of the new implementation contract only Owner can call\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onchainid/interface/IImplementationAuthority.sol\":\"IImplementationAuthority\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/onchainid/interface/IImplementationAuthority.sol\":{\"keccak256\":\"0xa46065896246e1a610410ae59828978d8cd6d04527b636e1e7399217941bcf09\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f8c493c0291774cf2da1f84e928c8999c36f7640e6fef82621cd990564a7dd80\",\"dweb:/ipfs/QmPxDk18X86b8FKG91ABkrrkX6fJa2Z8S4jjXDniQ2jvwa\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"newAddress","type":"address","indexed":false}],"type":"event","name":"UpdatedImplementation","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"getImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateImplementation"}],"devdoc":{"kind":"dev","methods":{"getImplementation()":{"details":"returns the address of the implementation"},"updateImplementation(address)":{"details":"updates the address used as implementation by the proxies linked to this ImplementationAuthority contract","params":{"_newImplementation":"the address of the new implementation contract only Owner can call"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onchainid/interface/IImplementationAuthority.sol":"IImplementationAuthority"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onchainid/interface/IImplementationAuthority.sol":{"keccak256":"0xa46065896246e1a610410ae59828978d8cd6d04527b636e1e7399217941bcf09","urls":["bzz-raw://f8c493c0291774cf2da1f84e928c8999c36f7640e6fef82621cd990564a7dd80","dweb:/ipfs/QmPxDk18X86b8FKG91ABkrrkX6fJa2Z8S4jjXDniQ2jvwa"],"license":"GPL-3.0"}},"version":1},"id":123} \ No newline at end of file diff --git a/out/IModularCompliance.sol/IModularCompliance.json b/out/IModularCompliance.sol/IModularCompliance.json new file mode 100644 index 0000000..3803bbc --- /dev/null +++ b/out/IModularCompliance.sol/IModularCompliance.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addModule","inputs":[{"name":"_module","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callModuleFunction","inputs":[{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"_module","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getModules","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getTokenBound","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isModuleBound","inputs":[{"name":"_module","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeModule","inputs":[{"name":"_module","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ModuleAdded","inputs":[{"name":"_module","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ModuleInteraction","inputs":[{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"selector","type":"bytes4","indexed":false,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"ModuleRemoved","inputs":[{"name":"_module","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addModule(address)":"1ed86f19","bindToken(address)":"3ff5aa02","callModuleFunction(bytes,address)":"efb22d33","canTransfer(address,address,uint256)":"e46638e6","created(address,uint256)":"5f8dead3","destroyed(address,uint256)":"8d2ea772","getModules()":"b2494df3","getTokenBound()":"6a3edf28","isModuleBound(address)":"a446d49f","removeModule(address)":"a0632461","transferred(address,address,uint256)":"8baf29b4","unbindToken(address)":"40db3b50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_module\",\"type\":\"address\"}],\"name\":\"ModuleAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"ModuleInteraction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_module\",\"type\":\"address\"}],\"name\":\"ModuleRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_module\",\"type\":\"address\"}],\"name\":\"addModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_module\",\"type\":\"address\"}],\"name\":\"callModuleFunction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getModules\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenBound\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_module\",\"type\":\"address\"}],\"name\":\"isModuleBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_module\",\"type\":\"address\"}],\"name\":\"removeModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ModuleInteraction(address,bytes4)\":{\"details\":\"Event emitted for each executed interaction with a module contract. For gas efficiency, only the interaction calldata selector (first 4 bytes) is included in the event. For interactions without calldata or whose calldata is shorter than 4 bytes, the selector will be `0`.\"}},\"kind\":\"dev\",\"methods\":{\"addModule(address)\":{\"details\":\"adds a module to the list of compliance modules\",\"params\":{\"_module\":\"address of the module to add there cannot be more than 25 modules bound to the modular compliance for gas cost reasons This function can be called ONLY by the owner of the compliance contract Emits a ModuleAdded event\"}},\"bindToken(address)\":{\"details\":\"binds a token to the compliance contract\",\"params\":{\"_token\":\"address of the token to bind This function can be called ONLY by the owner of the compliance contract Emits a TokenBound event\"}},\"callModuleFunction(bytes,address)\":{\"details\":\"calls any function on bound modules can be called only on bound modules\",\"params\":{\"_module\":\"The address of the module This function can be called only by the modular compliance owner emits a `ModuleInteraction` event\",\"callData\":\"the bytecode for interaction with the module, abi encoded\"}},\"canTransfer(address,address,uint256)\":{\"details\":\"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer This function will call moduleCheck() on every module bound to the compliance If each of the module checks return TRUE, this function will return TRUE as well returns FALSE otherwise\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"created(address,uint256)\":{\"details\":\"function called whenever tokens are created on a wallet this function can update state variables in the modules bound to the compliance these state variables being used by the module checks to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the modules This function can be called ONLY by the token contract bound to the compliance\",\"params\":{\"_amount\":\"The amount of tokens involved in the minting This function calls moduleMintAction() on each module bound to the compliance contract\",\"_to\":\"The address of the receiver\"}},\"destroyed(address,uint256)\":{\"details\":\"function called whenever tokens are destroyed from a wallet this function can update state variables in the modules bound to the compliance these state variables being used by the module checks to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the modules This function can be called ONLY by the token contract bound to the compliance\",\"params\":{\"_amount\":\"The amount of tokens involved in the burn This function calls moduleBurnAction() on each module bound to the compliance contract\",\"_from\":\"The address on which tokens are burnt\"}},\"getModules()\":{\"details\":\"getter for the modules bound to the compliance contract returns address array of module contracts bound to the compliance\"},\"getTokenBound()\":{\"details\":\"getter for the address of the token bound returns the address of the token\"},\"isModuleBound(address)\":{\"details\":\"checks if a module is bound to the compliance contract returns true if module is bound, false otherwise\"},\"removeModule(address)\":{\"details\":\"removes a module from the list of compliance modules\",\"params\":{\"_module\":\"address of the module to remove This function can be called ONLY by the owner of the compliance contract Emits a ModuleRemoved event\"}},\"transferred(address,address,uint256)\":{\"details\":\"function called whenever tokens are transferred from one wallet to another this function can update state variables in the modules bound to the compliance these state variables being used by the module checks to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the modules This function can be called ONLY by the token contract bound to the compliance\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer This function calls moduleTransferAction() on each module bound to the compliance contract\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"unbindToken(address)\":{\"details\":\"unbinds a token from the compliance contract\",\"params\":{\"_token\":\"address of the token to unbind This function can be called ONLY by the owner of the compliance contract Emits a TokenUnbound event\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ModuleAdded(address)\":{\"notice\":\"this event is emitted when a module has been added to the list of modules bound to the compliance contract the event is emitted by the addModule function `_module` is the address of the compliance module\"},\"ModuleRemoved(address)\":{\"notice\":\"this event is emitted when a module has been removed from the list of modules bound to the compliance contract the event is emitted by the removeModule function `_module` is the address of the compliance module\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":\"IModularCompliance\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_module","type":"address","indexed":true}],"type":"event","name":"ModuleAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"bytes4","name":"selector","type":"bytes4","indexed":false}],"type":"event","name":"ModuleInteraction","anonymous":false},{"inputs":[{"internalType":"address","name":"_module","type":"address","indexed":true}],"type":"event","name":"ModuleRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_module","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addModule"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"address","name":"_module","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callModuleFunction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[],"stateMutability":"view","type":"function","name":"getModules","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTokenBound","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_module","type":"address"}],"stateMutability":"view","type":"function","name":"isModuleBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_module","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeModule"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"}],"devdoc":{"kind":"dev","methods":{"addModule(address)":{"details":"adds a module to the list of compliance modules","params":{"_module":"address of the module to add there cannot be more than 25 modules bound to the modular compliance for gas cost reasons This function can be called ONLY by the owner of the compliance contract Emits a ModuleAdded event"}},"bindToken(address)":{"details":"binds a token to the compliance contract","params":{"_token":"address of the token to bind This function can be called ONLY by the owner of the compliance contract Emits a TokenBound event"}},"callModuleFunction(bytes,address)":{"details":"calls any function on bound modules can be called only on bound modules","params":{"_module":"The address of the module This function can be called only by the modular compliance owner emits a `ModuleInteraction` event","callData":"the bytecode for interaction with the module, abi encoded"}},"canTransfer(address,address,uint256)":{"details":"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...","params":{"_amount":"The amount of tokens involved in the transfer This function will call moduleCheck() on every module bound to the compliance If each of the module checks return TRUE, this function will return TRUE as well returns FALSE otherwise","_from":"The address of the sender","_to":"The address of the receiver"}},"created(address,uint256)":{"details":"function called whenever tokens are created on a wallet this function can update state variables in the modules bound to the compliance these state variables being used by the module checks to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the modules This function can be called ONLY by the token contract bound to the compliance","params":{"_amount":"The amount of tokens involved in the minting This function calls moduleMintAction() on each module bound to the compliance contract","_to":"The address of the receiver"}},"destroyed(address,uint256)":{"details":"function called whenever tokens are destroyed from a wallet this function can update state variables in the modules bound to the compliance these state variables being used by the module checks to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the modules This function can be called ONLY by the token contract bound to the compliance","params":{"_amount":"The amount of tokens involved in the burn This function calls moduleBurnAction() on each module bound to the compliance contract","_from":"The address on which tokens are burnt"}},"getModules()":{"details":"getter for the modules bound to the compliance contract returns address array of module contracts bound to the compliance"},"getTokenBound()":{"details":"getter for the address of the token bound returns the address of the token"},"isModuleBound(address)":{"details":"checks if a module is bound to the compliance contract returns true if module is bound, false otherwise"},"removeModule(address)":{"details":"removes a module from the list of compliance modules","params":{"_module":"address of the module to remove This function can be called ONLY by the owner of the compliance contract Emits a ModuleRemoved event"}},"transferred(address,address,uint256)":{"details":"function called whenever tokens are transferred from one wallet to another this function can update state variables in the modules bound to the compliance these state variables being used by the module checks to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the modules This function can be called ONLY by the token contract bound to the compliance","params":{"_amount":"The amount of tokens involved in the transfer This function calls moduleTransferAction() on each module bound to the compliance contract","_from":"The address of the sender","_to":"The address of the receiver"}},"unbindToken(address)":{"details":"unbinds a token from the compliance contract","params":{"_token":"address of the token to unbind This function can be called ONLY by the owner of the compliance contract Emits a TokenUnbound event"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":"IModularCompliance"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"}},"version":1},"id":41} \ No newline at end of file diff --git a/out/IModule.sol/IModule.json b/out/IModule.sol/IModule.json new file mode 100644 index 0000000..d34914b --- /dev/null +++ b/out/IModule.sol/IModule.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"bindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canComplianceBind","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComplianceBound","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPlugAndPlay","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"moduleBurnAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleCheck","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleMintAction","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleTransferAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"unbindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComplianceBound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ComplianceUnbound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"bindCompliance(address)":"4a932544","canComplianceBind(address)":"bcc21053","isComplianceBound(address)":"4cf4d295","isPlugAndPlay()":"e6f5e807","moduleBurnAction(address,uint256)":"372491a2","moduleCheck(address,address,uint256,address)":"013b7ce4","moduleMintAction(address,uint256)":"f104a8c9","moduleTransferAction(address,address,uint256)":"2cb7e1ec","name()":"06fdde03","unbindCompliance(address)":"0694a5fb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceUnbound\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"bindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"canComplianceBind\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"isComplianceBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPlugAndPlay\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleBurnAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"moduleCheck\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleMintAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleTransferAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"unbindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"bindCompliance(address)\":{\"details\":\"binds the module to a compliance contract once the module is bound, the compliance contract can interact with the module this function can be called ONLY by the compliance contract itself (_compliance), through the addModule function, which calls bindCompliance the module cannot be already bound to the compliance\",\"params\":{\"_compliance\":\"address of the compliance contract Emits a ComplianceBound event\"}},\"canComplianceBind(address)\":{\"details\":\"checks whether compliance is suitable to bind to the module.\",\"params\":{\"_compliance\":\"address of the compliance contract\"}},\"isComplianceBound(address)\":{\"details\":\"getter for compliance binding status on module\",\"params\":{\"_compliance\":\"address of the compliance contract\"}},\"isPlugAndPlay()\":{\"details\":\"getter for module plug & play status\"},\"moduleBurnAction(address,uint256)\":{\"details\":\"action performed on the module during a burn action this function is used to update variables of the module upon burning if it is required if the module does not require state updates in case of burn, this function remains empty This function can be called ONLY by the compliance contract itself (_compliance) This function can be called only on a compliance contract that is bound to the module\",\"params\":{\"_from\":\"address on which tokens are burnt\",\"_value\":\"amount of tokens burnt\"}},\"moduleCheck(address,address,uint256,address)\":{\"details\":\"compliance check on the module for a specific transaction on a specific compliance contract this function is used to check if the transfer is allowed by the module This function can be called only on a compliance contract that is bound to the module\",\"params\":{\"_compliance\":\"address of the compliance contract concerned by the transfer action the function returns TRUE if the module allows the transfer, FALSE otherwise\",\"_from\":\"address of the transfer sender\",\"_to\":\"address of the transfer receiver\",\"_value\":\"amount of tokens sent\"}},\"moduleMintAction(address,uint256)\":{\"details\":\"action performed on the module during a mint action this function is used to update variables of the module upon minting if it is required if the module does not require state updates in case of mint, this function remains empty This function can be called ONLY by the compliance contract itself (_compliance) This function can be called only on a compliance contract that is bound to the module\",\"params\":{\"_to\":\"address used for minting\",\"_value\":\"amount of tokens minted\"}},\"moduleTransferAction(address,address,uint256)\":{\"details\":\"action performed on the module during a transfer action this function is used to update variables of the module upon transfer if it is required if the module does not require state updates in case of transfer, this function remains empty This function can be called ONLY by the compliance contract itself (_compliance) This function can be called only on a compliance contract that is bound to the module\",\"params\":{\"_from\":\"address of the transfer sender\",\"_to\":\"address of the transfer receiver\",\"_value\":\"amount of tokens sent\"}},\"name()\":{\"details\":\"getter for the name of the module\",\"returns\":{\"_name\":\"the name of the module\"}},\"unbindCompliance(address)\":{\"details\":\"unbinds the module from a compliance contract once the module is unbound, the compliance contract cannot interact with the module anymore this function can be called ONLY by the compliance contract itself (_compliance), through the removeModule function, which calls unbindCompliance\",\"params\":{\"_compliance\":\"address of the compliance contract Emits a ComplianceUnbound event\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ComplianceBound(address)\":{\"notice\":\"this event is emitted when the compliance contract is bound to the module. the event is emitted by the bindCompliance function `_compliance` is the address of the compliance contract being bound\"},\"ComplianceUnbound(address)\":{\"notice\":\"this event is emitted when the compliance contract is unbound from the module. the event is emitted by the unbindCompliance function `_compliance` is the address of the compliance contract being unbound\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/modular/modules/IModule.sol\":\"IModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/modules/IModule.sol\":{\"keccak256\":\"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c\",\"dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindCompliance"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"canComplianceBind","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPlugAndPlay","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleBurnAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"moduleCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleMintAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleTransferAction"},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindCompliance"}],"devdoc":{"kind":"dev","methods":{"bindCompliance(address)":{"details":"binds the module to a compliance contract once the module is bound, the compliance contract can interact with the module this function can be called ONLY by the compliance contract itself (_compliance), through the addModule function, which calls bindCompliance the module cannot be already bound to the compliance","params":{"_compliance":"address of the compliance contract Emits a ComplianceBound event"}},"canComplianceBind(address)":{"details":"checks whether compliance is suitable to bind to the module.","params":{"_compliance":"address of the compliance contract"}},"isComplianceBound(address)":{"details":"getter for compliance binding status on module","params":{"_compliance":"address of the compliance contract"}},"isPlugAndPlay()":{"details":"getter for module plug & play status"},"moduleBurnAction(address,uint256)":{"details":"action performed on the module during a burn action this function is used to update variables of the module upon burning if it is required if the module does not require state updates in case of burn, this function remains empty This function can be called ONLY by the compliance contract itself (_compliance) This function can be called only on a compliance contract that is bound to the module","params":{"_from":"address on which tokens are burnt","_value":"amount of tokens burnt"}},"moduleCheck(address,address,uint256,address)":{"details":"compliance check on the module for a specific transaction on a specific compliance contract this function is used to check if the transfer is allowed by the module This function can be called only on a compliance contract that is bound to the module","params":{"_compliance":"address of the compliance contract concerned by the transfer action the function returns TRUE if the module allows the transfer, FALSE otherwise","_from":"address of the transfer sender","_to":"address of the transfer receiver","_value":"amount of tokens sent"}},"moduleMintAction(address,uint256)":{"details":"action performed on the module during a mint action this function is used to update variables of the module upon minting if it is required if the module does not require state updates in case of mint, this function remains empty This function can be called ONLY by the compliance contract itself (_compliance) This function can be called only on a compliance contract that is bound to the module","params":{"_to":"address used for minting","_value":"amount of tokens minted"}},"moduleTransferAction(address,address,uint256)":{"details":"action performed on the module during a transfer action this function is used to update variables of the module upon transfer if it is required if the module does not require state updates in case of transfer, this function remains empty This function can be called ONLY by the compliance contract itself (_compliance) This function can be called only on a compliance contract that is bound to the module","params":{"_from":"address of the transfer sender","_to":"address of the transfer receiver","_value":"amount of tokens sent"}},"name()":{"details":"getter for the name of the module","returns":{"_name":"the name of the module"}},"unbindCompliance(address)":{"details":"unbinds the module from a compliance contract once the module is unbound, the compliance contract cannot interact with the module anymore this function can be called ONLY by the compliance contract itself (_compliance), through the removeModule function, which calls unbindCompliance","params":{"_compliance":"address of the compliance contract Emits a ComplianceUnbound event"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/modular/modules/IModule.sol":"IModule"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/modules/IModule.sol":{"keccak256":"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02","urls":["bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c","dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk"],"license":"GPL-3.0"}},"version":1},"id":49} \ No newline at end of file diff --git a/out/IMulticall3.sol/IMulticall3.json b/out/IMulticall3.sol/IMulticall3.json new file mode 100644 index 0000000..00814b7 --- /dev/null +++ b/out/IMulticall3.sol/IMulticall3.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"aggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"returnData","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"payable"},{"type":"function","name":"aggregate3","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"aggregate3Value","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3Value[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"blockAndAggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"getBasefee","inputs":[],"outputs":[{"name":"basefee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockHash","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainId","inputs":[],"outputs":[{"name":"chainid","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockCoinbase","inputs":[],"outputs":[{"name":"coinbase","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockDifficulty","inputs":[],"outputs":[{"name":"difficulty","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockGasLimit","inputs":[],"outputs":[{"name":"gaslimit","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEthBalance","inputs":[{"name":"addr","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLastBlockHash","inputs":[],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"tryAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"tryBlockAndAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockDifficulty()":"72425d9d","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getLastBlockHash()":"27e86d6e","tryAggregate(bool,(address,bytes)[])":"bce38bd7","tryBlockAndAggregate(bool,(address,bytes)[])":"399542e9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"returnData\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3Value[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3Value\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"blockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBasefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"basefee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainid\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockCoinbase\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"coinbase\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockDifficulty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"difficulty\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gaslimit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getEthBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryAggregate\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryBlockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IMulticall3.sol\":\"IMulticall3\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}]},{"inputs":[{"internalType":"struct IMulticall3.Call3[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call3Value[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3Value","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"blockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBasefee","outputs":[{"internalType":"uint256","name":"basefee","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainId","outputs":[{"internalType":"uint256","name":"chainid","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockCoinbase","outputs":[{"internalType":"address","name":"coinbase","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockDifficulty","outputs":[{"internalType":"uint256","name":"difficulty","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockGasLimit","outputs":[{"internalType":"uint256","name":"gaslimit","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"view","type":"function","name":"getEthBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryAggregate","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryBlockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IMulticall3.sol":"IMulticall3"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"}},"version":1},"id":15} \ No newline at end of file diff --git a/out/IOwnable.sol/IOwnable.json b/out/IOwnable.sol/IOwnable.json new file mode 100644 index 0000000..05e0769 --- /dev/null +++ b/out/IOwnable.sol/IOwnable.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"transferOwnership(address)\":{\"params\":{\"newOwner\":\"The address of a new owner.\"}}},\"title\":\"Ownable\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"transferOwnership(address)\":{\"notice\":\"Transfers ownership of a contract to a new owner.\"}},\"notice\":\"The interface helps to transfer the contract ownership after deployments from the Vault Factory.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc4626/factory/IOwnable.sol\":\"IOwnable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc4626/factory/IOwnable.sol\":{\"keccak256\":\"0x2c53b9e793371e79122b6f0113e623c0c910ad687f0627d3c9a44076cbc7e845\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b323ced23d527f19241fa7a33f83138a808acbf10ace0e2a3fdf555d08a72b8\",\"dweb:/ipfs/QmRT7JM2PHFoLwo7JhQzp79VWujpQE2VRmbgAtcF5XtRuG\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"transferOwnership(address)":{"params":{"newOwner":"The address of a new owner."}}},"version":1},"userdoc":{"kind":"user","methods":{"transferOwnership(address)":{"notice":"Transfers ownership of a contract to a new owner."}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc4626/factory/IOwnable.sol":"IOwnable"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc4626/factory/IOwnable.sol":{"keccak256":"0x2c53b9e793371e79122b6f0113e623c0c910ad687f0627d3c9a44076cbc7e845","urls":["bzz-raw://2b323ced23d527f19241fa7a33f83138a808acbf10ace0e2a3fdf555d08a72b8","dweb:/ipfs/QmRT7JM2PHFoLwo7JhQzp79VWujpQE2VRmbgAtcF5XtRuG"],"license":"MIT"}},"version":1},"id":104} \ No newline at end of file diff --git a/out/IProxy.sol/IProxy.json b/out/IProxy.sol/IProxy.json new file mode 100644 index 0000000..3138283 --- /dev/null +++ b/out/IProxy.sol/IProxy.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"getImplementationAuthority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setImplementationAuthority","inputs":[{"name":"_newImplementationAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ImplementationAuthoritySet","inputs":[{"name":"_implementationAuthority","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getImplementationAuthority()":"2d5f1187","setImplementationAuthority(address)":"92dd9d65"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_implementationAuthority\",\"type\":\"address\"}],\"name\":\"ImplementationAuthoritySet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getImplementationAuthority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newImplementationAuthority\",\"type\":\"address\"}],\"name\":\"setImplementationAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"events\":{\"ImplementationAuthoritySet(address)\":{\"notice\":\"events\"}},\"kind\":\"user\",\"methods\":{\"setImplementationAuthority(address)\":{\"notice\":\"functions\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/proxy/interface/IProxy.sol\":\"IProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/proxy/interface/IProxy.sol\":{\"keccak256\":\"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65\",\"dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_implementationAuthority","type":"address","indexed":true}],"type":"event","name":"ImplementationAuthoritySet","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"getImplementationAuthority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_newImplementationAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setImplementationAuthority"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"setImplementationAuthority(address)":{"notice":"functions"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/proxy/interface/IProxy.sol":"IProxy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/proxy/interface/IProxy.sol":{"keccak256":"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536","urls":["bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65","dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ"],"license":"GPL-3.0"}},"version":1},"id":74} \ No newline at end of file diff --git a/out/IPyth.sol/IPyth.json b/out/IPyth.sol/IPyth.json new file mode 100644 index 0000000..155eb2a --- /dev/null +++ b/out/IPyth.sol/IPyth.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"getEmaPrice","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"price","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getEmaPriceNoOlderThan","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"age","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"price","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getEmaPriceUnsafe","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"price","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getPrice","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"price","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getPriceNoOlderThan","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"age","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"price","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getPriceUnsafe","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"price","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getUpdateFee","inputs":[{"name":"updateData","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"feeAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getValidTimePeriod","inputs":[],"outputs":[{"name":"validTimePeriod","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"parsePriceFeedUpdates","inputs":[{"name":"updateData","type":"bytes[]","internalType":"bytes[]"},{"name":"priceIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"minPublishTime","type":"uint64","internalType":"uint64"},{"name":"maxPublishTime","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"priceFeeds","type":"tuple[]","internalType":"struct PythStructs.PriceFeed[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"price","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]},{"name":"emaPrice","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"parsePriceFeedUpdatesUnique","inputs":[{"name":"updateData","type":"bytes[]","internalType":"bytes[]"},{"name":"priceIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"minPublishTime","type":"uint64","internalType":"uint64"},{"name":"maxPublishTime","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"priceFeeds","type":"tuple[]","internalType":"struct PythStructs.PriceFeed[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"price","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]},{"name":"emaPrice","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"updatePriceFeeds","inputs":[{"name":"updateData","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"updatePriceFeedsIfNecessary","inputs":[{"name":"updateData","type":"bytes[]","internalType":"bytes[]"},{"name":"priceIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"publishTimes","type":"uint64[]","internalType":"uint64[]"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"PriceFeedUpdate","inputs":[{"name":"id","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"publishTime","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"price","type":"int64","indexed":false,"internalType":"int64"},{"name":"conf","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getEmaPrice(bytes32)":"b5dcc911","getEmaPriceNoOlderThan(bytes32,uint256)":"711a2e28","getEmaPriceUnsafe(bytes32)":"9474f45b","getPrice(bytes32)":"31d98b3f","getPriceNoOlderThan(bytes32,uint256)":"a4ae35e0","getPriceUnsafe(bytes32)":"96834ad3","getUpdateFee(bytes[])":"d47eed45","getValidTimePeriod()":"e18910a3","parsePriceFeedUpdates(bytes[],bytes32[],uint64,uint64)":"4716e9c5","parsePriceFeedUpdatesUnique(bytes[],bytes32[],uint64,uint64)":"accca7f9","updatePriceFeeds(bytes[])":"ef9e5e28","updatePriceFeedsIfNecessary(bytes[],bytes32[],uint64[])":"b9256d28"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"publishTime\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"}],\"name\":\"PriceFeedUpdate\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getEmaPrice\",\"outputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"price\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"name\":\"getEmaPriceNoOlderThan\",\"outputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"price\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getEmaPriceUnsafe\",\"outputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"price\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getPrice\",\"outputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"price\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"name\":\"getPriceNoOlderThan\",\"outputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"price\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getPriceUnsafe\",\"outputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"price\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"updateData\",\"type\":\"bytes[]\"}],\"name\":\"getUpdateFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValidTimePeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validTimePeriod\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"updateData\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"priceIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint64\",\"name\":\"minPublishTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxPublishTime\",\"type\":\"uint64\"}],\"name\":\"parsePriceFeedUpdates\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"price\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"emaPrice\",\"type\":\"tuple\"}],\"internalType\":\"struct PythStructs.PriceFeed[]\",\"name\":\"priceFeeds\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"updateData\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"priceIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint64\",\"name\":\"minPublishTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxPublishTime\",\"type\":\"uint64\"}],\"name\":\"parsePriceFeedUpdatesUnique\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"price\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"emaPrice\",\"type\":\"tuple\"}],\"internalType\":\"struct PythStructs.PriceFeed[]\",\"name\":\"priceFeeds\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"updateData\",\"type\":\"bytes[]\"}],\"name\":\"updatePriceFeeds\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"updateData\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"priceIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint64[]\",\"name\":\"publishTimes\",\"type\":\"uint64[]\"}],\"name\":\"updatePriceFeedsIfNecessary\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Pyth Data Association\",\"details\":\"Please refer to the guidance at https://docs.pyth.network/documentation/pythnet-price-feeds/best-practices for how to consume prices safely.\",\"events\":{\"PriceFeedUpdate(bytes32,uint64,int64,uint64)\":{\"details\":\"Emitted when the price feed with `id` has received a fresh update.\",\"params\":{\"conf\":\"Confidence interval of the given price update.\",\"id\":\"The Pyth Price Feed ID.\",\"price\":\"Price of the given price update.\",\"publishTime\":\"Publish time of the given price update.\"}}},\"kind\":\"dev\",\"methods\":{\"getEmaPrice(bytes32)\":{\"details\":\"Reverts if the EMA price is not available.\",\"params\":{\"id\":\"The Pyth Price Feed ID of which to fetch the EMA price and confidence interval.\"},\"returns\":{\"price\":\"- please read the documentation of PythStructs.Price to understand how to use this safely.\"}},\"getEmaPriceNoOlderThan(bytes32,uint256)\":{\"details\":\"This function is a sanity-checked version of `getEmaPriceUnsafe` which is useful in applications that require a sufficiently-recent price. Reverts if the price wasn't updated sufficiently recently.\",\"returns\":{\"price\":\"- please read the documentation of PythStructs.Price to understand how to use this safely.\"}},\"getEmaPriceUnsafe(bytes32)\":{\"details\":\"This function returns the same price as `getEmaPrice` in the case where the price is available. However, if the price is not recent this function returns the latest available price. The returned price can be from arbitrarily far in the past; this function makes no guarantees that the returned price is recent or useful for any particular application. Users of this function should check the `publishTime` in the price to ensure that the returned price is sufficiently recent for their application. If you are considering using this function, it may be safer / easier to use either `getEmaPrice` or `getEmaPriceNoOlderThan`.\",\"returns\":{\"price\":\"- please read the documentation of PythStructs.Price to understand how to use this safely.\"}},\"getPrice(bytes32)\":{\"details\":\"Reverts if the price has not been updated within the last `getValidTimePeriod()` seconds.\",\"params\":{\"id\":\"The Pyth Price Feed ID of which to fetch the price and confidence interval.\"},\"returns\":{\"price\":\"- please read the documentation of PythStructs.Price to understand how to use this safely.\"}},\"getPriceNoOlderThan(bytes32,uint256)\":{\"details\":\"This function is a sanity-checked version of `getPriceUnsafe` which is useful in applications that require a sufficiently-recent price. Reverts if the price wasn't updated sufficiently recently.\",\"returns\":{\"price\":\"- please read the documentation of PythStructs.Price to understand how to use this safely.\"}},\"getPriceUnsafe(bytes32)\":{\"details\":\"This function returns the most recent price update in this contract without any recency checks. This function is unsafe as the returned price update may be arbitrarily far in the past. Users of this function should check the `publishTime` in the price to ensure that the returned price is sufficiently recent for their application. If you are considering using this function, it may be safer / easier to use either `getPrice` or `getPriceNoOlderThan`.\",\"returns\":{\"price\":\"- please read the documentation of PythStructs.Price to understand how to use this safely.\"}},\"getUpdateFee(bytes[])\":{\"params\":{\"updateData\":\"Array of price update data.\"},\"returns\":{\"feeAmount\":\"The required fee in Wei.\"}},\"parsePriceFeedUpdates(bytes[],bytes32[],uint64,uint64)\":{\"details\":\"Reverts if the transferred fee is not sufficient or the updateData is invalid or there is no update for any of the given `priceIds` within the given time range.\",\"params\":{\"maxPublishTime\":\"maximum acceptable publishTime for the given `priceIds`.\",\"minPublishTime\":\"minimum acceptable publishTime for the given `priceIds`.\",\"priceIds\":\"Array of price ids.\",\"updateData\":\"Array of price update data.\"},\"returns\":{\"priceFeeds\":\"Array of the price feeds corresponding to the given `priceIds` (with the same order).\"}},\"parsePriceFeedUpdatesUnique(bytes[],bytes32[],uint64,uint64)\":{\"details\":\"Reverts if the transferred fee is not sufficient or the updateData is invalid or there is no update for any of the given `priceIds` within the given time range and uniqueness condition.\",\"params\":{\"maxPublishTime\":\"maximum acceptable publishTime for the given `priceIds`.\",\"minPublishTime\":\"minimum acceptable publishTime for the given `priceIds`.\",\"priceIds\":\"Array of price ids.\",\"updateData\":\"Array of price update data.\"},\"returns\":{\"priceFeeds\":\"Array of the price feeds corresponding to the given `priceIds` (with the same order).\"}},\"updatePriceFeeds(bytes[])\":{\"details\":\"Reverts if the transferred fee is not sufficient or the updateData is invalid.\",\"params\":{\"updateData\":\"Array of price update data.\"}},\"updatePriceFeedsIfNecessary(bytes[],bytes32[],uint64[])\":{\"details\":\"Reverts if update is not needed or the transferred fee is not sufficient or the updateData is invalid.\",\"params\":{\"priceIds\":\"Array of price ids.\",\"publishTimes\":\"Array of publishTimes. `publishTimes[i]` corresponds to known `publishTime` of `priceIds[i]`\",\"updateData\":\"Array of price update data.\"}}},\"title\":\"Consume prices from the Pyth Network (https://pyth.network/).\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getEmaPrice(bytes32)\":{\"notice\":\"Returns the exponentially-weighted moving average price and confidence interval.\"},\"getEmaPriceNoOlderThan(bytes32,uint256)\":{\"notice\":\"Returns the exponentially-weighted moving average price that is no older than `age` seconds of the current time.\"},\"getEmaPriceUnsafe(bytes32)\":{\"notice\":\"Returns the exponentially-weighted moving average price of a price feed without any sanity checks.\"},\"getPrice(bytes32)\":{\"notice\":\"Returns the price and confidence interval.\"},\"getPriceNoOlderThan(bytes32,uint256)\":{\"notice\":\"Returns the price that is no older than `age` seconds of the current time.\"},\"getPriceUnsafe(bytes32)\":{\"notice\":\"Returns the price of a price feed without any sanity checks.\"},\"getUpdateFee(bytes[])\":{\"notice\":\"Returns the required fee to update an array of price updates.\"},\"getValidTimePeriod()\":{\"notice\":\"Returns the period (in seconds) that a price feed is considered valid since its publish time\"},\"parsePriceFeedUpdates(bytes[],bytes32[],uint64,uint64)\":{\"notice\":\"Parse `updateData` and return price feeds of the given `priceIds` if they are all published within `minPublishTime` and `maxPublishTime`. You can use this method if you want to use a Pyth price at a fixed time and not the most recent price; otherwise, please consider using `updatePriceFeeds`. This method may store the price updates on-chain, if they are more recent than the current stored prices. This method requires the caller to pay a fee in wei; the required fee can be computed by calling `getUpdateFee` with the length of the `updateData` array.\"},\"parsePriceFeedUpdatesUnique(bytes[],bytes32[],uint64,uint64)\":{\"notice\":\"Similar to `parsePriceFeedUpdates` but ensures the updates returned are the first updates published in minPublishTime. That is, if there are multiple updates for a given timestamp, this method will return the first update. This method may store the price updates on-chain, if they are more recent than the current stored prices.\"},\"updatePriceFeeds(bytes[])\":{\"notice\":\"Update price feeds with given update messages. This method requires the caller to pay a fee in wei; the required fee can be computed by calling `getUpdateFee` with the length of the `updateData` array. Prices will be updated if they are more recent than the current stored prices. The call will succeed even if the update is not the most recent.\"},\"updatePriceFeedsIfNecessary(bytes[],bytes32[],uint64[])\":{\"notice\":\"Wrapper around updatePriceFeeds that rejects fast if a price update is not necessary. A price update is necessary if the current on-chain publishTime is older than the given publishTime. It relies solely on the given `publishTimes` for the price feeds and does not read the actual price update publish time within `updateData`. This method requires the caller to pay a fee in wei; the required fee can be computed by calling `getUpdateFee` with the length of the `updateData` array. `priceIds` and `publishTimes` are two arrays with the same size that correspond to senders known publishTime of each priceId when calling this method. If all of price feeds within `priceIds` have updated and have a newer or equal publish time than the given publish time, it will reject the transaction to save gas. Otherwise, it calls updatePriceFeeds method to update the prices.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@pythnetwork/pyth-sdk-solidity/IPyth.sol\":\"IPyth\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@pythnetwork/pyth-sdk-solidity/IPyth.sol\":{\"keccak256\":\"0xe06dbd61ccf409fffc0a2449eb8bb6c2d245609698c3c6eddad7cd0f3822d215\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://62867dd9f8a439d091da28c4d6cbd6f4d4ec0606291cdea7b70841e37c43e0da\",\"dweb:/ipfs/Qme4kF7yC3k2zxC87k9b6rhEbSjPNWZ5kLZCBdKqk43FbE\"]},\"node_modules/@pythnetwork/pyth-sdk-solidity/IPythEvents.sol\":{\"keccak256\":\"0x7ca8e03315d4516d6833c425a52c43e8cacf2077492074d2d36ae5c17899c9c8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ad1c69d157eccb09ce248e1ec021f2e58b61dd36160f5be3973a7bea4a899f64\",\"dweb:/ipfs/QmW1yXsDrMsuQKxtZanSZXpyUW2QwnCKVoCjS5fC3NoSVY\"]},\"node_modules/@pythnetwork/pyth-sdk-solidity/PythStructs.sol\":{\"keccak256\":\"0xade221177dda98ebd194c363f264ceea125bde0e6a7a72f7b54da3ac60316894\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a404dbbc64183995326c345cae27601d37c783b3d9030c8dc0ab4943fa2bf1da\",\"dweb:/ipfs/QmfNFesQffYisafmJFbKHxVFSD8fY49X1z9f8N7qtfW8AX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":true},{"internalType":"uint64","name":"publishTime","type":"uint64","indexed":false},{"internalType":"int64","name":"price","type":"int64","indexed":false},{"internalType":"uint64","name":"conf","type":"uint64","indexed":false}],"type":"event","name":"PriceFeedUpdate","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getEmaPrice","outputs":[{"internalType":"struct PythStructs.Price","name":"price","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"age","type":"uint256"}],"stateMutability":"view","type":"function","name":"getEmaPriceNoOlderThan","outputs":[{"internalType":"struct PythStructs.Price","name":"price","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getEmaPriceUnsafe","outputs":[{"internalType":"struct PythStructs.Price","name":"price","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getPrice","outputs":[{"internalType":"struct PythStructs.Price","name":"price","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"age","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPriceNoOlderThan","outputs":[{"internalType":"struct PythStructs.Price","name":"price","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getPriceUnsafe","outputs":[{"internalType":"struct PythStructs.Price","name":"price","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes[]","name":"updateData","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"getUpdateFee","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getValidTimePeriod","outputs":[{"internalType":"uint256","name":"validTimePeriod","type":"uint256"}]},{"inputs":[{"internalType":"bytes[]","name":"updateData","type":"bytes[]"},{"internalType":"bytes32[]","name":"priceIds","type":"bytes32[]"},{"internalType":"uint64","name":"minPublishTime","type":"uint64"},{"internalType":"uint64","name":"maxPublishTime","type":"uint64"}],"stateMutability":"payable","type":"function","name":"parsePriceFeedUpdates","outputs":[{"internalType":"struct PythStructs.PriceFeed[]","name":"priceFeeds","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct PythStructs.Price","name":"price","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]},{"internalType":"struct PythStructs.Price","name":"emaPrice","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]}]}]},{"inputs":[{"internalType":"bytes[]","name":"updateData","type":"bytes[]"},{"internalType":"bytes32[]","name":"priceIds","type":"bytes32[]"},{"internalType":"uint64","name":"minPublishTime","type":"uint64"},{"internalType":"uint64","name":"maxPublishTime","type":"uint64"}],"stateMutability":"payable","type":"function","name":"parsePriceFeedUpdatesUnique","outputs":[{"internalType":"struct PythStructs.PriceFeed[]","name":"priceFeeds","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct PythStructs.Price","name":"price","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]},{"internalType":"struct PythStructs.Price","name":"emaPrice","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]}]}]},{"inputs":[{"internalType":"bytes[]","name":"updateData","type":"bytes[]"}],"stateMutability":"payable","type":"function","name":"updatePriceFeeds"},{"inputs":[{"internalType":"bytes[]","name":"updateData","type":"bytes[]"},{"internalType":"bytes32[]","name":"priceIds","type":"bytes32[]"},{"internalType":"uint64[]","name":"publishTimes","type":"uint64[]"}],"stateMutability":"payable","type":"function","name":"updatePriceFeedsIfNecessary"}],"devdoc":{"kind":"dev","methods":{"getEmaPrice(bytes32)":{"details":"Reverts if the EMA price is not available.","params":{"id":"The Pyth Price Feed ID of which to fetch the EMA price and confidence interval."},"returns":{"price":"- please read the documentation of PythStructs.Price to understand how to use this safely."}},"getEmaPriceNoOlderThan(bytes32,uint256)":{"details":"This function is a sanity-checked version of `getEmaPriceUnsafe` which is useful in applications that require a sufficiently-recent price. Reverts if the price wasn't updated sufficiently recently.","returns":{"price":"- please read the documentation of PythStructs.Price to understand how to use this safely."}},"getEmaPriceUnsafe(bytes32)":{"details":"This function returns the same price as `getEmaPrice` in the case where the price is available. However, if the price is not recent this function returns the latest available price. The returned price can be from arbitrarily far in the past; this function makes no guarantees that the returned price is recent or useful for any particular application. Users of this function should check the `publishTime` in the price to ensure that the returned price is sufficiently recent for their application. If you are considering using this function, it may be safer / easier to use either `getEmaPrice` or `getEmaPriceNoOlderThan`.","returns":{"price":"- please read the documentation of PythStructs.Price to understand how to use this safely."}},"getPrice(bytes32)":{"details":"Reverts if the price has not been updated within the last `getValidTimePeriod()` seconds.","params":{"id":"The Pyth Price Feed ID of which to fetch the price and confidence interval."},"returns":{"price":"- please read the documentation of PythStructs.Price to understand how to use this safely."}},"getPriceNoOlderThan(bytes32,uint256)":{"details":"This function is a sanity-checked version of `getPriceUnsafe` which is useful in applications that require a sufficiently-recent price. Reverts if the price wasn't updated sufficiently recently.","returns":{"price":"- please read the documentation of PythStructs.Price to understand how to use this safely."}},"getPriceUnsafe(bytes32)":{"details":"This function returns the most recent price update in this contract without any recency checks. This function is unsafe as the returned price update may be arbitrarily far in the past. Users of this function should check the `publishTime` in the price to ensure that the returned price is sufficiently recent for their application. If you are considering using this function, it may be safer / easier to use either `getPrice` or `getPriceNoOlderThan`.","returns":{"price":"- please read the documentation of PythStructs.Price to understand how to use this safely."}},"getUpdateFee(bytes[])":{"params":{"updateData":"Array of price update data."},"returns":{"feeAmount":"The required fee in Wei."}},"parsePriceFeedUpdates(bytes[],bytes32[],uint64,uint64)":{"details":"Reverts if the transferred fee is not sufficient or the updateData is invalid or there is no update for any of the given `priceIds` within the given time range.","params":{"maxPublishTime":"maximum acceptable publishTime for the given `priceIds`.","minPublishTime":"minimum acceptable publishTime for the given `priceIds`.","priceIds":"Array of price ids.","updateData":"Array of price update data."},"returns":{"priceFeeds":"Array of the price feeds corresponding to the given `priceIds` (with the same order)."}},"parsePriceFeedUpdatesUnique(bytes[],bytes32[],uint64,uint64)":{"details":"Reverts if the transferred fee is not sufficient or the updateData is invalid or there is no update for any of the given `priceIds` within the given time range and uniqueness condition.","params":{"maxPublishTime":"maximum acceptable publishTime for the given `priceIds`.","minPublishTime":"minimum acceptable publishTime for the given `priceIds`.","priceIds":"Array of price ids.","updateData":"Array of price update data."},"returns":{"priceFeeds":"Array of the price feeds corresponding to the given `priceIds` (with the same order)."}},"updatePriceFeeds(bytes[])":{"details":"Reverts if the transferred fee is not sufficient or the updateData is invalid.","params":{"updateData":"Array of price update data."}},"updatePriceFeedsIfNecessary(bytes[],bytes32[],uint64[])":{"details":"Reverts if update is not needed or the transferred fee is not sufficient or the updateData is invalid.","params":{"priceIds":"Array of price ids.","publishTimes":"Array of publishTimes. `publishTimes[i]` corresponds to known `publishTime` of `priceIds[i]`","updateData":"Array of price update data."}}},"version":1},"userdoc":{"kind":"user","methods":{"getEmaPrice(bytes32)":{"notice":"Returns the exponentially-weighted moving average price and confidence interval."},"getEmaPriceNoOlderThan(bytes32,uint256)":{"notice":"Returns the exponentially-weighted moving average price that is no older than `age` seconds of the current time."},"getEmaPriceUnsafe(bytes32)":{"notice":"Returns the exponentially-weighted moving average price of a price feed without any sanity checks."},"getPrice(bytes32)":{"notice":"Returns the price and confidence interval."},"getPriceNoOlderThan(bytes32,uint256)":{"notice":"Returns the price that is no older than `age` seconds of the current time."},"getPriceUnsafe(bytes32)":{"notice":"Returns the price of a price feed without any sanity checks."},"getUpdateFee(bytes[])":{"notice":"Returns the required fee to update an array of price updates."},"getValidTimePeriod()":{"notice":"Returns the period (in seconds) that a price feed is considered valid since its publish time"},"parsePriceFeedUpdates(bytes[],bytes32[],uint64,uint64)":{"notice":"Parse `updateData` and return price feeds of the given `priceIds` if they are all published within `minPublishTime` and `maxPublishTime`. You can use this method if you want to use a Pyth price at a fixed time and not the most recent price; otherwise, please consider using `updatePriceFeeds`. This method may store the price updates on-chain, if they are more recent than the current stored prices. This method requires the caller to pay a fee in wei; the required fee can be computed by calling `getUpdateFee` with the length of the `updateData` array."},"parsePriceFeedUpdatesUnique(bytes[],bytes32[],uint64,uint64)":{"notice":"Similar to `parsePriceFeedUpdates` but ensures the updates returned are the first updates published in minPublishTime. That is, if there are multiple updates for a given timestamp, this method will return the first update. This method may store the price updates on-chain, if they are more recent than the current stored prices."},"updatePriceFeeds(bytes[])":{"notice":"Update price feeds with given update messages. This method requires the caller to pay a fee in wei; the required fee can be computed by calling `getUpdateFee` with the length of the `updateData` array. Prices will be updated if they are more recent than the current stored prices. The call will succeed even if the update is not the most recent."},"updatePriceFeedsIfNecessary(bytes[],bytes32[],uint64[])":{"notice":"Wrapper around updatePriceFeeds that rejects fast if a price update is not necessary. A price update is necessary if the current on-chain publishTime is older than the given publishTime. It relies solely on the given `publishTimes` for the price feeds and does not read the actual price update publish time within `updateData`. This method requires the caller to pay a fee in wei; the required fee can be computed by calling `getUpdateFee` with the length of the `updateData` array. `priceIds` and `publishTimes` are two arrays with the same size that correspond to senders known publishTime of each priceId when calling this method. If all of price feeds within `priceIds` have updated and have a newer or equal publish time than the given publish time, it will reject the transaction to save gas. Otherwise, it calls updatePriceFeeds method to update the prices."}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@pythnetwork/pyth-sdk-solidity/IPyth.sol":"IPyth"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@pythnetwork/pyth-sdk-solidity/IPyth.sol":{"keccak256":"0xe06dbd61ccf409fffc0a2449eb8bb6c2d245609698c3c6eddad7cd0f3822d215","urls":["bzz-raw://62867dd9f8a439d091da28c4d6cbd6f4d4ec0606291cdea7b70841e37c43e0da","dweb:/ipfs/Qme4kF7yC3k2zxC87k9b6rhEbSjPNWZ5kLZCBdKqk43FbE"],"license":"Apache-2.0"},"node_modules/@pythnetwork/pyth-sdk-solidity/IPythEvents.sol":{"keccak256":"0x7ca8e03315d4516d6833c425a52c43e8cacf2077492074d2d36ae5c17899c9c8","urls":["bzz-raw://ad1c69d157eccb09ce248e1ec021f2e58b61dd36160f5be3973a7bea4a899f64","dweb:/ipfs/QmW1yXsDrMsuQKxtZanSZXpyUW2QwnCKVoCjS5fC3NoSVY"],"license":"Apache-2.0"},"node_modules/@pythnetwork/pyth-sdk-solidity/PythStructs.sol":{"keccak256":"0xade221177dda98ebd194c363f264ceea125bde0e6a7a72f7b54da3ac60316894","urls":["bzz-raw://a404dbbc64183995326c345cae27601d37c783b3d9030c8dc0ab4943fa2bf1da","dweb:/ipfs/QmfNFesQffYisafmJFbKHxVFSD8fY49X1z9f8N7qtfW8AX"],"license":"Apache-2.0"}},"version":1},"id":162} \ No newline at end of file diff --git a/out/IPythEvents.sol/IPythEvents.json b/out/IPythEvents.sol/IPythEvents.json new file mode 100644 index 0000000..6de3288 --- /dev/null +++ b/out/IPythEvents.sol/IPythEvents.json @@ -0,0 +1 @@ +{"abi":[{"type":"event","name":"PriceFeedUpdate","inputs":[{"name":"id","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"publishTime","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"price","type":"int64","indexed":false,"internalType":"int64"},{"name":"conf","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"publishTime\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"}],\"name\":\"PriceFeedUpdate\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"This interface can be used for listening to the updates for off-chain and testing purposes.\",\"events\":{\"PriceFeedUpdate(bytes32,uint64,int64,uint64)\":{\"details\":\"Emitted when the price feed with `id` has received a fresh update.\",\"params\":{\"conf\":\"Confidence interval of the given price update.\",\"id\":\"The Pyth Price Feed ID.\",\"price\":\"Price of the given price update.\",\"publishTime\":\"Publish time of the given price update.\"}}},\"kind\":\"dev\",\"methods\":{},\"title\":\"IPythEvents contains the events that Pyth contract emits.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@pythnetwork/pyth-sdk-solidity/IPythEvents.sol\":\"IPythEvents\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@pythnetwork/pyth-sdk-solidity/IPythEvents.sol\":{\"keccak256\":\"0x7ca8e03315d4516d6833c425a52c43e8cacf2077492074d2d36ae5c17899c9c8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ad1c69d157eccb09ce248e1ec021f2e58b61dd36160f5be3973a7bea4a899f64\",\"dweb:/ipfs/QmW1yXsDrMsuQKxtZanSZXpyUW2QwnCKVoCjS5fC3NoSVY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":true},{"internalType":"uint64","name":"publishTime","type":"uint64","indexed":false},{"internalType":"int64","name":"price","type":"int64","indexed":false},{"internalType":"uint64","name":"conf","type":"uint64","indexed":false}],"type":"event","name":"PriceFeedUpdate","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@pythnetwork/pyth-sdk-solidity/IPythEvents.sol":"IPythEvents"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@pythnetwork/pyth-sdk-solidity/IPythEvents.sol":{"keccak256":"0x7ca8e03315d4516d6833c425a52c43e8cacf2077492074d2d36ae5c17899c9c8","urls":["bzz-raw://ad1c69d157eccb09ce248e1ec021f2e58b61dd36160f5be3973a7bea4a899f64","dweb:/ipfs/QmW1yXsDrMsuQKxtZanSZXpyUW2QwnCKVoCjS5fC3NoSVY"],"license":"Apache-2.0"}},"version":1},"id":163} \ No newline at end of file diff --git a/out/IRSStorage.sol/IRSStorage.json b/out/IRSStorage.sol/IRSStorage.json new file mode 100644 index 0000000..08aea54 --- /dev/null +++ b/out/IRSStorage.sol/IRSStorage.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220f066219eddf3b7c8b6f92872c1a0d394db0a1ccb30d75852f684a24098e9cfec64736f6c63430008180033","sourceMap":"3897:651:84:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea2646970667358221220f066219eddf3b7c8b6f92872c1a0d394db0a1ccb30d75852f684a24098e9cfec64736f6c63430008180033","sourceMap":"3897:651:84:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"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.\"},\"_identities\":{\"details\":\"mapping between a user address and the corresponding identity\"},\"_identityRegistries\":{\"details\":\"array of Identity Registries linked to this storage\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/registry/storage/IRSStorage.sol\":\"IRSStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/registry/storage/IRSStorage.sol\":{\"keccak256\":\"0xd50fece1c2d09d7308721257a0eb49248665ac479d3aecf4abda0daa67b36ed9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://9a6621fecc96d9eed5f895ad254f099902e39dbff8388f099a887ebce5302b8a\",\"dweb:/ipfs/Qmat7WcQ1KKPecmcpmfwu3R3vBU4iWMzkCR9eNH3xPT51Q\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/registry/storage/IRSStorage.sol":"IRSStorage"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/registry/storage/IRSStorage.sol":{"keccak256":"0xd50fece1c2d09d7308721257a0eb49248665ac479d3aecf4abda0daa67b36ed9","urls":["bzz-raw://9a6621fecc96d9eed5f895ad254f099902e39dbff8388f099a887ebce5302b8a","dweb:/ipfs/Qmat7WcQ1KKPecmcpmfwu3R3vBU4iWMzkCR9eNH3xPT51Q"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"}},"version":1},"id":84} \ No newline at end of file diff --git a/out/IRStorage.sol/IRStorage.json b/out/IRStorage.sol/IRStorage.json new file mode 100644 index 0000000..e0de11e --- /dev/null +++ b/out/IRStorage.sol/IRStorage.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220cec8d9dbd8befcc0a5a8e60e15ec3c187f23d947e2ebbe1a8d25de5a14f518ea64736f6c63430008180033","sourceMap":"3995:590:85:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea2646970667358221220cec8d9dbd8befcc0a5a8e60e15ec3c187f23d947e2ebbe1a8d25de5a14f518ea64736f6c63430008180033","sourceMap":"3995:590:85:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"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.\"},\"_tokenIdentityStorage\":{\"details\":\"Address of the IdentityRegistryStorage Contract\"},\"_tokenIssuersRegistry\":{\"details\":\"Address of the TrustedIssuersRegistry Contract\"},\"_tokenTopicsRegistry\":{\"details\":\"Address of the ClaimTopicsRegistry Contract\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/registry/storage/IRStorage.sol\":\"IRStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/registry/storage/IRStorage.sol\":{\"keccak256\":\"0xf5fdd55dd4dde9cb648ee89daef1053913f96666778c91c5bb04a35d0b9cb879\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://27e84cf2f5a551e08d10494e2850f101089a57c6b1645a585fcd53d5d93cb3d2\",\"dweb:/ipfs/QmPDWVnjYWMMPmuRZywjv3eB2Rcka98YtVR5eVGnXepxr9\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/registry/storage/IRStorage.sol":"IRStorage"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/registry/storage/IRStorage.sol":{"keccak256":"0xf5fdd55dd4dde9cb648ee89daef1053913f96666778c91c5bb04a35d0b9cb879","urls":["bzz-raw://27e84cf2f5a551e08d10494e2850f101089a57c6b1645a585fcd53d5d93cb3d2","dweb:/ipfs/QmPDWVnjYWMMPmuRZywjv3eB2Rcka98YtVR5eVGnXepxr9"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"}},"version":1},"id":85} \ No newline at end of file diff --git a/out/ISaucerSwap.sol/ISaucerSwap.json b/out/ISaucerSwap.sol/ISaucerSwap.json new file mode 100644 index 0000000..9e41122 --- /dev/null +++ b/out/ISaucerSwap.sol/ISaucerSwap.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"WHBAR","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getPair","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"}],"outputs":[{"name":"pair","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getReserves","inputs":[],"outputs":[{"name":"reserve0","type":"uint112","internalType":"uint112"},{"name":"reserve1","type":"uint112","internalType":"uint112"},{"name":"blockTimestampLast","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"swapExactETHForTokens","inputs":[{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"payable"},{"type":"function","name":"swapExactTokensForETH","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapTokensForExactTokens","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountInMax","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"WHBAR()":"d07e5b28","getPair(address,address)":"e6a43905","getReserves()":"0902f1ac","swapExactETHForTokens(uint256,address[],address,uint256)":"7ff36ab5","swapExactTokensForETH(uint256,uint256,address[],address,uint256)":"18cbafe5","swapTokensForExactTokens(uint256,uint256,address[],address,uint256)":"8803dbee"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"WHBAR\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"blockTimestampLast\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactETHForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForETH\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Saucer Swap\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc4626/interfaces/ISaucerSwap.sol\":\"ISaucerSwap\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc4626/interfaces/ISaucerSwap.sol\":{\"keccak256\":\"0xa7bb2678e1375e9973578dbdc07d82bc838d360256bb974e1382ed60fc3be3c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94f426b7f3c149e2d7f25a1734f877494ab15a55fd641b84d9a88def7705a761\",\"dweb:/ipfs/QmZa5XUCWyFkeaDBcFZ6czUaaKmdwahVeL7Z3ssxopfDC2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"WHBAR","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"stateMutability":"view","type":"function","name":"getPair","outputs":[{"internalType":"address","name":"pair","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getReserves","outputs":[{"internalType":"uint112","name":"reserve0","type":"uint112"},{"internalType":"uint112","name":"reserve1","type":"uint112"},{"internalType":"uint32","name":"blockTimestampLast","type":"uint32"}]},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"swapExactETHForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapExactTokensForETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapTokensForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc4626/interfaces/ISaucerSwap.sol":"ISaucerSwap"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc4626/interfaces/ISaucerSwap.sol":{"keccak256":"0xa7bb2678e1375e9973578dbdc07d82bc838d360256bb974e1382ed60fc3be3c9","urls":["bzz-raw://94f426b7f3c149e2d7f25a1734f877494ab15a55fd641b84d9a88def7705a761","dweb:/ipfs/QmZa5XUCWyFkeaDBcFZ6czUaaKmdwahVeL7Z3ssxopfDC2"],"license":"MIT"}},"version":1},"id":108} \ No newline at end of file diff --git a/out/ITREXFactory.sol/ITREXFactory.json b/out/ITREXFactory.sol/ITREXFactory.json new file mode 100644 index 0000000..b5d3883 --- /dev/null +++ b/out/ITREXFactory.sol/ITREXFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"deployTREXSuite","inputs":[{"name":"_salt","type":"string","internalType":"string"},{"name":"_tokenDetails","type":"tuple","internalType":"struct ITREXFactory.TokenDetails","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"decimals","type":"uint8","internalType":"uint8"},{"name":"irs","type":"address","internalType":"address"},{"name":"ONCHAINID","type":"address","internalType":"address"},{"name":"irAgents","type":"address[]","internalType":"address[]"},{"name":"tokenAgents","type":"address[]","internalType":"address[]"},{"name":"complianceModules","type":"address[]","internalType":"address[]"},{"name":"complianceSettings","type":"bytes[]","internalType":"bytes[]"}]},{"name":"_claimDetails","type":"tuple","internalType":"struct ITREXFactory.ClaimDetails","components":[{"name":"claimTopics","type":"uint256[]","internalType":"uint256[]"},{"name":"issuers","type":"address[]","internalType":"address[]"},{"name":"issuerClaims","type":"uint256[][]","internalType":"uint256[][]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getIdFactory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getImplementationAuthority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getToken","inputs":[{"name":"_salt","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"recoverContractOwnership","inputs":[{"name":"_contract","type":"address","internalType":"address"},{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIdFactory","inputs":[{"name":"_idFactory","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setImplementationAuthority","inputs":[{"name":"_implementationAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Deployed","inputs":[{"name":"_addr","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"IdFactorySet","inputs":[{"name":"_idFactory","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ImplementationAuthoritySet","inputs":[{"name":"_implementationAuthority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TREXSuiteDeployed","inputs":[{"name":"_token","type":"address","indexed":true,"internalType":"address"},{"name":"_ir","type":"address","indexed":false,"internalType":"address"},{"name":"_irs","type":"address","indexed":false,"internalType":"address"},{"name":"_tir","type":"address","indexed":false,"internalType":"address"},{"name":"_ctr","type":"address","indexed":false,"internalType":"address"},{"name":"_mc","type":"address","indexed":false,"internalType":"address"},{"name":"_salt","type":"string","indexed":true,"internalType":"string"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"deployTREXSuite(string,(address,string,string,uint8,address,address,address[],address[],address[],bytes[]),(uint256[],address[],uint256[][]))":"cf753d37","getIdFactory()":"5f2773a5","getImplementationAuthority()":"2d5f1187","getToken(string)":"c1733f68","recoverContractOwnership(address,address)":"50b01838","setIdFactory(address)":"ccd41cce","setImplementationAuthority(address)":"92dd9d65"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"Deployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_idFactory\",\"type\":\"address\"}],\"name\":\"IdFactorySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_implementationAuthority\",\"type\":\"address\"}],\"name\":\"ImplementationAuthoritySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_ir\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_irs\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_tir\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_ctr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_mc\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"_salt\",\"type\":\"string\"}],\"name\":\"TREXSuiteDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_salt\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"irs\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ONCHAINID\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"irAgents\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokenAgents\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"complianceModules\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"complianceSettings\",\"type\":\"bytes[]\"}],\"internalType\":\"struct ITREXFactory.TokenDetails\",\"name\":\"_tokenDetails\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"issuers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"issuerClaims\",\"type\":\"uint256[][]\"}],\"internalType\":\"struct ITREXFactory.ClaimDetails\",\"name\":\"_claimDetails\",\"type\":\"tuple\"}],\"name\":\"deployTREXSuite\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIdFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getImplementationAuthority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_salt\",\"type\":\"string\"}],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"recoverContractOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_idFactory\",\"type\":\"address\"}],\"name\":\"setIdFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_implementationAuthority\",\"type\":\"address\"}],\"name\":\"setImplementationAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"deployTREXSuite(string,(address,string,string,uint8,address,address,address[],address[],address[],bytes[]),(uint256[],address[],uint256[][]))\":{\"details\":\"function used to deploy a new TREX token and set all the parameters as required by the issuer paperwork this function will deploy and set the contracts as follow : Token : deploy the token contract (proxy) and set the name, symbol, ONCHAINID, decimals, owner, agents, IR address , Compliance address Identity Registry : deploy the IR contract (proxy) and set the owner, agents, IRS address, TIR address, CTR address IRS : deploy IRS contract (proxy) if required (address set as 0 in the TokenDetails, bind IRS to IR, set owner CTR : deploy CTR contract (proxy), set required claims, set owner TIR : deploy TIR contract (proxy), set trusted issuers, set owner Compliance: deploy modular compliance, bind with token, add modules, set modules parameters, set owner All contracts are deployed using CREATE2 opcode, and therefore are deployed at a predetermined address The address can be the same on all EVM blockchains as long as the factory address is the same as well Only owner can call. emits `TREXSuiteDeployed` event\",\"params\":{\"_claimDetails\":\"The details of the claims and claim issuers (see struct ClaimDetails for more details) cannot add more than 5 agents on IR and 5 agents on Token cannot add more than 5 claim topics required and more than 5 trusted issuers cannot add more than 30 compliance settings transactions\",\"_salt\":\"the salt used to make the contracts deployments with CREATE2\",\"_tokenDetails\":\"The details of the token to deploy (see struct TokenDetails for more details)\"}},\"getIdFactory()\":{\"details\":\"getter for identity factory address\"},\"getImplementationAuthority()\":{\"details\":\"getter for implementation authority address\"},\"getToken(string)\":{\"details\":\"getter for token address corresponding to salt string\",\"params\":{\"_salt\":\"The salt string that was used to deploy the token\"}},\"recoverContractOwnership(address,address)\":{\"details\":\"function that can be used to recover the ownership of contracts owned by the factory typically used for IRS contracts owned by the factory (ownership of IRS is mandatory to call bind function)\",\"params\":{\"_contract\":\"The smart contract address\",\"_newOwner\":\"The address to transfer ownership to Only owner can call.\"}},\"setIdFactory(address)\":{\"details\":\"setter for identity factory contract address the identity factory contract is used by the TREX Factory to deploy the ONCHAINID of the token in case the ONCHAINID is not specified Only owner can call. emits `IdFactorySet` event\",\"params\":{\"_idFactory\":\"The address of the identity factory contract\"}},\"setImplementationAuthority(address)\":{\"details\":\"setter for implementation authority contract address the implementation authority contract contains the addresses of all implementation contracts the proxies created by the factory will use the different implementations available in the implementation authority contract Only owner can call. emits `ImplementationAuthoritySet` event\",\"params\":{\"_implementationAuthority\":\"The address of the implementation authority smart contract\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Deployed(address)\":{\"notice\":\"event emitted whenever a single contract is deployed by the factory\"},\"IdFactorySet(address)\":{\"notice\":\"event emitted when the Identity Factory is set\"},\"ImplementationAuthoritySet(address)\":{\"notice\":\"event emitted when the implementation authority of the factory contract is set\"},\"TREXSuiteDeployed(address,address,address,address,address,address,string)\":{\"notice\":\"event emitted by the factory when a full suite of T-REX contracts is deployed\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/factory/ITREXFactory.sol\":\"ITREXFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/factory/ITREXFactory.sol\":{\"keccak256\":\"0xb95c6d68ed87b0b92621dc7f50d6c761e21fc98f5c5390e37df019127a9f6c9a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4e38726754a9d9cf0ac73961ba6f7313dd3fea9ff6ea73e33ced23418f812939\",\"dweb:/ipfs/QmQNgh8YNoDGguvSzRuTvKu7eXrqW8K53CxPkuq6RN8HnT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_addr","type":"address","indexed":true}],"type":"event","name":"Deployed","anonymous":false},{"inputs":[{"internalType":"address","name":"_idFactory","type":"address","indexed":false}],"type":"event","name":"IdFactorySet","anonymous":false},{"inputs":[{"internalType":"address","name":"_implementationAuthority","type":"address","indexed":false}],"type":"event","name":"ImplementationAuthoritySet","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":true},{"internalType":"address","name":"_ir","type":"address","indexed":false},{"internalType":"address","name":"_irs","type":"address","indexed":false},{"internalType":"address","name":"_tir","type":"address","indexed":false},{"internalType":"address","name":"_ctr","type":"address","indexed":false},{"internalType":"address","name":"_mc","type":"address","indexed":false},{"internalType":"string","name":"_salt","type":"string","indexed":true}],"type":"event","name":"TREXSuiteDeployed","anonymous":false},{"inputs":[{"internalType":"string","name":"_salt","type":"string"},{"internalType":"struct ITREXFactory.TokenDetails","name":"_tokenDetails","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"address","name":"irs","type":"address"},{"internalType":"address","name":"ONCHAINID","type":"address"},{"internalType":"address[]","name":"irAgents","type":"address[]"},{"internalType":"address[]","name":"tokenAgents","type":"address[]"},{"internalType":"address[]","name":"complianceModules","type":"address[]"},{"internalType":"bytes[]","name":"complianceSettings","type":"bytes[]"}]},{"internalType":"struct ITREXFactory.ClaimDetails","name":"_claimDetails","type":"tuple","components":[{"internalType":"uint256[]","name":"claimTopics","type":"uint256[]"},{"internalType":"address[]","name":"issuers","type":"address[]"},{"internalType":"uint256[][]","name":"issuerClaims","type":"uint256[][]"}]}],"stateMutability":"nonpayable","type":"function","name":"deployTREXSuite"},{"inputs":[],"stateMutability":"view","type":"function","name":"getIdFactory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getImplementationAuthority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"_salt","type":"string"}],"stateMutability":"view","type":"function","name":"getToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_contract","type":"address"},{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recoverContractOwnership"},{"inputs":[{"internalType":"address","name":"_idFactory","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setIdFactory"},{"inputs":[{"internalType":"address","name":"_implementationAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setImplementationAuthority"}],"devdoc":{"kind":"dev","methods":{"deployTREXSuite(string,(address,string,string,uint8,address,address,address[],address[],address[],bytes[]),(uint256[],address[],uint256[][]))":{"details":"function used to deploy a new TREX token and set all the parameters as required by the issuer paperwork this function will deploy and set the contracts as follow : Token : deploy the token contract (proxy) and set the name, symbol, ONCHAINID, decimals, owner, agents, IR address , Compliance address Identity Registry : deploy the IR contract (proxy) and set the owner, agents, IRS address, TIR address, CTR address IRS : deploy IRS contract (proxy) if required (address set as 0 in the TokenDetails, bind IRS to IR, set owner CTR : deploy CTR contract (proxy), set required claims, set owner TIR : deploy TIR contract (proxy), set trusted issuers, set owner Compliance: deploy modular compliance, bind with token, add modules, set modules parameters, set owner All contracts are deployed using CREATE2 opcode, and therefore are deployed at a predetermined address The address can be the same on all EVM blockchains as long as the factory address is the same as well Only owner can call. emits `TREXSuiteDeployed` event","params":{"_claimDetails":"The details of the claims and claim issuers (see struct ClaimDetails for more details) cannot add more than 5 agents on IR and 5 agents on Token cannot add more than 5 claim topics required and more than 5 trusted issuers cannot add more than 30 compliance settings transactions","_salt":"the salt used to make the contracts deployments with CREATE2","_tokenDetails":"The details of the token to deploy (see struct TokenDetails for more details)"}},"getIdFactory()":{"details":"getter for identity factory address"},"getImplementationAuthority()":{"details":"getter for implementation authority address"},"getToken(string)":{"details":"getter for token address corresponding to salt string","params":{"_salt":"The salt string that was used to deploy the token"}},"recoverContractOwnership(address,address)":{"details":"function that can be used to recover the ownership of contracts owned by the factory typically used for IRS contracts owned by the factory (ownership of IRS is mandatory to call bind function)","params":{"_contract":"The smart contract address","_newOwner":"The address to transfer ownership to Only owner can call."}},"setIdFactory(address)":{"details":"setter for identity factory contract address the identity factory contract is used by the TREX Factory to deploy the ONCHAINID of the token in case the ONCHAINID is not specified Only owner can call. emits `IdFactorySet` event","params":{"_idFactory":"The address of the identity factory contract"}},"setImplementationAuthority(address)":{"details":"setter for implementation authority contract address the implementation authority contract contains the addresses of all implementation contracts the proxies created by the factory will use the different implementations available in the implementation authority contract Only owner can call. emits `ImplementationAuthoritySet` event","params":{"_implementationAuthority":"The address of the implementation authority smart contract"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/factory/ITREXFactory.sol":"ITREXFactory"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/factory/ITREXFactory.sol":{"keccak256":"0xb95c6d68ed87b0b92621dc7f50d6c761e21fc98f5c5390e37df019127a9f6c9a","urls":["bzz-raw://4e38726754a9d9cf0ac73961ba6f7313dd3fea9ff6ea73e33ced23418f812939","dweb:/ipfs/QmQNgh8YNoDGguvSzRuTvKu7eXrqW8K53CxPkuq6RN8HnT"],"license":"GPL-3.0"}},"version":1},"id":59} \ No newline at end of file diff --git a/out/ITREXGateway.sol/ITREXGateway.json b/out/ITREXGateway.sol/ITREXGateway.json new file mode 100644 index 0000000..55c5809 --- /dev/null +++ b/out/ITREXGateway.sol/ITREXGateway.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addDeployer","inputs":[{"name":"deployer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"applyFeeDiscount","inputs":[{"name":"deployer","type":"address","internalType":"address"},{"name":"discount","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchAddDeployer","inputs":[{"name":"deployers","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchApplyFeeDiscount","inputs":[{"name":"deployers","type":"address[]","internalType":"address[]"},{"name":"discounts","type":"uint16[]","internalType":"uint16[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchDeployTREXSuite","inputs":[{"name":"_tokenDetails","type":"tuple[]","internalType":"struct ITREXFactory.TokenDetails[]","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"decimals","type":"uint8","internalType":"uint8"},{"name":"irs","type":"address","internalType":"address"},{"name":"ONCHAINID","type":"address","internalType":"address"},{"name":"irAgents","type":"address[]","internalType":"address[]"},{"name":"tokenAgents","type":"address[]","internalType":"address[]"},{"name":"complianceModules","type":"address[]","internalType":"address[]"},{"name":"complianceSettings","type":"bytes[]","internalType":"bytes[]"}]},{"name":"_claimDetails","type":"tuple[]","internalType":"struct ITREXFactory.ClaimDetails[]","components":[{"name":"claimTopics","type":"uint256[]","internalType":"uint256[]"},{"name":"issuers","type":"address[]","internalType":"address[]"},{"name":"issuerClaims","type":"uint256[][]","internalType":"uint256[][]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchRemoveDeployer","inputs":[{"name":"deployers","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"calculateFee","inputs":[{"name":"deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deployTREXSuite","inputs":[{"name":"_tokenDetails","type":"tuple","internalType":"struct ITREXFactory.TokenDetails","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"decimals","type":"uint8","internalType":"uint8"},{"name":"irs","type":"address","internalType":"address"},{"name":"ONCHAINID","type":"address","internalType":"address"},{"name":"irAgents","type":"address[]","internalType":"address[]"},{"name":"tokenAgents","type":"address[]","internalType":"address[]"},{"name":"complianceModules","type":"address[]","internalType":"address[]"},{"name":"complianceSettings","type":"bytes[]","internalType":"bytes[]"}]},{"name":"_claimDetails","type":"tuple","internalType":"struct ITREXFactory.ClaimDetails","components":[{"name":"claimTopics","type":"uint256[]","internalType":"uint256[]"},{"name":"issuers","type":"address[]","internalType":"address[]"},{"name":"issuerClaims","type":"uint256[][]","internalType":"uint256[][]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enableDeploymentFee","inputs":[{"name":"_isEnabled","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getDeploymentFee","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ITREXGateway.Fee","components":[{"name":"fee","type":"uint256","internalType":"uint256"},{"name":"feeToken","type":"address","internalType":"address"},{"name":"feeCollector","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getFactory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getPublicDeploymentStatus","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDeployer","inputs":[{"name":"deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDeploymentFeeEnabled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeDeployer","inputs":[{"name":"deployer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDeploymentFee","inputs":[{"name":"_fee","type":"uint256","internalType":"uint256"},{"name":"_feeToken","type":"address","internalType":"address"},{"name":"_feeCollector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFactory","inputs":[{"name":"factory","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPublicDeploymentStatus","inputs":[{"name":"_isEnabled","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferFactoryOwnership","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DeployerAdded","inputs":[{"name":"deployer","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DeployerRemoved","inputs":[{"name":"deployer","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DeploymentFeeEnabled","inputs":[{"name":"isEnabled","type":"bool","indexed":true,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"DeploymentFeeSet","inputs":[{"name":"fee","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"feeToken","type":"address","indexed":true,"internalType":"address"},{"name":"feeCollector","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FactorySet","inputs":[{"name":"factory","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FeeDiscountApplied","inputs":[{"name":"deployer","type":"address","indexed":true,"internalType":"address"},{"name":"discount","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"GatewaySuiteDeploymentProcessed","inputs":[{"name":"requester","type":"address","indexed":true,"internalType":"address"},{"name":"intendedOwner","type":"address","indexed":false,"internalType":"address"},{"name":"feeApplied","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PublicDeploymentStatusSet","inputs":[{"name":"publicDeploymentStatus","type":"bool","indexed":true,"internalType":"bool"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addDeployer(address)":"880f4039","applyFeeDiscount(address,uint16)":"75e14cff","batchAddDeployer(address[])":"e65811ff","batchApplyFeeDiscount(address[],uint16[])":"2782035e","batchDeployTREXSuite((address,string,string,uint8,address,address,address[],address[],address[],bytes[])[],(uint256[],address[],uint256[][])[])":"730b86a9","batchRemoveDeployer(address[])":"0065939e","calculateFee(address)":"465f5eb8","deployTREXSuite((address,string,string,uint8,address,address,address[],address[],address[],bytes[]),(uint256[],address[],uint256[][]))":"c8eebfcc","enableDeploymentFee(bool)":"a264f2bd","getDeploymentFee()":"46c549cc","getFactory()":"88cc58e4","getPublicDeploymentStatus()":"bfc2f10b","isDeployer(address)":"50c358a4","isDeploymentFeeEnabled()":"47706851","removeDeployer(address)":"f315df86","setDeploymentFee(uint256,address,address)":"5d46c283","setFactory(address)":"5bb47808","setPublicDeploymentStatus(bool)":"eca465c4","transferFactoryOwnership(address)":"9c5c5ce7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"DeployerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"DeployerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"DeploymentFeeEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"name\":\"DeploymentFeeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"name\":\"FactorySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"discount\",\"type\":\"uint16\"}],\"name\":\"FeeDiscountApplied\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"intendedOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"feeApplied\",\"type\":\"uint256\"}],\"name\":\"GatewaySuiteDeploymentProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"publicDeploymentStatus\",\"type\":\"bool\"}],\"name\":\"PublicDeploymentStatusSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"addDeployer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"discount\",\"type\":\"uint16\"}],\"name\":\"applyFeeDiscount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"deployers\",\"type\":\"address[]\"}],\"name\":\"batchAddDeployer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"deployers\",\"type\":\"address[]\"},{\"internalType\":\"uint16[]\",\"name\":\"discounts\",\"type\":\"uint16[]\"}],\"name\":\"batchApplyFeeDiscount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"irs\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ONCHAINID\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"irAgents\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokenAgents\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"complianceModules\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"complianceSettings\",\"type\":\"bytes[]\"}],\"internalType\":\"struct ITREXFactory.TokenDetails[]\",\"name\":\"_tokenDetails\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"issuers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"issuerClaims\",\"type\":\"uint256[][]\"}],\"internalType\":\"struct ITREXFactory.ClaimDetails[]\",\"name\":\"_claimDetails\",\"type\":\"tuple[]\"}],\"name\":\"batchDeployTREXSuite\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"deployers\",\"type\":\"address[]\"}],\"name\":\"batchRemoveDeployer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"calculateFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"irs\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ONCHAINID\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"irAgents\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokenAgents\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"complianceModules\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"complianceSettings\",\"type\":\"bytes[]\"}],\"internalType\":\"struct ITREXFactory.TokenDetails\",\"name\":\"_tokenDetails\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"issuers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"issuerClaims\",\"type\":\"uint256[][]\"}],\"internalType\":\"struct ITREXFactory.ClaimDetails\",\"name\":\"_claimDetails\",\"type\":\"tuple\"}],\"name\":\"deployTREXSuite\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_isEnabled\",\"type\":\"bool\"}],\"name\":\"enableDeploymentFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDeploymentFee\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct ITREXGateway.Fee\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPublicDeploymentStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"isDeployer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDeploymentFeeEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"removeDeployer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_feeToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_feeCollector\",\"type\":\"address\"}],\"name\":\"setDeploymentFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"name\":\"setFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_isEnabled\",\"type\":\"bool\"}],\"name\":\"setPublicDeploymentStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferFactoryOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addDeployer(address)\":{\"details\":\"Only an admin (owner or agent) can call this method. If the provided `deployer` address is already an approved deployer, the function will revert. Emits a `DeployerAdded` event upon successful addition.\",\"params\":{\"deployer\":\"Address to be added to the list of approved deployers. emits DeployerAdded Indicates that a new deployer address has been successfully added.\"}},\"applyFeeDiscount(address,uint16)\":{\"details\":\"Only an admin (owner or agent) can call this method. The fee discount is expressed per 10,000 (10000 = 100%, 1000 = 10%, etc.). If the discount exceeds 10000, the function will revert. Emits a `FeeDiscountApplied` event upon successful application.\",\"params\":{\"deployer\":\"Address of the deployer to which the discount will be applied.\",\"discount\":\"The discount rate, expressed per 10,000. emits FeeDiscountApplied Indicates that a fee discount has been successfully applied to a deployer.\"}},\"batchAddDeployer(address[])\":{\"details\":\"This function allows batch addition of deployers. It can only be called by an admin (owner or agent). The function will revert if the length of the `deployers` array is more than 500 to prevent excessive gas consumption. It will also revert if any address in the `deployers` array is already an approved deployer. Emits a `DeployerAdded` event for each successfully added deployer.\",\"params\":{\"deployers\":\"An array of addresses to be added to the list of approved deployers.\"}},\"batchApplyFeeDiscount(address[],uint16[])\":{\"details\":\"Allows batch application of fee discounts. Can only be called by an admin (owner or agent). The function will revert if the length of the `deployers` array exceeds 500, to prevent excessive gas consumption. Each discount in the `discounts` array is expressed per 10,000 (10000 = 100%, 1000 = 10%, etc.). The function will also revert if any discount in the `discounts` array exceeds 10000. Emits a `FeeDiscountApplied` event for each successfully applied discount.\",\"params\":{\"deployers\":\"An array of deployer addresses to which the discounts will be applied.\",\"discounts\":\"An array of discount rates, each corresponding to a deployer in the `deployers` array, expressed per 10,000.\"}},\"batchDeployTREXSuite((address,string,string,uint8,address,address,address[],address[],address[],bytes[])[],(uint256[],address[],uint256[][])[])\":{\"details\":\"This batch function allows deploying up to 5 TREX suites at once. It performs the same checks as `deployTREXSuite` for each suite: 1. If public deployments are disabled, only approved deployers can execute this function. 2. If public deployments are enabled, an external entity can deploy only on its behalf and not for other addresses unless it's an approved deployer. Deployment fees, if enabled and applicable, are collected for each suite deployment based on the deployer's address. Each TREX suite deployment is triggered via the factory contract, with a unique salt derived from the token owner's address and token name.\",\"params\":{\"_claimDetails\":\"Array of structs, each containing details related to claims for the respective token. reverts with BatchMaxLengthExceeded if the length of either `_tokenDetails` or `_claimDetails` arrays exceeds 5. reverts with PublicDeploymentsNotAllowed if public deployments are disabled and the caller is not an approved deployer. reverts with PublicCannotDeployOnBehalf if public deployments are enabled and the caller attempts to deploy on behalf of a different address without being an approved deployer. emits GatewaySuiteDeploymentProcessed This event is emitted for each deployed suite, indicating the deployer, the token owner, and any fee applied.\",\"_tokenDetails\":\"Array of structs, each containing details necessary for token deployment such as name, symbol, etc.\"}},\"batchRemoveDeployer(address[])\":{\"details\":\"This function allows batch removal of deployers. It can only be called by an admin (owner or agent). The function will revert if the length of the `deployers` array is more than 500 to prevent excessive gas consumption. It will also revert if any address in the `deployers` array is not an approved deployer. Emits a `DeployerRemoved` event for each successfully removed deployer.\",\"params\":{\"deployers\":\"An array of addresses to be removed from the list of approved deployers.\"}},\"calculateFee(address)\":{\"details\":\"The fee discount, if any, is expressed per 10,000 (e.g., 10000 = 100%, 1000 = 10%, etc.). The final fee is derived by subtracting the discount amount from the original fee.\",\"params\":{\"deployer\":\"Address of the deployer for which the fee will be calculated.\"},\"returns\":{\"_0\":\"The calculated fee after accounting for potential discounts.\"}},\"deployTREXSuite((address,string,string,uint8,address,address,address[],address[],address[],bytes[]),(uint256[],address[],uint256[][]))\":{\"details\":\"This function performs multiple checks before deploying: 1. If public deployments are disabled, only approved deployers can execute this function. 2. If public deployments are enabled, an external entity can deploy only on its behalf and not for other addresses unless it's an approved deployer. If deployment fees are enabled and applicable (after considering any discounts for the deployer), the fee is collected from the deployer's address. The actual TREX suite deployment is then triggered via the factory contract, and a unique salt is derived from the token owner's address and the token name for the deployment.\",\"params\":{\"_claimDetails\":\"Struct containing details related to claims for the token. emits GatewaySuiteDeploymentProcessed This event is emitted post-deployment, indicating the deployer, the token owner, and the fee applied.\",\"_tokenDetails\":\"Struct containing details necessary for token deployment such as name, symbol, etc.\"}},\"enableDeploymentFee(bool)\":{\"details\":\"Enables or disables the deployment fees. If the function call doesn't change the current status, it will revert. Only the owner can call this method. Emits a `DeploymentFeeEnabled` event upon successful execution. Reverts with `DeploymentFeesAlreadyEnabled` if trying to enable when already enabled. Reverts with `DeploymentFeesAlreadyDisabled` if trying to disable when already disabled.\",\"params\":{\"_isEnabled\":\"Determines if deployment fees are enabled (`true`) or disabled (`false`). emits DeploymentFeeEnabled When the new deployment fee status is set.\"}},\"getDeploymentFee()\":{\"details\":\"This function provides details about the deployment fee, including the amount, token type, and the collector address.\",\"returns\":{\"_0\":\"Fee struct containing: - `fee`: The amount to be paid as the deployment fee. - `feeToken`: Address of the token used for the deployment fee. - `feeCollector`: Address that collects the deployment fees.\"}},\"getFactory()\":{\"details\":\"The Factory contract is responsible for deploying TREX contracts. This function allows querying its address.\",\"returns\":{\"_0\":\"Address of the current Factory contract.\"}},\"getPublicDeploymentStatus()\":{\"details\":\"Indicates whether public deployments of TREX contracts are currently allowed.\",\"returns\":{\"_0\":\"A boolean value representing the public deployment status: `true` if public deployments are allowed, `false` otherwise.\"}},\"isDeployer(address)\":{\"details\":\"Determines if a specific address has permissions to deploy TREX contracts.\",\"params\":{\"deployer\":\"Address to be checked for deployer permissions.\"},\"returns\":{\"_0\":\"A boolean value indicating whether the provided address is an approved deployer (`true`) or not (`false`).\"}},\"isDeploymentFeeEnabled()\":{\"details\":\"Provides a way to determine if deployers are currently required to pay a fee when deploying TREX contracts.\",\"returns\":{\"_0\":\"A boolean value indicating whether the deployment fee is enabled (`true`) or disabled (`false`).\"}},\"removeDeployer(address)\":{\"details\":\"Only an admin (owner or agent) can call this method. If the provided `deployer` address is not an approved deployer, the function will revert. Emits a `DeployerRemoved` event upon successful removal.\",\"params\":{\"deployer\":\"Address to be removed from the list of approved deployers. emits DeployerRemoved Indicates that a deployer address has been successfully removed.\"}},\"setDeploymentFee(uint256,address,address)\":{\"details\":\"Only the owner can call this method. The function establishes the amount, token type, and collector address for the deployment fee. Reverts if either the provided `_feeToken` or `_feeCollector` address is zero. Emits a `DeploymentFeeSet` event upon successful execution.\",\"params\":{\"_fee\":\"The amount to be set as the deployment fee.\",\"_feeCollector\":\"Address that will collect the deployment fees. emits DeploymentFeeSet Indicates that the deployment fee details have been successfully set.\",\"_feeToken\":\"Address of the token used for the deployment fee.\"}},\"setFactory(address)\":{\"details\":\"Only the owner can call this method. Emits a `FactorySet` event upon successful execution. Reverts if the provided factory address is zero.\",\"params\":{\"factory\":\"The address of the new factory contract. emits FactorySet When the new factory address is set.\"}},\"setPublicDeploymentStatus(bool)\":{\"details\":\"Enables or disables public deployments. If the function call doesn't change the current status, it will revert. Only the owner can call this method. Emits a `PublicDeploymentStatusSet` event upon successful execution. Reverts with `PublicDeploymentAlreadyEnabled` if trying to enable when already enabled. Reverts with `PublicDeploymentAlreadyDisabled` if trying to disable when already disabled.\",\"params\":{\"_isEnabled\":\"Determines if public deployments are enabled (`true`) or disabled (`false`). emits PublicDeploymentStatusSet When the new public deployment status is set.\"}},\"transferFactoryOwnership(address)\":{\"details\":\"Only the owner can call this method. Utilizes the `transferOwnership` function of the Ownable pattern.\",\"params\":{\"_newOwner\":\"Address of the new owner for the Factory contract.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"DeployerAdded(address)\":{\"notice\":\"event emitted when an address is flagged as a deployer\"},\"DeployerRemoved(address)\":{\"notice\":\"event emitted when a deployer address loses deployment privileges\"},\"DeploymentFeeEnabled(bool)\":{\"notice\":\"event emitted when the deployment fees are enabled/disabled\"},\"DeploymentFeeSet(uint256,address,address)\":{\"notice\":\"event emitted when the deployment fees details are set/modified\"},\"FactorySet(address)\":{\"notice\":\"event emitted when the _factory variable is set/modified\"},\"FeeDiscountApplied(address,uint16)\":{\"notice\":\"event emitted when a discount on deployment fees is granted for an address\"},\"GatewaySuiteDeploymentProcessed(address,address,uint256)\":{\"notice\":\"event emitted whenever a TREX token has been deployed by the TREX factory through the use of the Gateway\"},\"PublicDeploymentStatusSet(bool)\":{\"notice\":\"event emitted when the public deployment status is set/modified\"}},\"kind\":\"user\",\"methods\":{\"addDeployer(address)\":{\"notice\":\"Adds an address to the list of approved deployers.\"},\"applyFeeDiscount(address,uint16)\":{\"notice\":\"Applies a fee discount to a specific deployer's address.\"},\"batchAddDeployer(address[])\":{\"notice\":\"Adds multiple addresses to the list of approved deployers in a single transaction.\"},\"batchApplyFeeDiscount(address[],uint16[])\":{\"notice\":\"Applies fee discounts to multiple deployers in a single transaction.\"},\"batchDeployTREXSuite((address,string,string,uint8,address,address,address[],address[],address[],bytes[])[],(uint256[],address[],uint256[][])[])\":{\"notice\":\"Deploys multiple TREX suites of contracts in a single transaction using provided arrays of token and claim details.\"},\"batchRemoveDeployer(address[])\":{\"notice\":\"Removes multiple addresses from the list of approved deployers in a single transaction.\"},\"calculateFee(address)\":{\"notice\":\"Calculates the deployment fee for a given deployer after accounting for any discounts.\"},\"deployTREXSuite((address,string,string,uint8,address,address,address[],address[],address[],bytes[]),(uint256[],address[],uint256[][]))\":{\"notice\":\"Deploys a TREX suite of contracts using provided token and claim details.\"},\"enableDeploymentFee(bool)\":{\"notice\":\"Toggles the deployment fee status for TREX contracts.\"},\"getDeploymentFee()\":{\"notice\":\"Retrieves the current deployment fee details.\"},\"getFactory()\":{\"notice\":\"Retrieves the address of the current Factory contract.\"},\"getPublicDeploymentStatus()\":{\"notice\":\"Retrieves the current public deployment status.\"},\"isDeployer(address)\":{\"notice\":\"Checks if the provided address is an approved deployer.\"},\"isDeploymentFeeEnabled()\":{\"notice\":\"Checks if the deployment fee is currently enabled.\"},\"removeDeployer(address)\":{\"notice\":\"Removes an address from the list of approved deployers.\"},\"setDeploymentFee(uint256,address,address)\":{\"notice\":\"Sets the deployment fee details for TREX contracts.\"},\"setFactory(address)\":{\"notice\":\"Sets the factory contract address used for deploying TREX smart contracts.\"},\"setPublicDeploymentStatus(bool)\":{\"notice\":\"Sets the status for public deployments of TREX contracts.\"},\"transferFactoryOwnership(address)\":{\"notice\":\"Transfers the ownership of the Factory contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/factory/ITREXGateway.sol\":\"ITREXGateway\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/factory/ITREXFactory.sol\":{\"keccak256\":\"0xb95c6d68ed87b0b92621dc7f50d6c761e21fc98f5c5390e37df019127a9f6c9a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4e38726754a9d9cf0ac73961ba6f7313dd3fea9ff6ea73e33ced23418f812939\",\"dweb:/ipfs/QmQNgh8YNoDGguvSzRuTvKu7eXrqW8K53CxPkuq6RN8HnT\"]},\"contracts/erc3643/factory/ITREXGateway.sol\":{\"keccak256\":\"0xe3ef2958f4e1bd5ba55e0aba75a36ffec4a36dead2fce56e936e05832709e8bb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403eb26109727e74d4759f8b567bd1ae584cded5f73f945180eebf8eee12bd56\",\"dweb:/ipfs/QmWY4uPBDrSEUuY65G9hvkgfWkL6NEobqv7hefiTZyRq9o\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"deployer","type":"address","indexed":true}],"type":"event","name":"DeployerAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"deployer","type":"address","indexed":true}],"type":"event","name":"DeployerRemoved","anonymous":false},{"inputs":[{"internalType":"bool","name":"isEnabled","type":"bool","indexed":true}],"type":"event","name":"DeploymentFeeEnabled","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256","indexed":true},{"internalType":"address","name":"feeToken","type":"address","indexed":true},{"internalType":"address","name":"feeCollector","type":"address","indexed":true}],"type":"event","name":"DeploymentFeeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"factory","type":"address","indexed":true}],"type":"event","name":"FactorySet","anonymous":false},{"inputs":[{"internalType":"address","name":"deployer","type":"address","indexed":true},{"internalType":"uint16","name":"discount","type":"uint16","indexed":false}],"type":"event","name":"FeeDiscountApplied","anonymous":false},{"inputs":[{"internalType":"address","name":"requester","type":"address","indexed":true},{"internalType":"address","name":"intendedOwner","type":"address","indexed":false},{"internalType":"uint256","name":"feeApplied","type":"uint256","indexed":false}],"type":"event","name":"GatewaySuiteDeploymentProcessed","anonymous":false},{"inputs":[{"internalType":"bool","name":"publicDeploymentStatus","type":"bool","indexed":true}],"type":"event","name":"PublicDeploymentStatusSet","anonymous":false},{"inputs":[{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addDeployer"},{"inputs":[{"internalType":"address","name":"deployer","type":"address"},{"internalType":"uint16","name":"discount","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"applyFeeDiscount"},{"inputs":[{"internalType":"address[]","name":"deployers","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"batchAddDeployer"},{"inputs":[{"internalType":"address[]","name":"deployers","type":"address[]"},{"internalType":"uint16[]","name":"discounts","type":"uint16[]"}],"stateMutability":"nonpayable","type":"function","name":"batchApplyFeeDiscount"},{"inputs":[{"internalType":"struct ITREXFactory.TokenDetails[]","name":"_tokenDetails","type":"tuple[]","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"address","name":"irs","type":"address"},{"internalType":"address","name":"ONCHAINID","type":"address"},{"internalType":"address[]","name":"irAgents","type":"address[]"},{"internalType":"address[]","name":"tokenAgents","type":"address[]"},{"internalType":"address[]","name":"complianceModules","type":"address[]"},{"internalType":"bytes[]","name":"complianceSettings","type":"bytes[]"}]},{"internalType":"struct ITREXFactory.ClaimDetails[]","name":"_claimDetails","type":"tuple[]","components":[{"internalType":"uint256[]","name":"claimTopics","type":"uint256[]"},{"internalType":"address[]","name":"issuers","type":"address[]"},{"internalType":"uint256[][]","name":"issuerClaims","type":"uint256[][]"}]}],"stateMutability":"nonpayable","type":"function","name":"batchDeployTREXSuite"},{"inputs":[{"internalType":"address[]","name":"deployers","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"batchRemoveDeployer"},{"inputs":[{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"view","type":"function","name":"calculateFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct ITREXFactory.TokenDetails","name":"_tokenDetails","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"address","name":"irs","type":"address"},{"internalType":"address","name":"ONCHAINID","type":"address"},{"internalType":"address[]","name":"irAgents","type":"address[]"},{"internalType":"address[]","name":"tokenAgents","type":"address[]"},{"internalType":"address[]","name":"complianceModules","type":"address[]"},{"internalType":"bytes[]","name":"complianceSettings","type":"bytes[]"}]},{"internalType":"struct ITREXFactory.ClaimDetails","name":"_claimDetails","type":"tuple","components":[{"internalType":"uint256[]","name":"claimTopics","type":"uint256[]"},{"internalType":"address[]","name":"issuers","type":"address[]"},{"internalType":"uint256[][]","name":"issuerClaims","type":"uint256[][]"}]}],"stateMutability":"nonpayable","type":"function","name":"deployTREXSuite"},{"inputs":[{"internalType":"bool","name":"_isEnabled","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"enableDeploymentFee"},{"inputs":[],"stateMutability":"view","type":"function","name":"getDeploymentFee","outputs":[{"internalType":"struct ITREXGateway.Fee","name":"","type":"tuple","components":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"address","name":"feeToken","type":"address"},{"internalType":"address","name":"feeCollector","type":"address"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getFactory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPublicDeploymentStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"view","type":"function","name":"isDeployer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDeploymentFeeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeDeployer"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"},{"internalType":"address","name":"_feeToken","type":"address"},{"internalType":"address","name":"_feeCollector","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDeploymentFee"},{"inputs":[{"internalType":"address","name":"factory","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFactory"},{"inputs":[{"internalType":"bool","name":"_isEnabled","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setPublicDeploymentStatus"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferFactoryOwnership"}],"devdoc":{"kind":"dev","methods":{"addDeployer(address)":{"details":"Only an admin (owner or agent) can call this method. If the provided `deployer` address is already an approved deployer, the function will revert. Emits a `DeployerAdded` event upon successful addition.","params":{"deployer":"Address to be added to the list of approved deployers. emits DeployerAdded Indicates that a new deployer address has been successfully added."}},"applyFeeDiscount(address,uint16)":{"details":"Only an admin (owner or agent) can call this method. The fee discount is expressed per 10,000 (10000 = 100%, 1000 = 10%, etc.). If the discount exceeds 10000, the function will revert. Emits a `FeeDiscountApplied` event upon successful application.","params":{"deployer":"Address of the deployer to which the discount will be applied.","discount":"The discount rate, expressed per 10,000. emits FeeDiscountApplied Indicates that a fee discount has been successfully applied to a deployer."}},"batchAddDeployer(address[])":{"details":"This function allows batch addition of deployers. It can only be called by an admin (owner or agent). The function will revert if the length of the `deployers` array is more than 500 to prevent excessive gas consumption. It will also revert if any address in the `deployers` array is already an approved deployer. Emits a `DeployerAdded` event for each successfully added deployer.","params":{"deployers":"An array of addresses to be added to the list of approved deployers."}},"batchApplyFeeDiscount(address[],uint16[])":{"details":"Allows batch application of fee discounts. Can only be called by an admin (owner or agent). The function will revert if the length of the `deployers` array exceeds 500, to prevent excessive gas consumption. Each discount in the `discounts` array is expressed per 10,000 (10000 = 100%, 1000 = 10%, etc.). The function will also revert if any discount in the `discounts` array exceeds 10000. Emits a `FeeDiscountApplied` event for each successfully applied discount.","params":{"deployers":"An array of deployer addresses to which the discounts will be applied.","discounts":"An array of discount rates, each corresponding to a deployer in the `deployers` array, expressed per 10,000."}},"batchDeployTREXSuite((address,string,string,uint8,address,address,address[],address[],address[],bytes[])[],(uint256[],address[],uint256[][])[])":{"details":"This batch function allows deploying up to 5 TREX suites at once. It performs the same checks as `deployTREXSuite` for each suite: 1. If public deployments are disabled, only approved deployers can execute this function. 2. If public deployments are enabled, an external entity can deploy only on its behalf and not for other addresses unless it's an approved deployer. Deployment fees, if enabled and applicable, are collected for each suite deployment based on the deployer's address. Each TREX suite deployment is triggered via the factory contract, with a unique salt derived from the token owner's address and token name.","params":{"_claimDetails":"Array of structs, each containing details related to claims for the respective token. reverts with BatchMaxLengthExceeded if the length of either `_tokenDetails` or `_claimDetails` arrays exceeds 5. reverts with PublicDeploymentsNotAllowed if public deployments are disabled and the caller is not an approved deployer. reverts with PublicCannotDeployOnBehalf if public deployments are enabled and the caller attempts to deploy on behalf of a different address without being an approved deployer. emits GatewaySuiteDeploymentProcessed This event is emitted for each deployed suite, indicating the deployer, the token owner, and any fee applied.","_tokenDetails":"Array of structs, each containing details necessary for token deployment such as name, symbol, etc."}},"batchRemoveDeployer(address[])":{"details":"This function allows batch removal of deployers. It can only be called by an admin (owner or agent). The function will revert if the length of the `deployers` array is more than 500 to prevent excessive gas consumption. It will also revert if any address in the `deployers` array is not an approved deployer. Emits a `DeployerRemoved` event for each successfully removed deployer.","params":{"deployers":"An array of addresses to be removed from the list of approved deployers."}},"calculateFee(address)":{"details":"The fee discount, if any, is expressed per 10,000 (e.g., 10000 = 100%, 1000 = 10%, etc.). The final fee is derived by subtracting the discount amount from the original fee.","params":{"deployer":"Address of the deployer for which the fee will be calculated."},"returns":{"_0":"The calculated fee after accounting for potential discounts."}},"deployTREXSuite((address,string,string,uint8,address,address,address[],address[],address[],bytes[]),(uint256[],address[],uint256[][]))":{"details":"This function performs multiple checks before deploying: 1. If public deployments are disabled, only approved deployers can execute this function. 2. If public deployments are enabled, an external entity can deploy only on its behalf and not for other addresses unless it's an approved deployer. If deployment fees are enabled and applicable (after considering any discounts for the deployer), the fee is collected from the deployer's address. The actual TREX suite deployment is then triggered via the factory contract, and a unique salt is derived from the token owner's address and the token name for the deployment.","params":{"_claimDetails":"Struct containing details related to claims for the token. emits GatewaySuiteDeploymentProcessed This event is emitted post-deployment, indicating the deployer, the token owner, and the fee applied.","_tokenDetails":"Struct containing details necessary for token deployment such as name, symbol, etc."}},"enableDeploymentFee(bool)":{"details":"Enables or disables the deployment fees. If the function call doesn't change the current status, it will revert. Only the owner can call this method. Emits a `DeploymentFeeEnabled` event upon successful execution. Reverts with `DeploymentFeesAlreadyEnabled` if trying to enable when already enabled. Reverts with `DeploymentFeesAlreadyDisabled` if trying to disable when already disabled.","params":{"_isEnabled":"Determines if deployment fees are enabled (`true`) or disabled (`false`). emits DeploymentFeeEnabled When the new deployment fee status is set."}},"getDeploymentFee()":{"details":"This function provides details about the deployment fee, including the amount, token type, and the collector address.","returns":{"_0":"Fee struct containing: - `fee`: The amount to be paid as the deployment fee. - `feeToken`: Address of the token used for the deployment fee. - `feeCollector`: Address that collects the deployment fees."}},"getFactory()":{"details":"The Factory contract is responsible for deploying TREX contracts. This function allows querying its address.","returns":{"_0":"Address of the current Factory contract."}},"getPublicDeploymentStatus()":{"details":"Indicates whether public deployments of TREX contracts are currently allowed.","returns":{"_0":"A boolean value representing the public deployment status: `true` if public deployments are allowed, `false` otherwise."}},"isDeployer(address)":{"details":"Determines if a specific address has permissions to deploy TREX contracts.","params":{"deployer":"Address to be checked for deployer permissions."},"returns":{"_0":"A boolean value indicating whether the provided address is an approved deployer (`true`) or not (`false`)."}},"isDeploymentFeeEnabled()":{"details":"Provides a way to determine if deployers are currently required to pay a fee when deploying TREX contracts.","returns":{"_0":"A boolean value indicating whether the deployment fee is enabled (`true`) or disabled (`false`)."}},"removeDeployer(address)":{"details":"Only an admin (owner or agent) can call this method. If the provided `deployer` address is not an approved deployer, the function will revert. Emits a `DeployerRemoved` event upon successful removal.","params":{"deployer":"Address to be removed from the list of approved deployers. emits DeployerRemoved Indicates that a deployer address has been successfully removed."}},"setDeploymentFee(uint256,address,address)":{"details":"Only the owner can call this method. The function establishes the amount, token type, and collector address for the deployment fee. Reverts if either the provided `_feeToken` or `_feeCollector` address is zero. Emits a `DeploymentFeeSet` event upon successful execution.","params":{"_fee":"The amount to be set as the deployment fee.","_feeCollector":"Address that will collect the deployment fees. emits DeploymentFeeSet Indicates that the deployment fee details have been successfully set.","_feeToken":"Address of the token used for the deployment fee."}},"setFactory(address)":{"details":"Only the owner can call this method. Emits a `FactorySet` event upon successful execution. Reverts if the provided factory address is zero.","params":{"factory":"The address of the new factory contract. emits FactorySet When the new factory address is set."}},"setPublicDeploymentStatus(bool)":{"details":"Enables or disables public deployments. If the function call doesn't change the current status, it will revert. Only the owner can call this method. Emits a `PublicDeploymentStatusSet` event upon successful execution. Reverts with `PublicDeploymentAlreadyEnabled` if trying to enable when already enabled. Reverts with `PublicDeploymentAlreadyDisabled` if trying to disable when already disabled.","params":{"_isEnabled":"Determines if public deployments are enabled (`true`) or disabled (`false`). emits PublicDeploymentStatusSet When the new public deployment status is set."}},"transferFactoryOwnership(address)":{"details":"Only the owner can call this method. Utilizes the `transferOwnership` function of the Ownable pattern.","params":{"_newOwner":"Address of the new owner for the Factory contract."}}},"version":1},"userdoc":{"kind":"user","methods":{"addDeployer(address)":{"notice":"Adds an address to the list of approved deployers."},"applyFeeDiscount(address,uint16)":{"notice":"Applies a fee discount to a specific deployer's address."},"batchAddDeployer(address[])":{"notice":"Adds multiple addresses to the list of approved deployers in a single transaction."},"batchApplyFeeDiscount(address[],uint16[])":{"notice":"Applies fee discounts to multiple deployers in a single transaction."},"batchDeployTREXSuite((address,string,string,uint8,address,address,address[],address[],address[],bytes[])[],(uint256[],address[],uint256[][])[])":{"notice":"Deploys multiple TREX suites of contracts in a single transaction using provided arrays of token and claim details."},"batchRemoveDeployer(address[])":{"notice":"Removes multiple addresses from the list of approved deployers in a single transaction."},"calculateFee(address)":{"notice":"Calculates the deployment fee for a given deployer after accounting for any discounts."},"deployTREXSuite((address,string,string,uint8,address,address,address[],address[],address[],bytes[]),(uint256[],address[],uint256[][]))":{"notice":"Deploys a TREX suite of contracts using provided token and claim details."},"enableDeploymentFee(bool)":{"notice":"Toggles the deployment fee status for TREX contracts."},"getDeploymentFee()":{"notice":"Retrieves the current deployment fee details."},"getFactory()":{"notice":"Retrieves the address of the current Factory contract."},"getPublicDeploymentStatus()":{"notice":"Retrieves the current public deployment status."},"isDeployer(address)":{"notice":"Checks if the provided address is an approved deployer."},"isDeploymentFeeEnabled()":{"notice":"Checks if the deployment fee is currently enabled."},"removeDeployer(address)":{"notice":"Removes an address from the list of approved deployers."},"setDeploymentFee(uint256,address,address)":{"notice":"Sets the deployment fee details for TREX contracts."},"setFactory(address)":{"notice":"Sets the factory contract address used for deploying TREX smart contracts."},"setPublicDeploymentStatus(bool)":{"notice":"Sets the status for public deployments of TREX contracts."},"transferFactoryOwnership(address)":{"notice":"Transfers the ownership of the Factory contract."}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/factory/ITREXGateway.sol":"ITREXGateway"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/factory/ITREXFactory.sol":{"keccak256":"0xb95c6d68ed87b0b92621dc7f50d6c761e21fc98f5c5390e37df019127a9f6c9a","urls":["bzz-raw://4e38726754a9d9cf0ac73961ba6f7313dd3fea9ff6ea73e33ced23418f812939","dweb:/ipfs/QmQNgh8YNoDGguvSzRuTvKu7eXrqW8K53CxPkuq6RN8HnT"],"license":"GPL-3.0"},"contracts/erc3643/factory/ITREXGateway.sol":{"keccak256":"0xe3ef2958f4e1bd5ba55e0aba75a36ffec4a36dead2fce56e936e05832709e8bb","urls":["bzz-raw://403eb26109727e74d4759f8b567bd1ae584cded5f73f945180eebf8eee12bd56","dweb:/ipfs/QmWY4uPBDrSEUuY65G9hvkgfWkL6NEobqv7hefiTZyRq9o"],"license":"GPL-3.0"}},"version":1},"id":60} \ No newline at end of file diff --git a/out/ITREXImplementationAuthority.sol/ITREXImplementationAuthority.json b/out/ITREXImplementationAuthority.sol/ITREXImplementationAuthority.json new file mode 100644 index 0000000..2de7970 --- /dev/null +++ b/out/ITREXImplementationAuthority.sol/ITREXImplementationAuthority.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAndUseTREXVersion","inputs":[{"name":"_version","type":"tuple","internalType":"struct ITREXImplementationAuthority.Version","components":[{"name":"major","type":"uint8","internalType":"uint8"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"patch","type":"uint8","internalType":"uint8"}]},{"name":"_trex","type":"tuple","internalType":"struct ITREXImplementationAuthority.TREXContracts","components":[{"name":"tokenImplementation","type":"address","internalType":"address"},{"name":"ctrImplementation","type":"address","internalType":"address"},{"name":"irImplementation","type":"address","internalType":"address"},{"name":"irsImplementation","type":"address","internalType":"address"},{"name":"tirImplementation","type":"address","internalType":"address"},{"name":"mcImplementation","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTREXVersion","inputs":[{"name":"_version","type":"tuple","internalType":"struct ITREXImplementationAuthority.Version","components":[{"name":"major","type":"uint8","internalType":"uint8"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"patch","type":"uint8","internalType":"uint8"}]},{"name":"_trex","type":"tuple","internalType":"struct ITREXImplementationAuthority.TREXContracts","components":[{"name":"tokenImplementation","type":"address","internalType":"address"},{"name":"ctrImplementation","type":"address","internalType":"address"},{"name":"irImplementation","type":"address","internalType":"address"},{"name":"irsImplementation","type":"address","internalType":"address"},{"name":"tirImplementation","type":"address","internalType":"address"},{"name":"mcImplementation","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeImplementationAuthority","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_newImplementationAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fetchVersion","inputs":[{"name":"_version","type":"tuple","internalType":"struct ITREXImplementationAuthority.Version","components":[{"name":"major","type":"uint8","internalType":"uint8"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"patch","type":"uint8","internalType":"uint8"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCTRImplementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getContracts","inputs":[{"name":"_version","type":"tuple","internalType":"struct ITREXImplementationAuthority.Version","components":[{"name":"major","type":"uint8","internalType":"uint8"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"patch","type":"uint8","internalType":"uint8"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITREXImplementationAuthority.TREXContracts","components":[{"name":"tokenImplementation","type":"address","internalType":"address"},{"name":"ctrImplementation","type":"address","internalType":"address"},{"name":"irImplementation","type":"address","internalType":"address"},{"name":"irsImplementation","type":"address","internalType":"address"},{"name":"tirImplementation","type":"address","internalType":"address"},{"name":"mcImplementation","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getCurrentVersion","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ITREXImplementationAuthority.Version","components":[{"name":"major","type":"uint8","internalType":"uint8"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"patch","type":"uint8","internalType":"uint8"}]}],"stateMutability":"view"},{"type":"function","name":"getIRImplementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getIRSImplementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getMCImplementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getReferenceContract","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getTIRImplementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getTREXFactory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getTokenImplementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isReferenceContract","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setIAFactory","inputs":[{"name":"iaFactory","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTREXFactory","inputs":[{"name":"trexFactory","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"useTREXVersion","inputs":[{"name":"_version","type":"tuple","internalType":"struct ITREXImplementationAuthority.Version","components":[{"name":"major","type":"uint8","internalType":"uint8"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"patch","type":"uint8","internalType":"uint8"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"IAFactorySet","inputs":[{"name":"iaFactory","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ImplementationAuthorityChanged","inputs":[{"name":"_token","type":"address","indexed":true,"internalType":"address"},{"name":"_newImplementationAuthority","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ImplementationAuthoritySet","inputs":[{"name":"referenceStatus","type":"bool","indexed":false,"internalType":"bool"},{"name":"trexFactory","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TREXFactorySet","inputs":[{"name":"trexFactory","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TREXVersionAdded","inputs":[{"name":"version","type":"tuple","indexed":true,"internalType":"struct ITREXImplementationAuthority.Version","components":[{"name":"major","type":"uint8","internalType":"uint8"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"patch","type":"uint8","internalType":"uint8"}]},{"name":"trex","type":"tuple","indexed":true,"internalType":"struct ITREXImplementationAuthority.TREXContracts","components":[{"name":"tokenImplementation","type":"address","internalType":"address"},{"name":"ctrImplementation","type":"address","internalType":"address"},{"name":"irImplementation","type":"address","internalType":"address"},{"name":"irsImplementation","type":"address","internalType":"address"},{"name":"tirImplementation","type":"address","internalType":"address"},{"name":"mcImplementation","type":"address","internalType":"address"}]}],"anonymous":false},{"type":"event","name":"TREXVersionFetched","inputs":[{"name":"version","type":"tuple","indexed":true,"internalType":"struct ITREXImplementationAuthority.Version","components":[{"name":"major","type":"uint8","internalType":"uint8"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"patch","type":"uint8","internalType":"uint8"}]},{"name":"trex","type":"tuple","indexed":true,"internalType":"struct ITREXImplementationAuthority.TREXContracts","components":[{"name":"tokenImplementation","type":"address","internalType":"address"},{"name":"ctrImplementation","type":"address","internalType":"address"},{"name":"irImplementation","type":"address","internalType":"address"},{"name":"irsImplementation","type":"address","internalType":"address"},{"name":"tirImplementation","type":"address","internalType":"address"},{"name":"mcImplementation","type":"address","internalType":"address"}]}],"anonymous":false},{"type":"event","name":"VersionUpdated","inputs":[{"name":"version","type":"tuple","indexed":true,"internalType":"struct ITREXImplementationAuthority.Version","components":[{"name":"major","type":"uint8","internalType":"uint8"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"patch","type":"uint8","internalType":"uint8"}]}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addAndUseTREXVersion((uint8,uint8,uint8),(address,address,address,address,address,address))":"71673bd0","addTREXVersion((uint8,uint8,uint8),(address,address,address,address,address,address))":"9585548a","changeImplementationAuthority(address,address)":"7f82a5e7","fetchVersion((uint8,uint8,uint8))":"0f3ca8ca","getCTRImplementation()":"6ff6e83f","getContracts((uint8,uint8,uint8))":"afce4bea","getCurrentVersion()":"fabec44a","getIRImplementation()":"1ee9ce8b","getIRSImplementation()":"9e3e7bb9","getMCImplementation()":"61f89825","getReferenceContract()":"cd24be22","getTIRImplementation()":"fedcc052","getTREXFactory()":"2c5d4f8e","getTokenImplementation()":"709bc7f3","isReferenceContract()":"1320a65a","setIAFactory(address)":"cf49020e","setTREXFactory(address)":"6df23789","useTREXVersion((uint8,uint8,uint8))":"f38d2491"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"iaFactory\",\"type\":\"address\"}],\"name\":\"IAFactorySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newImplementationAuthority\",\"type\":\"address\"}],\"name\":\"ImplementationAuthorityChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"referenceStatus\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"trexFactory\",\"type\":\"address\"}],\"name\":\"ImplementationAuthoritySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"trexFactory\",\"type\":\"address\"}],\"name\":\"TREXFactorySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"major\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"patch\",\"type\":\"uint8\"}],\"indexed\":true,\"internalType\":\"struct ITREXImplementationAuthority.Version\",\"name\":\"version\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ctrImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irsImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tirImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mcImplementation\",\"type\":\"address\"}],\"indexed\":true,\"internalType\":\"struct ITREXImplementationAuthority.TREXContracts\",\"name\":\"trex\",\"type\":\"tuple\"}],\"name\":\"TREXVersionAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"major\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"patch\",\"type\":\"uint8\"}],\"indexed\":true,\"internalType\":\"struct ITREXImplementationAuthority.Version\",\"name\":\"version\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ctrImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irsImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tirImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mcImplementation\",\"type\":\"address\"}],\"indexed\":true,\"internalType\":\"struct ITREXImplementationAuthority.TREXContracts\",\"name\":\"trex\",\"type\":\"tuple\"}],\"name\":\"TREXVersionFetched\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"major\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"patch\",\"type\":\"uint8\"}],\"indexed\":true,\"internalType\":\"struct ITREXImplementationAuthority.Version\",\"name\":\"version\",\"type\":\"tuple\"}],\"name\":\"VersionUpdated\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"major\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"patch\",\"type\":\"uint8\"}],\"internalType\":\"struct ITREXImplementationAuthority.Version\",\"name\":\"_version\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ctrImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irsImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tirImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mcImplementation\",\"type\":\"address\"}],\"internalType\":\"struct ITREXImplementationAuthority.TREXContracts\",\"name\":\"_trex\",\"type\":\"tuple\"}],\"name\":\"addAndUseTREXVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"major\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"patch\",\"type\":\"uint8\"}],\"internalType\":\"struct ITREXImplementationAuthority.Version\",\"name\":\"_version\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ctrImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irsImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tirImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mcImplementation\",\"type\":\"address\"}],\"internalType\":\"struct ITREXImplementationAuthority.TREXContracts\",\"name\":\"_trex\",\"type\":\"tuple\"}],\"name\":\"addTREXVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newImplementationAuthority\",\"type\":\"address\"}],\"name\":\"changeImplementationAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"major\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"patch\",\"type\":\"uint8\"}],\"internalType\":\"struct ITREXImplementationAuthority.Version\",\"name\":\"_version\",\"type\":\"tuple\"}],\"name\":\"fetchVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCTRImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"major\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"patch\",\"type\":\"uint8\"}],\"internalType\":\"struct ITREXImplementationAuthority.Version\",\"name\":\"_version\",\"type\":\"tuple\"}],\"name\":\"getContracts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ctrImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irsImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tirImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mcImplementation\",\"type\":\"address\"}],\"internalType\":\"struct ITREXImplementationAuthority.TREXContracts\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentVersion\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"major\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"patch\",\"type\":\"uint8\"}],\"internalType\":\"struct ITREXImplementationAuthority.Version\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIRImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIRSImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMCImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReferenceContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTIRImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTREXFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReferenceContract\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"iaFactory\",\"type\":\"address\"}],\"name\":\"setIAFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"trexFactory\",\"type\":\"address\"}],\"name\":\"setTREXFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"major\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"patch\",\"type\":\"uint8\"}],\"internalType\":\"struct ITREXImplementationAuthority.Version\",\"name\":\"_version\",\"type\":\"tuple\"}],\"name\":\"useTREXVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addAndUseTREXVersion((uint8,uint8,uint8),(address,address,address,address,address,address))\":{\"details\":\"updates the current version in use by the proxies variation of the `useTREXVersion` allowing to use a new version this function calls in a single transaction the `addTREXVersion` and the `useTREXVersion` using an existing version\",\"params\":{\"_trex\":\"the set of contracts corresponding to the version only Owner can call (check performed in addTREXVersion) only reference contract can call (check performed in addTREXVersion) emits a `TREXVersionAdded`event emits a `VersionUpdated` event\",\"_version\":\"the version to use\"}},\"addTREXVersion((uint8,uint8,uint8),(address,address,address,address,address,address))\":{\"details\":\"adds a new Version of TREXContracts to the mapping only callable on the reference contract only Owner can call this function\",\"params\":{\"_trex\":\"the list of contracts corresponding to the new version _trex cannot contain zero addresses emits a `TREXVersionAdded` event\",\"_version\":\"the new version to add to the mapping\"}},\"changeImplementationAuthority(address,address)\":{\"details\":\"change the implementationAuthority address of all proxy contracts linked to a given token only the owner of all proxy contracts can call this function\",\"params\":{\"_newImplementationAuthority\":\"the address of the new IA contract caller has to be owner of all contracts linked to the token and impacted by the change Set _newImplementationAuthority on zero address to deploy a new IA contract New IA contracts can only be deployed ONCE per token and only if current IA is the main IA if _newImplementationAuthority is not a new contract it must be using the same version as the current IA contract. calls `setImplementationAuthority` on all proxies linked to the token emits a `ImplementationAuthorityChanged` event\",\"_token\":\"the address of the token proxy\"}},\"fetchVersion((uint8,uint8,uint8))\":{\"details\":\"allows to fetch a TREX version available on the reference contract can be called only from auxiliary contracts, not on reference (main) contract throws if the version was already fetched adds the new version on the local storage allowing the update of contracts through the `useTREXVersion` afterwards\"},\"getCTRImplementation()\":{\"details\":\"getter function returning address of ClaimTopicsRegistry contract implementation currently used by the proxies using this TREXImplementationAuthority\"},\"getContracts((uint8,uint8,uint8))\":{\"details\":\"getter function returning the contracts corresponding to a version\",\"params\":{\"_version\":\"the version that contracts are requested for\"}},\"getCurrentVersion()\":{\"details\":\"getter function returning the current version of contracts used by proxies\"},\"getIRImplementation()\":{\"details\":\"getter function returning address of IdentityRegistry contract implementation currently used by the proxies using this TREXImplementationAuthority\"},\"getIRSImplementation()\":{\"details\":\"getter function returning address of IdentityRegistryStorage contract implementation currently used by the proxies using this TREXImplementationAuthority\"},\"getMCImplementation()\":{\"details\":\"getter function returning address of ModularCompliance contract implementation currently used by the proxies using this TREXImplementationAuthority\"},\"getReferenceContract()\":{\"details\":\"getter for reference contract address\"},\"getTIRImplementation()\":{\"details\":\"getter function returning address of TrustedIssuersRegistry contract implementation currently used by the proxies using this TREXImplementationAuthority\"},\"getTREXFactory()\":{\"details\":\"getter function returning address of reference TREX factory\"},\"getTokenImplementation()\":{\"details\":\"getter function returning address of token contract implementation currently used by the proxies using this TREXImplementationAuthority\"},\"isReferenceContract()\":{\"details\":\"returns true if the contract is the main contract returns false if the contract is an auxiliary contract\"},\"setIAFactory(address)\":{\"details\":\"setter for _iaFactory variable _iaFactory is set at zero address for auxiliary contracts for main contract it can be set post-deployment or at deployment in the constructor\",\"params\":{\"iaFactory\":\"the address of IAFactory contract emits a IAFactorySet event only Owner can call can be called only on main contract, auxiliary contracts cannot call\"}},\"setTREXFactory(address)\":{\"details\":\"setter for _trexFactory variable _trexFactory is set at deployment for auxiliary contracts for main contract it must be set post-deployment as main IA is deployed before the TREXFactory.\",\"params\":{\"trexFactory\":\"the address of TREXFactory contract emits a TREXFactorySet event only Owner can call can be called only on main contract, auxiliary contracts cannot call\"}},\"useTREXVersion((uint8,uint8,uint8))\":{\"details\":\"updates the current version in use by the proxies\",\"params\":{\"_version\":\"the version to use reverts if _version is already used or if version does not exist only Owner can call emits a `VersionUpdated` event\"}}},\"version\":1},\"userdoc\":{\"events\":{\"IAFactorySet(address)\":{\"notice\":\"event emitted when the IA factory address is set\"},\"ImplementationAuthorityChanged(address,address)\":{\"notice\":\"event emitted when a token issuer decides to change current IA for a new one\"},\"ImplementationAuthoritySet(bool,address)\":{\"notice\":\"event emitted by the constructor when the IA is deployed\"},\"TREXFactorySet(address)\":{\"notice\":\"event emitted when the TREX factory address is set\"},\"TREXVersionAdded((uint8,uint8,uint8),(address,address,address,address,address,address))\":{\"notice\":\"event emitted when a new TREX version is added to the contract memory\"},\"TREXVersionFetched((uint8,uint8,uint8),(address,address,address,address,address,address))\":{\"notice\":\"event emitted when a new TREX version is fetched from reference contract by auxiliary contract\"},\"VersionUpdated((uint8,uint8,uint8))\":{\"notice\":\"event emitted when the current version is updated\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol\":\"ITREXImplementationAuthority\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol\":{\"keccak256\":\"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa\",\"dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"iaFactory","type":"address","indexed":true}],"type":"event","name":"IAFactorySet","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":true},{"internalType":"address","name":"_newImplementationAuthority","type":"address","indexed":true}],"type":"event","name":"ImplementationAuthorityChanged","anonymous":false},{"inputs":[{"internalType":"bool","name":"referenceStatus","type":"bool","indexed":false},{"internalType":"address","name":"trexFactory","type":"address","indexed":false}],"type":"event","name":"ImplementationAuthoritySet","anonymous":false},{"inputs":[{"internalType":"address","name":"trexFactory","type":"address","indexed":true}],"type":"event","name":"TREXFactorySet","anonymous":false},{"inputs":[{"internalType":"struct ITREXImplementationAuthority.Version","name":"version","type":"tuple","components":[{"internalType":"uint8","name":"major","type":"uint8"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"patch","type":"uint8"}],"indexed":true},{"internalType":"struct ITREXImplementationAuthority.TREXContracts","name":"trex","type":"tuple","components":[{"internalType":"address","name":"tokenImplementation","type":"address"},{"internalType":"address","name":"ctrImplementation","type":"address"},{"internalType":"address","name":"irImplementation","type":"address"},{"internalType":"address","name":"irsImplementation","type":"address"},{"internalType":"address","name":"tirImplementation","type":"address"},{"internalType":"address","name":"mcImplementation","type":"address"}],"indexed":true}],"type":"event","name":"TREXVersionAdded","anonymous":false},{"inputs":[{"internalType":"struct ITREXImplementationAuthority.Version","name":"version","type":"tuple","components":[{"internalType":"uint8","name":"major","type":"uint8"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"patch","type":"uint8"}],"indexed":true},{"internalType":"struct ITREXImplementationAuthority.TREXContracts","name":"trex","type":"tuple","components":[{"internalType":"address","name":"tokenImplementation","type":"address"},{"internalType":"address","name":"ctrImplementation","type":"address"},{"internalType":"address","name":"irImplementation","type":"address"},{"internalType":"address","name":"irsImplementation","type":"address"},{"internalType":"address","name":"tirImplementation","type":"address"},{"internalType":"address","name":"mcImplementation","type":"address"}],"indexed":true}],"type":"event","name":"TREXVersionFetched","anonymous":false},{"inputs":[{"internalType":"struct ITREXImplementationAuthority.Version","name":"version","type":"tuple","components":[{"internalType":"uint8","name":"major","type":"uint8"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"patch","type":"uint8"}],"indexed":true}],"type":"event","name":"VersionUpdated","anonymous":false},{"inputs":[{"internalType":"struct ITREXImplementationAuthority.Version","name":"_version","type":"tuple","components":[{"internalType":"uint8","name":"major","type":"uint8"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"patch","type":"uint8"}]},{"internalType":"struct ITREXImplementationAuthority.TREXContracts","name":"_trex","type":"tuple","components":[{"internalType":"address","name":"tokenImplementation","type":"address"},{"internalType":"address","name":"ctrImplementation","type":"address"},{"internalType":"address","name":"irImplementation","type":"address"},{"internalType":"address","name":"irsImplementation","type":"address"},{"internalType":"address","name":"tirImplementation","type":"address"},{"internalType":"address","name":"mcImplementation","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"addAndUseTREXVersion"},{"inputs":[{"internalType":"struct ITREXImplementationAuthority.Version","name":"_version","type":"tuple","components":[{"internalType":"uint8","name":"major","type":"uint8"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"patch","type":"uint8"}]},{"internalType":"struct ITREXImplementationAuthority.TREXContracts","name":"_trex","type":"tuple","components":[{"internalType":"address","name":"tokenImplementation","type":"address"},{"internalType":"address","name":"ctrImplementation","type":"address"},{"internalType":"address","name":"irImplementation","type":"address"},{"internalType":"address","name":"irsImplementation","type":"address"},{"internalType":"address","name":"tirImplementation","type":"address"},{"internalType":"address","name":"mcImplementation","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"addTREXVersion"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_newImplementationAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeImplementationAuthority"},{"inputs":[{"internalType":"struct ITREXImplementationAuthority.Version","name":"_version","type":"tuple","components":[{"internalType":"uint8","name":"major","type":"uint8"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"patch","type":"uint8"}]}],"stateMutability":"nonpayable","type":"function","name":"fetchVersion"},{"inputs":[],"stateMutability":"view","type":"function","name":"getCTRImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct ITREXImplementationAuthority.Version","name":"_version","type":"tuple","components":[{"internalType":"uint8","name":"major","type":"uint8"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"patch","type":"uint8"}]}],"stateMutability":"view","type":"function","name":"getContracts","outputs":[{"internalType":"struct ITREXImplementationAuthority.TREXContracts","name":"","type":"tuple","components":[{"internalType":"address","name":"tokenImplementation","type":"address"},{"internalType":"address","name":"ctrImplementation","type":"address"},{"internalType":"address","name":"irImplementation","type":"address"},{"internalType":"address","name":"irsImplementation","type":"address"},{"internalType":"address","name":"tirImplementation","type":"address"},{"internalType":"address","name":"mcImplementation","type":"address"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentVersion","outputs":[{"internalType":"struct ITREXImplementationAuthority.Version","name":"","type":"tuple","components":[{"internalType":"uint8","name":"major","type":"uint8"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"patch","type":"uint8"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIRImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIRSImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMCImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getReferenceContract","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTIRImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTREXFactory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTokenImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isReferenceContract","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"iaFactory","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setIAFactory"},{"inputs":[{"internalType":"address","name":"trexFactory","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTREXFactory"},{"inputs":[{"internalType":"struct ITREXImplementationAuthority.Version","name":"_version","type":"tuple","components":[{"internalType":"uint8","name":"major","type":"uint8"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"patch","type":"uint8"}]}],"stateMutability":"nonpayable","type":"function","name":"useTREXVersion"}],"devdoc":{"kind":"dev","methods":{"addAndUseTREXVersion((uint8,uint8,uint8),(address,address,address,address,address,address))":{"details":"updates the current version in use by the proxies variation of the `useTREXVersion` allowing to use a new version this function calls in a single transaction the `addTREXVersion` and the `useTREXVersion` using an existing version","params":{"_trex":"the set of contracts corresponding to the version only Owner can call (check performed in addTREXVersion) only reference contract can call (check performed in addTREXVersion) emits a `TREXVersionAdded`event emits a `VersionUpdated` event","_version":"the version to use"}},"addTREXVersion((uint8,uint8,uint8),(address,address,address,address,address,address))":{"details":"adds a new Version of TREXContracts to the mapping only callable on the reference contract only Owner can call this function","params":{"_trex":"the list of contracts corresponding to the new version _trex cannot contain zero addresses emits a `TREXVersionAdded` event","_version":"the new version to add to the mapping"}},"changeImplementationAuthority(address,address)":{"details":"change the implementationAuthority address of all proxy contracts linked to a given token only the owner of all proxy contracts can call this function","params":{"_newImplementationAuthority":"the address of the new IA contract caller has to be owner of all contracts linked to the token and impacted by the change Set _newImplementationAuthority on zero address to deploy a new IA contract New IA contracts can only be deployed ONCE per token and only if current IA is the main IA if _newImplementationAuthority is not a new contract it must be using the same version as the current IA contract. calls `setImplementationAuthority` on all proxies linked to the token emits a `ImplementationAuthorityChanged` event","_token":"the address of the token proxy"}},"fetchVersion((uint8,uint8,uint8))":{"details":"allows to fetch a TREX version available on the reference contract can be called only from auxiliary contracts, not on reference (main) contract throws if the version was already fetched adds the new version on the local storage allowing the update of contracts through the `useTREXVersion` afterwards"},"getCTRImplementation()":{"details":"getter function returning address of ClaimTopicsRegistry contract implementation currently used by the proxies using this TREXImplementationAuthority"},"getContracts((uint8,uint8,uint8))":{"details":"getter function returning the contracts corresponding to a version","params":{"_version":"the version that contracts are requested for"}},"getCurrentVersion()":{"details":"getter function returning the current version of contracts used by proxies"},"getIRImplementation()":{"details":"getter function returning address of IdentityRegistry contract implementation currently used by the proxies using this TREXImplementationAuthority"},"getIRSImplementation()":{"details":"getter function returning address of IdentityRegistryStorage contract implementation currently used by the proxies using this TREXImplementationAuthority"},"getMCImplementation()":{"details":"getter function returning address of ModularCompliance contract implementation currently used by the proxies using this TREXImplementationAuthority"},"getReferenceContract()":{"details":"getter for reference contract address"},"getTIRImplementation()":{"details":"getter function returning address of TrustedIssuersRegistry contract implementation currently used by the proxies using this TREXImplementationAuthority"},"getTREXFactory()":{"details":"getter function returning address of reference TREX factory"},"getTokenImplementation()":{"details":"getter function returning address of token contract implementation currently used by the proxies using this TREXImplementationAuthority"},"isReferenceContract()":{"details":"returns true if the contract is the main contract returns false if the contract is an auxiliary contract"},"setIAFactory(address)":{"details":"setter for _iaFactory variable _iaFactory is set at zero address for auxiliary contracts for main contract it can be set post-deployment or at deployment in the constructor","params":{"iaFactory":"the address of IAFactory contract emits a IAFactorySet event only Owner can call can be called only on main contract, auxiliary contracts cannot call"}},"setTREXFactory(address)":{"details":"setter for _trexFactory variable _trexFactory is set at deployment for auxiliary contracts for main contract it must be set post-deployment as main IA is deployed before the TREXFactory.","params":{"trexFactory":"the address of TREXFactory contract emits a TREXFactorySet event only Owner can call can be called only on main contract, auxiliary contracts cannot call"}},"useTREXVersion((uint8,uint8,uint8))":{"details":"updates the current version in use by the proxies","params":{"_version":"the version to use reverts if _version is already used or if version does not exist only Owner can call emits a `VersionUpdated` event"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol":"ITREXImplementationAuthority"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol":{"keccak256":"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5","urls":["bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa","dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc"],"license":"GPL-3.0"}},"version":1},"id":72} \ No newline at end of file diff --git a/out/IToken.sol/IToken.json b/out/IToken.sol/IToken.json new file mode 100644 index 0000000..a7c46d6 --- /dev/null +++ b/out/IToken.sol/IToken.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"batchBurn","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchForcedTransfer","inputs":[{"name":"_fromList","type":"address[]","internalType":"address[]"},{"name":"_toList","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchFreezePartialTokens","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchMint","inputs":[{"name":"_toList","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchSetAddressFrozen","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_freeze","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchTransfer","inputs":[{"name":"_toList","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchUnfreezePartialTokens","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burn","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"compliance","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IModularCompliance"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"forcedTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"freezePartialTokens","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getFrozenTokens","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"identityRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IIdentityRegistry"}],"stateMutability":"view"},{"type":"function","name":"isFrozen","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"onchainID","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"recoveryAddress","inputs":[{"name":"_lostWallet","type":"address","internalType":"address"},{"name":"_newWallet","type":"address","internalType":"address"},{"name":"_investorOnchainID","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"setAddressFrozen","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_freeze","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIdentityRegistry","inputs":[{"name":"_identityRegistry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setName","inputs":[{"name":"_name","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOnchainID","inputs":[{"name":"_onchainID","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSymbol","inputs":[{"name":"_symbol","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"unfreezePartialTokens","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"AddressFrozen","inputs":[{"name":"_userAddress","type":"address","indexed":true,"internalType":"address"},{"name":"_isFrozen","type":"bool","indexed":true,"internalType":"bool"},{"name":"_owner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ComplianceAdded","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"IdentityRegistryAdded","inputs":[{"name":"_identityRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"_userAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RecoverySuccess","inputs":[{"name":"_lostWallet","type":"address","indexed":true,"internalType":"address"},{"name":"_newWallet","type":"address","indexed":true,"internalType":"address"},{"name":"_investorOnchainID","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokensFrozen","inputs":[{"name":"_userAddress","type":"address","indexed":true,"internalType":"address"},{"name":"_amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TokensUnfrozen","inputs":[{"name":"_userAddress","type":"address","indexed":true,"internalType":"address"},{"name":"_amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"_userAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UpdatedTokenInformation","inputs":[{"name":"_newName","type":"string","indexed":true,"internalType":"string"},{"name":"_newSymbol","type":"string","indexed":true,"internalType":"string"},{"name":"_newDecimals","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"_newVersion","type":"string","indexed":false,"internalType":"string"},{"name":"_newOnchainID","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","batchBurn(address[],uint256[])":"4a6cc677","batchForcedTransfer(address[],address[],uint256[])":"42a47abc","batchFreezePartialTokens(address[],uint256[])":"fc7e5fa8","batchMint(address[],uint256[])":"68573107","batchSetAddressFrozen(address[],bool[])":"1a7af379","batchTransfer(address[],uint256[])":"88d695b2","batchUnfreezePartialTokens(address[],uint256[])":"4710362d","burn(address,uint256)":"9dc29fac","compliance()":"6290865d","decimals()":"313ce567","forcedTransfer(address,address,uint256)":"9fc1d0e7","freezePartialTokens(address,uint256)":"125c4a33","getFrozenTokens(address)":"158b1a57","identityRegistry()":"134e18f4","isFrozen(address)":"e5839836","mint(address,uint256)":"40c10f19","name()":"06fdde03","onchainID()":"aba63705","pause()":"8456cb59","paused()":"5c975abb","recoveryAddress(address,address,address)":"9285948a","setAddressFrozen(address,bool)":"c69c09cf","setCompliance(address)":"f8981789","setIdentityRegistry(address)":"cbf3f861","setName(string)":"c47f0027","setOnchainID(address)":"3d1ddc5b","setSymbol(string)":"b84c8246","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","unfreezePartialTokens(address,uint256)":"1fe56f7d","unpause()":"3f4ba83a","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"_isFrozen\",\"type\":\"bool\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"AddressFrozen\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_identityRegistry\",\"type\":\"address\"}],\"name\":\"IdentityRegistryAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_lostWallet\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newWallet\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_investorOnchainID\",\"type\":\"address\"}],\"name\":\"RecoverySuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"TokensFrozen\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"TokensUnfrozen\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"_newName\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"_newSymbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_newDecimals\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_newVersion\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newOnchainID\",\"type\":\"address\"}],\"name\":\"UpdatedTokenInformation\",\"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\":\"value\",\"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\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchBurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_fromList\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_toList\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchForcedTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchFreezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_toList\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"_freeze\",\"type\":\"bool[]\"}],\"name\":\"batchSetAddressFrozen\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_toList\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchUnfreezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"compliance\",\"outputs\":[{\"internalType\":\"contract IModularCompliance\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"forcedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"freezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"getFrozenTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identityRegistry\",\"outputs\":[{\"internalType\":\"contract IIdentityRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"isFrozen\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onchainID\",\"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\":[{\"internalType\":\"address\",\"name\":\"_lostWallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newWallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_investorOnchainID\",\"type\":\"address\"}],\"name\":\"recoveryAddress\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_freeze\",\"type\":\"bool\"}],\"name\":\"setAddressFrozen\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"setCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identityRegistry\",\"type\":\"address\"}],\"name\":\"setIdentityRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"setName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"setOnchainID\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"name\":\"setSymbol\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"unfreezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"interface\",\"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 a `value` amount of tokens 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 value of tokens owned by `account`.\"},\"batchBurn(address[],uint256[])\":{\"details\":\"function allowing to burn tokens in batch Require that the `_userAddresses` addresses are all verified addresses IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \\\"OUT OF GAS\\\" TRANSACTION\",\"params\":{\"_amounts\":\"The number of tokens to burn from the corresponding wallets This function can only be called by a wallet set as agent of the token emits _userAddresses.length `Transfer` events\",\"_userAddresses\":\"The addresses of the wallets concerned by the burn\"}},\"batchForcedTransfer(address[],address[],uint256[])\":{\"details\":\"function allowing to issue forced transfers in batch Require that `_amounts[i]` should not exceed available balance of `_fromList[i]`. Require that the `_toList` addresses are all verified addresses IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_fromList.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \\\"OUT OF GAS\\\" TRANSACTION\",\"params\":{\"_amounts\":\"The number of tokens to transfer to the corresponding receiver This function can only be called by a wallet set as agent of the token emits `TokensUnfrozen` events if `_amounts[i]` is higher than the free balance of `_fromList[i]` emits _fromList.length `Transfer` events\",\"_fromList\":\"The addresses of the senders\",\"_toList\":\"The addresses of the receivers\"}},\"batchFreezePartialTokens(address[],uint256[])\":{\"details\":\"function allowing to freeze tokens partially in batch IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \\\"OUT OF GAS\\\" TRANSACTION\",\"params\":{\"_amounts\":\"the amount of tokens to freeze on the corresponding address This function can only be called by a wallet set as agent of the token emits _userAddresses.length `TokensFrozen` events\",\"_userAddresses\":\"The addresses on which tokens need to be frozen\"}},\"batchMint(address[],uint256[])\":{\"details\":\"function allowing to mint tokens in batch Require that the `_toList` addresses are all verified addresses IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_toList.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \\\"OUT OF GAS\\\" TRANSACTION\",\"params\":{\"_amounts\":\"The number of tokens to mint to the corresponding receiver This function can only be called by a wallet set as agent of the token emits _toList.length `Transfer` events\",\"_toList\":\"The addresses of the receivers\"}},\"batchSetAddressFrozen(address[],bool[])\":{\"details\":\"function allowing to set frozen addresses in batch IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \\\"OUT OF GAS\\\" TRANSACTION\",\"params\":{\"_freeze\":\"Frozen status of the corresponding address This function can only be called by a wallet set as agent of the token emits _userAddresses.length `AddressFrozen` events\",\"_userAddresses\":\"The addresses for which to update frozen status\"}},\"batchTransfer(address[],uint256[])\":{\"details\":\"function allowing to issue transfers in batch Require that the msg.sender and `to` addresses are not frozen. Require that the total value should not exceed available balance. Require that the `to` addresses are all verified addresses, IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_toList.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \\\"OUT OF GAS\\\" TRANSACTION\",\"params\":{\"_amounts\":\"The number of tokens to transfer to the corresponding receiver emits _toList.length `Transfer` events\",\"_toList\":\"The addresses of the receivers\"}},\"batchUnfreezePartialTokens(address[],uint256[])\":{\"details\":\"function allowing to unfreeze tokens partially in batch IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \\\"OUT OF GAS\\\" TRANSACTION\",\"params\":{\"_amounts\":\"the amount of tokens to unfreeze on the corresponding address This function can only be called by a wallet set as agent of the token emits _userAddresses.length `TokensUnfrozen` events\",\"_userAddresses\":\"The addresses on which tokens need to be unfrozen\"}},\"burn(address,uint256)\":{\"details\":\"burn tokens on a wallet In case the `account` address has not enough free tokens (unfrozen tokens) but has a total balance higher or equal to the `value` amount the amount of frozen tokens is reduced in order to have enough free tokens to proceed the burn, in such a case, the remaining balance on the `account` is 100% composed of frozen tokens post-transaction.\",\"params\":{\"_amount\":\"Amount of tokens to burn. This function can only be called by a wallet set as agent of the token emits a `TokensUnfrozen` event if `_amount` is higher than the free balance of `_userAddress` emits a `Transfer` event\",\"_userAddress\":\"Address to burn the tokens from.\"}},\"compliance()\":{\"details\":\"Returns the Compliance contract linked to the token\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 1 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including balanceOf() and transfer().\"},\"forcedTransfer(address,address,uint256)\":{\"details\":\"force a transfer of tokens between 2 whitelisted wallets In case the `from` address has not enough free tokens (unfrozen tokens) but has a total balance higher or equal to the `amount` the amount of frozen tokens is reduced in order to have enough free tokens to proceed the transfer, in such a case, the remaining balance on the `from` account is 100% composed of frozen tokens post-transfer. Require that the `to` address is a verified address,\",\"params\":{\"_amount\":\"The number of tokens to transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"},\"returns\":{\"_0\":\"`true` if successful and revert if unsuccessful This function can only be called by a wallet set as agent of the token emits a `TokensUnfrozen` event if `_amount` is higher than the free balance of `_from` emits a `Transfer` event\"}},\"freezePartialTokens(address,uint256)\":{\"details\":\"freezes token amount specified for given address.\",\"params\":{\"_amount\":\"Amount of Tokens to be frozen This function can only be called by a wallet set as agent of the token emits a `TokensFrozen` event\",\"_userAddress\":\"The address for which to update frozen tokens\"}},\"getFrozenTokens(address)\":{\"details\":\"Returns the amount of tokens that are partially frozen on a wallet the amount of frozen tokens is always <= to the total balance of the wallet\",\"params\":{\"_userAddress\":\"the address of the wallet on which getFrozenTokens is called\"}},\"identityRegistry()\":{\"details\":\"Returns the Identity Registry linked to the token\"},\"isFrozen(address)\":{\"details\":\"Returns the freezing status of a wallet if isFrozen returns `true` the wallet is frozen if isFrozen returns `false` the wallet is not frozen isFrozen returning `true` doesn't mean that the balance is free, tokens could be blocked by a partial freeze or the whole token could be blocked by pause\",\"params\":{\"_userAddress\":\"the address of the wallet on which isFrozen is called\"}},\"mint(address,uint256)\":{\"details\":\"mint tokens on a wallet Improved version of default mint method. Tokens can be minted to an address if only it is a verified address as per the security token.\",\"params\":{\"_amount\":\"Amount of tokens to mint. This function can only be called by a wallet set as agent of the token emits a `Transfer` event\",\"_to\":\"Address to mint the tokens to.\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"onchainID()\":{\"details\":\"Returns the address of the onchainID of the token. the onchainID of the token gives all the information available about the token and is managed by the token issuer or his agent.\"},\"pause()\":{\"details\":\"pauses the token contract, when contract is paused investors cannot transfer tokens anymore This function can only be called by a wallet set as agent of the token emits a `Paused` event\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"recoveryAddress(address,address,address)\":{\"details\":\"recovery function used to force transfer tokens from a lost wallet to a new wallet for an investor.\",\"params\":{\"_investorOnchainID\":\"the onchainID of the investor asking for a recovery This function can only be called by a wallet set as agent of the token emits a `TokensUnfrozen` event if there is some frozen tokens on the lost wallet if the recovery process is successful emits a `Transfer` event if the recovery process is successful emits a `RecoverySuccess` event if the recovery process is successful emits a `RecoveryFails` event if the recovery process fails\",\"_lostWallet\":\"the wallet that the investor lost\",\"_newWallet\":\"the newly provided wallet on which tokens have to be transferred\"}},\"setAddressFrozen(address,bool)\":{\"details\":\"sets an address frozen status for this token.\",\"params\":{\"_freeze\":\"Frozen status of the address This function can only be called by a wallet set as agent of the token emits an `AddressFrozen` event\",\"_userAddress\":\"The address for which to update frozen status\"}},\"setCompliance(address)\":{\"details\":\"sets the compliance contract of the token\",\"params\":{\"_compliance\":\"the address of the compliance contract to set Only the owner of the token smart contract can call this function calls bindToken on the compliance contract emits a `ComplianceAdded` event\"}},\"setIdentityRegistry(address)\":{\"details\":\"sets the Identity Registry for the token\",\"params\":{\"_identityRegistry\":\"the address of the Identity Registry to set Only the owner of the token smart contract can call this function emits an `IdentityRegistryAdded` event\"}},\"setName(string)\":{\"details\":\"sets the token name\",\"params\":{\"_name\":\"the name of token to set Only the owner of the token smart contract can call this function emits a `UpdatedTokenInformation` event\"}},\"setOnchainID(address)\":{\"details\":\"sets the onchain ID of the token\",\"params\":{\"_onchainID\":\"the address of the onchain ID to set Only the owner of the token smart contract can call this function emits a `UpdatedTokenInformation` event\"}},\"setSymbol(string)\":{\"details\":\"sets the token symbol\",\"params\":{\"_symbol\":\"the token symbol to set Only the owner of the token smart contract can call this function emits a `UpdatedTokenInformation` event\"}},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of 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 a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"unfreezePartialTokens(address,uint256)\":{\"details\":\"unfreezes token amount specified for given address\",\"params\":{\"_amount\":\"Amount of Tokens to be unfrozen This function can only be called by a wallet set as agent of the token emits a `TokensUnfrozen` event\",\"_userAddress\":\"The address for which to update frozen tokens\"}},\"unpause()\":{\"details\":\"unpauses the token contract, when contract is unpaused investors can transfer tokens if their wallet is not blocked & if the amount to transfer is <= to the amount of free tokens This function can only be called by a wallet set as agent of the token emits an `Unpaused` event\"},\"version()\":{\"details\":\"Returns the TREX version of the token. current version is 3.0.0\"}},\"version\":1},\"userdoc\":{\"events\":{\"AddressFrozen(address,bool,address)\":{\"notice\":\"this event is emitted when the wallet of an investor is frozen or unfrozen the event is emitted by setAddressFrozen and batchSetAddressFrozen functions `_userAddress` is the wallet of the investor that is concerned by the freezing status `_isFrozen` is the freezing status of the wallet if `_isFrozen` equals `true` the wallet is frozen after emission of the event if `_isFrozen` equals `false` the wallet is unfrozen after emission of the event `_owner` is the address of the agent who called the function to freeze the wallet\"},\"ComplianceAdded(address)\":{\"notice\":\"this event is emitted when the Compliance has been set for the token the event is emitted by the token constructor and by the setCompliance function `_compliance` is the address of the Compliance contract of the token\"},\"IdentityRegistryAdded(address)\":{\"notice\":\"this event is emitted when the IdentityRegistry has been set for the token the event is emitted by the token constructor and by the setIdentityRegistry function `_identityRegistry` is the address of the Identity Registry of the token\"},\"Paused(address)\":{\"notice\":\"this event is emitted when the token is paused the event is emitted by the pause function `_userAddress` is the address of the wallet that called the pause function\"},\"RecoverySuccess(address,address,address)\":{\"notice\":\"this event is emitted when an investor successfully recovers his tokens the event is emitted by the recoveryAddress function `_lostWallet` is the address of the wallet that the investor lost access to `_newWallet` is the address of the wallet that the investor provided for the recovery `_investorOnchainID` is the address of the onchainID of the investor who asked for a recovery\"},\"TokensFrozen(address,uint256)\":{\"notice\":\"this event is emitted when a certain amount of tokens is frozen on a wallet the event is emitted by freezePartialTokens and batchFreezePartialTokens functions `_userAddress` is the wallet of the investor that is concerned by the freezing status `_amount` is the amount of tokens that are frozen\"},\"TokensUnfrozen(address,uint256)\":{\"notice\":\"this event is emitted when a certain amount of tokens is unfrozen on a wallet the event is emitted by unfreezePartialTokens and batchUnfreezePartialTokens functions `_userAddress` is the wallet of the investor that is concerned by the freezing status `_amount` is the amount of tokens that are unfrozen\"},\"Unpaused(address)\":{\"notice\":\"this event is emitted when the token is unpaused the event is emitted by the unpause function `_userAddress` is the address of the wallet that called the unpause function\"},\"UpdatedTokenInformation(string,string,uint8,string,address)\":{\"notice\":\"this event is emitted when the token information is updated. the event is emitted by the token init function and by the setTokenInformation function `_newName` is the name of the token `_newSymbol` is the symbol of the token `_newDecimals` is the decimals of the token `_newVersion` is the version of the token, current version is 3.0 `_newOnchainID` is the address of the onchainID of the token\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/token/IToken.sol\":\"IToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":true},{"internalType":"bool","name":"_isFrozen","type":"bool","indexed":true},{"internalType":"address","name":"_owner","type":"address","indexed":true}],"type":"event","name":"AddressFrozen","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_identityRegistry","type":"address","indexed":true}],"type":"event","name":"IdentityRegistryAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"_lostWallet","type":"address","indexed":true},{"internalType":"address","name":"_newWallet","type":"address","indexed":true},{"internalType":"address","name":"_investorOnchainID","type":"address","indexed":true}],"type":"event","name":"RecoverySuccess","anonymous":false},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":true},{"internalType":"uint256","name":"_amount","type":"uint256","indexed":false}],"type":"event","name":"TokensFrozen","anonymous":false},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":true},{"internalType":"uint256","name":"_amount","type":"uint256","indexed":false}],"type":"event","name":"TokensUnfrozen","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"string","name":"_newName","type":"string","indexed":true},{"internalType":"string","name":"_newSymbol","type":"string","indexed":true},{"internalType":"uint8","name":"_newDecimals","type":"uint8","indexed":false},{"internalType":"string","name":"_newVersion","type":"string","indexed":false},{"internalType":"address","name":"_newOnchainID","type":"address","indexed":true}],"type":"event","name":"UpdatedTokenInformation","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchBurn"},{"inputs":[{"internalType":"address[]","name":"_fromList","type":"address[]"},{"internalType":"address[]","name":"_toList","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchForcedTransfer"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchFreezePartialTokens"},{"inputs":[{"internalType":"address[]","name":"_toList","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchMint"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"bool[]","name":"_freeze","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"batchSetAddressFrozen"},{"inputs":[{"internalType":"address[]","name":"_toList","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchTransfer"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchUnfreezePartialTokens"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"compliance","outputs":[{"internalType":"contract IModularCompliance","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"forcedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"freezePartialTokens"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getFrozenTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"identityRegistry","outputs":[{"internalType":"contract IIdentityRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isFrozen","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"onchainID","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_lostWallet","type":"address"},{"internalType":"address","name":"_newWallet","type":"address"},{"internalType":"address","name":"_investorOnchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recoveryAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"bool","name":"_freeze","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setAddressFrozen"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setCompliance"},{"inputs":[{"internalType":"address","name":"_identityRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setIdentityRegistry"},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setName"},{"inputs":[{"internalType":"address","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOnchainID"},{"inputs":[{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setSymbol"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unfreezePartialTokens"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"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 a `value` amount of tokens 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 value of tokens owned by `account`."},"batchBurn(address[],uint256[])":{"details":"function allowing to burn tokens in batch Require that the `_userAddresses` addresses are all verified addresses IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \"OUT OF GAS\" TRANSACTION","params":{"_amounts":"The number of tokens to burn from the corresponding wallets This function can only be called by a wallet set as agent of the token emits _userAddresses.length `Transfer` events","_userAddresses":"The addresses of the wallets concerned by the burn"}},"batchForcedTransfer(address[],address[],uint256[])":{"details":"function allowing to issue forced transfers in batch Require that `_amounts[i]` should not exceed available balance of `_fromList[i]`. Require that the `_toList` addresses are all verified addresses IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_fromList.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \"OUT OF GAS\" TRANSACTION","params":{"_amounts":"The number of tokens to transfer to the corresponding receiver This function can only be called by a wallet set as agent of the token emits `TokensUnfrozen` events if `_amounts[i]` is higher than the free balance of `_fromList[i]` emits _fromList.length `Transfer` events","_fromList":"The addresses of the senders","_toList":"The addresses of the receivers"}},"batchFreezePartialTokens(address[],uint256[])":{"details":"function allowing to freeze tokens partially in batch IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \"OUT OF GAS\" TRANSACTION","params":{"_amounts":"the amount of tokens to freeze on the corresponding address This function can only be called by a wallet set as agent of the token emits _userAddresses.length `TokensFrozen` events","_userAddresses":"The addresses on which tokens need to be frozen"}},"batchMint(address[],uint256[])":{"details":"function allowing to mint tokens in batch Require that the `_toList` addresses are all verified addresses IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_toList.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \"OUT OF GAS\" TRANSACTION","params":{"_amounts":"The number of tokens to mint to the corresponding receiver This function can only be called by a wallet set as agent of the token emits _toList.length `Transfer` events","_toList":"The addresses of the receivers"}},"batchSetAddressFrozen(address[],bool[])":{"details":"function allowing to set frozen addresses in batch IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \"OUT OF GAS\" TRANSACTION","params":{"_freeze":"Frozen status of the corresponding address This function can only be called by a wallet set as agent of the token emits _userAddresses.length `AddressFrozen` events","_userAddresses":"The addresses for which to update frozen status"}},"batchTransfer(address[],uint256[])":{"details":"function allowing to issue transfers in batch Require that the msg.sender and `to` addresses are not frozen. Require that the total value should not exceed available balance. Require that the `to` addresses are all verified addresses, IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_toList.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \"OUT OF GAS\" TRANSACTION","params":{"_amounts":"The number of tokens to transfer to the corresponding receiver emits _toList.length `Transfer` events","_toList":"The addresses of the receivers"}},"batchUnfreezePartialTokens(address[],uint256[])":{"details":"function allowing to unfreeze tokens partially in batch IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \"OUT OF GAS\" TRANSACTION","params":{"_amounts":"the amount of tokens to unfreeze on the corresponding address This function can only be called by a wallet set as agent of the token emits _userAddresses.length `TokensUnfrozen` events","_userAddresses":"The addresses on which tokens need to be unfrozen"}},"burn(address,uint256)":{"details":"burn tokens on a wallet In case the `account` address has not enough free tokens (unfrozen tokens) but has a total balance higher or equal to the `value` amount the amount of frozen tokens is reduced in order to have enough free tokens to proceed the burn, in such a case, the remaining balance on the `account` is 100% composed of frozen tokens post-transaction.","params":{"_amount":"Amount of tokens to burn. This function can only be called by a wallet set as agent of the token emits a `TokensUnfrozen` event if `_amount` is higher than the free balance of `_userAddress` emits a `Transfer` event","_userAddress":"Address to burn the tokens from."}},"compliance()":{"details":"Returns the Compliance contract linked to the token"},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 1 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including balanceOf() and transfer()."},"forcedTransfer(address,address,uint256)":{"details":"force a transfer of tokens between 2 whitelisted wallets In case the `from` address has not enough free tokens (unfrozen tokens) but has a total balance higher or equal to the `amount` the amount of frozen tokens is reduced in order to have enough free tokens to proceed the transfer, in such a case, the remaining balance on the `from` account is 100% composed of frozen tokens post-transfer. Require that the `to` address is a verified address,","params":{"_amount":"The number of tokens to transfer","_from":"The address of the sender","_to":"The address of the receiver"},"returns":{"_0":"`true` if successful and revert if unsuccessful This function can only be called by a wallet set as agent of the token emits a `TokensUnfrozen` event if `_amount` is higher than the free balance of `_from` emits a `Transfer` event"}},"freezePartialTokens(address,uint256)":{"details":"freezes token amount specified for given address.","params":{"_amount":"Amount of Tokens to be frozen This function can only be called by a wallet set as agent of the token emits a `TokensFrozen` event","_userAddress":"The address for which to update frozen tokens"}},"getFrozenTokens(address)":{"details":"Returns the amount of tokens that are partially frozen on a wallet the amount of frozen tokens is always <= to the total balance of the wallet","params":{"_userAddress":"the address of the wallet on which getFrozenTokens is called"}},"identityRegistry()":{"details":"Returns the Identity Registry linked to the token"},"isFrozen(address)":{"details":"Returns the freezing status of a wallet if isFrozen returns `true` the wallet is frozen if isFrozen returns `false` the wallet is not frozen isFrozen returning `true` doesn't mean that the balance is free, tokens could be blocked by a partial freeze or the whole token could be blocked by pause","params":{"_userAddress":"the address of the wallet on which isFrozen is called"}},"mint(address,uint256)":{"details":"mint tokens on a wallet Improved version of default mint method. Tokens can be minted to an address if only it is a verified address as per the security token.","params":{"_amount":"Amount of tokens to mint. This function can only be called by a wallet set as agent of the token emits a `Transfer` event","_to":"Address to mint the tokens to."}},"name()":{"details":"Returns the name of the token."},"onchainID()":{"details":"Returns the address of the onchainID of the token. the onchainID of the token gives all the information available about the token and is managed by the token issuer or his agent."},"pause()":{"details":"pauses the token contract, when contract is paused investors cannot transfer tokens anymore This function can only be called by a wallet set as agent of the token emits a `Paused` event"},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"recoveryAddress(address,address,address)":{"details":"recovery function used to force transfer tokens from a lost wallet to a new wallet for an investor.","params":{"_investorOnchainID":"the onchainID of the investor asking for a recovery This function can only be called by a wallet set as agent of the token emits a `TokensUnfrozen` event if there is some frozen tokens on the lost wallet if the recovery process is successful emits a `Transfer` event if the recovery process is successful emits a `RecoverySuccess` event if the recovery process is successful emits a `RecoveryFails` event if the recovery process fails","_lostWallet":"the wallet that the investor lost","_newWallet":"the newly provided wallet on which tokens have to be transferred"}},"setAddressFrozen(address,bool)":{"details":"sets an address frozen status for this token.","params":{"_freeze":"Frozen status of the address This function can only be called by a wallet set as agent of the token emits an `AddressFrozen` event","_userAddress":"The address for which to update frozen status"}},"setCompliance(address)":{"details":"sets the compliance contract of the token","params":{"_compliance":"the address of the compliance contract to set Only the owner of the token smart contract can call this function calls bindToken on the compliance contract emits a `ComplianceAdded` event"}},"setIdentityRegistry(address)":{"details":"sets the Identity Registry for the token","params":{"_identityRegistry":"the address of the Identity Registry to set Only the owner of the token smart contract can call this function emits an `IdentityRegistryAdded` event"}},"setName(string)":{"details":"sets the token name","params":{"_name":"the name of token to set Only the owner of the token smart contract can call this function emits a `UpdatedTokenInformation` event"}},"setOnchainID(address)":{"details":"sets the onchain ID of the token","params":{"_onchainID":"the address of the onchain ID to set Only the owner of the token smart contract can call this function emits a `UpdatedTokenInformation` event"}},"setSymbol(string)":{"details":"sets the token symbol","params":{"_symbol":"the token symbol to set Only the owner of the token smart contract can call this function emits a `UpdatedTokenInformation` event"}},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of 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 a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"unfreezePartialTokens(address,uint256)":{"details":"unfreezes token amount specified for given address","params":{"_amount":"Amount of Tokens to be unfrozen This function can only be called by a wallet set as agent of the token emits a `TokensUnfrozen` event","_userAddress":"The address for which to update frozen tokens"}},"unpause()":{"details":"unpauses the token contract, when contract is unpaused investors can transfer tokens if their wallet is not blocked & if the amount to transfer is <= to the amount of free tokens This function can only be called by a wallet set as agent of the token emits an `Unpaused` event"},"version()":{"details":"Returns the TREX version of the token. current version is 3.0.0"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/token/IToken.sol":"IToken"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"}},"version":1},"id":96} \ No newline at end of file diff --git a/out/ITrustedIssuersRegistry.sol/ITrustedIssuersRegistry.json b/out/ITrustedIssuersRegistry.sol/ITrustedIssuersRegistry.json new file mode 100644 index 0000000..149e42d --- /dev/null +++ b/out/ITrustedIssuersRegistry.sol/ITrustedIssuersRegistry.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addTrustedIssuer","inputs":[{"name":"_trustedIssuer","type":"address","internalType":"contract IClaimIssuer"},{"name":"_claimTopics","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getTrustedIssuerClaimTopics","inputs":[{"name":"_trustedIssuer","type":"address","internalType":"contract IClaimIssuer"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getTrustedIssuers","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"contract IClaimIssuer[]"}],"stateMutability":"view"},{"type":"function","name":"getTrustedIssuersForClaimTopic","inputs":[{"name":"claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"contract IClaimIssuer[]"}],"stateMutability":"view"},{"type":"function","name":"hasClaimTopic","inputs":[{"name":"_issuer","type":"address","internalType":"address"},{"name":"_claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTrustedIssuer","inputs":[{"name":"_issuer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeTrustedIssuer","inputs":[{"name":"_trustedIssuer","type":"address","internalType":"contract IClaimIssuer"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateIssuerClaimTopics","inputs":[{"name":"_trustedIssuer","type":"address","internalType":"contract IClaimIssuer"},{"name":"_claimTopics","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ClaimTopicsUpdated","inputs":[{"name":"trustedIssuer","type":"address","indexed":true,"internalType":"contract IClaimIssuer"},{"name":"claimTopics","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TrustedIssuerAdded","inputs":[{"name":"trustedIssuer","type":"address","indexed":true,"internalType":"contract IClaimIssuer"},{"name":"claimTopics","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TrustedIssuerRemoved","inputs":[{"name":"trustedIssuer","type":"address","indexed":true,"internalType":"contract IClaimIssuer"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addTrustedIssuer(address,uint256[])":"9f63ea98","getTrustedIssuerClaimTopics(address)":"c28fb278","getTrustedIssuers()":"d9dd24c5","getTrustedIssuersForClaimTopic(uint256)":"52c111d1","hasClaimTopic(address,uint256)":"34a89987","isTrustedIssuer(address)":"ef2ed1a4","removeTrustedIssuer(address)":"b93d28eb","updateIssuerClaimTopics(address,uint256[])":"04bc7e84"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"ClaimTopicsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"TrustedIssuerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"}],\"name\":\"TrustedIssuerRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"_trustedIssuer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"addTrustedIssuer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"_trustedIssuer\",\"type\":\"address\"}],\"name\":\"getTrustedIssuerClaimTopics\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTrustedIssuers\",\"outputs\":[{\"internalType\":\"contract IClaimIssuer[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"getTrustedIssuersForClaimTopic\",\"outputs\":[{\"internalType\":\"contract IClaimIssuer[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_issuer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_claimTopic\",\"type\":\"uint256\"}],\"name\":\"hasClaimTopic\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_issuer\",\"type\":\"address\"}],\"name\":\"isTrustedIssuer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"_trustedIssuer\",\"type\":\"address\"}],\"name\":\"removeTrustedIssuer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"_trustedIssuer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"updateIssuerClaimTopics\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addTrustedIssuer(address,uint256[])\":{\"details\":\"registers a ClaimIssuer contract as trusted claim issuer. Requires that a ClaimIssuer contract doesn't already exist Requires that the claimTopics set is not empty Requires that there is no more than 15 claimTopics Requires that there is no more than 50 Trusted issuers\",\"params\":{\"_claimTopics\":\"the set of claim topics that the trusted issuer is allowed to emit This function can only be called by the owner of the Trusted Issuers Registry contract emits a `TrustedIssuerAdded` event\",\"_trustedIssuer\":\"The ClaimIssuer contract address of the trusted claim issuer.\"}},\"getTrustedIssuerClaimTopics(address)\":{\"details\":\"Function for getting all the claim topic of trusted claim issuer Requires the provided ClaimIssuer contract to be registered in the trusted issuers registry.\",\"params\":{\"_trustedIssuer\":\"the trusted issuer concerned.\"},\"returns\":{\"_0\":\"The set of claim topics that the trusted issuer is allowed to emit\"}},\"getTrustedIssuers()\":{\"details\":\"Function for getting all the trusted claim issuers stored.\",\"returns\":{\"_0\":\"array of all claim issuers registered.\"}},\"getTrustedIssuersForClaimTopic(uint256)\":{\"details\":\"Function for getting all the trusted issuer allowed for a given claim topic.\",\"params\":{\"claimTopic\":\"the claim topic to get the trusted issuers for.\"},\"returns\":{\"_0\":\"array of all claim issuer addresses that are allowed for the given claim topic.\"}},\"hasClaimTopic(address,uint256)\":{\"details\":\"Function for checking if the trusted claim issuer is allowed to emit a certain claim topic\",\"params\":{\"_claimTopic\":\"the Claim Topic that has to be checked to know if the `issuer` is allowed to emit it\",\"_issuer\":\"the address of the trusted issuer's ClaimIssuer contract\"},\"returns\":{\"_0\":\"true if the issuer is trusted for this claim topic.\"}},\"isTrustedIssuer(address)\":{\"details\":\"Checks if the ClaimIssuer contract is trusted\",\"params\":{\"_issuer\":\"the address of the ClaimIssuer contract\"},\"returns\":{\"_0\":\"true if the issuer is trusted, false otherwise.\"}},\"removeTrustedIssuer(address)\":{\"details\":\"Removes the ClaimIssuer contract of a trusted claim issuer. Requires that the claim issuer contract to be registered first\",\"params\":{\"_trustedIssuer\":\"the claim issuer to remove. This function can only be called by the owner of the Trusted Issuers Registry contract emits a `TrustedIssuerRemoved` event\"}},\"updateIssuerClaimTopics(address,uint256[])\":{\"details\":\"Updates the set of claim topics that a trusted issuer is allowed to emit. Requires that this ClaimIssuer contract already exists in the registry Requires that the provided claimTopics set is not empty Requires that there is no more than 15 claimTopics\",\"params\":{\"_claimTopics\":\"the set of claim topics that the trusted issuer is allowed to emit This function can only be called by the owner of the Trusted Issuers Registry contract emits a `ClaimTopicsUpdated` event\",\"_trustedIssuer\":\"the claim issuer to update.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ClaimTopicsUpdated(address,uint256[])\":{\"notice\":\"this event is emitted when the set of claim topics is changed for a given trusted issuer. the event is emitted by the updateIssuerClaimTopics function `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract `claimTopics` is the set of claims that the trusted issuer is allowed to emit\"},\"TrustedIssuerAdded(address,uint256[])\":{\"notice\":\"this event is emitted when a trusted issuer is added in the registry. the event is emitted by the addTrustedIssuer function `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract `claimTopics` is the set of claims that the trusted issuer is allowed to emit\"},\"TrustedIssuerRemoved(address)\":{\"notice\":\"this event is emitted when a trusted issuer is removed from the registry. the event is emitted by the removeTrustedIssuer function `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":\"ITrustedIssuersRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address","indexed":true},{"internalType":"uint256[]","name":"claimTopics","type":"uint256[]","indexed":false}],"type":"event","name":"ClaimTopicsUpdated","anonymous":false},{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address","indexed":true},{"internalType":"uint256[]","name":"claimTopics","type":"uint256[]","indexed":false}],"type":"event","name":"TrustedIssuerAdded","anonymous":false},{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address","indexed":true}],"type":"event","name":"TrustedIssuerRemoved","anonymous":false},{"inputs":[{"internalType":"contract IClaimIssuer","name":"_trustedIssuer","type":"address"},{"internalType":"uint256[]","name":"_claimTopics","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"addTrustedIssuer"},{"inputs":[{"internalType":"contract IClaimIssuer","name":"_trustedIssuer","type":"address"}],"stateMutability":"view","type":"function","name":"getTrustedIssuerClaimTopics","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTrustedIssuers","outputs":[{"internalType":"contract IClaimIssuer[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256"}],"stateMutability":"view","type":"function","name":"getTrustedIssuersForClaimTopic","outputs":[{"internalType":"contract IClaimIssuer[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_issuer","type":"address"},{"internalType":"uint256","name":"_claimTopic","type":"uint256"}],"stateMutability":"view","type":"function","name":"hasClaimTopic","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_issuer","type":"address"}],"stateMutability":"view","type":"function","name":"isTrustedIssuer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"contract IClaimIssuer","name":"_trustedIssuer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTrustedIssuer"},{"inputs":[{"internalType":"contract IClaimIssuer","name":"_trustedIssuer","type":"address"},{"internalType":"uint256[]","name":"_claimTopics","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"updateIssuerClaimTopics"}],"devdoc":{"kind":"dev","methods":{"addTrustedIssuer(address,uint256[])":{"details":"registers a ClaimIssuer contract as trusted claim issuer. Requires that a ClaimIssuer contract doesn't already exist Requires that the claimTopics set is not empty Requires that there is no more than 15 claimTopics Requires that there is no more than 50 Trusted issuers","params":{"_claimTopics":"the set of claim topics that the trusted issuer is allowed to emit This function can only be called by the owner of the Trusted Issuers Registry contract emits a `TrustedIssuerAdded` event","_trustedIssuer":"The ClaimIssuer contract address of the trusted claim issuer."}},"getTrustedIssuerClaimTopics(address)":{"details":"Function for getting all the claim topic of trusted claim issuer Requires the provided ClaimIssuer contract to be registered in the trusted issuers registry.","params":{"_trustedIssuer":"the trusted issuer concerned."},"returns":{"_0":"The set of claim topics that the trusted issuer is allowed to emit"}},"getTrustedIssuers()":{"details":"Function for getting all the trusted claim issuers stored.","returns":{"_0":"array of all claim issuers registered."}},"getTrustedIssuersForClaimTopic(uint256)":{"details":"Function for getting all the trusted issuer allowed for a given claim topic.","params":{"claimTopic":"the claim topic to get the trusted issuers for."},"returns":{"_0":"array of all claim issuer addresses that are allowed for the given claim topic."}},"hasClaimTopic(address,uint256)":{"details":"Function for checking if the trusted claim issuer is allowed to emit a certain claim topic","params":{"_claimTopic":"the Claim Topic that has to be checked to know if the `issuer` is allowed to emit it","_issuer":"the address of the trusted issuer's ClaimIssuer contract"},"returns":{"_0":"true if the issuer is trusted for this claim topic."}},"isTrustedIssuer(address)":{"details":"Checks if the ClaimIssuer contract is trusted","params":{"_issuer":"the address of the ClaimIssuer contract"},"returns":{"_0":"true if the issuer is trusted, false otherwise."}},"removeTrustedIssuer(address)":{"details":"Removes the ClaimIssuer contract of a trusted claim issuer. Requires that the claim issuer contract to be registered first","params":{"_trustedIssuer":"the claim issuer to remove. This function can only be called by the owner of the Trusted Issuers Registry contract emits a `TrustedIssuerRemoved` event"}},"updateIssuerClaimTopics(address,uint256[])":{"details":"Updates the set of claim topics that a trusted issuer is allowed to emit. Requires that this ClaimIssuer contract already exists in the registry Requires that the provided claimTopics set is not empty Requires that there is no more than 15 claimTopics","params":{"_claimTopics":"the set of claim topics that the trusted issuer is allowed to emit This function can only be called by the owner of the Trusted Issuers Registry contract emits a `ClaimTopicsUpdated` event","_trustedIssuer":"the claim issuer to update."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":"ITrustedIssuersRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"}},"version":1},"id":82} \ No newline at end of file diff --git a/out/IVaultFactory.sol/IVaultFactory.json b/out/IVaultFactory.sol/IVaultFactory.json new file mode 100644 index 0000000..f759267 --- /dev/null +++ b/out/IVaultFactory.sol/IVaultFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"deployVault","inputs":[{"name":"salt","type":"string","internalType":"string"},{"name":"vaultDetails","type":"tuple","internalType":"struct IVaultFactory.VaultDetails","components":[{"name":"stakingToken","type":"address","internalType":"address"},{"name":"shareTokenName","type":"string","internalType":"string"},{"name":"shareTokenSymbol","type":"string","internalType":"string"},{"name":"vaultRewardController","type":"address","internalType":"address"},{"name":"feeConfigController","type":"address","internalType":"address"}]},{"name":"feeConfig","type":"tuple","internalType":"struct FeeConfiguration.FeeConfig","components":[{"name":"receiver","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"feePercentage","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"vault","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"isVaultAvailable","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"VaultDeployed","inputs":[{"name":"vault","type":"address","indexed":true,"internalType":"address"},{"name":"name","type":"string","indexed":false,"internalType":"string"},{"name":"symbol","type":"string","indexed":false,"internalType":"string"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"deployVault(string,(address,string,string,address,address),(address,address,uint256))":"7bac419d","isVaultAvailable(address)":"f26eb0fd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"VaultDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"salt\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"stakingToken\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"shareTokenName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"shareTokenSymbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"vaultRewardController\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feeConfigController\",\"type\":\"address\"}],\"internalType\":\"struct IVaultFactory.VaultDetails\",\"name\":\"vaultDetails\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feePercentage\",\"type\":\"uint256\"}],\"internalType\":\"struct FeeConfiguration.FeeConfig\",\"name\":\"feeConfig\",\"type\":\"tuple\"}],\"name\":\"deployVault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"isVaultAvailable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"VaultDeployed(address,string,string)\":{\"details\":\"Emitted after Vault deployment.\",\"params\":{\"name\":\"The name of the deployed Vault.\",\"symbol\":\"The symbol of the deployed Vault.\",\"vault\":\"The address of the deployed Vault.\"}}},\"kind\":\"dev\",\"methods\":{\"deployVault(string,(address,string,string,address,address),(address,address,uint256))\":{\"details\":\"Deploys a Vault using CREATE2 opcode.\",\"params\":{\"feeConfig\":\"The fee configuration setup for Vault.\",\"salt\":\"The CREATE2 salt.\",\"vaultDetails\":\"The Vault parameters.\"},\"returns\":{\"vault\":\"The address of the deployed Vault.\"}},\"isVaultAvailable(address)\":{\"details\":\"Checks if Vault is available.\",\"returns\":{\"_0\":\"The bool flag of vault's availability.\"}}},\"title\":\"Vault Factory The contract which allows to deploy Vaults with different parameters and track contract addresses.\",\"version\":1},\"userdoc\":{\"events\":{\"VaultDeployed(address,string,string)\":{\"notice\":\"VaultDeployed event.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc4626/factory/IVaultFactory.sol\":\"IVaultFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/FeeConfiguration.sol\":{\"keccak256\":\"0xd576dc5a2f8d782ff3311e6207641c78ea68f68d8cf0c8ce9c06571316e559a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084d049afbfe5d85e397e6f3c118edafe57db19540c6462ea9a0ac2cc99c7f69\",\"dweb:/ipfs/QmXrsuHjQGJRCc7e5HodYLgmb5HKMfC1xPSL7ncKSTHvak\"]},\"contracts/common/safe-HTS/HederaResponseCodes.sol\":{\"keccak256\":\"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca\",\"dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G\"]},\"contracts/common/safe-HTS/IHederaTokenService.sol\":{\"keccak256\":\"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786\",\"dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W\"]},\"contracts/common/safe-HTS/SafeHTS.sol\":{\"keccak256\":\"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe\",\"dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7\"]},\"contracts/erc4626/factory/IVaultFactory.sol\":{\"keccak256\":\"0xd3651257845b7bc2e3c6c123daf01fdab212dfcee95265dd34b00ae466c5f3d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dfdeb56a2cfc78fb15d9afd3fd6094763e9d10e86d55e73ac2106b5457f807\",\"dweb:/ipfs/QmUj1LHyTobZeEZJoV8aWaQaPh5v2s7DDmeovyyxpCxdLi\"]},\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"vault","type":"address","indexed":true},{"internalType":"string","name":"name","type":"string","indexed":false},{"internalType":"string","name":"symbol","type":"string","indexed":false}],"type":"event","name":"VaultDeployed","anonymous":false},{"inputs":[{"internalType":"string","name":"salt","type":"string"},{"internalType":"struct IVaultFactory.VaultDetails","name":"vaultDetails","type":"tuple","components":[{"internalType":"address","name":"stakingToken","type":"address"},{"internalType":"string","name":"shareTokenName","type":"string"},{"internalType":"string","name":"shareTokenSymbol","type":"string"},{"internalType":"address","name":"vaultRewardController","type":"address"},{"internalType":"address","name":"feeConfigController","type":"address"}]},{"internalType":"struct FeeConfiguration.FeeConfig","name":"feeConfig","type":"tuple","components":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"feePercentage","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"deployVault","outputs":[{"internalType":"address","name":"vault","type":"address"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"view","type":"function","name":"isVaultAvailable","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"deployVault(string,(address,string,string,address,address),(address,address,uint256))":{"details":"Deploys a Vault using CREATE2 opcode.","params":{"feeConfig":"The fee configuration setup for Vault.","salt":"The CREATE2 salt.","vaultDetails":"The Vault parameters."},"returns":{"vault":"The address of the deployed Vault."}},"isVaultAvailable(address)":{"details":"Checks if Vault is available.","returns":{"_0":"The bool flag of vault's availability."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc4626/factory/IVaultFactory.sol":"IVaultFactory"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/FeeConfiguration.sol":{"keccak256":"0xd576dc5a2f8d782ff3311e6207641c78ea68f68d8cf0c8ce9c06571316e559a7","urls":["bzz-raw://084d049afbfe5d85e397e6f3c118edafe57db19540c6462ea9a0ac2cc99c7f69","dweb:/ipfs/QmXrsuHjQGJRCc7e5HodYLgmb5HKMfC1xPSL7ncKSTHvak"],"license":"MIT"},"contracts/common/safe-HTS/HederaResponseCodes.sol":{"keccak256":"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324","urls":["bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca","dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G"],"license":"Apache-2.0"},"contracts/common/safe-HTS/IHederaTokenService.sol":{"keccak256":"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735","urls":["bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786","dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W"],"license":"Apache-2.0"},"contracts/common/safe-HTS/SafeHTS.sol":{"keccak256":"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10","urls":["bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe","dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7"],"license":"Apache-2.0"},"contracts/erc4626/factory/IVaultFactory.sol":{"keccak256":"0xd3651257845b7bc2e3c6c123daf01fdab212dfcee95265dd34b00ae466c5f3d9","urls":["bzz-raw://29dfdeb56a2cfc78fb15d9afd3fd6094763e9d10e86d55e73ac2106b5457f807","dweb:/ipfs/QmUj1LHyTobZeEZJoV8aWaQaPh5v2s7DDmeovyyxpCxdLi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":105} \ No newline at end of file diff --git a/out/IdFactory.sol/IdFactory.json b/out/IdFactory.sol/IdFactory.json new file mode 100644 index 0000000..54f0264 --- /dev/null +++ b/out/IdFactory.sol/IdFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"implementationAuthority","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenFactory","inputs":[{"name":"_factory","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createIdentity","inputs":[{"name":"_wallet","type":"address","internalType":"address"},{"name":"_salt","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createIdentityWithManagementKeys","inputs":[{"name":"_wallet","type":"address","internalType":"address"},{"name":"_salt","type":"string","internalType":"string"},{"name":"_managementKeys","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createTokenIdentity","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_tokenOwner","type":"address","internalType":"address"},{"name":"_salt","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"getIdentity","inputs":[{"name":"_wallet","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getToken","inputs":[{"name":"_identity","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getWallets","inputs":[{"name":"_identity","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"implementationAuthority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isSaltTaken","inputs":[{"name":"_salt","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenFactory","inputs":[{"name":"_factory","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"linkWallet","inputs":[{"name":"_newWallet","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeTokenFactory","inputs":[{"name":"_factory","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unlinkWallet","inputs":[{"name":"_oldWallet","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Deployed","inputs":[{"name":"_addr","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenFactoryAdded","inputs":[{"name":"factory","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenFactoryRemoved","inputs":[{"name":"factory","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenLinked","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"identity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"WalletLinked","inputs":[{"name":"wallet","type":"address","indexed":true,"internalType":"address"},{"name":"identity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"WalletUnlinked","inputs":[{"name":"wallet","type":"address","indexed":true,"internalType":"address"},{"name":"identity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a06040523480156200001157600080fd5b506040516200230c3803806200230c833981016040819052620000349162000122565b33806200005c57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6200006781620000d2565b506001600160a01b038116620000c05760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640162000053565b6001600160a01b031660805262000154565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200013557600080fd5b81516001600160a01b03811681146200014d57600080fd5b9392505050565b608051612187620001856000396000818161011c015281816105bc01528181610b45015261125c01526121876000f3fe60806040523480156200001157600080fd5b5060043610620001155760003560e01c8063715018a611620000a35780639ce19365116200006e5780639ce193651462000296578063b8bb812614620002ad578063f2fde38b14620002c4578063fe5cd59a14620002db57600080fd5b8063715018a6146200024c5780638da5cb5b14620002565780638e952bfe1462000268578063937529ef146200027f57600080fd5b80633e3bc3d711620000e45780633e3bc3d714620001af578063422c29a414620001de5780635027dbe2146200020457806359770438146200021d57600080fd5b80632307f882146200011a5780632fea7b8114620001595780633a50045114620001705780633d56ff661462000198575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020015b60405180910390f35b6200013c6200016a3660046200170d565b620002f2565b620001876200018136600462001732565b62000358565b604051901515815260200162000150565b6200013c620001a93660046200186a565b6200038a565b62000187620001c03660046200170d565b6001600160a01b031660009081526001602052604090205460ff1690565b620001f5620001ef3660046200170d565b6200068a565b604051620001509190620018d0565b6200021b620002153660046200170d565b62000702565b005b6200013c6200022e3660046200170d565b6001600160a01b039081166000908152600660205260409020541690565b6200021b620009ce565b6000546001600160a01b03166200013c565b6200013c620002793660046200191f565b620009e6565b6200021b620002903660046200170d565b62000c23565b6200021b620002a73660046200170d565b62000cf9565b6200021b620002be3660046200170d565b62000dda565b6200021b620002d53660046200170d565b62001058565b6200013c620002ec36600462001973565b6200109c565b6001600160a01b03818116600090815260056020526040812054909116156200033457506001600160a01b039081166000908152600560205260409020541690565b506001600160a01b039081166000908152600360205260409020541690565b919050565b6000600283836040516200036e92919062001a60565b9081526040519081900360200190205460ff1690505b92915050565b3360009081526001602052604081205460ff1680620003b357506000546001600160a01b031633145b620004055760405162461bcd60e51b815260206004820152601e60248201527f6f6e6c7920466163746f7279206f72206f776e65722063616e2063616c6c000060448201526064015b60405180910390fd5b6001600160a01b0384166200042e5760405162461bcd60e51b8152600401620003fc9062001a70565b6001600160a01b038316620004575760405162461bcd60e51b8152600401620003fc9062001a70565b6040516020016200047390602080825260009082015260400190565b60405160208183030381529060405280519060200120826040516020016200049c919062001acd565b6040516020818303038152906040528051906020012003620004d25760405162461bcd60e51b8152600401620003fc9062001b02565b600082604051602001620004e7919062001b39565b60405160208183030381529060405290506002816040516200050a919062001b68565b9081526040519081900360200190205460ff16156200053d5760405162461bcd60e51b8152600401620003fc9062001b86565b6001600160a01b038581166000908152600560205260409020541615620005b35760405162461bcd60e51b815260206004820152602360248201527f746f6b656e20616c7265616479206c696e6b656420746f20616e206964656e7460448201526269747960e81b6064820152608401620003fc565b6000620005e2827f00000000000000000000000000000000000000000000000000000000000000008762001550565b90506001600283604051620005f8919062001b68565b9081526040805160209281900383018120805460ff1916941515949094179093556001600160a01b0389811660008181526005855283812080546001600160a01b0319908116948916948517909155838252600690955292832080549094168117909355927fa8261d398ddc63db24cc53cd0c63c9464cabad1bc478ede2107b32c1c4010b7a9190a395945050505050565b6001600160a01b038116600090815260046020908152604091829020805483518184028101840190945280845260609392830182828015620006f657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311620006d7575b50505050509050919050565b6001600160a01b0381166200072b5760405162461bcd60e51b8152600401620003fc9062001a70565b336001600160a01b03821603620007905760405162461bcd60e51b815260206004820152602260248201527f63616e6e6f742062652063616c6c6564206f6e2073656e646572206164647265604482015261737360f01b6064820152608401620003fc565b6001600160a01b03808216600090815260036020526040808220543383529120548216911614620008045760405162461bcd60e51b815260206004820152601f60248201527f6f6e6c792061206c696e6b65642077616c6c65742063616e20756e6c696e6b006044820152606401620003fc565b6001600160a01b03808216600090815260036020908152604080832080546001600160a01b03198116909155909316808352600490915291812054905b8181101562000988576001600160a01b038381166000908152600460205260409020805491861691839081106200087c576200087c62001bb2565b6000918252602090912001546001600160a01b0316036200097f576001600160a01b0383166000908152600460205260409020620008bc60018462001bc8565b81548110620008cf57620008cf62001bb2565b60009182526020808320909101546001600160a01b038681168452600490925260409092208054919092169190839081106200090f576200090f62001bb2565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918516815260049091526040902080548062000957576200095762001bea565b600082815260209020810160001990810180546001600160a01b031916905501905562000988565b60010162000841565b50816001600160a01b0316836001600160a01b03167f35e6fc363a4bf723d53b26c1a751674aca9c3ead425f0591f84f5540ede86f1260405160405180910390a3505050565b620009d8620015e0565b620009e460006200160f565b565b6000620009f2620015e0565b6001600160a01b03831662000a1b5760405162461bcd60e51b8152600401620003fc9062001a70565b60405160200162000a3790602080825260009082015260400190565b604051602081830303815290604052805190602001208260405160200162000a60919062001acd565b604051602081830303815290604052805190602001200362000a965760405162461bcd60e51b8152600401620003fc9062001b02565b60008260405160200162000aab919062001c00565b604051602081830303815290604052905060028160405162000ace919062001b68565b9081526040519081900360200190205460ff161562000b015760405162461bcd60e51b8152600401620003fc9062001b86565b6001600160a01b03848116600090815260036020526040902054161562000b3c5760405162461bcd60e51b8152600401620003fc9062001c2d565b600062000b6b827f00000000000000000000000000000000000000000000000000000000000000008762001550565b9050600160028360405162000b81919062001b68565b9081526040805160209281900383018120805460ff1916941515949094179093556001600160a01b0388811660008181526003855283812080546001600160a01b0319908116948916948517909155838252600486529381208054600181018255908252948120909401805490931681179092559290917f8e0c709111388f5480579514d86663489ab1f206fe6da1a0c4d03ac8c318b3c691a3949350505050565b62000c2d620015e0565b6001600160a01b03811662000c565760405162461bcd60e51b8152600401620003fc9062001a70565b6001600160a01b03811660009081526001602052604090205460ff1662000cb05760405162461bcd60e51b815260206004820152600d60248201526c6e6f74206120666163746f727960981b6044820152606401620003fc565b6001600160a01b038116600081815260016020526040808220805460ff19169055517fd1fd5274f793d20291c0abfe42e1ef63213a11b34996d485f7afb8fe014248519190a250565b62000d03620015e0565b6001600160a01b03811662000d2c5760405162461bcd60e51b8152600401620003fc9062001a70565b6001600160a01b03811660009081526001602052604090205460ff161562000d8b5760405162461bcd60e51b8152602060048201526011602482015270616c7265616479206120666163746f727960781b6044820152606401620003fc565b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f45eb8ac5344d2d3f306550fe6e969ca4190526313c512afed851d052bf2ab2fd9190a250565b6001600160a01b03811662000e035760405162461bcd60e51b8152600401620003fc9062001a70565b336000908152600360205260409020546001600160a01b031662000e7c5760405162461bcd60e51b815260206004820152602960248201527f77616c6c6574206e6f74206c696e6b656420746f20616e206964656e746974796044820152680818dbdb9d1c9858dd60ba1b6064820152608401620003fc565b6001600160a01b03818116600090815260036020526040902054161562000ee65760405162461bcd60e51b815260206004820152601960248201527f6e65772077616c6c657420616c7265616479206c696e6b6564000000000000006044820152606401620003fc565b6001600160a01b03818116600090815260056020526040902054161562000f505760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420617267756d656e74202d20746f6b656e20616464726573736044820152606401620003fc565b336000908152600360209081526040808320546001600160a01b031680845260049092529091205460651162000fd75760405162461bcd60e51b815260206004820152602560248201527f6d617820616d6f756e74206f662077616c6c6574732070657220494420657863604482015264195959195960da1b6064820152608401620003fc565b6001600160a01b03808316600081815260036020908152604080832080549587166001600160a01b031996871681179091558084526004835281842080546001810182559085529284209092018054909516841790945592517f8e0c709111388f5480579514d86663489ab1f206fe6da1a0c4d03ac8c318b3c69190a35050565b62001062620015e0565b6001600160a01b0381166200108e57604051631e4fbdf760e01b815260006004820152602401620003fc565b62001099816200160f565b50565b6000620010a8620015e0565b6001600160a01b038416620010d15760405162461bcd60e51b8152600401620003fc9062001a70565b604051602001620010ed90602080825260009082015260400190565b604051602081830303815290604052805190602001208360405160200162001116919062001acd565b60405160208183030381529060405280519060200120036200114c5760405162461bcd60e51b8152600401620003fc9062001b02565b60008360405160200162001161919062001c00565b604051602081830303815290604052905060028160405162001184919062001b68565b9081526040519081900360200190205460ff1615620011b75760405162461bcd60e51b8152600401620003fc9062001b86565b6001600160a01b038581166000908152600360205260409020541615620011f25760405162461bcd60e51b8152600401620003fc9062001c2d565b6000835111620012535760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420617267756d656e74202d20656d707479206c697374206f66604482015264206b65797360d81b6064820152608401620003fc565b600062001282827f00000000000000000000000000000000000000000000000000000000000000003062001550565b905060005b8451811015620013fc57604080516001600160a01b03891660208201520160405160208183030381529060405280519060200120858281518110620012d057620012d062001bb2565b6020026020010151036200134d5760405162461bcd60e51b815260206004820152603b60248201527f696e76616c696420617267756d656e74202d2077616c6c657420697320616c7360448201527f6f206c697374656420696e206d616e6167656d656e74206b65797300000000006064820152608401620003fc565b816001600160a01b0316631d38124086838151811062001371576200137162001bb2565b60200260200101516001806040518463ffffffff1660e01b8152600401620013ac939291909283526020830191909152604082015260600190565b6020604051808303816000875af1158015620013cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013f2919062001c71565b5060010162001287565b50604080513060208201526001600160a01b038316916353d413c5910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b1682526004820152600160248201526044016020604051808303816000875af115801562001472573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001498919062001c71565b506001600283604051620014ad919062001b68565b9081526040805160209281900383018120805460ff1916941515949094179093556001600160a01b0389811660008181526003855283812080546001600160a01b0319908116948916948517909155838252600486529381208054600181018255908252948120909401805490931681179092559290917f8e0c709111388f5480579514d86663489ab1f206fe6da1a0c4d03ac8c318b3c691a395945050505050565b600080604051806020016200156590620016e7565b601f1982820381018352601f9091011660408181526001600160a01b03878116602084015286168183015280518083038201815260608301909152919250600090620015b8908490849060800162001c95565b6040516020818303038152906040529050620015d587826200165f565b979650505050505050565b6000546001600160a01b03163314620009e45760405163118cdaa760e01b8152336004820152602401620003fc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808360405160200162001675919062001b68565b60405160208183030381529060405280519060200120905060008360200184518381836000f592505050803b620016ab57600080fd5b6040516001600160a01b038216907ff40fcec21964ffb566044d083b4073f29f7f7929110ea19e1b3ebe375d89055e90600090a2949350505050565b6104898062001cc983390190565b80356001600160a01b03811681146200035357600080fd5b6000602082840312156200172057600080fd5b6200172b82620016f5565b9392505050565b600080602083850312156200174657600080fd5b823567ffffffffffffffff808211156200175f57600080fd5b818501915085601f8301126200177457600080fd5b8135818111156200178457600080fd5b8660208285010111156200179757600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715620017eb57620017eb620017a9565b604052919050565b600082601f8301126200180557600080fd5b813567ffffffffffffffff811115620018225762001822620017a9565b62001837601f8201601f1916602001620017bf565b8181528460208386010111156200184d57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156200188057600080fd5b6200188b84620016f5565b92506200189b60208501620016f5565b9150604084013567ffffffffffffffff811115620018b857600080fd5b620018c686828701620017f3565b9150509250925092565b6020808252825182820181905260009190848201906040850190845b81811015620019135783516001600160a01b031683529284019291840191600101620018ec565b50909695505050505050565b600080604083850312156200193357600080fd5b6200193e83620016f5565b9150602083013567ffffffffffffffff8111156200195b57600080fd5b6200196985828601620017f3565b9150509250929050565b6000806000606084860312156200198957600080fd5b6200199484620016f5565b925060208085013567ffffffffffffffff80821115620019b357600080fd5b620019c188838901620017f3565b94506040870135915080821115620019d857600080fd5b818701915087601f830112620019ed57600080fd5b81358181111562001a025762001a02620017a9565b8060051b915062001a15848301620017bf565b818152918301840191848101908a84111562001a3057600080fd5b938501935b8385101562001a505784358252938501939085019062001a35565b8096505050505050509250925092565b8183823760009101908152919050565b6020808252601f908201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604082015260600190565b60005b8381101562001ac457818101518382015260200162001aaa565b50506000910152565b602081526000825180602084015262001aee81604085016020870162001aa7565b601f01601f19169190910160400192915050565b6020808252601f908201527f696e76616c696420617267756d656e74202d20656d70747920737472696e6700604082015260600190565b642a37b5b2b760d91b81526000825162001b5b81600585016020870162001aa7565b9190910160050192915050565b6000825162001b7c81846020870162001aa7565b9190910192915050565b60208082526012908201527139b0b63a1030b63932b0b23c903a30b5b2b760711b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b818103818111156200038457634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6213d25160ea1b81526000825162001c2081600385016020870162001aa7565b9190910160030192915050565b60208082526024908201527f77616c6c657420616c7265616479206c696e6b656420746f20616e206964656e6040820152637469747960e01b606082015260800190565b60006020828403121562001c8457600080fd5b815180151581146200172b57600080fd5b6000835162001ca981846020880162001aa7565b83519083019062001cbf81836020880162001aa7565b0194935050505056fe608060405234801561001057600080fd5b5060405161048938038061048983398101604081905261002f91610271565b6001600160a01b03821661008a5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6001600160a01b0381166100e05760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610081565b817f821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc556000826001600160a01b031663aaf10f426040518163ffffffff1660e01b8152600401602060405180830381865afa158015610143573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016791906102a4565b6040516001600160a01b03848116602483015291925060009183169060440160408051601f198184030181529181526020820180516001600160e01b031663189acdbd60e31b179052516101bb91906102c6565b600060405180830381855af49150503d80600081146101f6576040519150601f19603f3d011682016040523d82523d6000602084013e6101fb565b606091505b505090508061024c5760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e000000000000000000006044820152606401610081565b505050506102f5565b80516001600160a01b038116811461026c57600080fd5b919050565b6000806040838503121561028457600080fd5b61028d83610255565b915061029b60208401610255565b90509250929050565b6000602082840312156102b657600080fd5b6102bf82610255565b9392505050565b6000825160005b818110156102e757602081860181015185830152016102cd565b506000920191825250919050565b610185806103046000396000f3fe60806040526004361061001e5760003560e01c80632307f882146100d4575b60006100487f821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc5490565b6001600160a01b031663aaf10f426040518163ffffffff1660e01b8152600401602060405180830381865afa158015610085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a9919061011f565b90503660008037600080366000846127105a03f43d806000803e8180156100cf57816000f35b816000fd5b3480156100e057600080fd5b507f821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc546040516001600160a01b03909116815260200160405180910390f35b60006020828403121561013157600080fd5b81516001600160a01b038116811461014857600080fd5b939250505056fea2646970667358221220cc54abdf8c74ce0b972f1fe09fc510a8ee03198b88d28d011822b844d00d5aab64736f6c63430008180033a264697066735822122063d26fdc9a47fa33e0e845fa78dad036ef1f95e19d6f3ab13078a011deb1344864736f6c63430008180033","sourceMap":"214:9527:117:-:0;;;1066:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1120:10;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;455:51:165;428:18;;1322:31:141;;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;1150:37:117;::::1;1142:81;;;::::0;-1:-1:-1;;;1142:81:117;;719:2:165;1142:81:117::1;::::0;::::1;701:21:165::0;758:2;738:18;;;731:30;797:33;777:18;;;770:61;848:18;;1142:81:117::1;517:355:165::0;1142:81:117::1;-1:-1:-1::0;;;;;1233:50:117::1;;::::0;214:9527;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:290:165:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:165;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:165:o;517:355::-;214:9527:117;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523480156200001157600080fd5b5060043610620001155760003560e01c8063715018a611620000a35780639ce19365116200006e5780639ce193651462000296578063b8bb812614620002ad578063f2fde38b14620002c4578063fe5cd59a14620002db57600080fd5b8063715018a6146200024c5780638da5cb5b14620002565780638e952bfe1462000268578063937529ef146200027f57600080fd5b80633e3bc3d711620000e45780633e3bc3d714620001af578063422c29a414620001de5780635027dbe2146200020457806359770438146200021d57600080fd5b80632307f882146200011a5780632fea7b8114620001595780633a50045114620001705780633d56ff661462000198575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020015b60405180910390f35b6200013c6200016a3660046200170d565b620002f2565b620001876200018136600462001732565b62000358565b604051901515815260200162000150565b6200013c620001a93660046200186a565b6200038a565b62000187620001c03660046200170d565b6001600160a01b031660009081526001602052604090205460ff1690565b620001f5620001ef3660046200170d565b6200068a565b604051620001509190620018d0565b6200021b620002153660046200170d565b62000702565b005b6200013c6200022e3660046200170d565b6001600160a01b039081166000908152600660205260409020541690565b6200021b620009ce565b6000546001600160a01b03166200013c565b6200013c620002793660046200191f565b620009e6565b6200021b620002903660046200170d565b62000c23565b6200021b620002a73660046200170d565b62000cf9565b6200021b620002be3660046200170d565b62000dda565b6200021b620002d53660046200170d565b62001058565b6200013c620002ec36600462001973565b6200109c565b6001600160a01b03818116600090815260056020526040812054909116156200033457506001600160a01b039081166000908152600560205260409020541690565b506001600160a01b039081166000908152600360205260409020541690565b919050565b6000600283836040516200036e92919062001a60565b9081526040519081900360200190205460ff1690505b92915050565b3360009081526001602052604081205460ff1680620003b357506000546001600160a01b031633145b620004055760405162461bcd60e51b815260206004820152601e60248201527f6f6e6c7920466163746f7279206f72206f776e65722063616e2063616c6c000060448201526064015b60405180910390fd5b6001600160a01b0384166200042e5760405162461bcd60e51b8152600401620003fc9062001a70565b6001600160a01b038316620004575760405162461bcd60e51b8152600401620003fc9062001a70565b6040516020016200047390602080825260009082015260400190565b60405160208183030381529060405280519060200120826040516020016200049c919062001acd565b6040516020818303038152906040528051906020012003620004d25760405162461bcd60e51b8152600401620003fc9062001b02565b600082604051602001620004e7919062001b39565b60405160208183030381529060405290506002816040516200050a919062001b68565b9081526040519081900360200190205460ff16156200053d5760405162461bcd60e51b8152600401620003fc9062001b86565b6001600160a01b038581166000908152600560205260409020541615620005b35760405162461bcd60e51b815260206004820152602360248201527f746f6b656e20616c7265616479206c696e6b656420746f20616e206964656e7460448201526269747960e81b6064820152608401620003fc565b6000620005e2827f00000000000000000000000000000000000000000000000000000000000000008762001550565b90506001600283604051620005f8919062001b68565b9081526040805160209281900383018120805460ff1916941515949094179093556001600160a01b0389811660008181526005855283812080546001600160a01b0319908116948916948517909155838252600690955292832080549094168117909355927fa8261d398ddc63db24cc53cd0c63c9464cabad1bc478ede2107b32c1c4010b7a9190a395945050505050565b6001600160a01b038116600090815260046020908152604091829020805483518184028101840190945280845260609392830182828015620006f657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311620006d7575b50505050509050919050565b6001600160a01b0381166200072b5760405162461bcd60e51b8152600401620003fc9062001a70565b336001600160a01b03821603620007905760405162461bcd60e51b815260206004820152602260248201527f63616e6e6f742062652063616c6c6564206f6e2073656e646572206164647265604482015261737360f01b6064820152608401620003fc565b6001600160a01b03808216600090815260036020526040808220543383529120548216911614620008045760405162461bcd60e51b815260206004820152601f60248201527f6f6e6c792061206c696e6b65642077616c6c65742063616e20756e6c696e6b006044820152606401620003fc565b6001600160a01b03808216600090815260036020908152604080832080546001600160a01b03198116909155909316808352600490915291812054905b8181101562000988576001600160a01b038381166000908152600460205260409020805491861691839081106200087c576200087c62001bb2565b6000918252602090912001546001600160a01b0316036200097f576001600160a01b0383166000908152600460205260409020620008bc60018462001bc8565b81548110620008cf57620008cf62001bb2565b60009182526020808320909101546001600160a01b038681168452600490925260409092208054919092169190839081106200090f576200090f62001bb2565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918516815260049091526040902080548062000957576200095762001bea565b600082815260209020810160001990810180546001600160a01b031916905501905562000988565b60010162000841565b50816001600160a01b0316836001600160a01b03167f35e6fc363a4bf723d53b26c1a751674aca9c3ead425f0591f84f5540ede86f1260405160405180910390a3505050565b620009d8620015e0565b620009e460006200160f565b565b6000620009f2620015e0565b6001600160a01b03831662000a1b5760405162461bcd60e51b8152600401620003fc9062001a70565b60405160200162000a3790602080825260009082015260400190565b604051602081830303815290604052805190602001208260405160200162000a60919062001acd565b604051602081830303815290604052805190602001200362000a965760405162461bcd60e51b8152600401620003fc9062001b02565b60008260405160200162000aab919062001c00565b604051602081830303815290604052905060028160405162000ace919062001b68565b9081526040519081900360200190205460ff161562000b015760405162461bcd60e51b8152600401620003fc9062001b86565b6001600160a01b03848116600090815260036020526040902054161562000b3c5760405162461bcd60e51b8152600401620003fc9062001c2d565b600062000b6b827f00000000000000000000000000000000000000000000000000000000000000008762001550565b9050600160028360405162000b81919062001b68565b9081526040805160209281900383018120805460ff1916941515949094179093556001600160a01b0388811660008181526003855283812080546001600160a01b0319908116948916948517909155838252600486529381208054600181018255908252948120909401805490931681179092559290917f8e0c709111388f5480579514d86663489ab1f206fe6da1a0c4d03ac8c318b3c691a3949350505050565b62000c2d620015e0565b6001600160a01b03811662000c565760405162461bcd60e51b8152600401620003fc9062001a70565b6001600160a01b03811660009081526001602052604090205460ff1662000cb05760405162461bcd60e51b815260206004820152600d60248201526c6e6f74206120666163746f727960981b6044820152606401620003fc565b6001600160a01b038116600081815260016020526040808220805460ff19169055517fd1fd5274f793d20291c0abfe42e1ef63213a11b34996d485f7afb8fe014248519190a250565b62000d03620015e0565b6001600160a01b03811662000d2c5760405162461bcd60e51b8152600401620003fc9062001a70565b6001600160a01b03811660009081526001602052604090205460ff161562000d8b5760405162461bcd60e51b8152602060048201526011602482015270616c7265616479206120666163746f727960781b6044820152606401620003fc565b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f45eb8ac5344d2d3f306550fe6e969ca4190526313c512afed851d052bf2ab2fd9190a250565b6001600160a01b03811662000e035760405162461bcd60e51b8152600401620003fc9062001a70565b336000908152600360205260409020546001600160a01b031662000e7c5760405162461bcd60e51b815260206004820152602960248201527f77616c6c6574206e6f74206c696e6b656420746f20616e206964656e746974796044820152680818dbdb9d1c9858dd60ba1b6064820152608401620003fc565b6001600160a01b03818116600090815260036020526040902054161562000ee65760405162461bcd60e51b815260206004820152601960248201527f6e65772077616c6c657420616c7265616479206c696e6b6564000000000000006044820152606401620003fc565b6001600160a01b03818116600090815260056020526040902054161562000f505760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420617267756d656e74202d20746f6b656e20616464726573736044820152606401620003fc565b336000908152600360209081526040808320546001600160a01b031680845260049092529091205460651162000fd75760405162461bcd60e51b815260206004820152602560248201527f6d617820616d6f756e74206f662077616c6c6574732070657220494420657863604482015264195959195960da1b6064820152608401620003fc565b6001600160a01b03808316600081815260036020908152604080832080549587166001600160a01b031996871681179091558084526004835281842080546001810182559085529284209092018054909516841790945592517f8e0c709111388f5480579514d86663489ab1f206fe6da1a0c4d03ac8c318b3c69190a35050565b62001062620015e0565b6001600160a01b0381166200108e57604051631e4fbdf760e01b815260006004820152602401620003fc565b62001099816200160f565b50565b6000620010a8620015e0565b6001600160a01b038416620010d15760405162461bcd60e51b8152600401620003fc9062001a70565b604051602001620010ed90602080825260009082015260400190565b604051602081830303815290604052805190602001208360405160200162001116919062001acd565b60405160208183030381529060405280519060200120036200114c5760405162461bcd60e51b8152600401620003fc9062001b02565b60008360405160200162001161919062001c00565b604051602081830303815290604052905060028160405162001184919062001b68565b9081526040519081900360200190205460ff1615620011b75760405162461bcd60e51b8152600401620003fc9062001b86565b6001600160a01b038581166000908152600360205260409020541615620011f25760405162461bcd60e51b8152600401620003fc9062001c2d565b6000835111620012535760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420617267756d656e74202d20656d707479206c697374206f66604482015264206b65797360d81b6064820152608401620003fc565b600062001282827f00000000000000000000000000000000000000000000000000000000000000003062001550565b905060005b8451811015620013fc57604080516001600160a01b03891660208201520160405160208183030381529060405280519060200120858281518110620012d057620012d062001bb2565b6020026020010151036200134d5760405162461bcd60e51b815260206004820152603b60248201527f696e76616c696420617267756d656e74202d2077616c6c657420697320616c7360448201527f6f206c697374656420696e206d616e6167656d656e74206b65797300000000006064820152608401620003fc565b816001600160a01b0316631d38124086838151811062001371576200137162001bb2565b60200260200101516001806040518463ffffffff1660e01b8152600401620013ac939291909283526020830191909152604082015260600190565b6020604051808303816000875af1158015620013cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013f2919062001c71565b5060010162001287565b50604080513060208201526001600160a01b038316916353d413c5910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b1682526004820152600160248201526044016020604051808303816000875af115801562001472573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001498919062001c71565b506001600283604051620014ad919062001b68565b9081526040805160209281900383018120805460ff1916941515949094179093556001600160a01b0389811660008181526003855283812080546001600160a01b0319908116948916948517909155838252600486529381208054600181018255908252948120909401805490931681179092559290917f8e0c709111388f5480579514d86663489ab1f206fe6da1a0c4d03ac8c318b3c691a395945050505050565b600080604051806020016200156590620016e7565b601f1982820381018352601f9091011660408181526001600160a01b03878116602084015286168183015280518083038201815260608301909152919250600090620015b8908490849060800162001c95565b6040516020818303038152906040529050620015d587826200165f565b979650505050505050565b6000546001600160a01b03163314620009e45760405163118cdaa760e01b8152336004820152602401620003fc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808360405160200162001675919062001b68565b60405160208183030381529060405280519060200120905060008360200184518381836000f592505050803b620016ab57600080fd5b6040516001600160a01b038216907ff40fcec21964ffb566044d083b4073f29f7f7929110ea19e1b3ebe375d89055e90600090a2949350505050565b6104898062001cc983390190565b80356001600160a01b03811681146200035357600080fd5b6000602082840312156200172057600080fd5b6200172b82620016f5565b9392505050565b600080602083850312156200174657600080fd5b823567ffffffffffffffff808211156200175f57600080fd5b818501915085601f8301126200177457600080fd5b8135818111156200178457600080fd5b8660208285010111156200179757600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715620017eb57620017eb620017a9565b604052919050565b600082601f8301126200180557600080fd5b813567ffffffffffffffff811115620018225762001822620017a9565b62001837601f8201601f1916602001620017bf565b8181528460208386010111156200184d57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156200188057600080fd5b6200188b84620016f5565b92506200189b60208501620016f5565b9150604084013567ffffffffffffffff811115620018b857600080fd5b620018c686828701620017f3565b9150509250925092565b6020808252825182820181905260009190848201906040850190845b81811015620019135783516001600160a01b031683529284019291840191600101620018ec565b50909695505050505050565b600080604083850312156200193357600080fd5b6200193e83620016f5565b9150602083013567ffffffffffffffff8111156200195b57600080fd5b6200196985828601620017f3565b9150509250929050565b6000806000606084860312156200198957600080fd5b6200199484620016f5565b925060208085013567ffffffffffffffff80821115620019b357600080fd5b620019c188838901620017f3565b94506040870135915080821115620019d857600080fd5b818701915087601f830112620019ed57600080fd5b81358181111562001a025762001a02620017a9565b8060051b915062001a15848301620017bf565b818152918301840191848101908a84111562001a3057600080fd5b938501935b8385101562001a505784358252938501939085019062001a35565b8096505050505050509250925092565b8183823760009101908152919050565b6020808252601f908201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604082015260600190565b60005b8381101562001ac457818101518382015260200162001aaa565b50506000910152565b602081526000825180602084015262001aee81604085016020870162001aa7565b601f01601f19169190910160400192915050565b6020808252601f908201527f696e76616c696420617267756d656e74202d20656d70747920737472696e6700604082015260600190565b642a37b5b2b760d91b81526000825162001b5b81600585016020870162001aa7565b9190910160050192915050565b6000825162001b7c81846020870162001aa7565b9190910192915050565b60208082526012908201527139b0b63a1030b63932b0b23c903a30b5b2b760711b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b818103818111156200038457634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6213d25160ea1b81526000825162001c2081600385016020870162001aa7565b9190910160030192915050565b60208082526024908201527f77616c6c657420616c7265616479206c696e6b656420746f20616e206964656e6040820152637469747960e01b606082015260800190565b60006020828403121562001c8457600080fd5b815180151581146200172b57600080fd5b6000835162001ca981846020880162001aa7565b83519083019062001cbf81836020880162001aa7565b0194935050505056fe608060405234801561001057600080fd5b5060405161048938038061048983398101604081905261002f91610271565b6001600160a01b03821661008a5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6001600160a01b0381166100e05760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610081565b817f821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc556000826001600160a01b031663aaf10f426040518163ffffffff1660e01b8152600401602060405180830381865afa158015610143573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016791906102a4565b6040516001600160a01b03848116602483015291925060009183169060440160408051601f198184030181529181526020820180516001600160e01b031663189acdbd60e31b179052516101bb91906102c6565b600060405180830381855af49150503d80600081146101f6576040519150601f19603f3d011682016040523d82523d6000602084013e6101fb565b606091505b505090508061024c5760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e000000000000000000006044820152606401610081565b505050506102f5565b80516001600160a01b038116811461026c57600080fd5b919050565b6000806040838503121561028457600080fd5b61028d83610255565b915061029b60208401610255565b90509250929050565b6000602082840312156102b657600080fd5b6102bf82610255565b9392505050565b6000825160005b818110156102e757602081860181015185830152016102cd565b506000920191825250919050565b610185806103046000396000f3fe60806040526004361061001e5760003560e01c80632307f882146100d4575b60006100487f821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc5490565b6001600160a01b031663aaf10f426040518163ffffffff1660e01b8152600401602060405180830381865afa158015610085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a9919061011f565b90503660008037600080366000846127105a03f43d806000803e8180156100cf57816000f35b816000fd5b3480156100e057600080fd5b507f821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc546040516001600160a01b03909116815260200160405180910390f35b60006020828403121561013157600080fd5b81516001600160a01b038116811461014857600080fd5b939250505056fea2646970667358221220cc54abdf8c74ce0b972f1fe09fc510a8ee03198b88d28d011822b844d00d5aab64736f6c63430008180033a264697066735822122063d26fdc9a47fa33e0e845fa78dad036ef1f95e19d6f3ab13078a011deb1344864736f6c63430008180033","sourceMap":"214:9527:117:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8386:122;8477:24;8386:122;;;-1:-1:-1;;;;;178:32:165;;;160:51;;148:2;133:18;8386:122:117;;;;;;;;7288:260;;;;;;:::i;:::-;;:::i;7612:123::-;;;;;;:::i;:::-;;:::i;:::-;;;1353:14:165;;1346:22;1328:41;;1316:2;1301:18;7612:123:117;1188:187:165;4538:1042:117;;;;;;:::i;:::-;;:::i;8184:126::-;;;;;;:::i;:::-;-1:-1:-1;;;;;8278:25:117;8255:4;8278:25;;;:15;:25;;;;;;;;;8184:126;7798:132;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6421:803::-;;;;;;:::i;:::-;;:::i;:::-;;7991:126;;;;;;:::i;:::-;-1:-1:-1;;;;;8086:24:117;;;8060:7;8086:24;;;:13;:24;;;;;;;;7991:126;2293:101:141;;;:::i;1638:85::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;1638:85;;2103:820:117;;;;;;:::i;:::-;;:::i;1732:304::-;;;;;;:::i;:::-;;:::i;1358:303::-;;;;;;:::i;:::-;;:::i;5643:713::-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;3008:1458:117:-;;;;;;:::i;:::-;;:::i;7288:260::-;-1:-1:-1;;;;;7380:23:117;;;7358:7;7380:23;;;:14;:23;;;;;;7358:7;;7380:23;:37;7377:165;;-1:-1:-1;;;;;;7440:23:117;;;;;;;:14;:23;;;;;;;;7288:260::o;7377:165::-;-1:-1:-1;;;;;;7509:22:117;;;;;;;:13;:22;;;;;;;;7288:260::o;7377:165::-;7288:260;;;:::o;7612:123::-;7688:4;7711:10;7722:5;;7711:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;7612:123:117;;;;;:::o;4538:1042::-;4723:10;4681:7;8278:25;;;:15;:25;;;;;;;;4708:51;;;-1:-1:-1;1684:7:141;1710:6;-1:-1:-1;;;;;1710:6:141;4738:10:117;:21;4708:51;4700:94;;;;-1:-1:-1;;;4700:94:117;;5572:2:165;4700:94:117;;;5554:21:165;5611:2;5591:18;;;5584:30;5650:32;5630:18;;;5623:60;5700:18;;4700:94:117;;;;;;;;;-1:-1:-1;;;;;4812:20:117;;4804:64;;;;-1:-1:-1;;;4804:64:117;;;;;;;:::i;:::-;-1:-1:-1;;;;;4886:25:117;;4878:69;;;;-1:-1:-1;;;4878:69:117;;;;;;;:::i;:::-;5007:14;;;;;;6291:2:165;6273:21;;;6330:1;6310:18;;;6303:29;6364:2;6349:18;;6089:284;5007:14:117;;;;;;;;;;;;;4997:25;;;;;;4986:5;4975:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;4965:28;;;;;;:57;4957:101;;;;-1:-1:-1;;;4957:101:117;;;;;;;:::i;:::-;5068:25;5118:5;5096:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;5068:56;;5143:10;5154:11;5143:23;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;5142:24;5134:55;;;;-1:-1:-1;;;5134:55:117;;;;;;;:::i;:::-;-1:-1:-1;;;;;5207:22:117;;;5241:1;5207:22;;;:14;:22;;;;;;;:36;5199:84;;;;-1:-1:-1;;;5199:84:117;;8666:2:165;5199:84:117;;;8648:21:165;8705:2;8685:18;;;8678:30;8744:34;8724:18;;;8717:62;-1:-1:-1;;;8795:18:165;;;8788:33;8838:19;;5199:84:117;8464:399:165;5199:84:117;5293:16;5312:67;5328:11;5341:24;5367:11;5312:15;:67::i;:::-;5293:86;;5415:4;5389:10;5400:11;5389:23;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:30;;-1:-1:-1;;5389:30:117;;;;;;;;;;;-1:-1:-1;;;;;5429:22:117;;;-1:-1:-1;5429:22:117;;;:14;:22;;;;;:33;;-1:-1:-1;;;;;;5429:33:117;;;;;;;;;;;;5472:23;;;:13;:23;;;;;;:32;;;;;;;;;;5429:33;5519:29;;-1:-1:-1;5519:29:117;5565:8;4538:1042;-1:-1:-1;;;;;4538:1042:117:o;7798:132::-;-1:-1:-1;;;;;7904:19:117;;;;;;:8;:19;;;;;;;;;7897:26;;;;;;;;;;;;;;;;;7869:16;;7897:26;;;7904:19;7897:26;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7897:26:117;;;;;;;;;;;;;;;;;;;;;;;7798:132;;;:::o;6421:803::-;-1:-1:-1;;;;;6499:24:117;;6491:68;;;;-1:-1:-1;;;6491:68:117;;;;;;;:::i;:::-;6591:10;-1:-1:-1;;;;;6577:24:117;;;6569:71;;;;-1:-1:-1;;;6569:71:117;;9070:2:165;6569:71:117;;;9052:21:165;9109:2;9089:18;;;9082:30;9148:34;9128:18;;;9121:62;-1:-1:-1;;;9199:18:165;;;9192:32;9241:19;;6569:71:117;8868:398:165;6569:71:117;-1:-1:-1;;;;;6687:25:117;;;;;;;:13;:25;;;;;;;6672:10;6658:25;;;;;;;6687;;6658:54;6650:98;;;;-1:-1:-1;;;6650:98:117;;9473:2:165;6650:98:117;;;9455:21:165;9512:2;9492:18;;;9485:30;9551:33;9531:18;;;9524:61;9602:18;;6650:98:117;9271:355:165;6650:98:117;-1:-1:-1;;;;;6778:25:117;;;6758:17;6778:25;;;:13;:25;;;;;;;;;;-1:-1:-1;;;;;;6813:32:117;;;;;6778:25;;;6872:19;;;:8;:19;;;;;;:26;;6908:258;6932:6;6928:1;:10;6908:258;;;-1:-1:-1;;;;;6963:19:117;;;;;;;:8;:19;;;;;:22;;:36;;;;6983:1;;6963:22;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;6963:22:117;:36;6959:197;;-1:-1:-1;;;;;7044:19:117;;;;;;:8;:19;;;;;7064:10;7073:1;7064:6;:10;:::i;:::-;7044:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;7019:19:117;;;;;:8;:19;;;;;;;:22;;7044:31;;;;;7019:19;7039:1;;7019:22;;;;;;:::i;:::-;;;;;;;;;;;;;:56;;-1:-1:-1;;;;;;7019:56:117;-1:-1:-1;;;;;7019:56:117;;;;;;7093:19;;;;;:8;:19;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;7093:25:117;;;;;-1:-1:-1;;;;;;7093:25:117;;;;;;7136:5;;6959:197;6940:3;;6908:258;;;;7207:9;-1:-1:-1;;;;;7180:37:117;7195:10;-1:-1:-1;;;;;7180:37:117;;;;;;;;;;;6481:743;;6421:803;:::o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2103:820:117:-;2223:7;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;2250:21:117;::::1;2242:65;;;;-1:-1:-1::0;;;2242:65:117::1;;;;;;;:::i;:::-;2367:14;;;;;;6291:2:165::0;6273:21;;;6330:1;6310:18;;;6303:29;6364:2;6349:18;;6089:284;2367:14:117::1;;;;;;;;;;;;;2357:25;;;;;;2346:5;2335:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;2325:28;;;;;;:57:::0;2317:101:::1;;;;-1:-1:-1::0;;;2317:101:117::1;;;;;;;:::i;:::-;2428:21;2472:5;2452:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;2428:50;;2498:10;2509:7;2498:19;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;;::::1;;2497:20;2488:52;;;;-1:-1:-1::0;;;2488:52:117::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2559:22:117;;::::1;2593:1;2559:22:::0;;;:13:::1;:22;::::0;;;;;::::1;:36:::0;2550:86:::1;;;;-1:-1:-1::0;;;2550:86:117::1;;;;;;;:::i;:::-;2646:16;2665:59;2681:7;2690:24;2716:7;2665:15;:59::i;:::-;2646:78;;2756:4;2734:10;2745:7;2734:19;;;;;;:::i;:::-;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;;:26;;-1:-1:-1;;2734:26:117::1;::::0;::::1;;::::0;;;::::1;::::0;;;-1:-1:-1;;;;;2770:22:117;;::::1;-1:-1:-1::0;2770:22:117;;;:13:::1;:22:::0;;;;;:33;;-1:-1:-1;;;;;;2770:33:117;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;2813:18;;;:8:::1;:18:::0;;;;;:32;;-1:-1:-1;2813:32:117;::::1;::::0;;;;;;;;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;;2770:33;:22;;2860:31:::1;::::0;::::1;2908:8:::0;2103:820;-1:-1:-1;;;;2103:820:117:o;1732:304::-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;1824:22:117;::::1;1816:66;;;;-1:-1:-1::0;;;1816:66:117::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8278:25:117;;8255:4;8278:25;;;:15;:25;;;;;;;;1892:50:::1;;;::::0;-1:-1:-1;;;1892:50:117;;11159:2:165;1892:50:117::1;::::0;::::1;11141:21:165::0;11198:2;11178:18;;;11171:30;-1:-1:-1;;;11217:18:165;;;11210:43;11270:18;;1892:50:117::1;10957:337:165::0;1892:50:117::1;-1:-1:-1::0;;;;;1952:25:117;::::1;1980:5;1952:25:::0;;;:15:::1;:25;::::0;;;;;:33;;-1:-1:-1;;1952:33:117::1;::::0;;2000:29;::::1;::::0;1980:5;2000:29:::1;1732:304:::0;:::o;1358:303::-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;1447:22:117;::::1;1439:66;;;;-1:-1:-1::0;;;1439:66:117::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8278:25:117;;8255:4;8278:25;;;:15;:25;;;;;;;;1523::::1;1515:55;;;::::0;-1:-1:-1;;;1515:55:117;;11501:2:165;1515:55:117::1;::::0;::::1;11483:21:165::0;11540:2;11520:18;;;11513:30;-1:-1:-1;;;11559:18:165;;;11552:47;11616:18;;1515:55:117::1;11299:341:165::0;1515:55:117::1;-1:-1:-1::0;;;;;1580:25:117;::::1;;::::0;;;1608:4:::1;1580:25;::::0;;;;;;;:32;;-1:-1:-1;;1580:32:117::1;::::0;;::::1;::::0;;;1627:27;::::1;::::0;1580:25;1627:27:::1;1358:303:::0;:::o;5643:713::-;-1:-1:-1;;;;;5719:24:117;;5711:68;;;;-1:-1:-1;;;5711:68:117;;;;;;;:::i;:::-;5811:10;5834:1;5797:25;;;:13;:25;;;;;;-1:-1:-1;;;;;5797:25:117;5789:93;;;;-1:-1:-1;;;5789:93:117;;11847:2:165;5789:93:117;;;11829:21:165;11886:2;11866:18;;;11859:30;11925:34;11905:18;;;11898:62;-1:-1:-1;;;11976:18:165;;;11969:39;12025:19;;5789:93:117;11645:405:165;5789:93:117;-1:-1:-1;;;;;5900:25:117;;;5937:1;5900:25;;;:13;:25;;;;;;;:39;5892:77;;;;-1:-1:-1;;;5892:77:117;;12257:2:165;5892:77:117;;;12239:21:165;12296:2;12276:18;;;12269:30;12335:27;12315:18;;;12308:55;12380:18;;5892:77:117;12055:349:165;5892:77:117;-1:-1:-1;;;;;5987:26:117;;;6025:1;5987:26;;;:14;:26;;;;;;;:40;5979:85;;;;-1:-1:-1;;;5979:85:117;;12611:2:165;5979:85:117;;;12593:21:165;;;12630:18;;;12623:30;12689:34;12669:18;;;12662:62;12741:18;;5979:85:117;12409:356:165;5979:85:117;6107:10;6074:16;6093:25;;;:13;:25;;;;;;;;;-1:-1:-1;;;;;6093:25:117;6136:18;;;:8;:18;;;;;;:25;6164:3;-1:-1:-1;6128:81:117;;;;-1:-1:-1;;;6128:81:117;;12972:2:165;6128:81:117;;;12954:21:165;13011:2;12991:18;;;12984:30;13050:34;13030:18;;;13023:62;-1:-1:-1;;;13101:18:165;;;13094:35;13146:19;;6128:81:117;12770:401:165;6128:81:117;-1:-1:-1;;;;;6219:25:117;;;;;;;:13;:25;;;;;;;;:36;;;;;-1:-1:-1;;;;;;6219:36:117;;;;;;;;6265:18;;;:8;:18;;;;;:35;;6219:36;6265:35;;;;;;;;;;;;;;;;;;;;;;;6315:34;;;;6219:25;6315:34;5701:655;5643:713;:::o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;160:51:165::0;133:18;;2672:31:141::1;14:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;3008:1458:117:-;3189:7;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;3216:21:117;::::1;3208:65;;;;-1:-1:-1::0;;;3208:65:117::1;;;;;;;:::i;:::-;3333:14;;;;;;6291:2:165::0;6273:21;;;6330:1;6310:18;;;6303:29;6364:2;6349:18;;6089:284;3333:14:117::1;;;;;;;;;;;;;3323:25;;;;;;3312:5;3301:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;3291:28;;;;;;:57:::0;3283:101:::1;;;;-1:-1:-1::0;;;3283:101:117::1;;;;;;;:::i;:::-;3394:21;3438:5;3418:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;3394:50;;3464:10;3475:7;3464:19;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;;::::1;;3463:20;3454:52;;;;-1:-1:-1::0;;;3454:52:117::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;3525:22:117;;::::1;3559:1;3525:22:::0;;;:13:::1;:22;::::0;;;;;::::1;:36:::0;3516:86:::1;;;;-1:-1:-1::0;;;3516:86:117::1;;;;;;;:::i;:::-;3645:1;3620:15;:22;:26;3612:76;;;::::0;-1:-1:-1;;;3612:76:117;;13378:2:165;3612:76:117::1;::::0;::::1;13360:21:165::0;13417:2;13397:18;;;13390:30;13456:34;13436:18;;;13429:62;-1:-1:-1;;;13507:18:165;;;13500:35;13552:19;;3612:76:117::1;13176:401:165::0;3612:76:117::1;3699:16;3718:65;3734:7;3743:24;3777:4;3718:15;:65::i;:::-;3699:84;;3799:6;3794:359;3815:15;:22;3811:1;:26;3794:359;;;3915:19;::::0;;-1:-1:-1;;;;;178:32:165;;3915:19:117::1;::::0;::::1;160:51:165::0;133:18;3915:19:117::1;;;;;;;;;;;;3905:30;;;;;;3883:15;3899:1;3883:18;;;;;;;;:::i;:::-;;;;;;;:52:::0;3858:158:::1;;;::::0;-1:-1:-1;;;3858:158:117;;13784:2:165;3858:158:117::1;::::0;::::1;13766:21:165::0;13823:2;13803:18;;;13796:30;13862:34;13842:18;;;13835:62;13933:29;13913:18;;;13906:57;13980:19;;3858:158:117::1;13582:423:165::0;3858:158:117::1;4038:8;-1:-1:-1::0;;;;;4030:24:117::1;;4072:15;4088:1;4072:18;;;;;;;;:::i;:::-;;;;;;;4108:1;4127::::0;4030:112:::1;;;;;;;;;;;;;;;;14228:25:165::0;;;14284:2;14269:18;;14262:34;;;;14327:2;14312:18;;14305:34;14216:2;14201:18;;14010:335;4030:112:117::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;3839:3:117::1;;3794:359;;;-1:-1:-1::0;4214:25:117::1;::::0;;4233:4:::1;4214:25;::::0;::::1;160:51:165::0;-1:-1:-1;;;;;4163:27:117;::::1;::::0;::::1;::::0;133:18:165;4214:25:117::1;::::0;;-1:-1:-1;;4214:25:117;;::::1;::::0;;;;;;;4204:36;;4214:25:::1;4204:36:::0;;::::1;::::0;-1:-1:-1;;;;;;4163:102:117::1;::::0;;;;;;::::1;::::0;::::1;14814:25:165::0;4254:1:117::1;14855:18:165::0;;;14848:34;14787:18;;4163:102:117::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4298:4;4276:10;4287:7;4276:19;;;;;;:::i;:::-;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;;:26;;-1:-1:-1;;4276:26:117::1;::::0;::::1;;::::0;;;::::1;::::0;;;-1:-1:-1;;;;;4312:22:117;;::::1;-1:-1:-1::0;4312:22:117;;;:13:::1;:22:::0;;;;;:33;;-1:-1:-1;;;;;;4312:33:117;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;4355:18;;;:8:::1;:18:::0;;;;;:32;;-1:-1:-1;4355:32:117;::::1;::::0;;;;;;;;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;;4312:33;:22;;4402:31:::1;::::0;::::1;4451:8:::0;3008:1458;-1:-1:-1;;;;;3008:1458:117:o;9315:424::-;9463:7;9481:18;9502:32;;;;;;;;:::i;:::-;-1:-1:-1;;9502:32:117;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15123:15:165;;;9502:32:117;9574:44;;15105:34:165;15175:15;;15155:18;;;15148:43;9574:44:117;;;;;;;;;15040:18:165;;;9574:44:117;;;9502:32;;-1:-1:-1;;;9652:39:117;;9502:32;;9574:44;;9652:39;;;:::i;:::-;;;;;;;;;;;;;9628:63;;9708:24;9716:5;9723:8;9708:7;:24::i;:::-;9701:31;9315:424;-1:-1:-1;;;;;;;9315:424:117:o;1796:162:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;160:51:165;133:18;;1901:40:141;14:203:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;8613:639:117:-;8690:7;8709:17;8764:4;8747:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;8737:33;;;;;;8709:62;;8781:12;8912:8;8906:4;8902:19;8989:8;8983:15;9090:9;9076:12;9062;9059:1;9051:49;9043:57;;;;9135:4;9123:17;9113:73;;9170:1;9167;9160:12;9113:73;9210:14;;-1:-1:-1;;;;;9210:14:117;;;;;;;;9241:4;8613:639;-1:-1:-1;;;;8613:639:117:o;-1:-1:-1:-;;;;;;;;:::o;222:173:165:-;290:20;;-1:-1:-1;;;;;339:31:165;;329:42;;319:70;;385:1;382;375:12;400:186;459:6;512:2;500:9;491:7;487:23;483:32;480:52;;;528:1;525;518:12;480:52;551:29;570:9;551:29;:::i;:::-;541:39;400:186;-1:-1:-1;;;400:186:165:o;591:592::-;662:6;670;723:2;711:9;702:7;698:23;694:32;691:52;;;739:1;736;729:12;691:52;779:9;766:23;808:18;849:2;841:6;838:14;835:34;;;865:1;862;855:12;835:34;903:6;892:9;888:22;878:32;;948:7;941:4;937:2;933:13;929:27;919:55;;970:1;967;960:12;919:55;1010:2;997:16;1036:2;1028:6;1025:14;1022:34;;;1052:1;1049;1042:12;1022:34;1097:7;1092:2;1083:6;1079:2;1075:15;1071:24;1068:37;1065:57;;;1118:1;1115;1108:12;1065:57;1149:2;1141:11;;;;;1171:6;;-1:-1:-1;591:592:165;;-1:-1:-1;;;;591:592:165:o;1380:127::-;1441:10;1436:3;1432:20;1429:1;1422:31;1472:4;1469:1;1462:15;1496:4;1493:1;1486:15;1512:275;1583:2;1577:9;1648:2;1629:13;;-1:-1:-1;;1625:27:165;1613:40;;1683:18;1668:34;;1704:22;;;1665:62;1662:88;;;1730:18;;:::i;:::-;1766:2;1759:22;1512:275;;-1:-1:-1;1512:275:165:o;1792:531::-;1835:5;1888:3;1881:4;1873:6;1869:17;1865:27;1855:55;;1906:1;1903;1896:12;1855:55;1942:6;1929:20;1968:18;1964:2;1961:26;1958:52;;;1990:18;;:::i;:::-;2034:55;2077:2;2058:13;;-1:-1:-1;;2054:27:165;2083:4;2050:38;2034:55;:::i;:::-;2114:2;2105:7;2098:19;2160:3;2153:4;2148:2;2140:6;2136:15;2132:26;2129:35;2126:55;;;2177:1;2174;2167:12;2126:55;2242:2;2235:4;2227:6;2223:17;2216:4;2207:7;2203:18;2190:55;2290:1;2265:16;;;2283:4;2261:27;2254:38;;;;2269:7;1792:531;-1:-1:-1;;;1792:531:165:o;2328:470::-;2415:6;2423;2431;2484:2;2472:9;2463:7;2459:23;2455:32;2452:52;;;2500:1;2497;2490:12;2452:52;2523:29;2542:9;2523:29;:::i;:::-;2513:39;;2571:38;2605:2;2594:9;2590:18;2571:38;:::i;:::-;2561:48;;2660:2;2649:9;2645:18;2632:32;2687:18;2679:6;2676:30;2673:50;;;2719:1;2716;2709:12;2673:50;2742;2784:7;2775:6;2764:9;2760:22;2742:50;:::i;:::-;2732:60;;;2328:470;;;;;:::o;2803:658::-;2974:2;3026:21;;;3096:13;;2999:18;;;3118:22;;;2945:4;;2974:2;3197:15;;;;3171:2;3156:18;;;2945:4;3240:195;3254:6;3251:1;3248:13;3240:195;;;3319:13;;-1:-1:-1;;;;;3315:39:165;3303:52;;3410:15;;;;3375:12;;;;3351:1;3269:9;3240:195;;;-1:-1:-1;3452:3:165;;2803:658;-1:-1:-1;;;;;;2803:658:165:o;3466:396::-;3544:6;3552;3605:2;3593:9;3584:7;3580:23;3576:32;3573:52;;;3621:1;3618;3611:12;3573:52;3644:29;3663:9;3644:29;:::i;:::-;3634:39;;3724:2;3713:9;3709:18;3696:32;3751:18;3743:6;3740:30;3737:50;;;3783:1;3780;3773:12;3737:50;3806;3848:7;3839:6;3828:9;3824:22;3806:50;:::i;:::-;3796:60;;;3466:396;;;;;:::o;3867:1220::-;3979:6;3987;3995;4048:2;4036:9;4027:7;4023:23;4019:32;4016:52;;;4064:1;4061;4054:12;4016:52;4087:29;4106:9;4087:29;:::i;:::-;4077:39;;4135:2;4188;4177:9;4173:18;4160:32;4211:18;4252:2;4244:6;4241:14;4238:34;;;4268:1;4265;4258:12;4238:34;4291:50;4333:7;4324:6;4313:9;4309:22;4291:50;:::i;:::-;4281:60;;4394:2;4383:9;4379:18;4366:32;4350:48;;4423:2;4413:8;4410:16;4407:36;;;4439:1;4436;4429:12;4407:36;4477:8;4466:9;4462:24;4452:34;;4524:7;4517:4;4513:2;4509:13;4505:27;4495:55;;4546:1;4543;4536:12;4495:55;4582:2;4569:16;4604:2;4600;4597:10;4594:36;;;4610:18;;:::i;:::-;4656:2;4653:1;4649:10;4639:20;;4679:28;4703:2;4699;4695:11;4679:28;:::i;:::-;4741:15;;;4811:11;;;4807:20;;;4772:12;;;;4839:19;;;4836:39;;;4871:1;4868;4861:12;4836:39;4895:11;;;;4915:142;4931:6;4926:3;4923:15;4915:142;;;4997:17;;4985:30;;4948:12;;;;5035;;;;4915:142;;;5076:5;5066:15;;;;;;;;3867:1220;;;;;:::o;5092:273::-;5277:6;5269;5264:3;5251:33;5233:3;5303:16;;5328:13;;;5303:16;5092:273;-1:-1:-1;5092:273:165:o;5729:355::-;5931:2;5913:21;;;5970:2;5950:18;;;5943:30;6009:33;6004:2;5989:18;;5982:61;6075:2;6060:18;;5729:355::o;6378:250::-;6463:1;6473:113;6487:6;6484:1;6481:13;6473:113;;;6563:11;;;6557:18;6544:11;;;6537:39;6509:2;6502:10;6473:113;;;-1:-1:-1;;6620:1:165;6602:16;;6595:27;6378:250::o;6633:396::-;6782:2;6771:9;6764:21;6745:4;6814:6;6808:13;6857:6;6852:2;6841:9;6837:18;6830:34;6873:79;6945:6;6940:2;6929:9;6925:18;6920:2;6912:6;6908:15;6873:79;:::i;:::-;7013:2;6992:15;-1:-1:-1;;6988:29:165;6973:45;;;;7020:2;6969:54;;6633:396;-1:-1:-1;;6633:396:165:o;7034:355::-;7236:2;7218:21;;;7275:2;7255:18;;;7248:30;7314:33;7309:2;7294:18;;7287:61;7380:2;7365:18;;7034:355::o;7394:424::-;-1:-1:-1;;;7640:3:165;7633:20;7615:3;7682:6;7676:13;7698:74;7765:6;7761:1;7756:3;7752:11;7745:4;7737:6;7733:17;7698:74;:::i;:::-;7792:16;;;;7810:1;7788:24;;7394:424;-1:-1:-1;;7394:424:165:o;7823:289::-;7954:3;7992:6;7986:13;8008:66;8067:6;8062:3;8055:4;8047:6;8043:17;8008:66;:::i;:::-;8090:16;;;;;7823:289;-1:-1:-1;;7823:289:165:o;8117:342::-;8319:2;8301:21;;;8358:2;8338:18;;;8331:30;-1:-1:-1;;;8392:2:165;8377:18;;8370:48;8450:2;8435:18;;8117:342::o;9631:127::-;9692:10;9687:3;9683:20;9680:1;9673:31;9723:4;9720:1;9713:15;9747:4;9744:1;9737:15;9763:225;9830:9;;;9851:11;;;9848:134;;;9904:10;9899:3;9895:20;9892:1;9885:31;9939:4;9936:1;9929:15;9967:4;9964:1;9957:15;9993:127;10054:10;10049:3;10045:20;10042:1;10035:31;10085:4;10082:1;10075:15;10109:4;10106:1;10099:15;10125:422;-1:-1:-1;;;10371:3:165;10364:18;10346:3;10411:6;10405:13;10427:74;10494:6;10490:1;10485:3;10481:11;10474:4;10466:6;10462:17;10427:74;:::i;:::-;10521:16;;;;10539:1;10517:24;;10125:422;-1:-1:-1;;10125:422:165:o;10552:400::-;10754:2;10736:21;;;10793:2;10773:18;;;10766:30;10832:34;10827:2;10812:18;;10805:62;-1:-1:-1;;;10898:2:165;10883:18;;10876:34;10942:3;10927:19;;10552:400::o;14350:277::-;14417:6;14470:2;14458:9;14449:7;14445:23;14441:32;14438:52;;;14486:1;14483;14476:12;14438:52;14518:9;14512:16;14571:5;14564:13;14557:21;14550:5;14547:32;14537:60;;14593:1;14590;14583:12;15202:492;15377:3;15415:6;15409:13;15431:66;15490:6;15485:3;15478:4;15470:6;15466:17;15431:66;:::i;:::-;15560:13;;15519:16;;;;15582:70;15560:13;15519:16;15629:4;15617:17;;15582:70;:::i;:::-;15668:20;;15202:492;-1:-1:-1;;;;15202:492:165:o","linkReferences":{},"immutableReferences":{"44409":[{"start":284,"length":32},{"start":1468,"length":32},{"start":2885,"length":32},{"start":4700,"length":32}]}},"methodIdentifiers":{"addTokenFactory(address)":"9ce19365","createIdentity(address,string)":"8e952bfe","createIdentityWithManagementKeys(address,string,bytes32[])":"fe5cd59a","createTokenIdentity(address,address,string)":"3d56ff66","getIdentity(address)":"2fea7b81","getToken(address)":"59770438","getWallets(address)":"422c29a4","implementationAuthority()":"2307f882","isSaltTaken(string)":"3a500451","isTokenFactory(address)":"3e3bc3d7","linkWallet(address)":"b8bb8126","owner()":"8da5cb5b","removeTokenFactory(address)":"937529ef","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","unlinkWallet(address)":"5027dbe2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementationAuthority\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"Deployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"name\":\"TokenFactoryAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"name\":\"TokenFactoryRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"TokenLinked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"WalletLinked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"WalletUnlinked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factory\",\"type\":\"address\"}],\"name\":\"addTokenFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_salt\",\"type\":\"string\"}],\"name\":\"createIdentity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_salt\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"_managementKeys\",\"type\":\"bytes32[]\"}],\"name\":\"createIdentityWithManagementKeys\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_salt\",\"type\":\"string\"}],\"name\":\"createTokenIdentity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"}],\"name\":\"getIdentity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identity\",\"type\":\"address\"}],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identity\",\"type\":\"address\"}],\"name\":\"getWallets\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementationAuthority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_salt\",\"type\":\"string\"}],\"name\":\"isSaltTaken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factory\",\"type\":\"address\"}],\"name\":\"isTokenFactory\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newWallet\",\"type\":\"address\"}],\"name\":\"linkWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factory\",\"type\":\"address\"}],\"name\":\"removeTokenFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oldWallet\",\"type\":\"address\"}],\"name\":\"unlinkWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addTokenFactory(address)\":{\"details\":\"See {IdFactory-addTokenFactory}.\"},\"createIdentity(address,string)\":{\"details\":\"See {IdFactory-createIdentity}.\"},\"createIdentityWithManagementKeys(address,string,bytes32[])\":{\"details\":\"See {IdFactory-createIdentityWithManagementKeys}.\"},\"createTokenIdentity(address,address,string)\":{\"details\":\"See {IdFactory-createTokenIdentity}.\"},\"getIdentity(address)\":{\"details\":\"See {IdFactory-getIdentity}.\"},\"getToken(address)\":{\"details\":\"See {IdFactory-getToken}.\"},\"getWallets(address)\":{\"details\":\"See {IdFactory-getWallets}.\"},\"implementationAuthority()\":{\"details\":\"See {IdFactory-implementationAuthority}.\"},\"isSaltTaken(string)\":{\"details\":\"See {IdFactory-isSaltTaken}.\"},\"isTokenFactory(address)\":{\"details\":\"See {IdFactory-isTokenFactory}.\"},\"linkWallet(address)\":{\"details\":\"See {IdFactory-linkWallet}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeTokenFactory(address)\":{\"details\":\"See {IdFactory-removeTokenFactory}.\"},\"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.\"},\"unlinkWallet(address)\":{\"details\":\"See {IdFactory-unlinkWallet}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"Deployed(address)\":{\"notice\":\"events\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onchainid/factory/IdFactory.sol\":\"IdFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/onchainid/factory/IIdFactory.sol\":{\"keccak256\":\"0x7176e78517381538ff4cc3fe4a4b9adb0a05d86e8750836801010af3cc2b9cc4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ea9875f1fdde42326e9bd66aa7605811f886bff7125af16579ba71fb3aa29d9e\",\"dweb:/ipfs/QmbyoWxwe2D4sdSFs191ukHZnS1uEpdKm9a85FBGK51Cy3\"]},\"contracts/onchainid/factory/IdFactory.sol\":{\"keccak256\":\"0x5be85cd708bd30cd2e9617c1f818b6e1bba0c7af069c3ce9bfca0cbcac1bd306\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://564c8686205a09676e966e38750dfb59d66efd211dca8c54dbe03daf490acbd9\",\"dweb:/ipfs/QmRd2sbme9SJjpUXw5wMe3Bsz67KuPfbVT5tUC5Vzzxm9i\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IImplementationAuthority.sol\":{\"keccak256\":\"0xa46065896246e1a610410ae59828978d8cd6d04527b636e1e7399217941bcf09\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f8c493c0291774cf2da1f84e928c8999c36f7640e6fef82621cd990564a7dd80\",\"dweb:/ipfs/QmPxDk18X86b8FKG91ABkrrkX6fJa2Z8S4jjXDniQ2jvwa\"]},\"contracts/onchainid/proxy/IdentityProxy.sol\":{\"keccak256\":\"0x6434c7e5409fa5264c1fa8ae24f948de98c9620d27af508a36bdee21cf743505\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cfdaa1b2a52b447b821d035b668a32accb63879ccb229069f290ff8b22f9d9b4\",\"dweb:/ipfs/QmdHhsyPD1EJbBtq3APt1Dfx2ekBRrEAVTuEbmqBvtTUai\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"implementationAuthority","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_addr","type":"address","indexed":true}],"type":"event","name":"Deployed","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"factory","type":"address","indexed":true}],"type":"event","name":"TokenFactoryAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"factory","type":"address","indexed":true}],"type":"event","name":"TokenFactoryRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"address","name":"identity","type":"address","indexed":true}],"type":"event","name":"TokenLinked","anonymous":false},{"inputs":[{"internalType":"address","name":"wallet","type":"address","indexed":true},{"internalType":"address","name":"identity","type":"address","indexed":true}],"type":"event","name":"WalletLinked","anonymous":false},{"inputs":[{"internalType":"address","name":"wallet","type":"address","indexed":true},{"internalType":"address","name":"identity","type":"address","indexed":true}],"type":"event","name":"WalletUnlinked","anonymous":false},{"inputs":[{"internalType":"address","name":"_factory","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenFactory"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"string","name":"_salt","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createIdentity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"string","name":"_salt","type":"string"},{"internalType":"bytes32[]","name":"_managementKeys","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"createIdentityWithManagementKeys","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_tokenOwner","type":"address"},{"internalType":"string","name":"_salt","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createTokenIdentity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"stateMutability":"view","type":"function","name":"getIdentity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_identity","type":"address"}],"stateMutability":"view","type":"function","name":"getToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_identity","type":"address"}],"stateMutability":"view","type":"function","name":"getWallets","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"implementationAuthority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"_salt","type":"string"}],"stateMutability":"view","type":"function","name":"isSaltTaken","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_factory","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenFactory","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"linkWallet"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_factory","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenFactory"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_oldWallet","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unlinkWallet"}],"devdoc":{"kind":"dev","methods":{"addTokenFactory(address)":{"details":"See {IdFactory-addTokenFactory}."},"createIdentity(address,string)":{"details":"See {IdFactory-createIdentity}."},"createIdentityWithManagementKeys(address,string,bytes32[])":{"details":"See {IdFactory-createIdentityWithManagementKeys}."},"createTokenIdentity(address,address,string)":{"details":"See {IdFactory-createTokenIdentity}."},"getIdentity(address)":{"details":"See {IdFactory-getIdentity}."},"getToken(address)":{"details":"See {IdFactory-getToken}."},"getWallets(address)":{"details":"See {IdFactory-getWallets}."},"implementationAuthority()":{"details":"See {IdFactory-implementationAuthority}."},"isSaltTaken(string)":{"details":"See {IdFactory-isSaltTaken}."},"isTokenFactory(address)":{"details":"See {IdFactory-isTokenFactory}."},"linkWallet(address)":{"details":"See {IdFactory-linkWallet}."},"owner()":{"details":"Returns the address of the current owner."},"removeTokenFactory(address)":{"details":"See {IdFactory-removeTokenFactory}."},"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."},"unlinkWallet(address)":{"details":"See {IdFactory-unlinkWallet}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onchainid/factory/IdFactory.sol":"IdFactory"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onchainid/factory/IIdFactory.sol":{"keccak256":"0x7176e78517381538ff4cc3fe4a4b9adb0a05d86e8750836801010af3cc2b9cc4","urls":["bzz-raw://ea9875f1fdde42326e9bd66aa7605811f886bff7125af16579ba71fb3aa29d9e","dweb:/ipfs/QmbyoWxwe2D4sdSFs191ukHZnS1uEpdKm9a85FBGK51Cy3"],"license":"GPL-3.0"},"contracts/onchainid/factory/IdFactory.sol":{"keccak256":"0x5be85cd708bd30cd2e9617c1f818b6e1bba0c7af069c3ce9bfca0cbcac1bd306","urls":["bzz-raw://564c8686205a09676e966e38750dfb59d66efd211dca8c54dbe03daf490acbd9","dweb:/ipfs/QmRd2sbme9SJjpUXw5wMe3Bsz67KuPfbVT5tUC5Vzzxm9i"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IImplementationAuthority.sol":{"keccak256":"0xa46065896246e1a610410ae59828978d8cd6d04527b636e1e7399217941bcf09","urls":["bzz-raw://f8c493c0291774cf2da1f84e928c8999c36f7640e6fef82621cd990564a7dd80","dweb:/ipfs/QmPxDk18X86b8FKG91ABkrrkX6fJa2Z8S4jjXDniQ2jvwa"],"license":"GPL-3.0"},"contracts/onchainid/proxy/IdentityProxy.sol":{"keccak256":"0x6434c7e5409fa5264c1fa8ae24f948de98c9620d27af508a36bdee21cf743505","urls":["bzz-raw://cfdaa1b2a52b447b821d035b668a32accb63879ccb229069f290ff8b22f9d9b4","dweb:/ipfs/QmdHhsyPD1EJbBtq3APt1Dfx2ekBRrEAVTuEbmqBvtTUai"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":117} \ No newline at end of file diff --git a/out/Identity.sol/Identity.json b/out/Identity.sol/Identity.json new file mode 100644 index 0000000..4f6ed66 --- /dev/null +++ b/out/Identity.sol/Identity.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"initialManagementKey","type":"address","internalType":"address"},{"name":"_isLibrary","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"addClaim","inputs":[{"name":"_topic","type":"uint256","internalType":"uint256"},{"name":"_scheme","type":"uint256","internalType":"uint256"},{"name":"_issuer","type":"address","internalType":"address"},{"name":"_signature","type":"bytes","internalType":"bytes"},{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_uri","type":"string","internalType":"string"}],"outputs":[{"name":"claimRequestId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"addKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"},{"name":"_type","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"_id","type":"uint256","internalType":"uint256"},{"name":"_approve","type":"bool","internalType":"bool"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"execute","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"executionId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"getClaim","inputs":[{"name":"_claimId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"topic","type":"uint256","internalType":"uint256"},{"name":"scheme","type":"uint256","internalType":"uint256"},{"name":"issuer","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"uri","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getClaimIdsByTopic","inputs":[{"name":"_topic","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"claimIds","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"purposes","type":"uint256[]","internalType":"uint256[]"},{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getKeyPurposes","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_purposes","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getKeysByPurpose","inputs":[{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keys","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getRecoveredAddress","inputs":[{"name":"sig","type":"bytes","internalType":"bytes"},{"name":"dataHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"initialize","inputs":[{"name":"initialManagementKey","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isClaimValid","inputs":[{"name":"_identity","type":"address","internalType":"contract IIdentity"},{"name":"claimTopic","type":"uint256","internalType":"uint256"},{"name":"sig","type":"bytes","internalType":"bytes"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"claimValid","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyHasPurpose","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeClaim","inputs":[{"name":"_claimId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"event","name":"Approved","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ClaimAdded","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimChanged","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimRemoved","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"Executed","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ExecutionFailed","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ExecutionRequested","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"KeyAdded","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"purpose","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"keyType","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"KeyRemoved","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"purpose","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"keyType","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040526006805461ffff191690553480156200001c57600080fd5b5060405162002a3138038062002a318339810160408190526200003f916200029f565b6001600160a01b0382166200009b5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b80620000b257620000ac82620000c8565b620000c0565b6006805460ff191660011790555b5050620002ed565b60065460ff161580620000da5750303b155b620001285760405162461bcd60e51b815260206004820152601e60248201527f496e697469616c206b65792077617320616c72656164792073657475702e0000604482015260640162000092565b6006805461ffff1916610101179055604080516001600160a01b03831660208201526000910160408051601f19818403018152828252805160209182012060008181526001808452848220600281018490558685019095528086529082905291829052935062000199929062000233565b506000818152600160208181526040808420830183905560029091527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0805480840182559084527f7fef4bf8f63cf9dd467136c679c02b5c17fcf6322d9562512bf5eb952cf7cc5301849055519091829184917f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e991a45050565b82805482825590600052602060002090810192821562000276579160200282015b8281111562000276578251829060ff1690559160200191906001019062000254565b506200028492915062000288565b5090565b5b8082111562000284576000815560010162000289565b60008060408385031215620002b357600080fd5b82516001600160a01b0381168114620002cb57600080fd5b60208401519092508015158114620002e257600080fd5b809150509250929050565b61273480620002fd6000396000f3fe6080604052600436106100f35760003560e01c8063b1a34e0d1161008a578063c4d66de811610059578063c4d66de8146102da578063c9100bcb146102fc578063d202158d1461032e578063fb307b341461034e57600080fd5b8063b1a34e0d14610241578063b61d27f61461026f578063c0969a6e14610282578063c3b129e3146102a257600080fd5b806354fd4d50116100c657806354fd4d50146101a0578063747442d3146101d457806380e9e9e1146101f45780639010f7261461022157600080fd5b806312aaac70146100f85780631d381240146101305780634eee424a1461016057806353d413c514610180575b600080fd5b34801561010457600080fd5b50610118610113366004611d53565b61037b565b60405161012793929190611da8565b60405180910390f35b34801561013c57600080fd5b5061015061014b366004611dcd565b6103f4565b6040519015158152602001610127565b34801561016c57600080fd5b5061015061017b366004611d53565b61064d565b34801561018c57600080fd5b5061015061019b366004611df9565b61090c565b3480156101ac57600080fd5b506040805180820182526005815264322e322e3160d81b602082015290516101279190611e61565b3480156101e057600080fd5b506101506101ef366004611e89565b610cfc565b34801561020057600080fd5b5061021461020f366004611d53565b6110d9565b6040516101279190611eb9565b34801561022d57600080fd5b5061021461023c366004611d53565b61113b565b34801561024d57600080fd5b5061026161025c366004611fbe565b61119b565b604051908152602001610127565b61026161027d36600461207f565b611467565b34801561028e57600080fd5b5061015061029d3660046120d8565b611599565b3480156102ae57600080fd5b506102c26102bd366004612158565b61168a565b6040516001600160a01b039091168152602001610127565b3480156102e657600080fd5b506102fa6102f536600461219d565b61173b565b005b34801561030857600080fd5b5061031c610317366004611d53565b61179d565b604051610127969594939291906121ba565b34801561033a57600080fd5b50610150610349366004611df9565b61199e565b34801561035a57600080fd5b5061036e610369366004611d53565b611a95565b604051610127919061221a565b6000818152600160208181526040808420928301546002840154845483518186028101860190945280845260609695869590949185918301828280156103e057602002820191906000526020600020905b8154815260200190600101908083116103cc575b505050505092509250925092509193909250565b60065460009060ff61010090910416151560011461042d5760405162461bcd60e51b81526004016104249061222d565b60405180910390fd5b3330148061046357506040805133602082015261046391015b60405160208183030381529060405280519060200120600161199e565b61047f5760405162461bcd60e51b815260040161042490612280565b6000848152600160205260409020600201548490036105a8576000848152600160209081526040808320805482518185028101850190935280835291929091908301828280156104ee57602002820191906000526020600020905b8154815260200190600101908083116104da575b5050505050905060005b8151811015610581576000828281518110610515576105156122d0565b602002602001015190508581036105785760405162461bcd60e51b815260206004820152602160248201527f436f6e666c6963743a204b657920616c72656164792068617320707572706f736044820152606560f81b6064820152608401610424565b506001016104f8565b505060008481526001602081815260408320805492830181558352909120018390556105f4565b600084815260016020818152604080842060028101899055815180840190925287825293889052908290526105dd9291611c5b565b506000848152600160208190526040909120018290555b60008381526002602090815260408083208054600181018255908452918320909101869055518391859187917f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e991a45060019392505050565b60065460009060ff61010090910416151560011461067d5760405162461bcd60e51b81526004016104249061222d565b333014806106b35750604080513360208201526106b391015b60405160208183030381529060405280519060200120600361199e565b6106cf5760405162461bcd60e51b8152600401610424906122e6565b600082815260046020526040812054908190036107425760405162461bcd60e51b815260206004820152602b60248201527f4e6f6e4578697374696e673a205468657265206973206e6f20636c61696d207760448201526a1a5d1a081d1a1a5cc8125160aa1b6064820152608401610424565b6000818152600560205260408120545b6000838152600560205260409020805486919084908110610775576107756122d0565b90600052602060002001541461079a578161078f8161234e565b925050808210610752575b60008381526005602052604090206107b3600183612367565b815481106107c3576107c36122d0565b90600052602060002001546005600085815260200190815260200160002083815481106107f2576107f26122d0565b9060005260206000200181905550600560008481526020019081526020016000208054806108225761082261237a565b6000828152602080822083016000199081018390559092019092558682526004908190526040918290206002810154600182015493516001600160a01b039091169387938a937f3cf57863a89432c61c4a27073c6ee39e8a764bff5a05aebfbcdcdc80b2e6130a936108a39392600383019290810191600590910190612447565b60405180910390a46000858152600460205260408120818155600181018290556002810180546001600160a01b0319169055906108e36003830182611ca6565b6108f1600483016000611ca6565b6108ff600583016000611ca6565b5060019695505050505050565b60065460009060ff61010090910416151560011461093c5760405162461bcd60e51b81526004016104249061222d565b333014806109595750604080513360208201526109599101610446565b6109755760405162461bcd60e51b815260040161042490612280565b60008381526001602052604090206002015483146109df5760405162461bcd60e51b815260206004820152602160248201527f4e6f6e4578697374696e673a204b65792069736e2774207265676973746572656044820152601960fa1b6064820152608401610424565b600083815260016020908152604080832080548251818502810185019093528083529192909190830182828015610a3557602002820191906000526020600020905b815481526020019060010190808311610a21575b5050505050905060005b83828281518110610a5257610a526122d0565b602002602001015114610ad45780610a698161234e565b91505081518103610acf5760405162461bcd60e51b815260206004820152602a60248201527f4e6f6e4578697374696e673a204b657920646f65736e27742068617665207375604482015269636820707572706f736560b01b6064820152608401610424565b610a3f565b8160018351610ae39190612367565b81518110610af357610af36122d0565b6020026020010151828281518110610b0d57610b0d6122d0565b602090810291909101810191909152600086815260018252604090208351610b3792850190611c5b565b506000858152600160205260409020805480610b5557610b5561237a565b6000828152602080822083016000199081018390559092019092558582526002905260408120545b6000868152600260205260409020805488919084908110610ba057610ba06122d0565b906000526020600020015414610bc55781610bba8161234e565b925050808210610b7d575b6000868152600260205260409020610bde600183612367565b81548110610bee57610bee6122d0565b9060005260206000200154600260008881526020019081526020016000208381548110610c1d57610c1d6122d0565b906000526020600020018190555060026000878152602001908152602001600020805480610c4d57610c4d61237a565b6001900381819060005260206000200160009055905560006001600089815260200190815260200160002060010154905060018551610c8c9190612367565b600003610cbd57600088815260016020526040812090610cac8282611ce0565b506000600182018190556002909101555b8087897f585a4aef50f8267a92b32412b331b20f7f8b96f2245b253b9cc50dcc621d339760405160405180910390a46001955050505050505b92915050565b60065460009060ff610100909104161515600114610d2c5760405162461bcd60e51b81526004016104249061222d565b6000548310610d8d5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420617070726f76652061206e6f6e2d6578697374696e6720657860448201526632b1baba34b7b760c91b6064820152608401610424565b60008381526003602081905260409091200154610100900460ff1615610df55760405162461bcd60e51b815260206004820152601860248201527f5265717565737420616c726561647920657865637574656400000000000000006044820152606401610424565b600083815260036020526040902054306001600160a01b0390911603610e865760408051336020820152610e299101610446565b610e815760405162461bcd60e51b815260206004820152602360248201527f53656e64657220646f6573206e6f742068617665206d616e6167656d656e74206044820152626b657960e81b6064820152608401610424565b610eff565b60408051336020820152610eb391015b60405160208183030381529060405280519060200120600261199e565b610eff5760405162461bcd60e51b815260206004820152601f60248201527f53656e64657220646f6573206e6f74206861766520616374696f6e206b6579006044820152606401610424565b827fb3932da477fe5d6c8ff2eafef050c0f3a1af18fc07121001482600f36f3715d883604051610f33911515815260200190565b60405180910390a28115156001036110bb57600083815260036020819052604091829020908101805460ff1916600190811790915581549082015492516001600160a01b039091169291610f8c91600290910190612486565b60006040518083038185875af1925050503d8060008114610fc9576040519150601f19603f3d011682016040523d82523d6000602084013e610fce565b606091505b5090915050801561105357600083815260036020819052604091829020908101805461ff00191661010017905560018101548154925190926001600160a01b03169186917f1f920dbda597d7bf95035464170fa58d0a4b57f13a1c315ace6793b9f63688b891611043916002909101906124fc565b60405180910390a4506001610cf6565b6000838152600360205260409081902060018101548154925190926001600160a01b03169186917fe10c49d9f7c71da23262367013434763cfdb2332267641728d25cd712c5c6a68916110ab916002909101906124fc565b60405180910390a4506000610cf6565b50506000908152600360208190526040822001805460ff1916905590565b60008181526005602090815260409182902080548351818402810184019094528084526060939283018282801561112f57602002820191906000526020600020905b81548152602001906001019080831161111b575b50505050509050919050565b60008181526002602090815260409182902080548351818402810184019094528084526060939283018282801561112f576020028201919060005260206000209081548152602001906001019080831161111b5750505050509050919050565b60065460009060ff6101009091041615156001146111cb5760405162461bcd60e51b81526004016104249061222d565b333014806111e85750604080513360208201526111e89101610696565b6112045760405162461bcd60e51b8152600401610424906122e6565b6001600160a01b03851630146112c35760405163604b4d3760e11b81526001600160a01b0386169063c0969a6e906112469030908b908990899060040161250f565b602060405180830381865afa158015611263573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112879190612548565b6112c35760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420636c61696d60981b6044820152606401610424565b604080516001600160a01b038716602082015290810188905260009060600160408051601f1981840301815291815281516020928301206000818152600490935291208981556001810189905590915060030161132086826125b6565b5060008181526004602081905260409091200161133d85826125b6565b50600081815260046020526040902060050161135984826125b6565b506000818152600460205260409020600201546001600160a01b0387811691161461141257600088815260056020908152604080832080546001810182559084528284200184905583835260049091529081902060020180546001600160a01b0319166001600160a01b0389169081179091559051899083907f46149b18aa084502c3f12bc75e19eda8bda8d102b82cce8474677a6d0d5f43c590611405908c908b908b908b90612676565b60405180910390a461145c565b856001600160a01b031688827f3bab293fc00db832d7619a9299914251b8747c036867ec056cbd506f60135b138a8989896040516114539493929190612676565b60405180910390a45b979650505050505050565b60065460009060ff6101009091041615156001146114975760405162461bcd60e51b81526004016104249061222d565b600080548082526003602052604090912080546001600160a01b0319166001600160a01b038716178155600181018590556002016114d584826125b6565b506000805490806114e58361234e565b919050555083856001600160a01b0316827f8afcfabcb00e47a53a8fc3e9f23ff47ee1926194bb1350dd007c50b412a6cee8866040516115259190611e61565b60405180910390a4604080513360208201526115419101610446565b1561155757611551816001610cfc565b50611591565b6001600160a01b038516301480159061157f57506040805133602082015261157f9101610e96565b156115915761158f816001610cfc565b505b949350505050565b6000808585846040516020016115b1939291906126b5565b60405160208183030381529060405280519060200120905060008160405160200161160891907f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b604051602081830303815290604052805190602001209050600061162c868361168a565b604080516001600160a01b03831660208201529192506000910160405160208183030381529060405280519060200120905061166981600361199e565b1561167b576001945050505050611591565b50600098975050505050505050565b60008060008085516041146116a55760009350505050610cf6565b50505060208301516040840151606085015160001a601b8110156116d1576116ce601b826126e5565b90505b6040805160008082526020820180845288905260ff841692820192909252606081018590526080810184905260019060a0016020604051602081039080840390855afa158015611725573d6000803e3d6000fd5b5050604051601f19015198975050505050505050565b6001600160a01b0381166117915760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610424565b61179a81611af5565b50565b600081815260046020819052604082208054600182015460028301546003840180548796879660609687968796919590946001600160a01b039092169390929081019160059091019083906117f190612390565b80601f016020809104026020016040519081016040528092919081815260200182805461181d90612390565b801561186a5780601f1061183f5761010080835404028352916020019161186a565b820191906000526020600020905b81548152906001019060200180831161184d57829003601f168201915b5050505050925081805461187d90612390565b80601f01602080910402602001604051908101604052809291908181526020018280546118a990612390565b80156118f65780601f106118cb576101008083540402835291602001916118f6565b820191906000526020600020905b8154815290600101906020018083116118d957829003601f168201915b5050505050915080805461190990612390565b80601f016020809104026020016040519081016040528092919081815260200182805461193590612390565b80156119825780601f1061195757610100808354040283529160200191611982565b820191906000526020600020905b81548152906001019060200180831161196557829003601f168201915b5050505050905095509550955095509550955091939550919395565b600082815260016020908152604080832081518154608094810282018501909352606081018381528594919384928491908401828280156119fe57602002820191906000526020600020905b8154815260200190600101908083116119ea575b505050918352505060018201546020820152600290910154604091820152810151909150600003611a33576000915050610cf6565b60005b815151811015611a8a57600082600001518281518110611a5857611a586122d0565b602002602001015190508060011480611a7057508481145b15611a815760019350505050610cf6565b50600101611a36565b506000949350505050565b60008181526001602090815260409182902080548351818402810184019094528084526060939283018282801561112f576020028201919060005260206000209081548152602001906001019080831161111b5750505050509050919050565b60065460ff161580611b065750303b155b611b525760405162461bcd60e51b815260206004820152601e60248201527f496e697469616c206b65792077617320616c72656164792073657475702e00006044820152606401610424565b6006805461ffff1916610101179055604080516001600160a01b03831660208201526000910160408051601f198184030181528282528051602091820120600081815260018084528482206002810184905586850190955280865290829052918290529350611bc19290611cfe565b506000818152600160208181526040808420830183905560029091527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0805480840182559084527f7fef4bf8f63cf9dd467136c679c02b5c17fcf6322d9562512bf5eb952cf7cc5301849055519091829184917f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e991a45050565b828054828255906000526020600020908101928215611c96579160200282015b82811115611c96578251825591602001919060010190611c7b565b50611ca2929150611d3e565b5090565b508054611cb290612390565b6000825580601f10611cc2575050565b601f01602090049060005260206000209081019061179a9190611d3e565b508054600082559060005260206000209081019061179a9190611d3e565b828054828255906000526020600020908101928215611c96579160200282015b82811115611c96578251829060ff16905591602001919060010190611d1e565b5b80821115611ca25760008155600101611d3f565b600060208284031215611d6557600080fd5b5035919050565b60008151808452602080850194506020840160005b83811015611d9d57815187529582019590820190600101611d81565b509495945050505050565b606081526000611dbb6060830186611d6c565b60208301949094525060400152919050565b600080600060608486031215611de257600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611e0c57600080fd5b50508035926020909101359150565b6000815180845260005b81811015611e4157602081850181015186830182015201611e25565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000611e746020830184611e1b565b9392505050565b801515811461179a57600080fd5b60008060408385031215611e9c57600080fd5b823591506020830135611eae81611e7b565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b81811015611ef157835183529284019291840191600101611ed5565b50909695505050505050565b6001600160a01b038116811461179a57600080fd5b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611f4357611f43611f12565b604051601f8501601f19908116603f01168101908282118183101715611f6b57611f6b611f12565b81604052809350858152868686011115611f8457600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112611faf57600080fd5b611e7483833560208501611f28565b60008060008060008060c08789031215611fd757600080fd5b86359550602087013594506040870135611ff081611efd565b9350606087013567ffffffffffffffff8082111561200d57600080fd5b6120198a838b01611f9e565b9450608089013591508082111561202f57600080fd5b61203b8a838b01611f9e565b935060a089013591508082111561205157600080fd5b508701601f8101891361206357600080fd5b61207289823560208401611f28565b9150509295509295509295565b60008060006060848603121561209457600080fd5b833561209f81611efd565b925060208401359150604084013567ffffffffffffffff8111156120c257600080fd5b6120ce86828701611f9e565b9150509250925092565b600080600080608085870312156120ee57600080fd5b84356120f981611efd565b935060208501359250604085013567ffffffffffffffff8082111561211d57600080fd5b61212988838901611f9e565b9350606087013591508082111561213f57600080fd5b5061214c87828801611f9e565b91505092959194509250565b6000806040838503121561216b57600080fd5b823567ffffffffffffffff81111561218257600080fd5b61218e85828601611f9e565b95602094909401359450505050565b6000602082840312156121af57600080fd5b8135611e7481611efd565b86815285602082015260018060a01b038516604082015260c0606082015260006121e760c0830186611e1b565b82810360808401526121f98186611e1b565b905082810360a084015261220d8185611e1b565b9998505050505050505050565b602081526000611e746020830184611d6c565b60208082526033908201527f496e746572616374696e67207769746820746865206c69627261727920636f6e6040820152723a3930b1ba1034b9903337b93134b23232b71760691b606082015260800190565b60208082526030908201527f5065726d697373696f6e733a2053656e64657220646f6573206e6f742068617660408201526f65206d616e6167656d656e74206b657960801b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60208082526032908201527f5065726d697373696f6e733a2053656e64657220646f6573206e6f74206861766040820152716520636c61696d207369676e6572206b657960701b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60006001820161236057612360612338565b5060010190565b81810381811115610cf657610cf6612338565b634e487b7160e01b600052603160045260246000fd5b600181811c908216806123a457607f821691505b6020821081036123c457634e487b7160e01b600052602260045260246000fd5b50919050565b600081546123d781612390565b8085526020600183811680156123f4576001811461240e5761243c565b60ff1985168884015283151560051b88018301955061243c565b866000528260002060005b858110156124345781548a8201860152908301908401612419565b890184019650505b505050505092915050565b84815260806020820152600061246060808301866123ca565b828103604084015261247281866123ca565b9050828103606084015261145c81856123ca565b600080835461249481612390565b600182811680156124ac57600181146124c1576124f0565b60ff19841687528215158302870194506124f0565b8760005260208060002060005b858110156124e75781548a8201529084019082016124ce565b50505082870194505b50929695505050505050565b602081526000611e7460208301846123ca565b60018060a01b03851681528360208201526080604082015260006125366080830185611e1b565b828103606084015261145c8185611e1b565b60006020828403121561255a57600080fd5b8151611e7481611e7b565b601f8211156125b1576000816000526020600020601f850160051c8101602086101561258e5750805b601f850160051c820191505b818110156125ad5782815560010161259a565b5050505b505050565b815167ffffffffffffffff8111156125d0576125d0611f12565b6125e4816125de8454612390565b84612565565b602080601f83116001811461261957600084156126015750858301515b600019600386901b1c1916600185901b1785556125ad565b600085815260208120601f198616915b8281101561264857888601518255948401946001909101908401612629565b50858210156126665787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260806020820152600061268f6080830186611e1b565b82810360408401526126a18186611e1b565b9050828103606084015261145c8185611e1b565b60018060a01b03841681528260208201526060604082015260006126dc6060830184611e1b565b95945050505050565b60ff8181168382160190811115610cf657610cf661233856fea2646970667358221220f2b09153b8455d99457c5e91bfd959be61806d79bddcd0c105e790a7c58d0e3a64736f6c63430008180033","sourceMap":"480:20431:113:-:0;;;757:34:126;;;-1:-1:-1;;856:34:126;;;1694:293:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1771:34:113;;1763:78;;;;-1:-1:-1;;;1763:78:113;;673:2:165;1763:78:113;;;655:21:165;712:2;692:18;;;685:30;751:33;731:18;;;724:61;802:18;;1763:78:113;;;;;;;;;1857:10;1852:129;;1883:37;1899:20;1883:15;:37::i;:::-;1852:129;;;1951:12;:19;;-1:-1:-1;;1951:19:113;1966:4;1951:19;;;1852:129;1694:293;;480:20431;;20029:458;20112:12;;;;20111:13;;:33;;-1:-1:-1;20752:4:113;20860:17;20895:7;20128:16;20103:76;;;;-1:-1:-1;;;20103:76:113;;1033:2:165;20103:76:113;;;1015:21:165;1072:2;1052:18;;;1045:30;1111:32;1091:18;;;1084:60;1161:18;;20103:76:113;831:354:165;20103:76:113;20189:12;:19;;-1:-1:-1;;20218:19:113;;;;;20273:32;;;-1:-1:-1;;;;;1354:32:165;;20273::113;;;1336:51:165;-1:-1:-1;;1309:18:165;20273:32:113;;;-1:-1:-1;;20273:32:113;;;;;;;;;20263:43;;20273:32;20263:43;;;;20316:11;;;;:5;:11;;;;;;:15;;;:22;;;20348:26;;;;;;;;;:11;;;;;;;;20263:43;-1:-1:-1;20348:26:113;;20273:32;20348:26;:::i;:::-;-1:-1:-1;20384:11:113;;;;20406:1;20384:11;;;;;;;;:19;;:23;;;20417:14;:17;;;;:28;;;;;;;;;;;;;;;20460:20;20406:1;;;;20390:4;;20460:20;;;20093:394;20029:458;:::o;480:20431::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;480:20431:113;;;-1:-1:-1;480:20431:113;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:452:165;90:6;98;151:2;139:9;130:7;126:23;122:32;119:52;;;167:1;164;157:12;119:52;193:16;;-1:-1:-1;;;;;238:31:165;;228:42;;218:70;;284:1;281;274:12;218:70;357:2;342:18;;336:25;307:5;;-1:-1:-1;399:15:165;;392:23;380:36;;370:64;;430:1;427;420:12;370:64;453:7;443:17;;;14:452;;;;;:::o;1190:203::-;480:20431:113;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100f35760003560e01c8063b1a34e0d1161008a578063c4d66de811610059578063c4d66de8146102da578063c9100bcb146102fc578063d202158d1461032e578063fb307b341461034e57600080fd5b8063b1a34e0d14610241578063b61d27f61461026f578063c0969a6e14610282578063c3b129e3146102a257600080fd5b806354fd4d50116100c657806354fd4d50146101a0578063747442d3146101d457806380e9e9e1146101f45780639010f7261461022157600080fd5b806312aaac70146100f85780631d381240146101305780634eee424a1461016057806353d413c514610180575b600080fd5b34801561010457600080fd5b50610118610113366004611d53565b61037b565b60405161012793929190611da8565b60405180910390f35b34801561013c57600080fd5b5061015061014b366004611dcd565b6103f4565b6040519015158152602001610127565b34801561016c57600080fd5b5061015061017b366004611d53565b61064d565b34801561018c57600080fd5b5061015061019b366004611df9565b61090c565b3480156101ac57600080fd5b506040805180820182526005815264322e322e3160d81b602082015290516101279190611e61565b3480156101e057600080fd5b506101506101ef366004611e89565b610cfc565b34801561020057600080fd5b5061021461020f366004611d53565b6110d9565b6040516101279190611eb9565b34801561022d57600080fd5b5061021461023c366004611d53565b61113b565b34801561024d57600080fd5b5061026161025c366004611fbe565b61119b565b604051908152602001610127565b61026161027d36600461207f565b611467565b34801561028e57600080fd5b5061015061029d3660046120d8565b611599565b3480156102ae57600080fd5b506102c26102bd366004612158565b61168a565b6040516001600160a01b039091168152602001610127565b3480156102e657600080fd5b506102fa6102f536600461219d565b61173b565b005b34801561030857600080fd5b5061031c610317366004611d53565b61179d565b604051610127969594939291906121ba565b34801561033a57600080fd5b50610150610349366004611df9565b61199e565b34801561035a57600080fd5b5061036e610369366004611d53565b611a95565b604051610127919061221a565b6000818152600160208181526040808420928301546002840154845483518186028101860190945280845260609695869590949185918301828280156103e057602002820191906000526020600020905b8154815260200190600101908083116103cc575b505050505092509250925092509193909250565b60065460009060ff61010090910416151560011461042d5760405162461bcd60e51b81526004016104249061222d565b60405180910390fd5b3330148061046357506040805133602082015261046391015b60405160208183030381529060405280519060200120600161199e565b61047f5760405162461bcd60e51b815260040161042490612280565b6000848152600160205260409020600201548490036105a8576000848152600160209081526040808320805482518185028101850190935280835291929091908301828280156104ee57602002820191906000526020600020905b8154815260200190600101908083116104da575b5050505050905060005b8151811015610581576000828281518110610515576105156122d0565b602002602001015190508581036105785760405162461bcd60e51b815260206004820152602160248201527f436f6e666c6963743a204b657920616c72656164792068617320707572706f736044820152606560f81b6064820152608401610424565b506001016104f8565b505060008481526001602081815260408320805492830181558352909120018390556105f4565b600084815260016020818152604080842060028101899055815180840190925287825293889052908290526105dd9291611c5b565b506000848152600160208190526040909120018290555b60008381526002602090815260408083208054600181018255908452918320909101869055518391859187917f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e991a45060019392505050565b60065460009060ff61010090910416151560011461067d5760405162461bcd60e51b81526004016104249061222d565b333014806106b35750604080513360208201526106b391015b60405160208183030381529060405280519060200120600361199e565b6106cf5760405162461bcd60e51b8152600401610424906122e6565b600082815260046020526040812054908190036107425760405162461bcd60e51b815260206004820152602b60248201527f4e6f6e4578697374696e673a205468657265206973206e6f20636c61696d207760448201526a1a5d1a081d1a1a5cc8125160aa1b6064820152608401610424565b6000818152600560205260408120545b6000838152600560205260409020805486919084908110610775576107756122d0565b90600052602060002001541461079a578161078f8161234e565b925050808210610752575b60008381526005602052604090206107b3600183612367565b815481106107c3576107c36122d0565b90600052602060002001546005600085815260200190815260200160002083815481106107f2576107f26122d0565b9060005260206000200181905550600560008481526020019081526020016000208054806108225761082261237a565b6000828152602080822083016000199081018390559092019092558682526004908190526040918290206002810154600182015493516001600160a01b039091169387938a937f3cf57863a89432c61c4a27073c6ee39e8a764bff5a05aebfbcdcdc80b2e6130a936108a39392600383019290810191600590910190612447565b60405180910390a46000858152600460205260408120818155600181018290556002810180546001600160a01b0319169055906108e36003830182611ca6565b6108f1600483016000611ca6565b6108ff600583016000611ca6565b5060019695505050505050565b60065460009060ff61010090910416151560011461093c5760405162461bcd60e51b81526004016104249061222d565b333014806109595750604080513360208201526109599101610446565b6109755760405162461bcd60e51b815260040161042490612280565b60008381526001602052604090206002015483146109df5760405162461bcd60e51b815260206004820152602160248201527f4e6f6e4578697374696e673a204b65792069736e2774207265676973746572656044820152601960fa1b6064820152608401610424565b600083815260016020908152604080832080548251818502810185019093528083529192909190830182828015610a3557602002820191906000526020600020905b815481526020019060010190808311610a21575b5050505050905060005b83828281518110610a5257610a526122d0565b602002602001015114610ad45780610a698161234e565b91505081518103610acf5760405162461bcd60e51b815260206004820152602a60248201527f4e6f6e4578697374696e673a204b657920646f65736e27742068617665207375604482015269636820707572706f736560b01b6064820152608401610424565b610a3f565b8160018351610ae39190612367565b81518110610af357610af36122d0565b6020026020010151828281518110610b0d57610b0d6122d0565b602090810291909101810191909152600086815260018252604090208351610b3792850190611c5b565b506000858152600160205260409020805480610b5557610b5561237a565b6000828152602080822083016000199081018390559092019092558582526002905260408120545b6000868152600260205260409020805488919084908110610ba057610ba06122d0565b906000526020600020015414610bc55781610bba8161234e565b925050808210610b7d575b6000868152600260205260409020610bde600183612367565b81548110610bee57610bee6122d0565b9060005260206000200154600260008881526020019081526020016000208381548110610c1d57610c1d6122d0565b906000526020600020018190555060026000878152602001908152602001600020805480610c4d57610c4d61237a565b6001900381819060005260206000200160009055905560006001600089815260200190815260200160002060010154905060018551610c8c9190612367565b600003610cbd57600088815260016020526040812090610cac8282611ce0565b506000600182018190556002909101555b8087897f585a4aef50f8267a92b32412b331b20f7f8b96f2245b253b9cc50dcc621d339760405160405180910390a46001955050505050505b92915050565b60065460009060ff610100909104161515600114610d2c5760405162461bcd60e51b81526004016104249061222d565b6000548310610d8d5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420617070726f76652061206e6f6e2d6578697374696e6720657860448201526632b1baba34b7b760c91b6064820152608401610424565b60008381526003602081905260409091200154610100900460ff1615610df55760405162461bcd60e51b815260206004820152601860248201527f5265717565737420616c726561647920657865637574656400000000000000006044820152606401610424565b600083815260036020526040902054306001600160a01b0390911603610e865760408051336020820152610e299101610446565b610e815760405162461bcd60e51b815260206004820152602360248201527f53656e64657220646f6573206e6f742068617665206d616e6167656d656e74206044820152626b657960e81b6064820152608401610424565b610eff565b60408051336020820152610eb391015b60405160208183030381529060405280519060200120600261199e565b610eff5760405162461bcd60e51b815260206004820152601f60248201527f53656e64657220646f6573206e6f74206861766520616374696f6e206b6579006044820152606401610424565b827fb3932da477fe5d6c8ff2eafef050c0f3a1af18fc07121001482600f36f3715d883604051610f33911515815260200190565b60405180910390a28115156001036110bb57600083815260036020819052604091829020908101805460ff1916600190811790915581549082015492516001600160a01b039091169291610f8c91600290910190612486565b60006040518083038185875af1925050503d8060008114610fc9576040519150601f19603f3d011682016040523d82523d6000602084013e610fce565b606091505b5090915050801561105357600083815260036020819052604091829020908101805461ff00191661010017905560018101548154925190926001600160a01b03169186917f1f920dbda597d7bf95035464170fa58d0a4b57f13a1c315ace6793b9f63688b891611043916002909101906124fc565b60405180910390a4506001610cf6565b6000838152600360205260409081902060018101548154925190926001600160a01b03169186917fe10c49d9f7c71da23262367013434763cfdb2332267641728d25cd712c5c6a68916110ab916002909101906124fc565b60405180910390a4506000610cf6565b50506000908152600360208190526040822001805460ff1916905590565b60008181526005602090815260409182902080548351818402810184019094528084526060939283018282801561112f57602002820191906000526020600020905b81548152602001906001019080831161111b575b50505050509050919050565b60008181526002602090815260409182902080548351818402810184019094528084526060939283018282801561112f576020028201919060005260206000209081548152602001906001019080831161111b5750505050509050919050565b60065460009060ff6101009091041615156001146111cb5760405162461bcd60e51b81526004016104249061222d565b333014806111e85750604080513360208201526111e89101610696565b6112045760405162461bcd60e51b8152600401610424906122e6565b6001600160a01b03851630146112c35760405163604b4d3760e11b81526001600160a01b0386169063c0969a6e906112469030908b908990899060040161250f565b602060405180830381865afa158015611263573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112879190612548565b6112c35760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420636c61696d60981b6044820152606401610424565b604080516001600160a01b038716602082015290810188905260009060600160408051601f1981840301815291815281516020928301206000818152600490935291208981556001810189905590915060030161132086826125b6565b5060008181526004602081905260409091200161133d85826125b6565b50600081815260046020526040902060050161135984826125b6565b506000818152600460205260409020600201546001600160a01b0387811691161461141257600088815260056020908152604080832080546001810182559084528284200184905583835260049091529081902060020180546001600160a01b0319166001600160a01b0389169081179091559051899083907f46149b18aa084502c3f12bc75e19eda8bda8d102b82cce8474677a6d0d5f43c590611405908c908b908b908b90612676565b60405180910390a461145c565b856001600160a01b031688827f3bab293fc00db832d7619a9299914251b8747c036867ec056cbd506f60135b138a8989896040516114539493929190612676565b60405180910390a45b979650505050505050565b60065460009060ff6101009091041615156001146114975760405162461bcd60e51b81526004016104249061222d565b600080548082526003602052604090912080546001600160a01b0319166001600160a01b038716178155600181018590556002016114d584826125b6565b506000805490806114e58361234e565b919050555083856001600160a01b0316827f8afcfabcb00e47a53a8fc3e9f23ff47ee1926194bb1350dd007c50b412a6cee8866040516115259190611e61565b60405180910390a4604080513360208201526115419101610446565b1561155757611551816001610cfc565b50611591565b6001600160a01b038516301480159061157f57506040805133602082015261157f9101610e96565b156115915761158f816001610cfc565b505b949350505050565b6000808585846040516020016115b1939291906126b5565b60405160208183030381529060405280519060200120905060008160405160200161160891907f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b604051602081830303815290604052805190602001209050600061162c868361168a565b604080516001600160a01b03831660208201529192506000910160405160208183030381529060405280519060200120905061166981600361199e565b1561167b576001945050505050611591565b50600098975050505050505050565b60008060008085516041146116a55760009350505050610cf6565b50505060208301516040840151606085015160001a601b8110156116d1576116ce601b826126e5565b90505b6040805160008082526020820180845288905260ff841692820192909252606081018590526080810184905260019060a0016020604051602081039080840390855afa158015611725573d6000803e3d6000fd5b5050604051601f19015198975050505050505050565b6001600160a01b0381166117915760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610424565b61179a81611af5565b50565b600081815260046020819052604082208054600182015460028301546003840180548796879660609687968796919590946001600160a01b039092169390929081019160059091019083906117f190612390565b80601f016020809104026020016040519081016040528092919081815260200182805461181d90612390565b801561186a5780601f1061183f5761010080835404028352916020019161186a565b820191906000526020600020905b81548152906001019060200180831161184d57829003601f168201915b5050505050925081805461187d90612390565b80601f01602080910402602001604051908101604052809291908181526020018280546118a990612390565b80156118f65780601f106118cb576101008083540402835291602001916118f6565b820191906000526020600020905b8154815290600101906020018083116118d957829003601f168201915b5050505050915080805461190990612390565b80601f016020809104026020016040519081016040528092919081815260200182805461193590612390565b80156119825780601f1061195757610100808354040283529160200191611982565b820191906000526020600020905b81548152906001019060200180831161196557829003601f168201915b5050505050905095509550955095509550955091939550919395565b600082815260016020908152604080832081518154608094810282018501909352606081018381528594919384928491908401828280156119fe57602002820191906000526020600020905b8154815260200190600101908083116119ea575b505050918352505060018201546020820152600290910154604091820152810151909150600003611a33576000915050610cf6565b60005b815151811015611a8a57600082600001518281518110611a5857611a586122d0565b602002602001015190508060011480611a7057508481145b15611a815760019350505050610cf6565b50600101611a36565b506000949350505050565b60008181526001602090815260409182902080548351818402810184019094528084526060939283018282801561112f576020028201919060005260206000209081548152602001906001019080831161111b5750505050509050919050565b60065460ff161580611b065750303b155b611b525760405162461bcd60e51b815260206004820152601e60248201527f496e697469616c206b65792077617320616c72656164792073657475702e00006044820152606401610424565b6006805461ffff1916610101179055604080516001600160a01b03831660208201526000910160408051601f198184030181528282528051602091820120600081815260018084528482206002810184905586850190955280865290829052918290529350611bc19290611cfe565b506000818152600160208181526040808420830183905560029091527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0805480840182559084527f7fef4bf8f63cf9dd467136c679c02b5c17fcf6322d9562512bf5eb952cf7cc5301849055519091829184917f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e991a45050565b828054828255906000526020600020908101928215611c96579160200282015b82811115611c96578251825591602001919060010190611c7b565b50611ca2929150611d3e565b5090565b508054611cb290612390565b6000825580601f10611cc2575050565b601f01602090049060005260206000209081019061179a9190611d3e565b508054600082559060005260206000209081019061179a9190611d3e565b828054828255906000526020600020908101928215611c96579160200282015b82811115611c96578251829060ff16905591602001919060010190611d1e565b5b80821115611ca25760008155600101611d3f565b600060208284031215611d6557600080fd5b5035919050565b60008151808452602080850194506020840160005b83811015611d9d57815187529582019590820190600101611d81565b509495945050505050565b606081526000611dbb6060830186611d6c565b60208301949094525060400152919050565b600080600060608486031215611de257600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611e0c57600080fd5b50508035926020909101359150565b6000815180845260005b81811015611e4157602081850181015186830182015201611e25565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000611e746020830184611e1b565b9392505050565b801515811461179a57600080fd5b60008060408385031215611e9c57600080fd5b823591506020830135611eae81611e7b565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b81811015611ef157835183529284019291840191600101611ed5565b50909695505050505050565b6001600160a01b038116811461179a57600080fd5b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611f4357611f43611f12565b604051601f8501601f19908116603f01168101908282118183101715611f6b57611f6b611f12565b81604052809350858152868686011115611f8457600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112611faf57600080fd5b611e7483833560208501611f28565b60008060008060008060c08789031215611fd757600080fd5b86359550602087013594506040870135611ff081611efd565b9350606087013567ffffffffffffffff8082111561200d57600080fd5b6120198a838b01611f9e565b9450608089013591508082111561202f57600080fd5b61203b8a838b01611f9e565b935060a089013591508082111561205157600080fd5b508701601f8101891361206357600080fd5b61207289823560208401611f28565b9150509295509295509295565b60008060006060848603121561209457600080fd5b833561209f81611efd565b925060208401359150604084013567ffffffffffffffff8111156120c257600080fd5b6120ce86828701611f9e565b9150509250925092565b600080600080608085870312156120ee57600080fd5b84356120f981611efd565b935060208501359250604085013567ffffffffffffffff8082111561211d57600080fd5b61212988838901611f9e565b9350606087013591508082111561213f57600080fd5b5061214c87828801611f9e565b91505092959194509250565b6000806040838503121561216b57600080fd5b823567ffffffffffffffff81111561218257600080fd5b61218e85828601611f9e565b95602094909401359450505050565b6000602082840312156121af57600080fd5b8135611e7481611efd565b86815285602082015260018060a01b038516604082015260c0606082015260006121e760c0830186611e1b565b82810360808401526121f98186611e1b565b905082810360a084015261220d8185611e1b565b9998505050505050505050565b602081526000611e746020830184611d6c565b60208082526033908201527f496e746572616374696e67207769746820746865206c69627261727920636f6e6040820152723a3930b1ba1034b9903337b93134b23232b71760691b606082015260800190565b60208082526030908201527f5065726d697373696f6e733a2053656e64657220646f6573206e6f742068617660408201526f65206d616e6167656d656e74206b657960801b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60208082526032908201527f5065726d697373696f6e733a2053656e64657220646f6573206e6f74206861766040820152716520636c61696d207369676e6572206b657960701b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60006001820161236057612360612338565b5060010190565b81810381811115610cf657610cf6612338565b634e487b7160e01b600052603160045260246000fd5b600181811c908216806123a457607f821691505b6020821081036123c457634e487b7160e01b600052602260045260246000fd5b50919050565b600081546123d781612390565b8085526020600183811680156123f4576001811461240e5761243c565b60ff1985168884015283151560051b88018301955061243c565b866000528260002060005b858110156124345781548a8201860152908301908401612419565b890184019650505b505050505092915050565b84815260806020820152600061246060808301866123ca565b828103604084015261247281866123ca565b9050828103606084015261145c81856123ca565b600080835461249481612390565b600182811680156124ac57600181146124c1576124f0565b60ff19841687528215158302870194506124f0565b8760005260208060002060005b858110156124e75781548a8201529084019082016124ce565b50505082870194505b50929695505050505050565b602081526000611e7460208301846123ca565b60018060a01b03851681528360208201526080604082015260006125366080830185611e1b565b828103606084015261145c8185611e1b565b60006020828403121561255a57600080fd5b8151611e7481611e7b565b601f8211156125b1576000816000526020600020601f850160051c8101602086101561258e5750805b601f850160051c820191505b818110156125ad5782815560010161259a565b5050505b505050565b815167ffffffffffffffff8111156125d0576125d0611f12565b6125e4816125de8454612390565b84612565565b602080601f83116001811461261957600084156126015750858301515b600019600386901b1c1916600185901b1785556125ad565b600085815260208120601f198616915b8281101561264857888601518255948401946001909101908401612629565b50858210156126665787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260806020820152600061268f6080830186611e1b565b82810360408401526126a18186611e1b565b9050828103606084015261145c8185611e1b565b60018060a01b03841681528260208201526060604082015260006126dc6060830184611e1b565b95945050505050565b60ff8181168382160190811115610cf657610cf661233856fea2646970667358221220f2b09153b8455d99457c5e91bfd959be61806d79bddcd0c105e790a7c58d0e3a64736f6c63430008180033","sourceMap":"480:20431:113:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4274:222;;;;;;;;;;-1:-1:-1;4274:222:113;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;7066:880;;;;;;;;;;-1:-1:-1;7066:880:113;;;;;:::i;:::-;;:::i;:::-;;;1537:14:165;;1530:22;1512:41;;1500:2;1485:18;7066:880:113;1372:187:165;14084:1020:113;;;;;;;;;;-1:-1:-1;14084:1020:113;;;;;:::i;:::-;;:::i;10047:1288::-;;;;;;;;;;-1:-1:-1;10047:1288:113;;;;;:::i;:::-;;:::i;253:113:129:-;;;;;;;;;;-1:-1:-1;345:14:129;;;;;;;;;;;-1:-1:-1;;;345:14:129;;;;253:113;;;;345:14;253:113;:::i;8385:1560:113:-;;;;;;;;;;-1:-1:-1;8385:1560:113;;;;;:::i;:::-;;:::i;5825:168::-;;;;;;;;;;-1:-1:-1;5825:168:113;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5291:166::-;;;;;;;;;;-1:-1:-1;5291:166:113;;;;;:::i;:::-;;:::i;12477:1135::-;;;;;;;;;;-1:-1:-1;12477:1135:113;;;;;:::i;:::-;;:::i;:::-;;;6150:25:165;;;6138:2;6123:18;12477:1135:113;6004:177:165;3064:747:113;;;;;;:::i;:::-;;:::i;17865:934::-;;;;;;;;;;-1:-1:-1;17865:934:113;;;;;:::i;:::-;;:::i;19050:719::-;;;;;;;;;;-1:-1:-1;19050:719:113;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;8220:32:165;;;8202:51;;8190:2;8175:18;19050:719:113;8056:203:165;2239:201:113;;;;;;;;;;-1:-1:-1;2239:201:113;;;;;:::i;:::-;;:::i;:::-;;16194:483;;;;;;;;;;-1:-1:-1;16194:483:113;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;16825:463::-;;;;;;;;;;-1:-1:-1;16825:463:113;;;;;:::i;:::-;;:::i;4761:163::-;;;;;;;;;;-1:-1:-1;4761:163:113;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4274:222::-;4378:15;4430:11;;;:5;:11;;;;;;;;4452:19;;;;4473:15;;;;4422:67;;;;;;;;;;;;;;;;;4351:25;;4378:15;;;4430:11;;4422:67;4430:11;;4422:67;;4430:11;4422:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4274:222;;;;;:::o;7066:880::-;700:12;;7200;;700;;;;;;:20;;:12;:20;692:84;;;;-1:-1:-1;;;692:84:113;;;;;;;:::i;:::-;;;;;;;;;936:10:::1;958:4;936:27;::::0;:82:::1;;-1:-1:-1::0;991:22:113::1;::::0;;1002:10:::1;991:22;::::0;::::1;8202:51:165::0;967::113::1;::::0;8175:18:165;991:22:113::1;;;;;;;;;;;;;981:33;;;;;;1016:1;967:13;:51::i;:::-;928:152;;;;-1:-1:-1::0;;;928:152:113::1;;;;;;;:::i;:::-;7232:11:::2;::::0;;;:5:::2;:11;::::0;;;;:15:::2;;::::0;:23;;;7228:597:::2;;7271:26;7300:11:::0;;;:5:::2;:11;::::0;;;;;;;7271:49;;;;;;::::2;::::0;;;;;;;;;;;;7300:11;;7271:49;;::::2;7300:11:::0;7271:49;;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7339:20;7334:290;7383:9;:16;7365:15;:34;7334:290;;;7438:15;7456:9;7466:15;7456:26;;;;;;;;:::i;:::-;;;;;;;7438:44;;7516:8;7505:7;:19:::0;7501:109:::2;;7548:43;::::0;-1:-1:-1;;;7548:43:113;;10743:2:165;7548:43:113::2;::::0;::::2;10725:21:165::0;10782:2;10762:18;;;10755:30;10821:34;10801:18;;;10794:62;-1:-1:-1;;;10872:18:165;;;10865:31;10913:19;;7548:43:113::2;10541:397:165::0;7501:109:113::2;-1:-1:-1::0;7401:17:113::2;;7334:290;;;-1:-1:-1::0;;7638:11:113::2;::::0;;;:5:::2;:11;::::0;;;;;;:35;;;;::::2;::::0;;;;;;;::::2;::::0;;;7228:597:::2;;;7704:11;::::0;;;:5:::2;:11;::::0;;;;;;;:15:::2;::::0;::::2;:22:::0;;;7740:33;;;;::::2;::::0;;;;;;:11;;;;;;;;:33:::2;::::0;7704:11;7740:33:::2;:::i;:::-;-1:-1:-1::0;7787:11:113::2;::::0;;;:5:::2;:11;::::0;;;;;;;:19:::2;:27:::0;;;7228:597:::2;7835:24;::::0;;;:14:::2;:24;::::0;;;;;;;:35;;::::2;::::0;::::2;::::0;;;;;;;;;;::::2;::::0;;;7886:31;7911:5;;7850:8;;7865:4;;7886:31:::2;::::0;::::2;-1:-1:-1::0;7935:4:113::2;7066:880:::0;;;;;:::o;14084:1020::-;700:12;;14199;;700;;;;;;:20;;:12;:20;692:84;;;;-1:-1:-1;;;692:84:113;;;;;;;:::i;:::-;1236:10:::1;1258:4;1236:27;::::0;:82:::1;;-1:-1:-1::0;1291:22:113::1;::::0;;1302:10:::1;1291:22;::::0;::::1;8202:51:165::0;1267::113::1;::::0;8175:18:165;1291:22:113::1;;;;;;;;;;;;;1281:33;;;;;;1316:1;1267:13;:51::i;:::-;1228:154;;;;-1:-1:-1::0;;;1228:154:113::1;;;;;;;:::i;:::-;14223:14:::2;14240:17:::0;;;:7:::2;:17;::::0;;;;:23;;14277:11;;;14273:95:::2;;14304:53;::::0;-1:-1:-1;;;14304:53:113;;11564:2:165;14304:53:113::2;::::0;::::2;11546:21:165::0;11603:2;11583:18;;;11576:30;11642:34;11622:18;;;11615:62;-1:-1:-1;;;11693:18:165;;;11686:41;11744:19;;14304:53:113::2;11362:407:165::0;14273:95:113::2;14378:15;14426:22:::0;;;:14:::2;:22;::::0;;;;:29;14465:175:::2;14472:22;::::0;;;:14:::2;:22;::::0;;;;:34;;14510:8;;14472:22;14495:10;;14472:34;::::2;;;;;:::i;:::-;;;;;;;;;:46;14465:175;;14534:12:::0;::::2;::::0;::::2;:::i;:::-;;;;14579:11;14565:10;:25;14465:175;14561:69;14465:175;14695:22;::::0;;;:14:::2;:22;::::0;;;;14718:15:::2;14732:1;14718:11:::0;:15:::2;:::i;:::-;14695:39;;;;;;;;:::i;:::-;;;;;;;;;14650:14;:22;14665:6;14650:22;;;;;;;;;;;14673:10;14650:34;;;;;;;;:::i;:::-;;;;;;;;:84;;;;14744:14;:22;14759:6;14744:22;;;;;;;;;;;:28;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;-1:-1:-1;;14744:28:113;;;;;;;;;;;;14894:17;;;:7:::2;:17:::0;;;;;;;;;:24:::2;::::0;::::2;::::0;14744:28:::2;14856:24:::0;::::2;::::0;14788:252;;-1:-1:-1;;;;;14894:24:113;;::::2;::::0;14836:6;;14902:8;;14788:252:::2;::::0;::::2;::::0;14856:24;14932:27:::2;::::0;::::2;::::0;14973:22;;::::2;::::0;15009:21:::2;::::0;;::::2;::::0;14788:252:::2;:::i;:::-;;;;;;;;15058:17;::::0;;;:7:::2;:17;::::0;;;;15051:24;;;::::2;::::0;::::2;::::0;;;::::2;::::0;::::2;::::0;;-1:-1:-1;;;;;;15051:24:113::2;::::0;;15058:17;15051:24:::2;;::::0;::::2;15058:17:::0;15051:24:::2;:::i;:::-;;;::::0;::::2;;;:::i;:::-;;;::::0;::::2;;;:::i;:::-;-1:-1:-1::0;15093:4:113::2;::::0;14084:1020;-1:-1:-1;;;;;;14084:1020:113:o;10047:1288::-;700:12;;10169;;700;;;;;;:20;;:12;:20;692:84;;;;-1:-1:-1;;;692:84:113;;;;;;;:::i;:::-;936:10:::1;958:4;936:27;::::0;:82:::1;;-1:-1:-1::0;991:22:113::1;::::0;;1002:10:::1;991:22;::::0;::::1;8202:51:165::0;967::113::1;::::0;8175:18:165;991:22:113::1;8056:203:165::0;967:51:113::1;928:152;;;;-1:-1:-1::0;;;928:152:113::1;;;;;;;:::i;:::-;10205:11:::2;::::0;;;:5:::2;:11;::::0;;;;:15:::2;;::::0;:23;::::2;10197:69;;;::::0;-1:-1:-1;;;10197:69:113;;14430:2:165;10197:69:113::2;::::0;::::2;14412:21:165::0;14469:2;14449:18;;;14442:30;14508:34;14488:18;;;14481:62;-1:-1:-1;;;14559:18:165;;;14552:31;14600:19;;10197:69:113::2;14228:397:165::0;10197:69:113::2;10276:26;10305:11:::0;;;:5:::2;:11;::::0;;;;;;;10276:49;;;;;;::::2;::::0;;;;;;;;;;;;10305:11;;10276:49;;::::2;10305:11:::0;10276:49;;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10336:17;10367:220;10401:8;10374:9;10384:12;10374:23;;;;;;;;:::i;:::-;;;;;;;:35;10367:220;;10425:14:::0;::::2;::::0;::::2;:::i;:::-;;;;10474:9;:16;10458:12;:32:::0;10454:123:::2;;10510:52;::::0;-1:-1:-1;;;10510:52:113;;14832:2:165;10510:52:113::2;::::0;::::2;14814:21:165::0;14871:2;14851:18;;;14844:30;14910:34;14890:18;;;14883:62;-1:-1:-1;;;14961:18:165;;;14954:40;15011:19;;10510:52:113::2;14630:406:165::0;10454:123:113::2;10367:220;;;10623:9;10652:1;10633:9;:16;:20;;;;:::i;:::-;10623:31;;;;;;;;:::i;:::-;;;;;;;10597:9;10607:12;10597:23;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;:57;;;;10664:11:::2;::::0;;;:5:::2;:11:::0;;;;;:32;;::::2;::::0;;::::2;::::0;::::2;:::i;:::-;-1:-1:-1::0;10706:11:113::2;::::0;;;:5:::2;:11;::::0;;;;:26;;;::::2;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;-1:-1:-1;;10706:26:113;;;;;;;;;;;;10789:24;;;:14:::2;:24:::0;;;;;:31;10831:167:::2;10838:24;::::0;;;:14:::2;:24;::::0;;;;:34;;10876:4;;10838:24;10863:8;;10838:34;::::2;;;;;:::i;:::-;;;;;;;;;:42;10831:167;;10896:10:::0;::::2;::::0;::::2;:::i;:::-;;;;10937:11;10925:8;:23;10831:167;10921:67;10831:167;11045:24;::::0;;;:14:::2;:24;::::0;;;;11070:15:::2;11084:1;11070:11:::0;:15:::2;:::i;:::-;11045:41;;;;;;;;:::i;:::-;;;;;;;;;11008:14;:24;11023:8;11008:24;;;;;;;;;;;11033:8;11008:34;;;;;;;;:::i;:::-;;;;;;;;:78;;;;11096:14;:24;11111:8;11096:24;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;11137:12;11152:5;:11;11158:4;11152:11;;;;;;;;;;;:19;;;11137:34;;11205:1;11186:9;:16;:20;;;;:::i;:::-;11210:1;11186:25:::0;11182:74:::2;;11234:11;::::0;;;:5:::2;:11;::::0;;;;;11227:18:::2;11234:11:::0;;11227:18:::2;:::i;:::-;-1:-1:-1::0;11227:18:113::2;;::::0;::::2;::::0;;;::::2;::::0;;::::2;::::0;11182:74:::2;11298:7;11288:8;11282:4;11271:35;;;;;;;;;;11324:4;11317:11;;;;;;;1090:1;10047:1288:::0;;;;:::o;8385:1560::-;700:12;;8485;;700;;;;;;:20;;:12;:20;692:84;;;;-1:-1:-1;;;692:84:113;;;;;;;:::i;:::-;8527:15:::1;;8521:3;:21;8513:73;;;::::0;-1:-1:-1;;;8513:73:113;;15243:2:165;8513:73:113::1;::::0;::::1;15225:21:165::0;15282:2;15262:18;;;15255:30;15321:34;15301:18;;;15294:62;-1:-1:-1;;;15372:18:165;;;15365:37;15419:19;;8513:73:113::1;15041:403:165::0;8513:73:113::1;8605:16;::::0;;;:11:::1;:16;::::0;;;;;;;:25:::1;::::0;::::1;::::0;::::1;;;8604:26;8596:63;;;::::0;-1:-1:-1;;;8596:63:113;;15651:2:165;8596:63:113::1;::::0;::::1;15633:21:165::0;15690:2;15670:18;;;15663:30;15729:26;15709:18;;;15702:54;15773:18;;8596:63:113::1;15449:348:165::0;8596:63:113::1;8673:16;::::0;;;:11:::1;:16;::::0;;;;:19;8704:4:::1;-1:-1:-1::0;;;;;8673:19:113;;::::1;:36:::0;8670:299:::1;;8757:22;::::0;;8768:10:::1;8757:22;::::0;::::1;8202:51:165::0;8733::113::1;::::0;8175:18:165;8757:22:113::1;8056:203:165::0;8733:51:113::1;8725:99;;;::::0;-1:-1:-1;;;8725:99:113;;16004:2:165;8725:99:113::1;::::0;::::1;15986:21:165::0;16043:2;16023:18;;;16016:30;16082:34;16062:18;;;16055:62;-1:-1:-1;;;16133:18:165;;;16126:33;16176:19;;8725:99:113::1;15802:399:165::0;8725:99:113::1;8670:299;;;8895:22;::::0;;8906:10:::1;8895:22;::::0;::::1;8202:51:165::0;8871::113::1;::::0;8175:18:165;8895:22:113::1;;;;;;;;;;;;;8885:33;;;;;;8920:1;8871:13;:51::i;:::-;8863:95;;;::::0;-1:-1:-1;;;8863:95:113;;16408:2:165;8863:95:113::1;::::0;::::1;16390:21:165::0;16447:2;16427:18;;;16420:30;16486:33;16466:18;;;16459:61;16537:18;;8863:95:113::1;16206:355:165::0;8863:95:113::1;8993:3;8984:23;8998:8;8984:23;;;;1537:14:165::0;1530:22;1512:41;;1500:2;1485:18;;1372:187;8984:23:113::1;;;;;;;;9022:16:::0;::::1;;9034:4;9022:16:::0;9018:899:::1;;9054:16;::::0;;;:11:::1;:16;::::0;;;;;;;;:25;;::::1;:32:::0;;-1:-1:-1;;9054:32:113::1;9082:4;9054:32:::0;;::::1;::::0;;;9177:19;;9209:22;;::::1;::::0;9177:79;;-1:-1:-1;;;;;9177:19:113;;::::1;::::0;9209:22;9177:79:::1;::::0;9234:21:::1;::::0;;::::1;::::0;9177:79:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;9164:92:113;;-1:-1:-1;;9271:572:113;::::1;;;9302:16;::::0;;;:11:::1;:16;::::0;;;;;;;;:25;;::::1;:32:::0;;-1:-1:-1;;9302:32:113::1;;;::::0;;9330:4:::1;9454:22:::0;::::1;::::0;9413:19;;9358:179;;9454:22;;-1:-1:-1;;;;;9413:19:113::1;::::0;9314:3;;9358:179:::1;::::0;::::1;::::0;9498:21:::1;::::0;;::::1;::::0;9358:179:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;9563:4:113::1;9556:11;;9271:572;9714:16;::::0;;;:11:::1;:16;::::0;;;;;;:22:::1;::::0;::::1;::::0;9673:19;;9611:186;;9714:22;;-1:-1:-1;;;;;9673:19:113::1;::::0;9726:3;;9611:186:::1;::::0;::::1;::::0;9758:21:::1;::::0;;::::1;::::0;9611:186:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;9823:5:113::1;9816:12;;9018:899;-1:-1:-1::0;;9901:5:113::1;9873:16:::0;;;:11:::1;:16;::::0;;;;;;:25:::1;:33:::0;;-1:-1:-1;;9873:33:113::1;::::0;;9901:5;8385:1560::o;5825:168::-;5964:22;;;;:14;:22;;;;;;;;;5957:29;;;;;;;;;;;;;;;;;5916:25;;5957:29;;;5964:22;5957:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5825:168;;;:::o;5291:166::-;5426:24;;;;:14;:24;;;;;;;;;5419:31;;;;;;;;;;;;;;;;;5382:21;;5419:31;;;5426:24;5419:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5291:166;;;:::o;12477:1135::-;700:12;;12736:22;;700:12;;;;;;:20;;:12;:20;692:84;;;;-1:-1:-1;;;692:84:113;;;;;;;:::i;:::-;1236:10:::1;1258:4;1236:27;::::0;:82:::1;;-1:-1:-1::0;1291:22:113::1;::::0;;1302:10:::1;1291:22;::::0;::::1;8202:51:165::0;1267::113::1;::::0;8175:18:165;1291:22:113::1;8056:203:165::0;1267:51:113::1;1228:154;;;;-1:-1:-1::0;;;1228:154:113::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12778:24:113;::::2;12797:4;12778:24;12774:168;;12826:87;::::0;-1:-1:-1;;;12826:87:113;;-1:-1:-1;;;;;12826:34:113;::::2;::::0;::::2;::::0;:87:::2;::::0;12879:4:::2;::::0;12887:6;;12895:10;;12907:5;;12826:87:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12818:113;;;::::0;-1:-1:-1;;;12818:113:113;;18664:2:165;12818:113:113::2;::::0;::::2;18646:21:165::0;18703:2;18683:18;;;18676:30;-1:-1:-1;;;18722:18:165;;;18715:43;18775:18;;12818:113:113::2;18462:337:165::0;12818:113:113::2;12980:27;::::0;;-1:-1:-1;;;;;18996:32:165;;12980:27:113::2;::::0;::::2;18978:51:165::0;19045:18;;;19038:34;;;12952:15:113::2;::::0;18951:18:165;;12980:27:113::2;::::0;;-1:-1:-1;;12980:27:113;;::::2;::::0;;;;;;12970:38;;12980:27:::2;12970:38:::0;;::::2;::::0;13018:16:::2;::::0;;;:7:::2;:16:::0;;;;;:31;;;13059:23:::2;::::0;::::2;:33:::0;;;12970:38;;-1:-1:-1;13102:26:113::2;;:39;13131:10:::0;13102:26;:39:::2;:::i;:::-;-1:-1:-1::0;13151:16:113::2;::::0;;;:7:::2;:16;::::0;;;;;;;:21:::2;:29;13175:5:::0;13151:21;:29:::2;:::i;:::-;-1:-1:-1::0;13190:16:113::2;::::0;;;:7:::2;:16;::::0;;;;:20:::2;;:27;13213:4:::0;13190:20;:27:::2;:::i;:::-;-1:-1:-1::0;13232:16:113::2;::::0;;;:7:::2;:16;::::0;;;;:23:::2;;::::0;-1:-1:-1;;;;;13232:34:113;;::::2;:23:::0;::::2;:34;13228:354;;13282:22;::::0;;;:14:::2;:22;::::0;;;;;;;:36;;::::2;::::0;::::2;::::0;;;;;;;;::::2;::::0;;;13332:16;;;:7:::2;:16:::0;;;;;;;:23:::2;;:33:::0;;-1:-1:-1;;;;;;13332:33:113::2;-1:-1:-1::0;;;;;13332:33:113;::::2;::::0;;::::2;::::0;;;13385:70;;13282:22;;:36;;13385:70:::2;::::0;::::2;::::0;13413:7;;13431:10;;13443:5;;13450:4;;13385:70:::2;:::i;:::-;;;;;;;;13228:354;;;13538:7;-1:-1:-1::0;;;;;13499:72:113::2;13521:6;13512:7;13499:72;13529:7;13547:10;13559:5;13566:4;13499:72;;;;;;;;;:::i;:::-;;;;;;;;13228:354;13598:7:::0;12477:1135;-1:-1:-1;;;;;;;12477:1135:113:o;3064:747::-;700:12;;3199:19;;700:12;;;;;;:20;;:12;:20;692:84;;;;-1:-1:-1;;;692:84:113;;;;;;;:::i;:::-;3234:20:::1;3257:15:::0;;3282:25;;;:11:::1;:25;::::0;;;;;:34;;-1:-1:-1;;;;;;3282:34:113::1;-1:-1:-1::0;;;;;3282:34:113;::::1;;::::0;;-1:-1:-1;3326:31:113;::::1;:40:::0;;;3376:30:::1;;:38;3409:5:::0;3376:30;:38:::1;:::i;:::-;-1:-1:-1::0;3424:15:113::1;:17:::0;;;:15;:17:::1;::::0;::::1;:::i;:::-;;;;;;3495:6;3490:3;-1:-1:-1::0;;;;;3457:52:113::1;3476:12;3457:52;3503:5;3457:52;;;;;;:::i;:::-;;;;;;;;3548:22;::::0;;3559:10:::1;3548:22;::::0;::::1;8202:51:165::0;3524::113::1;::::0;8175:18:165;3548:22:113::1;8056:203:165::0;3524:51:113::1;3520:255;;;3591:27;3599:12;3613:4;3591:7;:27::i;:::-;;3520:255;;;-1:-1:-1::0;;;;;3647:20:113;::::1;3662:4;3647:20;::::0;::::1;::::0;:75:::1;;-1:-1:-1::0;3695:22:113::1;::::0;;3706:10:::1;3695:22;::::0;::::1;8202:51:165::0;3671::113::1;::::0;8175:18:165;3695:22:113::1;8056:203:165::0;3671:51:113::1;3643:132;;;3737:27;3745:12;3759:4;3737:7;:27::i;:::-;;3643:132;3792:12:::0;3064:747;-1:-1:-1;;;;3064:747:113:o;17865:934::-;18040:15;18071:16;18111:9;18122:10;18134:4;18100:39;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;18090:50;;;;;;18071:69;;18241:20;18327:8;18274:62;;;;;;;23990:66:165;23978:79;;24082:2;24073:12;;24066:28;;;;24119:2;24110:12;;23748:380;18274:62:113;;;;;;;;;;;;;18264:73;;;;;;18241:96;;18390:17;18410:38;18430:3;18435:12;18410:19;:38::i;:::-;18532:21;;;-1:-1:-1;;;;;8220:32:165;;18532:21:113;;;8202:51:165;18390:58:113;;-1:-1:-1;18501:18:113;;8175::165;18532:21:113;;;;;;;;;;;;18522:32;;;;;;18501:53;;18704:28;18718:10;18730:1;18704:13;:28::i;:::-;18700:70;;;18755:4;18748:11;;;;;;;;18700:70;-1:-1:-1;18787:5:113;;17865:934;-1:-1:-1;;;;;;;;17865:934:113:o;19050:719::-;19148:12;19176:10;19196;19216:8;19277:3;:10;19291:2;19277:16;19273:64;;19324:1;19309:17;;;;;;;19273:64;-1:-1:-1;;;19503:2:113;19494:12;;19488:19;19541:2;19532:12;;19526:19;19587:2;19578:12;;19572:19;19569:1;19564:28;19621:2;19616:7;;19612:46;;;19639:8;19645:2;19639:8;;:::i;:::-;;;19612:46;19695:31;;;19668:24;19695:31;;;;;;;;;24513:25:165;;;24586:4;24574:17;;24554:18;;;24547:45;;;;24608:18;;;24601:34;;;24651:18;;;24644:34;;;19695:31:113;;24485:19:165;;19695:31:113;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19695:31:113;;-1:-1:-1;;19695:31:113;;;19050:719;-1:-1:-1;;;;;;;;19050:719:113:o;2239:201::-;-1:-1:-1;;;;;2316:34:113;;2308:78;;;;-1:-1:-1;;;2308:78:113;;24891:2:165;2308:78:113;;;24873:21:165;24930:2;24910:18;;;24903:30;24969:33;24949:18;;;24942:61;25020:18;;2308:78:113;24689:355:165;2308:78:113;2396:37;2412:20;2396:15;:37::i;:::-;2239:201;:::o;16194:483::-;16284:13;16469:17;;;:7;:17;;;;;;;:23;;16502:24;;;;16536;;;;16570:27;;;16452:218;;16284:13;;;;16355:22;;;;;;16469:23;;16502:24;;-1:-1:-1;;;;;16536:24:113;;;;16570:27;;16607:22;;;;16639:21;;;;;16570:27;;16452:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16194:483;;;;;;;:::o;16825:463::-;16925:11;16969;;;:5;:11;;;;;;;;16952:28;;;;;;;;;;;;;;;;;;;;;16925:11;;16952:28;;;;16969:11;;16952:28;;;16969:11;16952:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16952:28:113;;;-1:-1:-1;;16952:28:113;;;;;;;;;;;;;;;;;;16994:7;;;16952:28;;-1:-1:-1;;16994:12:113;16990:30;;17015:5;17008:12;;;;;16990:30;17036:20;17031:228;17080:12;;:19;17062:37;;17031:228;;;17134:15;17152:3;:12;;;17165:15;17152:29;;;;;;;;:::i;:::-;;;;;;;17134:47;;17200:7;17211:1;17200:12;:35;;;;17227:8;17216:7;:19;17200:35;17196:52;;;17244:4;17237:11;;;;;;;17196:52;-1:-1:-1;17101:17:113;;17031:228;;;-1:-1:-1;17276:5:113;;16825:463;-1:-1:-1;;;;16825:463:113:o;4761:163::-;4896:11;;;;:5;:11;;;;;;;;;4888:29;;;;;;;;;;;;;;;;;4846:26;;4888:29;;;4896:11;4888:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4761:163;;;:::o;20029:458::-;20112:12;;;;20111:13;;:33;;-1:-1:-1;20752:4:113;20860:17;20895:7;20128:16;20103:76;;;;-1:-1:-1;;;20103:76:113;;25251:2:165;20103:76:113;;;25233:21:165;25290:2;25270:18;;;25263:30;25329:32;25309:18;;;25302:60;25379:18;;20103:76:113;25049:354:165;20103:76:113;20189:12;:19;;-1:-1:-1;;20218:19:113;;;;;20273:32;;;-1:-1:-1;;;;;8220:32:165;;20273::113;;;8202:51:165;-1:-1:-1;;8175:18:165;20273:32:113;;;-1:-1:-1;;20273:32:113;;;;;;;;;20263:43;;20273:32;20263:43;;;;20316:11;;;;:5;:11;;;;;;:15;;;:22;;;20348:26;;;;;;;;;:11;;;;;;;;20263:43;-1:-1:-1;20348:26:113;;20273:32;20348:26;:::i;:::-;-1:-1:-1;20384:11:113;;;;20406:1;20384:11;;;;;;;;:19;;:23;;;20417:14;:17;;;;:28;;;;;;;;;;;;;;;20460:20;20406:1;;;;20390:4;;20460:20;;;20093:394;20029:458;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:180:165;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:165;;14:180;-1:-1:-1;14:180:165:o;199:439::-;252:3;290:5;284:12;317:6;312:3;305:19;343:4;372;367:3;363:14;356:21;;411:4;404:5;400:16;434:1;444:169;458:6;455:1;452:13;444:169;;;519:13;;507:26;;553:12;;;;588:15;;;;480:1;473:9;444:169;;;-1:-1:-1;629:3:165;;199:439;-1:-1:-1;;;;;199:439:165:o;643:403::-;878:2;867:9;860:21;841:4;898:56;950:2;939:9;935:18;927:6;898:56;:::i;:::-;985:2;970:18;;963:34;;;;-1:-1:-1;1028:2:165;1013:18;1006:34;890:64;643:403;-1:-1:-1;643:403:165:o;1051:316::-;1128:6;1136;1144;1197:2;1185:9;1176:7;1172:23;1168:32;1165:52;;;1213:1;1210;1203:12;1165:52;-1:-1:-1;;1236:23:165;;;1306:2;1291:18;;1278:32;;-1:-1:-1;1357:2:165;1342:18;;;1329:32;;1051:316;-1:-1:-1;1051:316:165:o;1564:248::-;1632:6;1640;1693:2;1681:9;1672:7;1668:23;1664:32;1661:52;;;1709:1;1706;1699:12;1661:52;-1:-1:-1;;1732:23:165;;;1802:2;1787:18;;;1774:32;;-1:-1:-1;1564:248:165:o;1817:423::-;1859:3;1897:5;1891:12;1924:6;1919:3;1912:19;1949:1;1959:162;1973:6;1970:1;1967:13;1959:162;;;2035:4;2091:13;;;2087:22;;2081:29;2063:11;;;2059:20;;2052:59;1988:12;1959:162;;;1963:3;2166:1;2159:4;2150:6;2145:3;2141:16;2137:27;2130:38;2229:4;2222:2;2218:7;2213:2;2205:6;2201:15;2197:29;2192:3;2188:39;2184:50;2177:57;;;1817:423;;;;:::o;2245:220::-;2394:2;2383:9;2376:21;2357:4;2414:45;2455:2;2444:9;2440:18;2432:6;2414:45;:::i;:::-;2406:53;2245:220;-1:-1:-1;;;2245:220:165:o;2470:118::-;2556:5;2549:13;2542:21;2535:5;2532:32;2522:60;;2578:1;2575;2568:12;2593:309;2658:6;2666;2719:2;2707:9;2698:7;2694:23;2690:32;2687:52;;;2735:1;2732;2725:12;2687:52;2771:9;2758:23;2748:33;;2831:2;2820:9;2816:18;2803:32;2844:28;2866:5;2844:28;:::i;:::-;2891:5;2881:15;;;2593:309;;;;;:::o;3092:632::-;3263:2;3315:21;;;3385:13;;3288:18;;;3407:22;;;3234:4;;3263:2;3486:15;;;;3460:2;3445:18;;;3234:4;3529:169;3543:6;3540:1;3537:13;3529:169;;;3604:13;;3592:26;;3673:15;;;;3638:12;;;;3565:1;3558:9;3529:169;;;-1:-1:-1;3715:3:165;;3092:632;-1:-1:-1;;;;;;3092:632:165:o;3729:131::-;-1:-1:-1;;;;;3804:31:165;;3794:42;;3784:70;;3850:1;3847;3840:12;3865:127;3926:10;3921:3;3917:20;3914:1;3907:31;3957:4;3954:1;3947:15;3981:4;3978:1;3971:15;3997:631;4061:5;4091:18;4132:2;4124:6;4121:14;4118:40;;;4138:18;;:::i;:::-;4213:2;4207:9;4181:2;4267:15;;-1:-1:-1;;4263:24:165;;;4289:2;4259:33;4255:42;4243:55;;;4313:18;;;4333:22;;;4310:46;4307:72;;;4359:18;;:::i;:::-;4399:10;4395:2;4388:22;4428:6;4419:15;;4458:6;4450;4443:22;4498:3;4489:6;4484:3;4480:16;4477:25;4474:45;;;4515:1;4512;4505:12;4474:45;4565:6;4560:3;4553:4;4545:6;4541:17;4528:44;4620:1;4613:4;4604:6;4596;4592:19;4588:30;4581:41;;;;3997:631;;;;;:::o;4633:220::-;4675:5;4728:3;4721:4;4713:6;4709:17;4705:27;4695:55;;4746:1;4743;4736:12;4695:55;4768:79;4843:3;4834:6;4821:20;4814:4;4806:6;4802:17;4768:79;:::i;4858:1141::-;4990:6;4998;5006;5014;5022;5030;5083:3;5071:9;5062:7;5058:23;5054:33;5051:53;;;5100:1;5097;5090:12;5051:53;5136:9;5123:23;5113:33;;5193:2;5182:9;5178:18;5165:32;5155:42;;5247:2;5236:9;5232:18;5219:32;5260:31;5285:5;5260:31;:::i;:::-;5310:5;-1:-1:-1;5366:2:165;5351:18;;5338:32;5389:18;5419:14;;;5416:34;;;5446:1;5443;5436:12;5416:34;5469:49;5510:7;5501:6;5490:9;5486:22;5469:49;:::i;:::-;5459:59;;5571:3;5560:9;5556:19;5543:33;5527:49;;5601:2;5591:8;5588:16;5585:36;;;5617:1;5614;5607:12;5585:36;5640:51;5683:7;5672:8;5661:9;5657:24;5640:51;:::i;:::-;5630:61;;5744:3;5733:9;5729:19;5716:33;5700:49;;5774:2;5764:8;5761:16;5758:36;;;5790:1;5787;5780:12;5758:36;-1:-1:-1;5813:24:165;;5868:4;5860:13;;5856:27;-1:-1:-1;5846:55:165;;5897:1;5894;5887:12;5846:55;5920:73;5985:7;5980:2;5967:16;5962:2;5958;5954:11;5920:73;:::i;:::-;5910:83;;;4858:1141;;;;;;;;:::o;6186:523::-;6272:6;6280;6288;6341:2;6329:9;6320:7;6316:23;6312:32;6309:52;;;6357:1;6354;6347:12;6309:52;6396:9;6383:23;6415:31;6440:5;6415:31;:::i;:::-;6465:5;-1:-1:-1;6517:2:165;6502:18;;6489:32;;-1:-1:-1;6572:2:165;6557:18;;6544:32;6599:18;6588:30;;6585:50;;;6631:1;6628;6621:12;6585:50;6654:49;6695:7;6686:6;6675:9;6671:22;6654:49;:::i;:::-;6644:59;;;6186:523;;;;;:::o;6896:762::-;7019:6;7027;7035;7043;7096:3;7084:9;7075:7;7071:23;7067:33;7064:53;;;7113:1;7110;7103:12;7064:53;7152:9;7139:23;7171:31;7196:5;7171:31;:::i;:::-;7221:5;-1:-1:-1;7273:2:165;7258:18;;7245:32;;-1:-1:-1;7328:2:165;7313:18;;7300:32;7351:18;7381:14;;;7378:34;;;7408:1;7405;7398:12;7378:34;7431:49;7472:7;7463:6;7452:9;7448:22;7431:49;:::i;:::-;7421:59;;7533:2;7522:9;7518:18;7505:32;7489:48;;7562:2;7552:8;7549:16;7546:36;;;7578:1;7575;7568:12;7546:36;;7601:51;7644:7;7633:8;7622:9;7618:24;7601:51;:::i;:::-;7591:61;;;6896:762;;;;;;;:::o;7663:388::-;7740:6;7748;7801:2;7789:9;7780:7;7776:23;7772:32;7769:52;;;7817:1;7814;7807:12;7769:52;7857:9;7844:23;7890:18;7882:6;7879:30;7876:50;;;7922:1;7919;7912:12;7876:50;7945:49;7986:7;7977:6;7966:9;7962:22;7945:49;:::i;:::-;7935:59;8041:2;8026:18;;;;8013:32;;-1:-1:-1;;;;7663:388:165:o;8264:247::-;8323:6;8376:2;8364:9;8355:7;8351:23;8347:32;8344:52;;;8392:1;8389;8382:12;8344:52;8431:9;8418:23;8450:31;8475:5;8450:31;:::i;8516:785::-;8841:6;8830:9;8823:25;8884:6;8879:2;8868:9;8864:18;8857:34;8956:1;8952;8947:3;8943:11;8939:19;8931:6;8927:32;8922:2;8911:9;8907:18;8900:60;8996:3;8991:2;8980:9;8976:18;8969:31;8804:4;9023:46;9064:3;9053:9;9049:19;9041:6;9023:46;:::i;:::-;9118:9;9110:6;9106:22;9100:3;9089:9;9085:19;9078:51;9152:33;9178:6;9170;9152:33;:::i;:::-;9138:47;;9234:9;9226:6;9222:22;9216:3;9205:9;9201:19;9194:51;9262:33;9288:6;9280;9262:33;:::i;:::-;9254:41;8516:785;-1:-1:-1;;;;;;;;;8516:785:165:o;9306:261::-;9485:2;9474:9;9467:21;9448:4;9505:56;9557:2;9546:9;9542:18;9534:6;9505:56;:::i;9572:415::-;9774:2;9756:21;;;9813:2;9793:18;;;9786:30;9852:34;9847:2;9832:18;;9825:62;-1:-1:-1;;;9918:2:165;9903:18;;9896:49;9977:3;9962:19;;9572:415::o;9992:412::-;10194:2;10176:21;;;10233:2;10213:18;;;10206:30;10272:34;10267:2;10252:18;;10245:62;-1:-1:-1;;;10338:2:165;10323:18;;10316:46;10394:3;10379:19;;9992:412::o;10409:127::-;10470:10;10465:3;10461:20;10458:1;10451:31;10501:4;10498:1;10491:15;10525:4;10522:1;10515:15;10943:414;11145:2;11127:21;;;11184:2;11164:18;;;11157:30;11223:34;11218:2;11203:18;;11196:62;-1:-1:-1;;;11289:2:165;11274:18;;11267:48;11347:3;11332:19;;10943:414::o;11774:127::-;11835:10;11830:3;11826:20;11823:1;11816:31;11866:4;11863:1;11856:15;11890:4;11887:1;11880:15;11906:135;11945:3;11966:17;;;11963:43;;11986:18;;:::i;:::-;-1:-1:-1;12033:1:165;12022:13;;11906:135::o;12046:128::-;12113:9;;;12134:11;;;12131:37;;;12148:18;;:::i;12179:127::-;12240:10;12235:3;12231:20;12228:1;12221:31;12271:4;12268:1;12261:15;12295:4;12292:1;12285:15;12311:380;12390:1;12386:12;;;;12433;;;12454:61;;12508:4;12500:6;12496:17;12486:27;;12454:61;12561:2;12553:6;12550:14;12530:18;12527:38;12524:161;;12607:10;12602:3;12598:20;12595:1;12588:31;12642:4;12639:1;12632:15;12670:4;12667:1;12660:15;12524:161;;12311:380;;;:::o;12821:770::-;12870:3;12911:5;12905:12;12940:36;12966:9;12940:36;:::i;:::-;12985:19;;;13023:4;13046:1;13063:17;;;13089:146;;;;13249:1;13244:341;;;;13056:529;;13089:146;-1:-1:-1;;13131:24:165;;13117:12;;;13110:46;13203:14;;13196:22;13193:1;13189:30;13180:40;;13176:49;;;-1:-1:-1;13089:146:165;;13244:341;13275:5;13272:1;13265:16;13322:2;13319:1;13309:16;13347:1;13361:174;13375:6;13372:1;13369:13;13361:174;;;13462:14;;13444:11;;;13440:20;;13433:44;13505:16;;;;13390:10;;13361:174;;;13559:11;;13555:20;;;-1:-1:-1;;13056:529:165;;;;;;12821:770;;;;:::o;13596:627::-;13856:6;13845:9;13838:25;13899:3;13894:2;13883:9;13879:18;13872:31;13819:4;13926:53;13974:3;13963:9;13959:19;13951:6;13926:53;:::i;:::-;14027:9;14019:6;14015:22;14010:2;13999:9;13995:18;13988:50;14061:40;14094:6;14086;14061:40;:::i;:::-;14047:54;;14149:9;14141:6;14137:22;14132:2;14121:9;14117:18;14110:50;14177:40;14210:6;14202;14177:40;:::i;16566:841::-;16692:3;16721:1;16754:6;16748:13;16784:36;16810:9;16784:36;:::i;:::-;16839:1;16856:17;;;16882:133;;;;17029:1;17024:358;;;;16849:533;;16882:133;-1:-1:-1;;16915:24:165;;16903:37;;16988:14;;16981:22;16969:35;;16960:45;;;-1:-1:-1;16882:133:165;;17024:358;17055:6;17052:1;17045:17;17085:4;17130;17127:1;17117:18;17157:1;17171:165;17185:6;17182:1;17179:13;17171:165;;;17263:14;;17250:11;;;17243:35;17306:16;;;;17200:10;;17171:165;;;17175:3;;;17365:6;17360:3;17356:16;17349:23;;16849:533;-1:-1:-1;17398:3:165;;16566:841;-1:-1:-1;;;;;;16566:841:165:o;17412:222::-;17556:2;17545:9;17538:21;17519:4;17576:52;17624:2;17613:9;17609:18;17601:6;17576:52;:::i;17639:568::-;17936:1;17932;17927:3;17923:11;17919:19;17911:6;17907:32;17896:9;17889:51;17976:6;17971:2;17960:9;17956:18;17949:34;18019:3;18014:2;18003:9;17999:18;17992:31;17870:4;18046:46;18087:3;18076:9;18072:19;18064:6;18046:46;:::i;:::-;18140:9;18132:6;18128:22;18123:2;18112:9;18108:18;18101:50;18168:33;18194:6;18186;18168:33;:::i;18212:245::-;18279:6;18332:2;18320:9;18311:7;18307:23;18303:32;18300:52;;;18348:1;18345;18338:12;18300:52;18380:9;18374:16;18399:28;18421:5;18399:28;:::i;19083:542::-;19184:2;19179:3;19176:11;19173:446;;;19220:1;19244:5;19241:1;19234:16;19288:4;19285:1;19275:18;19358:2;19346:10;19342:19;19339:1;19335:27;19329:4;19325:38;19394:4;19382:10;19379:20;19376:47;;;-1:-1:-1;19417:4:165;19376:47;19472:2;19467:3;19463:12;19460:1;19456:20;19450:4;19446:31;19436:41;;19527:82;19545:2;19538:5;19535:13;19527:82;;;19590:17;;;19571:1;19560:13;19527:82;;;19531:3;;;19173:446;19083:542;;;:::o;19801:1341::-;19925:3;19919:10;19952:18;19944:6;19941:30;19938:56;;;19974:18;;:::i;:::-;20003:96;20092:6;20052:38;20084:4;20078:11;20052:38;:::i;:::-;20046:4;20003:96;:::i;:::-;20154:4;;20211:2;20200:14;;20228:1;20223:662;;;;20929:1;20946:6;20943:89;;;-1:-1:-1;20998:19:165;;;20992:26;20943:89;-1:-1:-1;;19758:1:165;19754:11;;;19750:24;19746:29;19736:40;19782:1;19778:11;;;19733:57;21045:81;;20193:943;;20223:662;12768:1;12761:14;;;12805:4;12792:18;;-1:-1:-1;;20259:20:165;;;20376:236;20390:7;20387:1;20384:14;20376:236;;;20479:19;;;20473:26;20458:42;;20571:27;;;;20539:1;20527:14;;;;20406:19;;20376:236;;;20380:3;20640:6;20631:7;20628:19;20625:201;;;20701:19;;;20695:26;-1:-1:-1;;20784:1:165;20780:14;;;20796:3;20776:24;20772:37;20768:42;20753:58;20738:74;;20625:201;-1:-1:-1;;;;;20872:1:165;20856:14;;;20852:22;20839:36;;-1:-1:-1;19801:1341:165:o;22495:615::-;22764:6;22753:9;22746:25;22807:3;22802:2;22791:9;22787:18;22780:31;22727:4;22834:46;22875:3;22864:9;22860:19;22852:6;22834:46;:::i;:::-;22928:9;22920:6;22916:22;22911:2;22900:9;22896:18;22889:50;22962:33;22988:6;22980;22962:33;:::i;:::-;22948:47;;23043:9;23035:6;23031:22;23026:2;23015:9;23011:18;23004:50;23071:33;23097:6;23089;23071:33;:::i;23338:405::-;23589:1;23585;23580:3;23576:11;23572:19;23564:6;23560:32;23549:9;23542:51;23629:6;23624:2;23613:9;23609:18;23602:34;23672:2;23667;23656:9;23652:18;23645:30;23523:4;23692:45;23733:2;23722:9;23718:18;23710:6;23692:45;:::i;:::-;23684:53;23338:405;-1:-1:-1;;;;;23338:405:165:o;24133:148::-;24221:4;24200:12;;;24214;;;24196:31;;24239:13;;24236:39;;;24255:18;;:::i","linkReferences":{}},"methodIdentifiers":{"addClaim(uint256,uint256,address,bytes,bytes,string)":"b1a34e0d","addKey(bytes32,uint256,uint256)":"1d381240","approve(uint256,bool)":"747442d3","execute(address,uint256,bytes)":"b61d27f6","getClaim(bytes32)":"c9100bcb","getClaimIdsByTopic(uint256)":"80e9e9e1","getKey(bytes32)":"12aaac70","getKeyPurposes(bytes32)":"fb307b34","getKeysByPurpose(uint256)":"9010f726","getRecoveredAddress(bytes,bytes32)":"c3b129e3","initialize(address)":"c4d66de8","isClaimValid(address,uint256,bytes,bytes)":"c0969a6e","keyHasPurpose(bytes32,uint256)":"d202158d","removeClaim(bytes32)":"4eee424a","removeKey(bytes32,uint256)":"53d413c5","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialManagementKey\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isLibrary\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"Approved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Executed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_topic\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_scheme\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_issuer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"_uri\",\"type\":\"string\"}],\"name\":\"addClaim\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimRequestId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_type\",\"type\":\"uint256\"}],\"name\":\"addKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_approve\",\"type\":\"bool\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimId\",\"type\":\"bytes32\"}],\"name\":\"getClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_topic\",\"type\":\"uint256\"}],\"name\":\"getClaimIdsByTopic\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"claimIds\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getKey\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"purposes\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getKeyPurposes\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_purposes\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"getKeysByPurpose\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"keys\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"sig\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"dataHash\",\"type\":\"bytes32\"}],\"name\":\"getRecoveredAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialManagementKey\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IIdentity\",\"name\":\"_identity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sig\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"isClaimValid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"claimValid\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"keyHasPurpose\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimId\",\"type\":\"bytes32\"}],\"name\":\"removeClaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"removeKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the `IERC734` \\\"KeyHolder\\\" and the `IERC735` \\\"ClaimHolder\\\" interfaces into a common Identity Contract. This implementation has a separate contract were it declares all storage, allowing for it to be used as an upgradable logic contract.\",\"events\":{\"Approved(uint256,bool)\":{\"details\":\"Emitted when an execution request was approved. Specification: MUST be triggered when approve was successfully called.\"},\"ClaimAdded(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was added. Specification: MUST be triggered when a claim was successfully added.\"},\"ClaimChanged(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was changed. Specification: MUST be triggered when addClaim was successfully called on an existing claimId.\"},\"ClaimRemoved(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was removed. Specification: MUST be triggered when removeClaim was successfully called.\"},\"Executed(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execute operation was approved and successfully performed. Specification: MUST be triggered when approve was called and the execution was successfully approved.\"},\"ExecutionFailed(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execute operation was called and failed Specification: MUST be triggered when execute call failed\"},\"ExecutionRequested(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execution request was performed via `execute`. Specification: MUST be triggered when execute was successfully called.\"},\"KeyAdded(bytes32,uint256,uint256)\":{\"details\":\"Emitted when a key was added to the Identity. Specification: MUST be triggered when addKey was successfully called.\"},\"KeyRemoved(bytes32,uint256,uint256)\":{\"details\":\"Emitted when a key was removed from the Identity. Specification: MUST be triggered when removeKey was successfully called.\"}},\"kind\":\"dev\",\"methods\":{\"addClaim(uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"See {IERC735-addClaim}.\",\"params\":{\"_data\":\"The hash of the claim data, sitting in another location, a bit-mask, call data, or actual data based on the claim scheme.\",\"_issuer\":\"The issuers identity contract address, or the address used to sign the above signature.\",\"_scheme\":\"The scheme with which this claim SHOULD be verified or how it should be processed.\",\"_signature\":\"Signature which is the proof that the claim issuer issued a claim of topic for this identity. it MUST be a signed message of the following structure: keccak256(abi.encode(address identityHolder_address, uint256 _ topic, bytes data))\",\"_topic\":\"The type of claim\",\"_uri\":\"The location of the claim, this can be HTTP links, swarm hashes, IPFS hashes, and such.\"},\"returns\":{\"claimRequestId\":\"Returns claimRequestId: COULD be send to the approve function, to approve or reject this claim. triggers ClaimAdded event.\"}},\"addKey(bytes32,uint256,uint256)\":{\"params\":{\"_key\":\"keccak256 representation of an ethereum address\",\"_purpose\":\"a uint256 specifying the key type, like 1 = MANAGEMENT, 2 = ACTION, 3 = CLAIM, 4 = ENCRYPTION\",\"_type\":\"type of key used, which would be a uint256 for different key types. e.g. 1 = ECDSA, 2 = RSA, etc.\"},\"returns\":{\"success\":\"Returns TRUE if the addition was successful and FALSE if not\"}},\"approve(uint256,bool)\":{\"details\":\"See {IERC734-approve}.\"},\"constructor\":{\"params\":{\"_isLibrary\":\"boolean value stating if the contract is library or not calls __Identity_init if contract is not library\",\"initialManagementKey\":\"the address of the management key at deployment\"}},\"execute(address,uint256,bytes)\":{\"details\":\"See {IERC734-execute}.\",\"returns\":{\"executionId\":\"to use in the approve function, to approve or reject this execution.\"}},\"getClaim(bytes32)\":{\"details\":\"See {IERC735-getClaim}.\",\"params\":{\"_claimId\":\"The identity of the claim i.e. keccak256(abi.encode(_issuer, _topic))\"},\"returns\":{\"data\":\"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .\",\"issuer\":\"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .\",\"scheme\":\"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .\",\"signature\":\"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .\",\"topic\":\"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .\",\"uri\":\"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .\"}},\"getClaimIdsByTopic(uint256)\":{\"details\":\"See {IERC735-getClaimIdsByTopic}.\",\"params\":{\"_topic\":\"The identity of the claim i.e. keccak256(abi.encode(_issuer, _topic))\"},\"returns\":{\"claimIds\":\"Returns an array of claim IDs by topic.\"}},\"getKey(bytes32)\":{\"details\":\"See {IERC734-getKey}.\",\"params\":{\"_key\":\"The public key. for non-hex and long keys, its the Keccak256 hash of the key\"},\"returns\":{\"key\":\"Returns the full key data, if present in the identity.\",\"keyType\":\"Returns the full key data, if present in the identity.\",\"purposes\":\"Returns the full key data, if present in the identity.\"}},\"getKeyPurposes(bytes32)\":{\"details\":\"See {IERC734-getKeyPurposes}.\",\"params\":{\"_key\":\"The public key. for non-hex and long keys, its the Keccak256 hash of the key\"},\"returns\":{\"_purposes\":\"Returns the purposes of the specified key\"}},\"getKeysByPurpose(uint256)\":{\"details\":\"See {IERC734-getKeysByPurpose}.\",\"params\":{\"_purpose\":\"a uint256[] Array of the key types, like 1 = MANAGEMENT, 2 = ACTION, 3 = CLAIM, 4 = ENCRYPTION\"},\"returns\":{\"keys\":\"Returns an array of public key bytes32 hold by this identity and having the specified purpose\"}},\"getRecoveredAddress(bytes,bytes32)\":{\"details\":\"returns the address that signed the given data\",\"params\":{\"dataHash\":\"the data that was signed returns the address that signed dataHash and created the signature sig\",\"sig\":\"the signature of the data\"}},\"initialize(address)\":{\"params\":{\"initialManagementKey\":\"The ethereum address to be set as the management key of the ONCHAINID.\"}},\"isClaimValid(address,uint256,bytes,bytes)\":{\"details\":\"Checks if a claim is valid. Claims issued by the identity are self-attested claims. They do not have a built-in revocation mechanism and are considered valid as long as their signature is valid and they are still stored by the identity contract.\",\"params\":{\"_identity\":\"the identity contract related to the claim\",\"claimTopic\":\"the claim topic of the claim\",\"data\":\"the data field of the claim\",\"sig\":\"the signature of the claim\"},\"returns\":{\"claimValid\":\"true if the claim is valid, false otherwise\"}},\"keyHasPurpose(bytes32,uint256)\":{\"details\":\"See {IERC734-keyHasPurpose}.\"},\"removeClaim(bytes32)\":{\"details\":\"See {IERC735-removeClaim}.\",\"params\":{\"_claimId\":\"The identity of the claim i.e. keccak256(abi.encode(_issuer, _topic))\"},\"returns\":{\"success\":\"Returns TRUE when the claim was removed. triggers ClaimRemoved event\"}},\"removeKey(bytes32,uint256)\":{\"details\":\"See {IERC734-removeKey}.\"},\"version()\":{\"details\":\"Returns the string of the current version.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addClaim(uint256,uint256,address,bytes,bytes,string)\":{\"notice\":\"Implementation of the addClaim function from the ERC-735 standard Require that the msg.sender has claim signer key.\"},\"addKey(bytes32,uint256,uint256)\":{\"notice\":\"implementation of the addKey function of the ERC-734 standard Adds a _key to the identity. The _purpose specifies the purpose of key. Initially we propose four purposes: 1: MANAGEMENT keys, which can manage the identity 2: ACTION keys, which perform actions in this identities name (signing, logins, transactions, etc.) 3: CLAIM signer keys, used to sign claims on other identities which need to be revokable. 4: ENCRYPTION keys, used to encrypt data e.g. hold in claims. MUST only be done by keys of purpose 1, or the identity itself. If its the identity itself, the approval process will determine its approval.\"},\"approve(uint256,bool)\":{\"notice\":\"Approves an execution. If the sender is an ACTION key and the destination address is not the identity contract itself, then the approval is authorized and the operation would be performed. If the destination address is the identity itself, then the execution would be authorized and performed only if the sender is a MANAGEMENT key.\"},\"constructor\":{\"notice\":\"constructor of the Identity contract\"},\"execute(address,uint256,bytes)\":{\"notice\":\"Passes an execution instruction to the keymanager. If the sender is an ACTION key and the destination address is not the identity contract itself, then the execution is immediately approved and performed. If the destination address is the identity itself, then the execution would be performed immediately only if the sender is a MANAGEMENT key. Otherwise the execution request must be approved via the `approve` method.\"},\"getClaim(bytes32)\":{\"notice\":\"Implementation of the getClaim function from the ERC-735 standard.\"},\"getClaimIdsByTopic(uint256)\":{\"notice\":\"Implementation of the getClaimIdsByTopic function from the ERC-735 standard. used to get all the claims from the specified topic\"},\"getKey(bytes32)\":{\"notice\":\"Implementation of the getKey function from the ERC-734 standard\"},\"getKeyPurposes(bytes32)\":{\"notice\":\"gets the purposes of a key\"},\"getKeysByPurpose(uint256)\":{\"notice\":\"gets all the keys with a specific purpose from an identity\"},\"initialize(address)\":{\"notice\":\"When using this contract as an implementation for a proxy, call this initializer with a delegatecall.\"},\"keyHasPurpose(bytes32,uint256)\":{\"notice\":\"Returns true if the key has MANAGEMENT purpose or the specified purpose.\"},\"removeClaim(bytes32)\":{\"notice\":\"Implementation of the removeClaim function from the ERC-735 standard Require that the msg.sender has management key. Can only be removed by the claim issuer, or the claim holder itself.\"},\"removeKey(bytes32,uint256)\":{\"notice\":\"Remove the purpose from a key.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onchainid/Identity.sol\":\"Identity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/onchainid/Identity.sol\":{\"keccak256\":\"0x461b8b4a8532737ebad153922938b35d9e9559dbc140250b80a1ba84165069b9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6dc4a9e89fb9cbbc7b8700fa53451ecba2886a06fe3f8300057613656b85ae49\",\"dweb:/ipfs/QmXYUvgjy4wH4udF2JxDJiSrf94ooVPptR5TNFTF3igDXL\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"contracts/onchainid/storage/Storage.sol\":{\"keccak256\":\"0x4d625d363da1a06accde20e3cddc4e7846c5010faaa846e29adfe3c3301fe92c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e08cb6e44df21c75e0796a11531de13843b13168554bb26e3904ce5120f61582\",\"dweb:/ipfs/Qmd2sp9x86Q9iLUSvZkx3Hy4ProDfRNgn2qf9irZKeTDHC\"]},\"contracts/onchainid/storage/Structs.sol\":{\"keccak256\":\"0x42270db48adff6628fac14178eece647909bd6890bcfba1742fdff8f2d371a57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c04a62167213c8960fdb8a4d5ad12730d9a00cd4d4062b45b61249e3f15e4dc8\",\"dweb:/ipfs/QmQGoMtYcJqQZUjQ3gYgzEwMDLSScXBPphTHh4T6jHCJdV\"]},\"contracts/onchainid/version/Version.sol\":{\"keccak256\":\"0x400b5649726c17f41dbb8882928d020616684f26dbdacf1acd37d2019f47d716\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c4db1bcaec955efa7e3ba4e20c8b81434241743a91ee357fbe980b4d3b43bb64\",\"dweb:/ipfs/QmaP5BaXD2aahn5QV7EvY6Jm4vfT61MHkrmjAqFmb3jmqv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"initialManagementKey","type":"address"},{"internalType":"bool","name":"_isLibrary","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"Approved","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Executed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"ExecutionFailed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"ExecutionRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"uint256","name":"purpose","type":"uint256","indexed":true},{"internalType":"uint256","name":"keyType","type":"uint256","indexed":true}],"type":"event","name":"KeyAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"uint256","name":"purpose","type":"uint256","indexed":true},{"internalType":"uint256","name":"keyType","type":"uint256","indexed":true}],"type":"event","name":"KeyRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_topic","type":"uint256"},{"internalType":"uint256","name":"_scheme","type":"uint256"},{"internalType":"address","name":"_issuer","type":"address"},{"internalType":"bytes","name":"_signature","type":"bytes"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"string","name":"_uri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addClaim","outputs":[{"internalType":"bytes32","name":"claimRequestId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"},{"internalType":"uint256","name":"_type","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addKey","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"bool","name":"_approve","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"execute","outputs":[{"internalType":"uint256","name":"executionId","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"_claimId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClaim","outputs":[{"internalType":"uint256","name":"topic","type":"uint256"},{"internalType":"uint256","name":"scheme","type":"uint256"},{"internalType":"address","name":"issuer","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string","name":"uri","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"_topic","type":"uint256"}],"stateMutability":"view","type":"function","name":"getClaimIdsByTopic","outputs":[{"internalType":"bytes32[]","name":"claimIds","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKey","outputs":[{"internalType":"uint256[]","name":"purposes","type":"uint256[]"},{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"bytes32","name":"key","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeyPurposes","outputs":[{"internalType":"uint256[]","name":"_purposes","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"view","type":"function","name":"getKeysByPurpose","outputs":[{"internalType":"bytes32[]","name":"keys","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes","name":"sig","type":"bytes"},{"internalType":"bytes32","name":"dataHash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getRecoveredAddress","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"address","name":"initialManagementKey","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"contract IIdentity","name":"_identity","type":"address"},{"internalType":"uint256","name":"claimTopic","type":"uint256"},{"internalType":"bytes","name":"sig","type":"bytes"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"isClaimValid","outputs":[{"internalType":"bool","name":"claimValid","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"view","type":"function","name":"keyHasPurpose","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_claimId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeClaim","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeKey","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"addClaim(uint256,uint256,address,bytes,bytes,string)":{"details":"See {IERC735-addClaim}.","params":{"_data":"The hash of the claim data, sitting in another location, a bit-mask, call data, or actual data based on the claim scheme.","_issuer":"The issuers identity contract address, or the address used to sign the above signature.","_scheme":"The scheme with which this claim SHOULD be verified or how it should be processed.","_signature":"Signature which is the proof that the claim issuer issued a claim of topic for this identity. it MUST be a signed message of the following structure: keccak256(abi.encode(address identityHolder_address, uint256 _ topic, bytes data))","_topic":"The type of claim","_uri":"The location of the claim, this can be HTTP links, swarm hashes, IPFS hashes, and such."},"returns":{"claimRequestId":"Returns claimRequestId: COULD be send to the approve function, to approve or reject this claim. triggers ClaimAdded event."}},"addKey(bytes32,uint256,uint256)":{"params":{"_key":"keccak256 representation of an ethereum address","_purpose":"a uint256 specifying the key type, like 1 = MANAGEMENT, 2 = ACTION, 3 = CLAIM, 4 = ENCRYPTION","_type":"type of key used, which would be a uint256 for different key types. e.g. 1 = ECDSA, 2 = RSA, etc."},"returns":{"success":"Returns TRUE if the addition was successful and FALSE if not"}},"approve(uint256,bool)":{"details":"See {IERC734-approve}."},"constructor":{"params":{"_isLibrary":"boolean value stating if the contract is library or not calls __Identity_init if contract is not library","initialManagementKey":"the address of the management key at deployment"}},"execute(address,uint256,bytes)":{"details":"See {IERC734-execute}.","returns":{"executionId":"to use in the approve function, to approve or reject this execution."}},"getClaim(bytes32)":{"details":"See {IERC735-getClaim}.","params":{"_claimId":"The identity of the claim i.e. keccak256(abi.encode(_issuer, _topic))"},"returns":{"data":"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .","issuer":"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .","scheme":"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .","signature":"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .","topic":"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) .","uri":"Returns all the parameters of the claim for the specified _claimId (topic, scheme, signature, issuer, data, uri) ."}},"getClaimIdsByTopic(uint256)":{"details":"See {IERC735-getClaimIdsByTopic}.","params":{"_topic":"The identity of the claim i.e. keccak256(abi.encode(_issuer, _topic))"},"returns":{"claimIds":"Returns an array of claim IDs by topic."}},"getKey(bytes32)":{"details":"See {IERC734-getKey}.","params":{"_key":"The public key. for non-hex and long keys, its the Keccak256 hash of the key"},"returns":{"key":"Returns the full key data, if present in the identity.","keyType":"Returns the full key data, if present in the identity.","purposes":"Returns the full key data, if present in the identity."}},"getKeyPurposes(bytes32)":{"details":"See {IERC734-getKeyPurposes}.","params":{"_key":"The public key. for non-hex and long keys, its the Keccak256 hash of the key"},"returns":{"_purposes":"Returns the purposes of the specified key"}},"getKeysByPurpose(uint256)":{"details":"See {IERC734-getKeysByPurpose}.","params":{"_purpose":"a uint256[] Array of the key types, like 1 = MANAGEMENT, 2 = ACTION, 3 = CLAIM, 4 = ENCRYPTION"},"returns":{"keys":"Returns an array of public key bytes32 hold by this identity and having the specified purpose"}},"getRecoveredAddress(bytes,bytes32)":{"details":"returns the address that signed the given data","params":{"dataHash":"the data that was signed returns the address that signed dataHash and created the signature sig","sig":"the signature of the data"}},"initialize(address)":{"params":{"initialManagementKey":"The ethereum address to be set as the management key of the ONCHAINID."}},"isClaimValid(address,uint256,bytes,bytes)":{"details":"Checks if a claim is valid. Claims issued by the identity are self-attested claims. They do not have a built-in revocation mechanism and are considered valid as long as their signature is valid and they are still stored by the identity contract.","params":{"_identity":"the identity contract related to the claim","claimTopic":"the claim topic of the claim","data":"the data field of the claim","sig":"the signature of the claim"},"returns":{"claimValid":"true if the claim is valid, false otherwise"}},"keyHasPurpose(bytes32,uint256)":{"details":"See {IERC734-keyHasPurpose}."},"removeClaim(bytes32)":{"details":"See {IERC735-removeClaim}.","params":{"_claimId":"The identity of the claim i.e. keccak256(abi.encode(_issuer, _topic))"},"returns":{"success":"Returns TRUE when the claim was removed. triggers ClaimRemoved event"}},"removeKey(bytes32,uint256)":{"details":"See {IERC734-removeKey}."},"version()":{"details":"Returns the string of the current version."}},"version":1},"userdoc":{"kind":"user","methods":{"addClaim(uint256,uint256,address,bytes,bytes,string)":{"notice":"Implementation of the addClaim function from the ERC-735 standard Require that the msg.sender has claim signer key."},"addKey(bytes32,uint256,uint256)":{"notice":"implementation of the addKey function of the ERC-734 standard Adds a _key to the identity. The _purpose specifies the purpose of key. Initially we propose four purposes: 1: MANAGEMENT keys, which can manage the identity 2: ACTION keys, which perform actions in this identities name (signing, logins, transactions, etc.) 3: CLAIM signer keys, used to sign claims on other identities which need to be revokable. 4: ENCRYPTION keys, used to encrypt data e.g. hold in claims. MUST only be done by keys of purpose 1, or the identity itself. If its the identity itself, the approval process will determine its approval."},"approve(uint256,bool)":{"notice":"Approves an execution. If the sender is an ACTION key and the destination address is not the identity contract itself, then the approval is authorized and the operation would be performed. If the destination address is the identity itself, then the execution would be authorized and performed only if the sender is a MANAGEMENT key."},"constructor":{"notice":"constructor of the Identity contract"},"execute(address,uint256,bytes)":{"notice":"Passes an execution instruction to the keymanager. If the sender is an ACTION key and the destination address is not the identity contract itself, then the execution is immediately approved and performed. If the destination address is the identity itself, then the execution would be performed immediately only if the sender is a MANAGEMENT key. Otherwise the execution request must be approved via the `approve` method."},"getClaim(bytes32)":{"notice":"Implementation of the getClaim function from the ERC-735 standard."},"getClaimIdsByTopic(uint256)":{"notice":"Implementation of the getClaimIdsByTopic function from the ERC-735 standard. used to get all the claims from the specified topic"},"getKey(bytes32)":{"notice":"Implementation of the getKey function from the ERC-734 standard"},"getKeyPurposes(bytes32)":{"notice":"gets the purposes of a key"},"getKeysByPurpose(uint256)":{"notice":"gets all the keys with a specific purpose from an identity"},"initialize(address)":{"notice":"When using this contract as an implementation for a proxy, call this initializer with a delegatecall."},"keyHasPurpose(bytes32,uint256)":{"notice":"Returns true if the key has MANAGEMENT purpose or the specified purpose."},"removeClaim(bytes32)":{"notice":"Implementation of the removeClaim function from the ERC-735 standard Require that the msg.sender has management key. Can only be removed by the claim issuer, or the claim holder itself."},"removeKey(bytes32,uint256)":{"notice":"Remove the purpose from a key."}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onchainid/Identity.sol":"Identity"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onchainid/Identity.sol":{"keccak256":"0x461b8b4a8532737ebad153922938b35d9e9559dbc140250b80a1ba84165069b9","urls":["bzz-raw://6dc4a9e89fb9cbbc7b8700fa53451ecba2886a06fe3f8300057613656b85ae49","dweb:/ipfs/QmXYUvgjy4wH4udF2JxDJiSrf94ooVPptR5TNFTF3igDXL"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"contracts/onchainid/storage/Storage.sol":{"keccak256":"0x4d625d363da1a06accde20e3cddc4e7846c5010faaa846e29adfe3c3301fe92c","urls":["bzz-raw://e08cb6e44df21c75e0796a11531de13843b13168554bb26e3904ce5120f61582","dweb:/ipfs/Qmd2sp9x86Q9iLUSvZkx3Hy4ProDfRNgn2qf9irZKeTDHC"],"license":"GPL-3.0"},"contracts/onchainid/storage/Structs.sol":{"keccak256":"0x42270db48adff6628fac14178eece647909bd6890bcfba1742fdff8f2d371a57","urls":["bzz-raw://c04a62167213c8960fdb8a4d5ad12730d9a00cd4d4062b45b61249e3f15e4dc8","dweb:/ipfs/QmQGoMtYcJqQZUjQ3gYgzEwMDLSScXBPphTHh4T6jHCJdV"],"license":"GPL-3.0"},"contracts/onchainid/version/Version.sol":{"keccak256":"0x400b5649726c17f41dbb8882928d020616684f26dbdacf1acd37d2019f47d716","urls":["bzz-raw://c4db1bcaec955efa7e3ba4e20c8b81434241743a91ee357fbe980b4d3b43bb64","dweb:/ipfs/QmaP5BaXD2aahn5QV7EvY6Jm4vfT61MHkrmjAqFmb3jmqv"],"license":"GPL-3.0"}},"version":1},"id":113} \ No newline at end of file diff --git a/out/IdentityProxy.sol/IdentityProxy.json b/out/IdentityProxy.sol/IdentityProxy.json new file mode 100644 index 0000000..632068e --- /dev/null +++ b/out/IdentityProxy.sol/IdentityProxy.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_implementationAuthority","type":"address","internalType":"address"},{"name":"initialManagementKey","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"implementationAuthority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161048938038061048983398101604081905261002f91610271565b6001600160a01b03821661008a5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6001600160a01b0381166100e05760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610081565b817f821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc556000826001600160a01b031663aaf10f426040518163ffffffff1660e01b8152600401602060405180830381865afa158015610143573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016791906102a4565b6040516001600160a01b03848116602483015291925060009183169060440160408051601f198184030181529181526020820180516001600160e01b031663189acdbd60e31b179052516101bb91906102c6565b600060405180830381855af49150503d80600081146101f6576040519150601f19603f3d011682016040523d82523d6000602084013e6101fb565b606091505b505090508061024c5760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e000000000000000000006044820152606401610081565b505050506102f5565b80516001600160a01b038116811461026c57600080fd5b919050565b6000806040838503121561028457600080fd5b61028d83610255565b915061029b60208401610255565b90509250929050565b6000602082840312156102b657600080fd5b6102bf82610255565b9392505050565b6000825160005b818110156102e757602081860181015185830152016102cd565b506000920191825250919050565b610185806103046000396000f3fe60806040526004361061001e5760003560e01c80632307f882146100d4575b60006100487f821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc5490565b6001600160a01b031663aaf10f426040518163ffffffff1660e01b8152600401602060405180830381865afa158015610085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a9919061011f565b90503660008037600080366000846127105a03f43d806000803e8180156100cf57816000f35b816000fd5b3480156100e057600080fd5b507f821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc546040516001600160a01b03909116815260200160405180910390f35b60006020828403121561013157600080fd5b81516001600160a01b038116811461014857600080fd5b939250505056fea2646970667358221220cc54abdf8c74ce0b972f1fe09fc510a8ee03198b88d28d011822b844d00d5aab64736f6c63430008180033","sourceMap":"115:2503:124:-:0;;;534:787;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;628:38:124;;620:82;;;;-1:-1:-1;;;620:82:124;;696:2:165;620:82:124;;;678:21:165;735:2;715:18;;;708:30;774:33;754:18;;;747:61;825:18;;620:82:124;;;;;;;;;-1:-1:-1;;;;;720:34:124;;712:78;;;;-1:-1:-1;;;712:78:124;;696:2:165;712:78:124;;;678:21:165;735:2;715:18;;;708:30;774:33;754:18;;;747:61;825:18;;712:78:124;494:355:165;712:78:124;955:24;887:66;880:100;1000:13;1041:24;-1:-1:-1;;;;;1016:68:124;;:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1193:68;;-1:-1:-1;;;;;1231:32:165;;;1193:68:124;;;1213:51:165;1000:86:124;;-1:-1:-1;1157:12:124;;1174:18;;;1186::165;;1193:68:124;;;-1:-1:-1;;1193:68:124;;;;;;;;;;;;;;-1:-1:-1;;;;;1193:68:124;-1:-1:-1;;;1193:68:124;;;1174:88;;;1193:68;1174:88;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1156:106;;;1280:7;1272:42;;;;-1:-1:-1;;;1272:42:124;;1894:2:165;1272:42:124;;;1876:21:165;1933:2;1913:18;;;1906:30;1972:24;1952:18;;;1945:52;2014:18;;1272:42:124;1692:346:165;1272:42:124;610:711;;534:787;;115:2503;;14:177:165;93:13;;-1:-1:-1;;;;;135:31:165;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;854:208::-;924:6;977:2;965:9;956:7;952:23;948:32;945:52;;;993:1;990;983:12;945:52;1016:40;1046:9;1016:40;:::i;:::-;1006:50;854:208;-1:-1:-1;;;854:208:165:o;1275:412::-;1404:3;1442:6;1436:13;1467:1;1477:129;1491:6;1488:1;1485:13;1477:129;;;1589:4;1573:14;;;1569:25;;1563:32;1550:11;;;1543:53;1506:12;1477:129;;;-1:-1:-1;1661:1:165;1625:16;;1650:13;;;-1:-1:-1;1625:16:165;1275:412;-1:-1:-1;1275:412:165:o;1692:346::-;115:2503:124;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061001e5760003560e01c80632307f882146100d4575b60006100487f821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc5490565b6001600160a01b031663aaf10f426040518163ffffffff1660e01b8152600401602060405180830381865afa158015610085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a9919061011f565b90503660008037600080366000846127105a03f43d806000803e8180156100cf57816000f35b816000fd5b3480156100e057600080fd5b507f821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc546040516001600160a01b03909116815260200160405180910390f35b60006020828403121561013157600080fd5b81516001600160a01b038116811461014857600080fd5b939250505056fea2646970667358221220cc54abdf8c74ce0b972f1fe09fc510a8ee03198b88d28d011822b844d00d5aab64736f6c63430008180033","sourceMap":"115:2503:124:-:0;;;;;;;;;;;;;;;;;;1749:13;1790:25;2506:66;2500:73;;2305:311;1790:25;-1:-1:-1;;;;;1765:69:124;;:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1749:87;;1945:14;1940:3;1935;1922:38;2047:1;2044;2028:14;2023:3;2016:5;2008;2001;1997:17;1984:65;2071:16;2117:5;2114:1;2111;2096:27;2139:7;2159:55;;;;2263:5;2260:1;2253:16;2159:55;2194:5;2191:1;2184:16;2305:311;;;;;;;;;;-1:-1:-1;2506:66:124;2500:73;2305:311;;-1:-1:-1;;;;;473:32:165;;;455:51;;443:2;428:18;2305:311:124;;;;;;;14:290:165;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:165;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:165:o","linkReferences":{}},"methodIdentifiers":{"implementationAuthority()":"2307f882"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_implementationAuthority\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialManagementKey\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"implementationAuthority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"constructor of the proxy Identity contract\",\"params\":{\"_implementationAuthority\":\"the implementation Authority contract address\",\"initialManagementKey\":\"the management key at deployment the proxy is going to use the logic deployed on the implementation contract deployed at an address listed in the ImplementationAuthority contract\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onchainid/proxy/IdentityProxy.sol\":\"IdentityProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/onchainid/interface/IImplementationAuthority.sol\":{\"keccak256\":\"0xa46065896246e1a610410ae59828978d8cd6d04527b636e1e7399217941bcf09\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f8c493c0291774cf2da1f84e928c8999c36f7640e6fef82621cd990564a7dd80\",\"dweb:/ipfs/QmPxDk18X86b8FKG91ABkrrkX6fJa2Z8S4jjXDniQ2jvwa\"]},\"contracts/onchainid/proxy/IdentityProxy.sol\":{\"keccak256\":\"0x6434c7e5409fa5264c1fa8ae24f948de98c9620d27af508a36bdee21cf743505\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cfdaa1b2a52b447b821d035b668a32accb63879ccb229069f290ff8b22f9d9b4\",\"dweb:/ipfs/QmdHhsyPD1EJbBtq3APt1Dfx2ekBRrEAVTuEbmqBvtTUai\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_implementationAuthority","type":"address"},{"internalType":"address","name":"initialManagementKey","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"implementationAuthority","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"constructor of the proxy Identity contract","params":{"_implementationAuthority":"the implementation Authority contract address","initialManagementKey":"the management key at deployment the proxy is going to use the logic deployed on the implementation contract deployed at an address listed in the ImplementationAuthority contract"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onchainid/proxy/IdentityProxy.sol":"IdentityProxy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onchainid/interface/IImplementationAuthority.sol":{"keccak256":"0xa46065896246e1a610410ae59828978d8cd6d04527b636e1e7399217941bcf09","urls":["bzz-raw://f8c493c0291774cf2da1f84e928c8999c36f7640e6fef82621cd990564a7dd80","dweb:/ipfs/QmPxDk18X86b8FKG91ABkrrkX6fJa2Z8S4jjXDniQ2jvwa"],"license":"GPL-3.0"},"contracts/onchainid/proxy/IdentityProxy.sol":{"keccak256":"0x6434c7e5409fa5264c1fa8ae24f948de98c9620d27af508a36bdee21cf743505","urls":["bzz-raw://cfdaa1b2a52b447b821d035b668a32accb63879ccb229069f290ff8b22f9d9b4","dweb:/ipfs/QmdHhsyPD1EJbBtq3APt1Dfx2ekBRrEAVTuEbmqBvtTUai"],"license":"GPL-3.0"}},"version":1},"id":124} \ No newline at end of file diff --git a/out/IdentityRegistry.sol/IdentityRegistry.json b/out/IdentityRegistry.sol/IdentityRegistry.json new file mode 100644 index 0000000..5353ba9 --- /dev/null +++ b/out/IdentityRegistry.sol/IdentityRegistry.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchRegisterIdentity","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_identities","type":"address[]","internalType":"contract IIdentity[]"},{"name":"_countries","type":"uint16[]","internalType":"uint16[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"contains","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"deleteIdentity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"identity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract IIdentity"}],"stateMutability":"view"},{"type":"function","name":"identityStorage","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IIdentityRegistryStorage"}],"stateMutability":"view"},{"type":"function","name":"init","inputs":[{"name":"_trustedIssuersRegistry","type":"address","internalType":"address"},{"name":"_claimTopicsRegistry","type":"address","internalType":"address"},{"name":"_identityStorage","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"investorCountry","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isVerified","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"issuersRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITrustedIssuersRegistry"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"registerIdentity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_identity","type":"address","internalType":"contract IIdentity"},{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setClaimTopicsRegistry","inputs":[{"name":"_claimTopicsRegistry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIdentityRegistryStorage","inputs":[{"name":"_identityRegistryStorage","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTrustedIssuersRegistry","inputs":[{"name":"_trustedIssuersRegistry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"topicsRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IClaimTopicsRegistry"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateCountry","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateIdentity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_identity","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ClaimTopicsRegistrySet","inputs":[{"name":"claimTopicsRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CountryUpdated","inputs":[{"name":"investorAddress","type":"address","indexed":true,"internalType":"address"},{"name":"country","type":"uint16","indexed":true,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"IdentityRegistered","inputs":[{"name":"investorAddress","type":"address","indexed":true,"internalType":"address"},{"name":"identity","type":"address","indexed":true,"internalType":"contract IIdentity"}],"anonymous":false},{"type":"event","name":"IdentityRemoved","inputs":[{"name":"investorAddress","type":"address","indexed":true,"internalType":"address"},{"name":"identity","type":"address","indexed":true,"internalType":"contract IIdentity"}],"anonymous":false},{"type":"event","name":"IdentityStorageSet","inputs":[{"name":"identityStorage","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"IdentityUpdated","inputs":[{"name":"oldIdentity","type":"address","indexed":true,"internalType":"contract IIdentity"},{"name":"newIdentity","type":"address","indexed":true,"internalType":"contract IIdentity"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TrustedIssuersRegistrySet","inputs":[{"name":"trustedIssuersRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50611a9c806100206000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806384e79842116100b8578063b4f3fcb71161007c578063b4f3fcb7146102c5578063b9209e33146102d6578063e744d789146102e9578063f0eb5e54146102fc578063f11abfd81461030f578063f2fde38b1461032057600080fd5b806384e79842146102495780638da5cb5b1461025c5780638e098ca11461028c57806397a6278e1461029f578063a8d29d1d146102b257600080fd5b8063454a03e01161010a578063454a03e0146101cf5780635dbe47e8146101e2578063653dc9f1146101f5578063670af6a914610208578063715018a61461021b5780637e42683b1461022357600080fd5b8063184b9559146101475780631ffbb0641461015c57806326d941ae146101845780633b239a7f146101975780633b3e12f4146101aa575b600080fd5b61015a6101553660046113ba565b610333565b005b61016f61016a366004611405565b61056a565b60405190151581526020015b60405180910390f35b61015a610192366004611405565b61057c565b61015a6101a5366004611439565b6105ce565b6001546001600160a01b03165b6040516001600160a01b03909116815260200161017b565b61015a6101dd366004611472565b61069a565b61016f6101f0366004611405565b61076d565b61015a6102033660046114fe565b610797565b61015a610216366004611405565b61082b565b61015a61087d565b610236610231366004611405565b610891565b60405161ffff909116815260200161017b565b61015a610257366004611405565b610900565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166101b7565b61015a61029a366004611598565b610970565b61015a6102ad366004611405565b610a46565b61015a6102c0366004611405565b610ab6565b6002546001600160a01b03166101b7565b61016f6102e4366004611405565b610b83565b61015a6102f7366004611405565b610ff7565b6101b761030a366004611405565b611049565b6003546001600160a01b03166101b7565b61015a61032e366004611405565b6110b8565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156103795750825b905060008267ffffffffffffffff1660011480156103965750303b155b9050811580156103a4575080155b156103c25760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156103ec57845460ff60401b1916600160401b1785555b6001600160a01b0388161580159061040c57506001600160a01b03871615155b801561042057506001600160a01b03861615155b6104455760405162461bcd60e51b815260040161043c906115c6565b60405180910390fd5b600180546001600160a01b03808a166001600160a01b03199283168117909355600280548c831690841617905560038054918a16919092161790556040517f7170bf15b246e880b2369cd7c67d057760d8a35149e8c64dde91efa22bcc76d090600090a26040516001600160a01b038916907f1b98cb79e6f73020175fe87333f1b91ad6a881519c0afe30340c2599b2b4bde090600090a26040516001600160a01b038716907f2fa8b95c1db7afe99e3398f3792f008135cedc1fa26b0bb2ecd2352cd166d53c90600090a261051a336110f6565b831561056057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b60006105768183611107565b92915050565b61058461118a565b600380546001600160a01b0319166001600160a01b0383169081179091556040517f2fa8b95c1db7afe99e3398f3792f008135cedc1fa26b0bb2ecd2352cd166d53c90600090a250565b6105d73361056a565b6105f35760405162461bcd60e51b815260040161043c906115fd565b600354604051639f3418d560e01b81526001600160a01b03848116600483015261ffff8416602483015290911690639f3418d590604401600060405180830381600087803b15801561064457600080fd5b505af1158015610658573d6000803e3d6000fd5b505060405161ffff841692506001600160a01b03851691507f04ed3b726495c2dca1ff1215d9ca54e1a4030abb5e82b0f6ce55702416cee85390600090a35050565b6106a33361056a565b6106bf5760405162461bcd60e51b815260040161043c906115fd565b60035460405163a53410dd60e01b81526001600160a01b038581166004830152848116602483015261ffff841660448301529091169063a53410dd90606401600060405180830381600087803b15801561071857600080fd5b505af115801561072c573d6000803e3d6000fd5b50506040516001600160a01b038086169350861691507f6ae73635c50d24a45af6fbd5e016ac4bed179addbc8bf24e04ff0fcc6d33af1990600090a3505050565b60008061077983611049565b6001600160a01b03160361078f57506000919050565b506001919050565b60005b858110156108225761081a8787838181106107b7576107b761164b565b90506020020160208101906107cc9190611405565b8686848181106107de576107de61164b565b90506020020160208101906107f39190611405565b8585858181106108055761080561164b565b90506020020160208101906101dd9190611661565b60010161079a565b50505050505050565b61083361118a565b600180546001600160a01b0319166001600160a01b0383169081179091556040517f7170bf15b246e880b2369cd7c67d057760d8a35149e8c64dde91efa22bcc76d090600090a250565b61088561118a565b61088f60006111e5565b565b600354604051631c9f84ef60e21b81526001600160a01b038381166004830152600092169063727e13bc90602401602060405180830381865afa1580156108dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610576919061167e565b61090861118a565b6001600160a01b03811661092e5760405162461bcd60e51b815260040161043c906115c6565b610939600082611256565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b6109793361056a565b6109955760405162461bcd60e51b815260040161043c906115fd565b60006109a083611049565b600354604051637402e7c360e11b81526001600160a01b038681166004830152858116602483015292935091169063e805cf8690604401600060405180830381600087803b1580156109f157600080fd5b505af1158015610a05573d6000803e3d6000fd5b50506040516001600160a01b038086169350841691507fe98082932c8056a0f514da9104e4a66bc2cbaef102ad59d90c4b24220ebf601090600090a3505050565b610a4e61118a565b6001600160a01b038116610a745760405162461bcd60e51b815260040161043c906115c6565b610a7f6000826112d2565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b610abf3361056a565b610adb5760405162461bcd60e51b815260040161043c906115fd565b6000610ae682611049565b60035460405163cf191bcd60e01b81526001600160a01b03858116600483015292935091169063cf191bcd90602401600060405180830381600087803b158015610b2f57600080fd5b505af1158015610b43573d6000803e3d6000fd5b50506040516001600160a01b038085169350851691507f59d6590e225b81befe259af056324092801080acbb7feab310eb34678871f32790600090a35050565b600080610b8f83611049565b6001600160a01b031603610ba557506000919050565b600154604080516337c2758160e21b815290516000926001600160a01b03169163df09d60491600480830192869291908290030181865afa158015610bee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c169190810190611706565b90508051600003610c2a5750600192915050565b600080600060608060005b8651811015610fe85760025487516000916001600160a01b0316906352c111d1908a9085908110610c6857610c6861164b565b60200260200101516040518263ffffffff1660e01b8152600401610c8e91815260200190565b600060405180830381865afa158015610cab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cd3919081019061179c565b90508051600003610cee575060009998505050505050505050565b6000815167ffffffffffffffff811115610d0a57610d0a61169b565b604051908082528060200260200182016040528015610d33578160200160208202803683370190505b50905060005b8251811015610dd657828181518110610d5457610d5461164b565b60200260200101518a8581518110610d6e57610d6e61164b565b6020026020010151604051602001610d9b9291906001600160a01b03929092168252602082015260400190565b60405160208183030381529060405280519060200120828281518110610dc357610dc361164b565b6020908102919091010152600101610d39565b5060005b8151811015610fdd57610dec8c611049565b6001600160a01b031663c9100bcb838381518110610e0c57610e0c61164b565b60200260200101516040518263ffffffff1660e01b8152600401610e3291815260200190565b600060405180830381865afa158015610e4f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e7791908101906118be565b508e51949d50929b50909950975095508a9085908110610e9957610e9961164b565b60200260200101518903610fa557866001600160a01b031663c0969a6e610ebf8e611049565b8c8781518110610ed157610ed161164b565b602002602001015189896040518563ffffffff1660e01b8152600401610efa94939291906119ac565b602060405180830381865afa925050508015610f33575060408051601f3d908101601f19168201909252610f30918101906119e5565b60015b610f625760018251610f459190611a1d565b8103610f5d575060009b9a5050505050505050505050565b610fcb565b8015610f6d57825191505b80158015610f87575060018351610f849190611a1d565b82145b15610f9f575060009c9b505050505050505050505050565b50610fcb565b60018251610fb39190611a1d565b8103610fcb575060009b9a5050505050505050505050565b80610fd581611a30565b915050610dda565b505050600101610c35565b50600198975050505050505050565b610fff61118a565b600280546001600160a01b0319166001600160a01b0383169081179091556040517f1b98cb79e6f73020175fe87333f1b91ad6a881519c0afe30340c2599b2b4bde090600090a250565b600354604051637988d3a560e01b81526001600160a01b0383811660048301526000921690637988d3a590602401602060405180830381865afa158015611094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105769190611a49565b6110c061118a565b6001600160a01b0381166110ea57604051631e4fbdf760e01b81526000600482015260240161043c565b6110f3816111e5565b50565b6110fe611354565b6110f38161139d565b60006001600160a01b03821661116a5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840161043c565b506001600160a01b03166000908152602091909152604090205460ff1690565b336111bc7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461088f5760405163118cdaa760e01b815233600482015260240161043c565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6112608282611107565b156112ad5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640161043c565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6112dc8282611107565b6113325760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b606482015260840161043c565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661088f57604051631afcd79f60e31b815260040160405180910390fd5b6110c0611354565b6001600160a01b03811681146110f357600080fd5b6000806000606084860312156113cf57600080fd5b83356113da816113a5565b925060208401356113ea816113a5565b915060408401356113fa816113a5565b809150509250925092565b60006020828403121561141757600080fd5b8135611422816113a5565b9392505050565b61ffff811681146110f357600080fd5b6000806040838503121561144c57600080fd5b8235611457816113a5565b9150602083013561146781611429565b809150509250929050565b60008060006060848603121561148757600080fd5b8335611492816113a5565b925060208401356114a2816113a5565b915060408401356113fa81611429565b60008083601f8401126114c457600080fd5b50813567ffffffffffffffff8111156114dc57600080fd5b6020830191508360208260051b85010111156114f757600080fd5b9250929050565b6000806000806000806060878903121561151757600080fd5b863567ffffffffffffffff8082111561152f57600080fd5b61153b8a838b016114b2565b9098509650602089013591508082111561155457600080fd5b6115608a838b016114b2565b9096509450604089013591508082111561157957600080fd5b5061158689828a016114b2565b979a9699509497509295939492505050565b600080604083850312156115ab57600080fd5b82356115b6816113a5565b91506020830135611467816113a5565b6020808252601f908201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604082015260600190565b6020808252602e908201527f4167656e74526f6c653a2063616c6c657220646f6573206e6f7420686176652060408201526d746865204167656e7420726f6c6560901b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561167357600080fd5b813561142281611429565b60006020828403121561169057600080fd5b815161142281611429565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156116da576116da61169b565b604052919050565b600067ffffffffffffffff8211156116fc576116fc61169b565b5060051b60200190565b6000602080838503121561171957600080fd5b825167ffffffffffffffff81111561173057600080fd5b8301601f8101851361174157600080fd5b805161175461174f826116e2565b6116b1565b81815260059190911b8201830190838101908783111561177357600080fd5b928401925b8284101561179157835182529284019290840190611778565b979650505050505050565b600060208083850312156117af57600080fd5b825167ffffffffffffffff8111156117c657600080fd5b8301601f810185136117d757600080fd5b80516117e561174f826116e2565b81815260059190911b8201830190838101908783111561180457600080fd5b928401925b8284101561179157835161181c816113a5565b82529284019290840190611809565b60005b8381101561184657818101518382015260200161182e565b50506000910152565b600067ffffffffffffffff8311156118695761186961169b565b61187c601f8401601f19166020016116b1565b905082815283838301111561189057600080fd5b61142283602083018461182b565b600082601f8301126118af57600080fd5b6114228383516020850161184f565b60008060008060008060c087890312156118d757600080fd5b865195506020870151945060408701516118f0816113a5565b606088015190945067ffffffffffffffff8082111561190e57600080fd5b61191a8a838b0161189e565b9450608089015191508082111561193057600080fd5b61193c8a838b0161189e565b935060a089015191508082111561195257600080fd5b508701601f8101891361196457600080fd5b6119738982516020840161184f565b9150509295509295509295565b6000815180845261199881602086016020860161182b565b601f01601f19169290920160200192915050565b60018060a01b03851681528360208201526080604082015260006119d36080830185611980565b82810360608401526117918185611980565b6000602082840312156119f757600080fd5b8151801515811461142257600080fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561057657610576611a07565b600060018201611a4257611a42611a07565b5060010190565b600060208284031215611a5b57600080fd5b8151611422816113a556fea2646970667358221220acab7c02bafdc33ccad1d8b37e6dc2ea00a4d54bdc3ec2259b6ae1049b607f7b64736f6c63430008180033","sourceMap":"4232:7800:76:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101425760003560e01c806384e79842116100b8578063b4f3fcb71161007c578063b4f3fcb7146102c5578063b9209e33146102d6578063e744d789146102e9578063f0eb5e54146102fc578063f11abfd81461030f578063f2fde38b1461032057600080fd5b806384e79842146102495780638da5cb5b1461025c5780638e098ca11461028c57806397a6278e1461029f578063a8d29d1d146102b257600080fd5b8063454a03e01161010a578063454a03e0146101cf5780635dbe47e8146101e2578063653dc9f1146101f5578063670af6a914610208578063715018a61461021b5780637e42683b1461022357600080fd5b8063184b9559146101475780631ffbb0641461015c57806326d941ae146101845780633b239a7f146101975780633b3e12f4146101aa575b600080fd5b61015a6101553660046113ba565b610333565b005b61016f61016a366004611405565b61056a565b60405190151581526020015b60405180910390f35b61015a610192366004611405565b61057c565b61015a6101a5366004611439565b6105ce565b6001546001600160a01b03165b6040516001600160a01b03909116815260200161017b565b61015a6101dd366004611472565b61069a565b61016f6101f0366004611405565b61076d565b61015a6102033660046114fe565b610797565b61015a610216366004611405565b61082b565b61015a61087d565b610236610231366004611405565b610891565b60405161ffff909116815260200161017b565b61015a610257366004611405565b610900565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166101b7565b61015a61029a366004611598565b610970565b61015a6102ad366004611405565b610a46565b61015a6102c0366004611405565b610ab6565b6002546001600160a01b03166101b7565b61016f6102e4366004611405565b610b83565b61015a6102f7366004611405565b610ff7565b6101b761030a366004611405565b611049565b6003546001600160a01b03166101b7565b61015a61032e366004611405565b6110b8565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156103795750825b905060008267ffffffffffffffff1660011480156103965750303b155b9050811580156103a4575080155b156103c25760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156103ec57845460ff60401b1916600160401b1785555b6001600160a01b0388161580159061040c57506001600160a01b03871615155b801561042057506001600160a01b03861615155b6104455760405162461bcd60e51b815260040161043c906115c6565b60405180910390fd5b600180546001600160a01b03808a166001600160a01b03199283168117909355600280548c831690841617905560038054918a16919092161790556040517f7170bf15b246e880b2369cd7c67d057760d8a35149e8c64dde91efa22bcc76d090600090a26040516001600160a01b038916907f1b98cb79e6f73020175fe87333f1b91ad6a881519c0afe30340c2599b2b4bde090600090a26040516001600160a01b038716907f2fa8b95c1db7afe99e3398f3792f008135cedc1fa26b0bb2ecd2352cd166d53c90600090a261051a336110f6565b831561056057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b60006105768183611107565b92915050565b61058461118a565b600380546001600160a01b0319166001600160a01b0383169081179091556040517f2fa8b95c1db7afe99e3398f3792f008135cedc1fa26b0bb2ecd2352cd166d53c90600090a250565b6105d73361056a565b6105f35760405162461bcd60e51b815260040161043c906115fd565b600354604051639f3418d560e01b81526001600160a01b03848116600483015261ffff8416602483015290911690639f3418d590604401600060405180830381600087803b15801561064457600080fd5b505af1158015610658573d6000803e3d6000fd5b505060405161ffff841692506001600160a01b03851691507f04ed3b726495c2dca1ff1215d9ca54e1a4030abb5e82b0f6ce55702416cee85390600090a35050565b6106a33361056a565b6106bf5760405162461bcd60e51b815260040161043c906115fd565b60035460405163a53410dd60e01b81526001600160a01b038581166004830152848116602483015261ffff841660448301529091169063a53410dd90606401600060405180830381600087803b15801561071857600080fd5b505af115801561072c573d6000803e3d6000fd5b50506040516001600160a01b038086169350861691507f6ae73635c50d24a45af6fbd5e016ac4bed179addbc8bf24e04ff0fcc6d33af1990600090a3505050565b60008061077983611049565b6001600160a01b03160361078f57506000919050565b506001919050565b60005b858110156108225761081a8787838181106107b7576107b761164b565b90506020020160208101906107cc9190611405565b8686848181106107de576107de61164b565b90506020020160208101906107f39190611405565b8585858181106108055761080561164b565b90506020020160208101906101dd9190611661565b60010161079a565b50505050505050565b61083361118a565b600180546001600160a01b0319166001600160a01b0383169081179091556040517f7170bf15b246e880b2369cd7c67d057760d8a35149e8c64dde91efa22bcc76d090600090a250565b61088561118a565b61088f60006111e5565b565b600354604051631c9f84ef60e21b81526001600160a01b038381166004830152600092169063727e13bc90602401602060405180830381865afa1580156108dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610576919061167e565b61090861118a565b6001600160a01b03811661092e5760405162461bcd60e51b815260040161043c906115c6565b610939600082611256565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b6109793361056a565b6109955760405162461bcd60e51b815260040161043c906115fd565b60006109a083611049565b600354604051637402e7c360e11b81526001600160a01b038681166004830152858116602483015292935091169063e805cf8690604401600060405180830381600087803b1580156109f157600080fd5b505af1158015610a05573d6000803e3d6000fd5b50506040516001600160a01b038086169350841691507fe98082932c8056a0f514da9104e4a66bc2cbaef102ad59d90c4b24220ebf601090600090a3505050565b610a4e61118a565b6001600160a01b038116610a745760405162461bcd60e51b815260040161043c906115c6565b610a7f6000826112d2565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b610abf3361056a565b610adb5760405162461bcd60e51b815260040161043c906115fd565b6000610ae682611049565b60035460405163cf191bcd60e01b81526001600160a01b03858116600483015292935091169063cf191bcd90602401600060405180830381600087803b158015610b2f57600080fd5b505af1158015610b43573d6000803e3d6000fd5b50506040516001600160a01b038085169350851691507f59d6590e225b81befe259af056324092801080acbb7feab310eb34678871f32790600090a35050565b600080610b8f83611049565b6001600160a01b031603610ba557506000919050565b600154604080516337c2758160e21b815290516000926001600160a01b03169163df09d60491600480830192869291908290030181865afa158015610bee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c169190810190611706565b90508051600003610c2a5750600192915050565b600080600060608060005b8651811015610fe85760025487516000916001600160a01b0316906352c111d1908a9085908110610c6857610c6861164b565b60200260200101516040518263ffffffff1660e01b8152600401610c8e91815260200190565b600060405180830381865afa158015610cab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cd3919081019061179c565b90508051600003610cee575060009998505050505050505050565b6000815167ffffffffffffffff811115610d0a57610d0a61169b565b604051908082528060200260200182016040528015610d33578160200160208202803683370190505b50905060005b8251811015610dd657828181518110610d5457610d5461164b565b60200260200101518a8581518110610d6e57610d6e61164b565b6020026020010151604051602001610d9b9291906001600160a01b03929092168252602082015260400190565b60405160208183030381529060405280519060200120828281518110610dc357610dc361164b565b6020908102919091010152600101610d39565b5060005b8151811015610fdd57610dec8c611049565b6001600160a01b031663c9100bcb838381518110610e0c57610e0c61164b565b60200260200101516040518263ffffffff1660e01b8152600401610e3291815260200190565b600060405180830381865afa158015610e4f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e7791908101906118be565b508e51949d50929b50909950975095508a9085908110610e9957610e9961164b565b60200260200101518903610fa557866001600160a01b031663c0969a6e610ebf8e611049565b8c8781518110610ed157610ed161164b565b602002602001015189896040518563ffffffff1660e01b8152600401610efa94939291906119ac565b602060405180830381865afa925050508015610f33575060408051601f3d908101601f19168201909252610f30918101906119e5565b60015b610f625760018251610f459190611a1d565b8103610f5d575060009b9a5050505050505050505050565b610fcb565b8015610f6d57825191505b80158015610f87575060018351610f849190611a1d565b82145b15610f9f575060009c9b505050505050505050505050565b50610fcb565b60018251610fb39190611a1d565b8103610fcb575060009b9a5050505050505050505050565b80610fd581611a30565b915050610dda565b505050600101610c35565b50600198975050505050505050565b610fff61118a565b600280546001600160a01b0319166001600160a01b0383169081179091556040517f1b98cb79e6f73020175fe87333f1b91ad6a881519c0afe30340c2599b2b4bde090600090a250565b600354604051637988d3a560e01b81526001600160a01b0383811660048301526000921690637988d3a590602401602060405180830381865afa158015611094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105769190611a49565b6110c061118a565b6001600160a01b0381166110ea57604051631e4fbdf760e01b81526000600482015260240161043c565b6110f3816111e5565b50565b6110fe611354565b6110f38161139d565b60006001600160a01b03821661116a5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840161043c565b506001600160a01b03166000908152602091909152604090205460ff1690565b336111bc7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461088f5760405163118cdaa760e01b815233600482015260240161043c565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6112608282611107565b156112ad5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640161043c565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6112dc8282611107565b6113325760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b606482015260840161043c565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661088f57604051631afcd79f60e31b815260040160405180910390fd5b6110c0611354565b6001600160a01b03811681146110f357600080fd5b6000806000606084860312156113cf57600080fd5b83356113da816113a5565b925060208401356113ea816113a5565b915060408401356113fa816113a5565b809150509250925092565b60006020828403121561141757600080fd5b8135611422816113a5565b9392505050565b61ffff811681146110f357600080fd5b6000806040838503121561144c57600080fd5b8235611457816113a5565b9150602083013561146781611429565b809150509250929050565b60008060006060848603121561148757600080fd5b8335611492816113a5565b925060208401356114a2816113a5565b915060408401356113fa81611429565b60008083601f8401126114c457600080fd5b50813567ffffffffffffffff8111156114dc57600080fd5b6020830191508360208260051b85010111156114f757600080fd5b9250929050565b6000806000806000806060878903121561151757600080fd5b863567ffffffffffffffff8082111561152f57600080fd5b61153b8a838b016114b2565b9098509650602089013591508082111561155457600080fd5b6115608a838b016114b2565b9096509450604089013591508082111561157957600080fd5b5061158689828a016114b2565b979a9699509497509295939492505050565b600080604083850312156115ab57600080fd5b82356115b6816113a5565b91506020830135611467816113a5565b6020808252601f908201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604082015260600190565b6020808252602e908201527f4167656e74526f6c653a2063616c6c657220646f6573206e6f7420686176652060408201526d746865204167656e7420726f6c6560901b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561167357600080fd5b813561142281611429565b60006020828403121561169057600080fd5b815161142281611429565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156116da576116da61169b565b604052919050565b600067ffffffffffffffff8211156116fc576116fc61169b565b5060051b60200190565b6000602080838503121561171957600080fd5b825167ffffffffffffffff81111561173057600080fd5b8301601f8101851361174157600080fd5b805161175461174f826116e2565b6116b1565b81815260059190911b8201830190838101908783111561177357600080fd5b928401925b8284101561179157835182529284019290840190611778565b979650505050505050565b600060208083850312156117af57600080fd5b825167ffffffffffffffff8111156117c657600080fd5b8301601f810185136117d757600080fd5b80516117e561174f826116e2565b81815260059190911b8201830190838101908783111561180457600080fd5b928401925b8284101561179157835161181c816113a5565b82529284019290840190611809565b60005b8381101561184657818101518382015260200161182e565b50506000910152565b600067ffffffffffffffff8311156118695761186961169b565b61187c601f8401601f19166020016116b1565b905082815283838301111561189057600080fd5b61142283602083018461182b565b600082601f8301126118af57600080fd5b6114228383516020850161184f565b60008060008060008060c087890312156118d757600080fd5b865195506020870151945060408701516118f0816113a5565b606088015190945067ffffffffffffffff8082111561190e57600080fd5b61191a8a838b0161189e565b9450608089015191508082111561193057600080fd5b61193c8a838b0161189e565b935060a089015191508082111561195257600080fd5b508701601f8101891361196457600080fd5b6119738982516020840161184f565b9150509295509295509295565b6000815180845261199881602086016020860161182b565b601f01601f19169290920160200192915050565b60018060a01b03851681528360208201526080604082015260006119d36080830185611980565b82810360608401526117918185611980565b6000602082840312156119f757600080fd5b8151801515811461142257600080fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561057657610576611a07565b600060018201611a4257611a42611a07565b5060010190565b600060208284031215611a5b57600080fd5b8151611422816113a556fea2646970667358221220acab7c02bafdc33ccad1d8b37e6dc2ea00a4d54bdc3ec2259b6ae1049b607f7b64736f6c63430008180033","sourceMap":"4232:7800:76:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4840:814;;;;;;:::i;:::-;;:::i;:::-;;4703:103:88;;;;;;:::i;:::-;;:::i;:::-;;;1101:14:165;;1094:22;1076:41;;1064:2;1049:18;4703:103:88;;;;;;;;7171:248:76;;;;;;:::i;:::-;;:::i;6511:233::-;;;;;;:::i;:::-;;:::i;10833:124::-;10930:20;;-1:-1:-1;;;;;10930:20:76;10833:124;;;-1:-1:-1;;;;;1835:32:165;;;1817:51;;1805:2;1790:18;10833:124:76;1641:233:165;11512:294:76;;;;;;:::i;:::-;;:::i;11232:203::-;;;;;;:::i;:::-;;:::i;5736:337::-;;;;;;:::i;:::-;;:::i;7502:231::-;;;;;;:::i;:::-;;:::i;3155:101:136:-;;;:::i;10385:168:76:-;;;;;;:::i;:::-;;:::i;:::-;;;4087:6:165;4075:19;;;4057:38;;4045:2;4030:18;10385:168:76;3913:188:165;4295:194:88;;;;;;:::i;:::-;;:::i;2441:144:136:-;1313:22;2570:8;-1:-1:-1;;;;;2570:8:136;2441:144;;6148:289:76;;;;;;:::i;:::-;;:::i;4495:202:88:-;;;;;;:::i;:::-;;:::i;6819:265:76:-;;;;;;:::i;:::-;;:::i;10629:129::-;10730:21;;-1:-1:-1;;;;;10730:21:76;10629:129;;8189:2120;;;;;;:::i;:::-;;:::i;7819:250::-;;;;;;:::i;:::-;;:::i;11875:155::-;;;;;;:::i;:::-;;:::i;11033:130::-;11135:21;;-1:-1:-1;;;;;11135:21:76;11033:130;;3405:215:136;;;;;;:::i;:::-;;:::i;4840:814:76:-;8870:21:137;4302:15;;-1:-1:-1;;;4302:15:137;;;;4301:16;;4348:14;;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;:16;;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:137;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:137;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:137;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:137;-1:-1:-1;;;5013:22:137;;;4979:67;-1:-1:-1;;;;;5025:37:76;::::1;::::0;;::::1;::::0;:87:::1;;-1:-1:-1::0;;;;;;5078:34:76;::::1;::::0;::::1;5025:87;:133;;;;-1:-1:-1::0;;;;;;5128:30:76;::::1;::::0;::::1;5025:133;5004:199;;;;-1:-1:-1::0;;;5004:199:76::1;;;;;;;:::i;:::-;;;;;;;;;5213:20;:65:::0;;-1:-1:-1;;;;;5213:65:76;;::::1;-1:-1:-1::0;;;;;;5213:65:76;;::::1;::::0;::::1;::::0;;;5288:21:::1;:72:::0;;;;::::1;::::0;;::::1;;::::0;;5370:21:::1;:66:::0;;;;::::1;::::0;;;::::1;;::::0;;5451:44:::1;::::0;::::1;::::0;5213:20:::1;::::0;5451:44:::1;5510:50;::::0;-1:-1:-1;;;;;5510:50:76;::::1;::::0;::::1;::::0;;;::::1;5575:36;::::0;-1:-1:-1;;;;;5575:36:76;::::1;::::0;::::1;::::0;;;::::1;5621:26;5636:10;5621:14;:26::i;:::-;5070:14:137::0;5066:101;;;5100:23;;-1:-1:-1;;;;5100:23:137;;;5142:14;;-1:-1:-1;5949:50:165;;5142:14:137;;5937:2:165;5922:18;5142:14:137;;;;;;;5066:101;4092:1081;;;;;4840:814:76;;;:::o;4703:103:88:-;4757:4;4780:19;4757:4;4792:6;4780:11;:19::i;:::-;4773:26;4703:103;-1:-1:-1;;4703:103:88:o;7171:248:76:-;2334:13:136;:11;:13::i;:::-;7279:21:76::1;:74:::0;;-1:-1:-1;;;;;;7279:74:76::1;-1:-1:-1::0;;;;;7279:74:76;::::1;::::0;;::::1;::::0;;;7368:44:::1;::::0;::::1;::::0;-1:-1:-1;;7368:44:76::1;7171:248:::0;:::o;6511:233::-;4201:19:88;4209:10;4201:7;:19::i;:::-;4193:78;;;;-1:-1:-1;;;4193:78:88;;;;;;;:::i;:::-;6611:21:76::1;::::0;:73:::1;::::0;-1:-1:-1;;;6611:73:76;;-1:-1:-1;;;;;6615:32:165;;;6611:73:76::1;::::0;::::1;6597:51:165::0;6696:6;6684:19;;6664:18;;;6657:47;6611:21:76;;::::1;::::0;:49:::1;::::0;6570:18:165;;6611:73:76::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6699:38:76::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;;6699:38:76;::::1;::::0;-1:-1:-1;6699:38:76::1;::::0;;;::::1;6511:233:::0;;:::o;11512:294::-;4201:19:88;4209:10;4201:7;:19::i;:::-;4193:78;;;;-1:-1:-1;;;4193:78:88;;;;;;;:::i;:::-;11664:21:76::1;::::0;:77:::1;::::0;-1:-1:-1;;;11664:77:76;;-1:-1:-1;;;;;6990:15:165;;;11664:77:76::1;::::0;::::1;6972:34:165::0;7042:15;;;7022:18;;;7015:43;7106:6;7094:19;;7074:18;;;7067:47;11664:21:76;;::::1;::::0;:42:::1;::::0;6907:18:165;;11664:77:76::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;11756:43:76::1;::::0;-1:-1:-1;;;;;11756:43:76;;::::1;::::0;-1:-1:-1;11756:43:76;::::1;::::0;-1:-1:-1;11756:43:76::1;::::0;;;::::1;11512:294:::0;;;:::o;11232:203::-;11304:4;;11332:22;11341:12;11332:8;:22::i;:::-;-1:-1:-1;;;;;11324:45:76;;11320:88;;-1:-1:-1;11392:5:76;;11232:203;-1:-1:-1;11232:203:76:o;11320:88::-;-1:-1:-1;11424:4:76;;11232:203;-1:-1:-1;11232:203:76:o;5736:337::-;5929:9;5924:143;5944:25;;;5924:143;;;5990:66;6007:14;;6022:1;6007:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;6026:11;;6038:1;6026:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;6042:10;;6053:1;6042:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;5990:66::-;5971:3;;5924:143;;;;5736:337;;;;;;:::o;7502:231::-;2334:13:136;:11;:13::i;:::-;7602:20:76::1;:65:::0;;-1:-1:-1;;;;;;7602:65:76::1;-1:-1:-1::0;;;;;7602:65:76;::::1;::::0;;::::1;::::0;;;7682:44:::1;::::0;::::1;::::0;-1:-1:-1;;7682:44:76::1;7502:231:::0;:::o;3155:101:136:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;10385:168:76:-;10489:21;;:57;;-1:-1:-1;;;10489:57:76;;-1:-1:-1;;;;;1835:32:165;;;10489:57:76;;;1817:51:165;10464:6:76;;10489:21;;:43;;1790:18:165;;10489:57:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4295:194:88:-;2334:13:136;:11;:13::i;:::-;-1:-1:-1;;;;;4364:20:88;::::1;4356:64;;;;-1:-1:-1::0;;;4356:64:88::1;;;;;;;:::i;:::-;4430:19;:7;4442:6:::0;4430:11:::1;:19::i;:::-;4464:18;::::0;-1:-1:-1;;;;;4464:18:88;::::1;::::0;::::1;::::0;;;::::1;4295:194:::0;:::o;6148:289:76:-;4201:19:88;4209:10;4201:7;:19::i;:::-;4193:78;;;;-1:-1:-1;;;4193:78:88;;;;;;;:::i;:::-;6253:21:76::1;6277:22;6286:12;6277:8;:22::i;:::-;6309:21;::::0;:67:::1;::::0;-1:-1:-1;;;6309:67:76;;-1:-1:-1;;;;;8281:15:165;;;6309:67:76::1;::::0;::::1;8263:34:165::0;8333:15;;;8313:18;;;8306:43;6253:46:76;;-1:-1:-1;6309:21:76;::::1;::::0;:42:::1;::::0;8198:18:165;;6309:67:76::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6391:39:76::1;::::0;-1:-1:-1;;;;;6391:39:76;;::::1;::::0;-1:-1:-1;6391:39:76;::::1;::::0;-1:-1:-1;6391:39:76::1;::::0;;;::::1;6243:194;6148:289:::0;;:::o;4495:202:88:-;2334:13:136;:11;:13::i;:::-;-1:-1:-1;;;;;4567:20:88;::::1;4559:64;;;;-1:-1:-1::0;;;4559:64:88::1;;;;;;;:::i;:::-;4633:22;:7;4648:6:::0;4633:14:::1;:22::i;:::-;4670:20;::::0;-1:-1:-1;;;;;4670:20:88;::::1;::::0;::::1;::::0;;;::::1;4495:202:::0;:::o;6819:265:76:-;4201:19:88;4209:10;4201:7;:19::i;:::-;4193:78;;;;-1:-1:-1;;;4193:78:88;;;;;;;:::i;:::-;6903:21:76::1;6927:22;6936:12;6927:8;:22::i;:::-;6959:21;::::0;:61:::1;::::0;-1:-1:-1;;;6959:61:76;;-1:-1:-1;;;;;1835:32:165;;;6959:61:76::1;::::0;::::1;1817:51:165::0;6903:46:76;;-1:-1:-1;6959:21:76;::::1;::::0;:47:::1;::::0;1790:18:165;;6959:61:76::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7035:42:76::1;::::0;-1:-1:-1;;;;;7035:42:76;;::::1;::::0;-1:-1:-1;7035:42:76;::::1;::::0;-1:-1:-1;7035:42:76::1;::::0;;;::::1;6893:191;6819:265:::0;:::o;8189:2120::-;8263:4;;8291:22;8300:12;8291:8;:22::i;:::-;-1:-1:-1;;;;;8283:45:76;;8279:66;;-1:-1:-1;8338:5:76;;8189:2120;-1:-1:-1;8189:2120:76:o;8279:66::-;8393:20;;:37;;;-1:-1:-1;;;8393:37:76;;;;8354:36;;-1:-1:-1;;;;;8393:20:76;;:35;;:37;;;;;8354:36;;8393:37;;;;;;;:20;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8393:37:76;;;;;;;;;;;;:::i;:::-;8354:76;;8444:19;:26;8474:1;8444:31;8440:73;;-1:-1:-1;8498:4:76;;8189:2120;-1:-1:-1;;8189:2120:76:o;8440:73::-;8523:23;8556:14;8580;8604:16;8630:17;8657:18;8685:1597;8719:19;:26;8706:10;:39;8685:1597;;;8826:21;;8879:31;;8775:36;;-1:-1:-1;;;;;8826:21:76;;:52;;8879:19;;8899:10;;8879:31;;;;;;:::i;:::-;;;;;;;8826:85;;;;;;;;;;;;;9992:25:165;;9980:2;9965:18;;9846:177;8826:85:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8826:85:76;;;;;;;;;;;;:::i;:::-;8775:136;;8930:14;:21;8955:1;8930:26;8926:47;;-1:-1:-1;8966:5:76;;8189:2120;-1:-1:-1;;;;;;;;;8189:2120:76:o;8926:47::-;8987:25;9029:14;:21;9015:36;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9015:36:76;;8987:64;;9070:9;9065:172;9089:14;:21;9085:1;:25;9065:172;;;9170:14;9185:1;9170:17;;;;;;;;:::i;:::-;;;;;;;9189:19;9209:10;9189:31;;;;;;;;:::i;:::-;;;;;;;9159:62;;;;;;;;-1:-1:-1;;;;;11225:32:165;;;;11207:51;;11289:2;11274:18;;11267:34;11195:2;11180:18;;11011:296;9159:62:76;;;;;;;;;;;;;9149:73;;;;;;9135:8;9144:1;9135:11;;;;;;;;:::i;:::-;;;;;;;;;;:87;9112:3;;9065:172;;;;9256:9;9251:1021;9275:8;:15;9271:1;:19;9251:1021;;;9364:22;9373:12;9364:8;:22::i;:::-;-1:-1:-1;;;;;9364:31:76;;9396:8;9405:1;9396:11;;;;;;;;:::i;:::-;;;;;;;9364:44;;;;;;;;;;;;;9992:25:165;;9980:2;9965:18;;9846:177;9364:44:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9364:44:76;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9450:31:76;;9315:93;;-1:-1:-1;9315:93:76;;-1:-1:-1;9315:93:76;;-1:-1:-1;9315:93:76;-1:-1:-1;9315:93:76;-1:-1:-1;9450:19:76;;9470:10;;9450:31;;;;;;:::i;:::-;;;;;;;9431:15;:50;9427:831;;9522:6;-1:-1:-1;;;;;9509:33:76;;9543:22;9552:12;9543:8;:22::i;:::-;9567:19;9587:10;9567:31;;;;;;;;:::i;:::-;;;;;;;9600:3;9629:4;9509:125;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;9509:125:76;;;;;;;;-1:-1:-1;;9509:125:76;;;;;;;;;;;;:::i;:::-;;;9505:644;;10054:1;10036:8;:15;:19;;;;:::i;:::-;10030:1;:26;10026:101;;-1:-1:-1;10095:5:76;;8189:2120;-1:-1:-1;;;;;;;;;;;8189:2120:76:o;10026:101::-;9427:831;;9505:644;9719:9;9686:145;;;9789:8;:15;9785:19;;9686:145;9861:9;9860:10;:40;;;;;9898:1;9880:8;:15;:19;;;;:::i;:::-;9874:1;:26;9860:40;9856:115;;;-1:-1:-1;9939:5:76;;8189:2120;-1:-1:-1;;;;;;;;;;;;8189:2120:76:o;9856:115::-;9635:358;9427:831;;;10201:1;10183:8;:15;:19;;;;:::i;:::-;10177:1;:26;10173:85;;-1:-1:-1;10234:5:76;;8189:2120;-1:-1:-1;;;;;;;;;;;8189:2120:76:o;10173:85::-;9292:3;;;;:::i;:::-;;;;9251:1021;;;-1:-1:-1;;;8747:12:76;;8685:1597;;;-1:-1:-1;10298:4:76;;8189:2120;-1:-1:-1;;;;;;;;8189:2120:76:o;7819:250::-;2334:13:136;:11;:13::i;:::-;7925:21:76::1;:72:::0;;-1:-1:-1;;;;;;7925:72:76::1;-1:-1:-1::0;;;;;7925:72:76;::::1;::::0;;::::1;::::0;;;8012:50:::1;::::0;::::1;::::0;-1:-1:-1;;8012:50:76::1;7819:250:::0;:::o;11875:155::-;11973:21;;:50;;-1:-1:-1;;;11973:50:76;;-1:-1:-1;;;;;1835:32:165;;;11973:50:76;;;1817:51:165;11945:9:76;;11973:21;;:36;;1790:18:165;;11973:50:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3405:215:136:-;2334:13;:11;:13::i;:::-;-1:-1:-1;;;;;3489:22:136;::::1;3485:91;;3534:31;::::0;-1:-1:-1;;;3534:31:136;;3562:1:::1;3534:31;::::0;::::1;1817:51:165::0;1790:18;;3534:31:136::1;1641:233:165::0;3485:91:136::1;3585:28;3604:8;3585:18;:28::i;:::-;3405:215:::0;:::o;1847:127::-;6931:20:137;:18;:20::i;:::-;1929:38:136::1;1954:12;1929:24;:38::i;4596:200:89:-:0;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;15535:2:165;4684:68:89;;;15517:21:165;15574:2;15554:18;;;15547:30;15613:34;15593:18;;;15586:62;-1:-1:-1;;;15664:18:165;;;15657:32;15706:19;;4684:68:89;15333:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;2658:162:136:-;966:10:138;2717:7:136;1313:22;2570:8;-1:-1:-1;;;;;2570:8:136;;2441:144;2717:7;-1:-1:-1;;;;;2717:23:136;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:136;;966:10:138;2763:40:136;;;1817:51:165;1790:18;;2763:40:136;1641:233:165;3774:248:136;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:136;;-1:-1:-1;;;;;3941:19:136;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;4077:175:89:-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;15938:2:165;4145:63:89;;;15920:21:165;15977:2;15957:18;;;15950:30;16016:33;15996:18;;;15989:61;16067:18;;4145:63:89;15736:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;4327:180::-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;16298:2:165;4398:64:89;;;16280:21:165;16337:2;16317:18;;;16310:30;16376:34;16356:18;;;16349:62;-1:-1:-1;;;16427:18:165;;;16420:31;16468:19;;4398:64:89;16096:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;7084:141:137:-;8870:21;8560:40;-1:-1:-1;;;8560:40:137;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:137;;;;;;;;;;;1980:235:136;6931:20:137;:18;:20::i;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;150:529;227:6;235;243;296:2;284:9;275:7;271:23;267:32;264:52;;;312:1;309;302:12;264:52;351:9;338:23;370:31;395:5;370:31;:::i;:::-;420:5;-1:-1:-1;477:2:165;462:18;;449:32;490:33;449:32;490:33;:::i;:::-;542:7;-1:-1:-1;601:2:165;586:18;;573:32;614:33;573:32;614:33;:::i;:::-;666:7;656:17;;;150:529;;;;;:::o;684:247::-;743:6;796:2;784:9;775:7;771:23;767:32;764:52;;;812:1;809;802:12;764:52;851:9;838:23;870:31;895:5;870:31;:::i;:::-;920:5;684:247;-1:-1:-1;;;684:247:165:o;1128:117::-;1213:6;1206:5;1202:18;1195:5;1192:29;1182:57;;1235:1;1232;1225:12;1250:386;1317:6;1325;1378:2;1366:9;1357:7;1353:23;1349:32;1346:52;;;1394:1;1391;1384:12;1346:52;1433:9;1420:23;1452:31;1477:5;1452:31;:::i;:::-;1502:5;-1:-1:-1;1559:2:165;1544:18;;1531:32;1572;1531;1572;:::i;:::-;1623:7;1613:17;;;1250:386;;;;;:::o;1879:546::-;1974:6;1982;1990;2043:2;2031:9;2022:7;2018:23;2014:32;2011:52;;;2059:1;2056;2049:12;2011:52;2098:9;2085:23;2117:31;2142:5;2117:31;:::i;:::-;2167:5;-1:-1:-1;2224:2:165;2209:18;;2196:32;2237:33;2196:32;2237:33;:::i;:::-;2289:7;-1:-1:-1;2348:2:165;2333:18;;2320:32;2361;2320;2361;:::i;2430:367::-;2493:8;2503:6;2557:3;2550:4;2542:6;2538:17;2534:27;2524:55;;2575:1;2572;2565:12;2524:55;-1:-1:-1;2598:20:165;;2641:18;2630:30;;2627:50;;;2673:1;2670;2663:12;2627:50;2710:4;2702:6;2698:17;2686:29;;2770:3;2763:4;2753:6;2750:1;2746:14;2738:6;2734:27;2730:38;2727:47;2724:67;;;2787:1;2784;2777:12;2724:67;2430:367;;;;;:::o;2802:1106::-;2978:6;2986;2994;3002;3010;3018;3071:2;3059:9;3050:7;3046:23;3042:32;3039:52;;;3087:1;3084;3077:12;3039:52;3127:9;3114:23;3156:18;3197:2;3189:6;3186:14;3183:34;;;3213:1;3210;3203:12;3183:34;3252:70;3314:7;3305:6;3294:9;3290:22;3252:70;:::i;:::-;3341:8;;-1:-1:-1;3226:96:165;-1:-1:-1;3429:2:165;3414:18;;3401:32;;-1:-1:-1;3445:16:165;;;3442:36;;;3474:1;3471;3464:12;3442:36;3513:72;3577:7;3566:8;3555:9;3551:24;3513:72;:::i;:::-;3604:8;;-1:-1:-1;3487:98:165;-1:-1:-1;3692:2:165;3677:18;;3664:32;;-1:-1:-1;3708:16:165;;;3705:36;;;3737:1;3734;3727:12;3705:36;;3776:72;3840:7;3829:8;3818:9;3814:24;3776:72;:::i;:::-;2802:1106;;;;-1:-1:-1;2802:1106:165;;-1:-1:-1;2802:1106:165;;3867:8;;2802:1106;-1:-1:-1;;;2802:1106:165:o;4314:407::-;4401:6;4409;4462:2;4450:9;4441:7;4437:23;4433:32;4430:52;;;4478:1;4475;4468:12;4430:52;4517:9;4504:23;4536:31;4561:5;4536:31;:::i;:::-;4586:5;-1:-1:-1;4643:2:165;4628:18;;4615:32;4656:33;4615:32;4656:33;:::i;5436:355::-;5638:2;5620:21;;;5677:2;5657:18;;;5650:30;5716:33;5711:2;5696:18;;5689:61;5782:2;5767:18;;5436:355::o;6010:410::-;6212:2;6194:21;;;6251:2;6231:18;;;6224:30;6290:34;6285:2;6270:18;;6263:62;-1:-1:-1;;;6356:2:165;6341:18;;6334:44;6410:3;6395:19;;6010:410::o;7125:127::-;7186:10;7181:3;7177:20;7174:1;7167:31;7217:4;7214:1;7207:15;7241:4;7238:1;7231:15;7528:245;7586:6;7639:2;7627:9;7618:7;7614:23;7610:32;7607:52;;;7655:1;7652;7645:12;7607:52;7694:9;7681:23;7713:30;7737:5;7713:30;:::i;7778:249::-;7847:6;7900:2;7888:9;7879:7;7875:23;7871:32;7868:52;;;7916:1;7913;7906:12;7868:52;7948:9;7942:16;7967:30;7991:5;7967:30;:::i;8360:127::-;8421:10;8416:3;8412:20;8409:1;8402:31;8452:4;8449:1;8442:15;8476:4;8473:1;8466:15;8492:275;8563:2;8557:9;8628:2;8609:13;;-1:-1:-1;;8605:27:165;8593:40;;8663:18;8648:34;;8684:22;;;8645:62;8642:88;;;8710:18;;:::i;:::-;8746:2;8739:22;8492:275;;-1:-1:-1;8492:275:165:o;8772:183::-;8832:4;8865:18;8857:6;8854:30;8851:56;;;8887:18;;:::i;:::-;-1:-1:-1;8932:1:165;8928:14;8944:4;8924:25;;8772:183::o;8960:881::-;9055:6;9086:2;9129;9117:9;9108:7;9104:23;9100:32;9097:52;;;9145:1;9142;9135:12;9097:52;9178:9;9172:16;9211:18;9203:6;9200:30;9197:50;;;9243:1;9240;9233:12;9197:50;9266:22;;9319:4;9311:13;;9307:27;-1:-1:-1;9297:55:165;;9348:1;9345;9338:12;9297:55;9377:2;9371:9;9400:60;9416:43;9456:2;9416:43;:::i;:::-;9400:60;:::i;:::-;9494:15;;;9576:1;9572:10;;;;9564:19;;9560:28;;;9525:12;;;;9600:19;;;9597:39;;;9632:1;9629;9622:12;9597:39;9656:11;;;;9676:135;9692:6;9687:3;9684:15;9676:135;;;9758:10;;9746:23;;9709:12;;;;9789;;;;9676:135;;;9830:5;8960:881;-1:-1:-1;;;;;;;8960:881:165:o;10028:978::-;10145:6;10176:2;10219;10207:9;10198:7;10194:23;10190:32;10187:52;;;10235:1;10232;10225:12;10187:52;10268:9;10262:16;10301:18;10293:6;10290:30;10287:50;;;10333:1;10330;10323:12;10287:50;10356:22;;10409:4;10401:13;;10397:27;-1:-1:-1;10387:55:165;;10438:1;10435;10428:12;10387:55;10467:2;10461:9;10490:60;10506:43;10546:2;10506:43;:::i;10490:60::-;10584:15;;;10666:1;10662:10;;;;10654:19;;10650:28;;;10615:12;;;;10690:19;;;10687:39;;;10722:1;10719;10712:12;10687:39;10746:11;;;;10766:210;10782:6;10777:3;10774:15;10766:210;;;10855:3;10849:10;10872:31;10897:5;10872:31;:::i;:::-;10916:18;;10799:12;;;;10954;;;;10766:210;;11494:250;11579:1;11589:113;11603:6;11600:1;11597:13;11589:113;;;11679:11;;;11673:18;11660:11;;;11653:39;11625:2;11618:10;11589:113;;;-1:-1:-1;;11736:1:165;11718:16;;11711:27;11494:250::o;11749:390::-;11824:5;11858:18;11850:6;11847:30;11844:56;;;11880:18;;:::i;:::-;11918:57;11963:2;11942:15;;-1:-1:-1;;11938:29:165;11969:4;11934:40;11918:57;:::i;:::-;11909:66;;11998:6;11991:5;11984:21;12038:3;12029:6;12024:3;12020:16;12017:25;12014:45;;;12055:1;12052;12045:12;12014:45;12068:65;12126:6;12119:4;12112:5;12108:16;12103:3;12068:65;:::i;12144:235::-;12197:5;12250:3;12243:4;12235:6;12231:17;12227:27;12217:55;;12268:1;12265;12258:12;12217:55;12290:83;12369:3;12360:6;12354:13;12347:4;12339:6;12335:17;12290:83;:::i;12384:1136::-;12527:6;12535;12543;12551;12559;12567;12620:3;12608:9;12599:7;12595:23;12591:33;12588:53;;;12637:1;12634;12627:12;12588:53;12666:9;12660:16;12650:26;;12716:2;12705:9;12701:18;12695:25;12685:35;;12763:2;12752:9;12748:18;12742:25;12776:31;12801:5;12776:31;:::i;:::-;12875:2;12860:18;;12854:25;12826:5;;-1:-1:-1;12898:18:165;12928:14;;;12925:34;;;12955:1;12952;12945:12;12925:34;12978:60;13030:7;13021:6;13010:9;13006:22;12978:60;:::i;:::-;12968:70;;13084:3;13073:9;13069:19;13063:26;13047:42;;13114:2;13104:8;13101:16;13098:36;;;13130:1;13127;13120:12;13098:36;13153:62;13207:7;13196:8;13185:9;13181:24;13153:62;:::i;:::-;13143:72;;13261:3;13250:9;13246:19;13240:26;13224:42;;13291:2;13281:8;13278:16;13275:36;;;13307:1;13304;13297:12;13275:36;-1:-1:-1;13330:24:165;;13385:4;13377:13;;13373:27;-1:-1:-1;13363:55:165;;13414:1;13411;13404:12;13363:55;13437:77;13506:7;13501:2;13495:9;13490:2;13486;13482:11;13437:77;:::i;:::-;13427:87;;;12384:1136;;;;;;;;:::o;13525:270::-;13566:3;13604:5;13598:12;13631:6;13626:3;13619:19;13647:76;13716:6;13709:4;13704:3;13700:14;13693:4;13686:5;13682:16;13647:76;:::i;:::-;13777:2;13756:15;-1:-1:-1;;13752:29:165;13743:39;;;;13784:4;13739:50;;13525:270;-1:-1:-1;;13525:270:165:o;13800:566::-;14097:1;14093;14088:3;14084:11;14080:19;14072:6;14068:32;14057:9;14050:51;14137:6;14132:2;14121:9;14117:18;14110:34;14180:3;14175:2;14164:9;14160:18;14153:31;14031:4;14207:45;14247:3;14236:9;14232:19;14224:6;14207:45;:::i;:::-;14300:9;14292:6;14288:22;14283:2;14272:9;14268:18;14261:50;14328:32;14353:6;14345;14328:32;:::i;14371:277::-;14438:6;14491:2;14479:9;14470:7;14466:23;14462:32;14459:52;;;14507:1;14504;14497:12;14459:52;14539:9;14533:16;14592:5;14585:13;14578:21;14571:5;14568:32;14558:60;;14614:1;14611;14604:12;14653:127;14714:10;14709:3;14705:20;14702:1;14695:31;14745:4;14742:1;14735:15;14769:4;14766:1;14759:15;14785:128;14852:9;;;14873:11;;;14870:37;;;14887:18;;:::i;14918:135::-;14957:3;14978:17;;;14975:43;;14998:18;;:::i;:::-;-1:-1:-1;15045:1:165;15034:13;;14918:135::o;15058:270::-;15147:6;15200:2;15188:9;15179:7;15175:23;15171:32;15168:52;;;15216:1;15213;15206:12;15168:52;15248:9;15242:16;15267:31;15292:5;15267:31;:::i","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","batchRegisterIdentity(address[],address[],uint16[])":"653dc9f1","contains(address)":"5dbe47e8","deleteIdentity(address)":"a8d29d1d","identity(address)":"f0eb5e54","identityStorage()":"f11abfd8","init(address,address,address)":"184b9559","investorCountry(address)":"7e42683b","isAgent(address)":"1ffbb064","isVerified(address)":"b9209e33","issuersRegistry()":"b4f3fcb7","owner()":"8da5cb5b","registerIdentity(address,address,uint16)":"454a03e0","removeAgent(address)":"97a6278e","renounceOwnership()":"715018a6","setClaimTopicsRegistry(address)":"670af6a9","setIdentityRegistryStorage(address)":"26d941ae","setTrustedIssuersRegistry(address)":"e744d789","topicsRegistry()":"3b3e12f4","transferOwnership(address)":"f2fde38b","updateCountry(address,uint16)":"3b239a7f","updateIdentity(address,address)":"8e098ca1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimTopicsRegistry\",\"type\":\"address\"}],\"name\":\"ClaimTopicsRegistrySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"country\",\"type\":\"uint16\"}],\"name\":\"CountryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IIdentity\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"IdentityRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IIdentity\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"IdentityRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"identityStorage\",\"type\":\"address\"}],\"name\":\"IdentityStorageSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IIdentity\",\"name\":\"oldIdentity\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IIdentity\",\"name\":\"newIdentity\",\"type\":\"address\"}],\"name\":\"IdentityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"trustedIssuersRegistry\",\"type\":\"address\"}],\"name\":\"TrustedIssuersRegistrySet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"contract IIdentity[]\",\"name\":\"_identities\",\"type\":\"address[]\"},{\"internalType\":\"uint16[]\",\"name\":\"_countries\",\"type\":\"uint16[]\"}],\"name\":\"batchRegisterIdentity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"contains\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"deleteIdentity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"identity\",\"outputs\":[{\"internalType\":\"contract IIdentity\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identityStorage\",\"outputs\":[{\"internalType\":\"contract IIdentityRegistryStorage\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_trustedIssuersRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_claimTopicsRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_identityStorage\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"investorCountry\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"isVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"issuersRegistry\",\"outputs\":[{\"internalType\":\"contract ITrustedIssuersRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_identity\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"registerIdentity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_claimTopicsRegistry\",\"type\":\"address\"}],\"name\":\"setClaimTopicsRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identityRegistryStorage\",\"type\":\"address\"}],\"name\":\"setIdentityRegistryStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_trustedIssuersRegistry\",\"type\":\"address\"}],\"name\":\"setTrustedIssuersRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"topicsRegistry\",\"outputs\":[{\"internalType\":\"contract IClaimTopicsRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"updateCountry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_identity\",\"type\":\"address\"}],\"name\":\"updateIdentity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"batchRegisterIdentity(address[],address[],uint16[])\":{\"details\":\"See {IIdentityRegistry-batchRegisterIdentity}.\"},\"contains(address)\":{\"details\":\"See {IIdentityRegistry-contains}.\"},\"deleteIdentity(address)\":{\"details\":\"See {IIdentityRegistry-deleteIdentity}.\"},\"identity(address)\":{\"details\":\"See {IIdentityRegistry-identity}.\"},\"identityStorage()\":{\"details\":\"See {IIdentityRegistry-identityStorage}.\"},\"init(address,address,address)\":{\"details\":\"the constructor initiates the Identity Registry smart contract\",\"params\":{\"_claimTopicsRegistry\":\"the claim topics registry linked to the Identity Registry\",\"_identityStorage\":\"the identity registry storage linked to the Identity Registry emits a `ClaimTopicsRegistrySet` event emits a `TrustedIssuersRegistrySet` event emits an `IdentityStorageSet` event\",\"_trustedIssuersRegistry\":\"the trusted issuers registry linked to the Identity Registry\"}},\"investorCountry(address)\":{\"details\":\"See {IIdentityRegistry-investorCountry}.\"},\"isVerified(address)\":{\"details\":\"See {IIdentityRegistry-isVerified}.\"},\"issuersRegistry()\":{\"details\":\"See {IIdentityRegistry-issuersRegistry}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerIdentity(address,address,uint16)\":{\"details\":\"See {IIdentityRegistry-registerIdentity}.\"},\"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.\"},\"setClaimTopicsRegistry(address)\":{\"details\":\"See {IIdentityRegistry-setClaimTopicsRegistry}.\"},\"setIdentityRegistryStorage(address)\":{\"details\":\"See {IIdentityRegistry-setIdentityRegistryStorage}.\"},\"setTrustedIssuersRegistry(address)\":{\"details\":\"See {IIdentityRegistry-setTrustedIssuersRegistry}.\"},\"topicsRegistry()\":{\"details\":\"See {IIdentityRegistry-topicsRegistry}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"updateCountry(address,uint16)\":{\"details\":\"See {IIdentityRegistry-updateCountry}.\"},\"updateIdentity(address,address)\":{\"details\":\"See {IIdentityRegistry-updateIdentity}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ClaimTopicsRegistrySet(address)\":{\"notice\":\"this event is emitted when the ClaimTopicsRegistry has been set for the IdentityRegistry the event is emitted by the IdentityRegistry constructor `claimTopicsRegistry` is the address of the Claim Topics Registry contract\"},\"CountryUpdated(address,uint16)\":{\"notice\":\"this event is emitted when an Identity's country has been updated the event is emitted by the 'updateCountry' function `investorAddress` is the address on which the country has been updated `country` is the numeric code (ISO 3166-1) of the new country\"},\"IdentityRegistered(address,address)\":{\"notice\":\"this event is emitted when an Identity is registered into the Identity Registry. the event is emitted by the 'registerIdentity' function `investorAddress` is the address of the investor's wallet `identity` is the address of the Identity smart contract (onchainID)\"},\"IdentityRemoved(address,address)\":{\"notice\":\"this event is emitted when an Identity is removed from the Identity Registry. the event is emitted by the 'deleteIdentity' function `investorAddress` is the address of the investor's wallet `identity` is the address of the Identity smart contract (onchainID)\"},\"IdentityStorageSet(address)\":{\"notice\":\"this event is emitted when the IdentityRegistryStorage has been set for the IdentityRegistry the event is emitted by the IdentityRegistry constructor `identityStorage` is the address of the Identity Registry Storage contract\"},\"IdentityUpdated(address,address)\":{\"notice\":\"this event is emitted when an Identity has been updated the event is emitted by the 'updateIdentity' function `oldIdentity` is the old Identity contract's address to update `newIdentity` is the new Identity contract's\"},\"TrustedIssuersRegistrySet(address)\":{\"notice\":\"this event is emitted when the TrustedIssuersRegistry has been set for the IdentityRegistry the event is emitted by the IdentityRegistry constructor `trustedIssuersRegistry` is the address of the Trusted Issuers Registry contract\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/registry/implementation/IdentityRegistry.sol\":\"IdentityRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/registry/implementation/IdentityRegistry.sol\":{\"keccak256\":\"0xb9ba2153b14d2be3ac720cce25dd6ccedf18810cbca5b2456c84bc80ccbe981f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://07a27489d7adb6841e6b7fe9be38f1da5f392d941905c63a29c6996e610bf726\",\"dweb:/ipfs/QmZ6r8GxSpndyhxAQGAdqEBU7AuDaSDSgLTUppz3RaPjBT\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/registry/storage/IRStorage.sol\":{\"keccak256\":\"0xf5fdd55dd4dde9cb648ee89daef1053913f96666778c91c5bb04a35d0b9cb879\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://27e84cf2f5a551e08d10494e2850f101089a57c6b1645a585fcd53d5d93cb3d2\",\"dweb:/ipfs/QmPDWVnjYWMMPmuRZywjv3eB2Rcka98YtVR5eVGnXepxr9\"]},\"contracts/erc3643/roles/AgentRoleUpgradeable.sol\":{\"keccak256\":\"0x621b1a88ff1637e2d14b1dd27cbd8cc5d1feba549be25cad7c57fb22a4d6a2b1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e81b966250d80f55c179eff2d28fc9a5322ba8d09230b8a4744e77f97ad53c8a\",\"dweb:/ipfs/QmTAB51L4yRgQdh3becJKXMHaAMR9vnpjjdpFs4LQ5kWKT\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"claimTopicsRegistry","type":"address","indexed":true}],"type":"event","name":"ClaimTopicsRegistrySet","anonymous":false},{"inputs":[{"internalType":"address","name":"investorAddress","type":"address","indexed":true},{"internalType":"uint16","name":"country","type":"uint16","indexed":true}],"type":"event","name":"CountryUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"investorAddress","type":"address","indexed":true},{"internalType":"contract IIdentity","name":"identity","type":"address","indexed":true}],"type":"event","name":"IdentityRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"investorAddress","type":"address","indexed":true},{"internalType":"contract IIdentity","name":"identity","type":"address","indexed":true}],"type":"event","name":"IdentityRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"identityStorage","type":"address","indexed":true}],"type":"event","name":"IdentityStorageSet","anonymous":false},{"inputs":[{"internalType":"contract IIdentity","name":"oldIdentity","type":"address","indexed":true},{"internalType":"contract IIdentity","name":"newIdentity","type":"address","indexed":true}],"type":"event","name":"IdentityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"trustedIssuersRegistry","type":"address","indexed":true}],"type":"event","name":"TrustedIssuersRegistrySet","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"contract IIdentity[]","name":"_identities","type":"address[]"},{"internalType":"uint16[]","name":"_countries","type":"uint16[]"}],"stateMutability":"nonpayable","type":"function","name":"batchRegisterIdentity"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"contains","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deleteIdentity"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"identity","outputs":[{"internalType":"contract IIdentity","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"identityStorage","outputs":[{"internalType":"contract IIdentityRegistryStorage","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_trustedIssuersRegistry","type":"address"},{"internalType":"address","name":"_claimTopicsRegistry","type":"address"},{"internalType":"address","name":"_identityStorage","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"init"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"investorCountry","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"issuersRegistry","outputs":[{"internalType":"contract ITrustedIssuersRegistry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"contract IIdentity","name":"_identity","type":"address"},{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"registerIdentity"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_claimTopicsRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setClaimTopicsRegistry"},{"inputs":[{"internalType":"address","name":"_identityRegistryStorage","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setIdentityRegistryStorage"},{"inputs":[{"internalType":"address","name":"_trustedIssuersRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTrustedIssuersRegistry"},{"inputs":[],"stateMutability":"view","type":"function","name":"topicsRegistry","outputs":[{"internalType":"contract IClaimTopicsRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"updateCountry"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"contract IIdentity","name":"_identity","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateIdentity"}],"devdoc":{"kind":"dev","methods":{"batchRegisterIdentity(address[],address[],uint16[])":{"details":"See {IIdentityRegistry-batchRegisterIdentity}."},"contains(address)":{"details":"See {IIdentityRegistry-contains}."},"deleteIdentity(address)":{"details":"See {IIdentityRegistry-deleteIdentity}."},"identity(address)":{"details":"See {IIdentityRegistry-identity}."},"identityStorage()":{"details":"See {IIdentityRegistry-identityStorage}."},"init(address,address,address)":{"details":"the constructor initiates the Identity Registry smart contract","params":{"_claimTopicsRegistry":"the claim topics registry linked to the Identity Registry","_identityStorage":"the identity registry storage linked to the Identity Registry emits a `ClaimTopicsRegistrySet` event emits a `TrustedIssuersRegistrySet` event emits an `IdentityStorageSet` event","_trustedIssuersRegistry":"the trusted issuers registry linked to the Identity Registry"}},"investorCountry(address)":{"details":"See {IIdentityRegistry-investorCountry}."},"isVerified(address)":{"details":"See {IIdentityRegistry-isVerified}."},"issuersRegistry()":{"details":"See {IIdentityRegistry-issuersRegistry}."},"owner()":{"details":"Returns the address of the current owner."},"registerIdentity(address,address,uint16)":{"details":"See {IIdentityRegistry-registerIdentity}."},"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."},"setClaimTopicsRegistry(address)":{"details":"See {IIdentityRegistry-setClaimTopicsRegistry}."},"setIdentityRegistryStorage(address)":{"details":"See {IIdentityRegistry-setIdentityRegistryStorage}."},"setTrustedIssuersRegistry(address)":{"details":"See {IIdentityRegistry-setTrustedIssuersRegistry}."},"topicsRegistry()":{"details":"See {IIdentityRegistry-topicsRegistry}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"updateCountry(address,uint16)":{"details":"See {IIdentityRegistry-updateCountry}."},"updateIdentity(address,address)":{"details":"See {IIdentityRegistry-updateIdentity}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/registry/implementation/IdentityRegistry.sol":"IdentityRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/registry/implementation/IdentityRegistry.sol":{"keccak256":"0xb9ba2153b14d2be3ac720cce25dd6ccedf18810cbca5b2456c84bc80ccbe981f","urls":["bzz-raw://07a27489d7adb6841e6b7fe9be38f1da5f392d941905c63a29c6996e610bf726","dweb:/ipfs/QmZ6r8GxSpndyhxAQGAdqEBU7AuDaSDSgLTUppz3RaPjBT"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/registry/storage/IRStorage.sol":{"keccak256":"0xf5fdd55dd4dde9cb648ee89daef1053913f96666778c91c5bb04a35d0b9cb879","urls":["bzz-raw://27e84cf2f5a551e08d10494e2850f101089a57c6b1645a585fcd53d5d93cb3d2","dweb:/ipfs/QmPDWVnjYWMMPmuRZywjv3eB2Rcka98YtVR5eVGnXepxr9"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRoleUpgradeable.sol":{"keccak256":"0x621b1a88ff1637e2d14b1dd27cbd8cc5d1feba549be25cad7c57fb22a4d6a2b1","urls":["bzz-raw://e81b966250d80f55c179eff2d28fc9a5322ba8d09230b8a4744e77f97ad53c8a","dweb:/ipfs/QmTAB51L4yRgQdh3becJKXMHaAMR9vnpjjdpFs4LQ5kWKT"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"}},"version":1},"id":76} \ No newline at end of file diff --git a/out/IdentityRegistryProxy.sol/IdentityRegistryProxy.json b/out/IdentityRegistryProxy.sol/IdentityRegistryProxy.json new file mode 100644 index 0000000..4339790 --- /dev/null +++ b/out/IdentityRegistryProxy.sol/IdentityRegistryProxy.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"implementationAuthority","type":"address","internalType":"address"},{"name":"_trustedIssuersRegistry","type":"address","internalType":"address"},{"name":"_claimTopicsRegistry","type":"address","internalType":"address"},{"name":"_identityStorage","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"getImplementationAuthority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setImplementationAuthority","inputs":[{"name":"_newImplementationAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ImplementationAuthoritySet","inputs":[{"name":"_implementationAuthority","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516109bf3803806109bf83398101604081905261002f916102a7565b6001600160a01b0384161580159061004f57506001600160a01b03831615155b801561006357506001600160a01b03821615155b801561007757506001600160a01b03811615155b6100c85760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6100de8460008051602061099f83398151915255565b6040516001600160a01b038516907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a2600061012a60008051602061099f8339815191525490565b6001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610167573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061018b91906102fb565b6040516001600160a01b0386811660248301528581166044830152848116606483015291925060009183169060840160408051601f198184030181529181526020820180516001600160e01b031663184b955960e01b179052516101ef919061031d565b600060405180830381855af49150503d806000811461022a576040519150601f19603f3d011682016040523d82523d6000602084013e61022f565b606091505b50509050806102805760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e0000000000000000000060448201526064016100bf565b50505050505061034c565b80516001600160a01b03811681146102a257600080fd5b919050565b600080600080608085870312156102bd57600080fd5b6102c68561028b565b93506102d46020860161028b565b92506102e26040860161028b565b91506102f06060860161028b565b905092959194509250565b60006020828403121561030d57600080fd5b6103168261028b565b9392505050565b6000825160005b8181101561033e5760208186018101518583015201610324565b506000920191825250919050565b6106448061035b6000396000f3fe6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca2646970667358221220972a136aaf8f06814fc9dbadcf5086a5c36c6b5e9f884bc093dce2a66933965364736f6c63430008180033821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc","sourceMap":"3873:1775:65:-:0;;;3928:1040;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4127:37:65;;;;;;:86;;-1:-1:-1;;;;;;4176:37:65;;;;4127:86;:132;;;;-1:-1:-1;;;;;;4225:34:65;;;;4127:132;:174;;;;-1:-1:-1;;;;;;4271:30:65;;;;4127:174;4110:236;;;;-1:-1:-1;;;4110:236:65;;867:2:165;4110:236:65;;;849:21:165;906:2;886:18;;;879:30;945:33;925:18;;;918:61;996:18;;4110:236:65;;;;;;;;;4356:54;4386:23;-1:-1:-1;;;;;;;;;;;6099:99:63;5929:285;4356:54:65;4425:51;;-1:-1:-1;;;;;4425:51:65;;;;;;;;4487:13;4533:28;-1:-1:-1;;;;;;;;;;;5598:73:63;;5391:323;4533:28:65;-1:-1:-1;;;;;4503:80:65;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4706:202;;-1:-1:-1;;;;;1496:15:165;;;4706:202:65;;;1478:34:165;1548:15;;;1528:18;;;1521:43;1600:15;;;1580:18;;;1573:43;4487:98:65;;-1:-1:-1;4656:12:65;;4674:18;;;1413::165;;4706:202:65;;;-1:-1:-1;;4706:202:65;;;;;;;;;;;;;;-1:-1:-1;;;;;4706:202:65;-1:-1:-1;;;4706:202:65;;;4674:235;;;4706:202;4674:235;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4655:254;;;4927:7;4919:42;;;;-1:-1:-1;;;4919:42:65;;2246:2:165;4919:42:65;;;2228:21:165;2285:2;2265:18;;;2258:30;2324:24;2304:18;;;2297:52;2366:18;;4919:42:65;2044:346:165;4919:42:65;4100:868;;3928:1040;;;;3873:1775;;14:177:165;93:13;;-1:-1:-1;;;;;135:31:165;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:464::-;293:6;301;309;317;370:3;358:9;349:7;345:23;341:33;338:53;;;387:1;384;377:12;338:53;410:40;440:9;410:40;:::i;:::-;400:50;;469:49;514:2;503:9;499:18;469:49;:::i;:::-;459:59;;537:49;582:2;571:9;567:18;537:49;:::i;:::-;527:59;;605:49;650:2;639:9;635:18;605:49;:::i;:::-;595:59;;196:464;;;;;;;:::o;1025:208::-;1095:6;1148:2;1136:9;1127:7;1123:23;1119:32;1116:52;;;1164:1;1161;1154:12;1116:52;1187:40;1217:9;1187:40;:::i;:::-;1177:50;1025:208;-1:-1:-1;;;1025:208:165:o;1627:412::-;1756:3;1794:6;1788:13;1819:1;1829:129;1843:6;1840:1;1837:13;1829:129;;;1941:4;1925:14;;;1921:25;;1915:32;1902:11;;;1895:53;1858:12;1829:129;;;-1:-1:-1;2013:1:165;1977:16;;2002:13;;;-1:-1:-1;1977:16:165;1627:412;-1:-1:-1;1627:412:165:o;2044:346::-;3873:1775:65;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca2646970667358221220972a136aaf8f06814fc9dbadcf5086a5c36c6b5e9f884bc093dce2a66933965364736f6c63430008180033","sourceMap":"3873:1775:65:-:0;;;;;;;;;;;;;;;;;;;;;;;5065:13;5111:28;-1:-1:-1;;;;;;;;;;;5598:73:63;;5391:323;5111:28:65;-1:-1:-1;;;;;5081:80:65;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5065:98;;5276:14;5271:3;5266;5253:38;5382:1;5379;5363:14;5358:3;5351:5;5343;5336;5332:17;5319:65;5410:16;5460:5;5457:1;5454;5439:27;5486:7;5506:55;;;;5610:5;5607:1;5600:16;5506:55;5541:5;5538:1;5531:16;5479:151;;5391:323:63;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;5598:73:63;5391:323;;-1:-1:-1;;;;;570:32:165;;;552:51;;540:2;525:18;5391:323:63;;;;;;;4141:1174;;;;;;;;;;-1:-1:-1;4141:1174:63;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;5598:73:63;-1:-1:-1;;;;;4250:42:63;:10;-1:-1:-1;;;;;4250:42:63;;4242:100;;;;-1:-1:-1;;;4242:100:63;;1068:2:165;4242:100:63;;;1050:21:165;1107:2;1087:18;;;1080:30;1146:34;1126:18;;;1119:62;-1:-1:-1;;;1197:18:165;;;1190:43;1250:19;;4242:100:63;;;;;;;;;-1:-1:-1;;;;;4360:41:63;;4352:85;;;;-1:-1:-1;;;4352:85:63;;1482:2:165;4352:85:63;;;1464:21:165;1521:2;1501:18;;;1494:30;1560:33;1540:18;;;1533:61;1611:18;;4352:85:63;1280:355:165;4352:85:63;4564:1;-1:-1:-1;;;;;4468:98:63;4498:27;-1:-1:-1;;;;;4468:82:63;;:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4468:98:63;;;:210;;;;;4676:1;-1:-1:-1;;;;;4582:96:63;4612:27;-1:-1:-1;;;;;4582:80:63;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4582:96:63;;;4468:210;:321;;;;;4787:1;-1:-1:-1;;;;;4694:95:63;4724:27;-1:-1:-1;;;;;4694:79:63;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4694:95:63;;;4468:321;:433;;;;;4899:1;-1:-1:-1;;;;;4805:96:63;4835:27;-1:-1:-1;;;;;4805:80:63;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4805:96:63;;;4468:433;:544;;;;;5010:1;-1:-1:-1;;;;;4917:95:63;4947:27;-1:-1:-1;;;;;4917:79:63;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4917:95:63;;;4468:544;:656;;;;;5122:1;-1:-1:-1;;;;;5028:96:63;5058:27;-1:-1:-1;;;;;5028:80:63;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5028:96:63;;;4468:656;4447:723;;;;-1:-1:-1;;;4447:723:63;;1842:2:165;4447:723:63;;;1824:21:165;;;1861:18;;;1854:30;1920:34;1900:18;;;1893:62;1972:18;;4447:723:63;1640:356:165;4447:723:63;5180:58;5210:27;-1:-1:-1;;;;;;;;;;;6099:99:63;5929:285;5180:58;5253:55;;-1:-1:-1;;;;;5253:55:63;;;;;;;;4141:1174;:::o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:251::-;220:6;273:2;261:9;252:7;248:23;244:32;241:52;;;289:1;286;279:12;241:52;321:9;315:16;340:31;365:5;340:31;:::i;:::-;390:5;150:251;-1:-1:-1;;;150:251:165:o;614:247::-;673:6;726:2;714:9;705:7;701:23;697:32;694:52;;;742:1;739;732:12;694:52;781:9;768:23;800:31;825:5;800:31;:::i","linkReferences":{}},"methodIdentifiers":{"getImplementationAuthority()":"2d5f1187","setImplementationAuthority(address)":"92dd9d65"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementationAuthority\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_trustedIssuersRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_claimTopicsRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_identityStorage\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_implementationAuthority\",\"type\":\"address\"}],\"name\":\"ImplementationAuthoritySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"getImplementationAuthority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newImplementationAuthority\",\"type\":\"address\"}],\"name\":\"setImplementationAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"getImplementationAuthority()\":{\"details\":\"See {IProxy-getImplementationAuthority}.\"},\"setImplementationAuthority(address)\":{\"details\":\"See {IProxy-setImplementationAuthority}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ImplementationAuthoritySet(address)\":{\"notice\":\"events\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/proxy/IdentityRegistryProxy.sol\":\"IdentityRegistryProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/proxy/AbstractProxy.sol\":{\"keccak256\":\"0x25dca1861c6dd72695b0b509da29cfb0fcce7c1ac1df0a0266f444596affc3f4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://221fb9fd02e0db96ff0ce584de79edefeb3b66a820c4dfab788147c0d32743fc\",\"dweb:/ipfs/QmcTatYqxSryAPkrqpvy3A9eFNoa13WjE48jitjBYwB7wq\"]},\"contracts/erc3643/proxy/IdentityRegistryProxy.sol\":{\"keccak256\":\"0xa0573d6b467d2184d87e0d5048b1ef67ed02e6095e88ebb2dacae82dfa411f5a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://90f975c7a8962f0ccb8065ed84c83971a5f50ff54b2953e9f8c572fc0fa02165\",\"dweb:/ipfs/QmdQjtvjYaKtuw1UhkgvrRqFErvcDkBkRRXbMGqYt6SLCu\"]},\"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol\":{\"keccak256\":\"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa\",\"dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc\"]},\"contracts/erc3643/proxy/interface/IProxy.sol\":{\"keccak256\":\"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65\",\"dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"implementationAuthority","type":"address"},{"internalType":"address","name":"_trustedIssuersRegistry","type":"address"},{"internalType":"address","name":"_claimTopicsRegistry","type":"address"},{"internalType":"address","name":"_identityStorage","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"_implementationAuthority","type":"address","indexed":true}],"type":"event","name":"ImplementationAuthoritySet","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"getImplementationAuthority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_newImplementationAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setImplementationAuthority"}],"devdoc":{"kind":"dev","methods":{"getImplementationAuthority()":{"details":"See {IProxy-getImplementationAuthority}."},"setImplementationAuthority(address)":{"details":"See {IProxy-setImplementationAuthority}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/proxy/IdentityRegistryProxy.sol":"IdentityRegistryProxy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/proxy/AbstractProxy.sol":{"keccak256":"0x25dca1861c6dd72695b0b509da29cfb0fcce7c1ac1df0a0266f444596affc3f4","urls":["bzz-raw://221fb9fd02e0db96ff0ce584de79edefeb3b66a820c4dfab788147c0d32743fc","dweb:/ipfs/QmcTatYqxSryAPkrqpvy3A9eFNoa13WjE48jitjBYwB7wq"],"license":"GPL-3.0"},"contracts/erc3643/proxy/IdentityRegistryProxy.sol":{"keccak256":"0xa0573d6b467d2184d87e0d5048b1ef67ed02e6095e88ebb2dacae82dfa411f5a","urls":["bzz-raw://90f975c7a8962f0ccb8065ed84c83971a5f50ff54b2953e9f8c572fc0fa02165","dweb:/ipfs/QmdQjtvjYaKtuw1UhkgvrRqFErvcDkBkRRXbMGqYt6SLCu"],"license":"GPL-3.0"},"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol":{"keccak256":"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5","urls":["bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa","dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc"],"license":"GPL-3.0"},"contracts/erc3643/proxy/interface/IProxy.sol":{"keccak256":"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536","urls":["bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65","dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"}},"version":1},"id":65} \ No newline at end of file diff --git a/out/IdentityRegistryStorage.sol/IdentityRegistryStorage.json b/out/IdentityRegistryStorage.sol/IdentityRegistryStorage.json new file mode 100644 index 0000000..34f19a7 --- /dev/null +++ b/out/IdentityRegistryStorage.sol/IdentityRegistryStorage.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addIdentityToStorage","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_identity","type":"address","internalType":"contract IIdentity"},{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindIdentityRegistry","inputs":[{"name":"_identityRegistry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"init","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"linkedIdentityRegistries","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"modifyStoredIdentity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_identity","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"modifyStoredInvestorCountry","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeIdentityFromStorage","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"storedIdentity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract IIdentity"}],"stateMutability":"view"},{"type":"function","name":"storedInvestorCountry","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindIdentityRegistry","inputs":[{"name":"_identityRegistry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CountryModified","inputs":[{"name":"investorAddress","type":"address","indexed":true,"internalType":"address"},{"name":"country","type":"uint16","indexed":true,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"IdentityModified","inputs":[{"name":"oldIdentity","type":"address","indexed":true,"internalType":"contract IIdentity"},{"name":"newIdentity","type":"address","indexed":true,"internalType":"contract IIdentity"}],"anonymous":false},{"type":"event","name":"IdentityRegistryBound","inputs":[{"name":"identityRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"IdentityRegistryUnbound","inputs":[{"name":"identityRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"IdentityStored","inputs":[{"name":"investorAddress","type":"address","indexed":true,"internalType":"address"},{"name":"identity","type":"address","indexed":true,"internalType":"contract IIdentity"}],"anonymous":false},{"type":"event","name":"IdentityUnstored","inputs":[{"name":"investorAddress","type":"address","indexed":true,"internalType":"address"},{"name":"identity","type":"address","indexed":true,"internalType":"contract IIdentity"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061114c806100206000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806397a6278e11610097578063cf191bcd11610066578063cf191bcd14610279578063e1c7392a1461028c578063e805cf8614610294578063f2fde38b146102a757600080fd5b806397a6278e1461022b5780639f3418d51461023e578063a53410dd14610251578063bf9eb9591461026457600080fd5b80637988d3a5116100d35780637988d3a51461019157806384e79842146101d55780638da5cb5b146101e857806397a012f71461021857600080fd5b80631ffbb06414610105578063690a49f91461012d578063715018a614610142578063727e13bc1461014a575b600080fd5b610118610113366004610ed7565b6102ba565b60405190151581526020015b60405180910390f35b61014061013b366004610ed7565b6102cc565b005b6101406103dd565b61017e610158366004610ed7565b6001600160a01b0316600090815260016020526040902054600160a01b900461ffff1690565b60405161ffff9091168152602001610124565b6101bd61019f366004610ed7565b6001600160a01b039081166000908152600160205260409020541690565b6040516001600160a01b039091168152602001610124565b6101406101e3366004610ed7565b6103f1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166101bd565b610140610226366004610ed7565b610461565b610140610239366004610ed7565b610614565b61014061024c366004610f12565b610684565b61014061025f366004610f47565b610769565b61026c61088f565b6040516101249190610f8e565b610140610287366004610ed7565b6108f1565b6101406109cc565b6101406102a2366004610fdb565b610adb565b6101406102b5366004610ed7565b610bd5565b60006102c68183610c13565b92915050565b6001600160a01b0381166102fb5760405162461bcd60e51b81526004016102f290611014565b60405180910390fd5b60025461012c1161035c5760405162461bcd60e51b815260206004820152602560248201527f63616e6e6f742062696e64206d6f7265207468616e2033303020495220746f20604482015264312049525360d81b60648201526084016102f2565b610365816103f1565b6002805460018101825560009182527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b03841690811790915560405190917f500c250171aa20e861b680f93502547b9d436eda7d4c537fc360db6e0c6eedfb91a250565b6103e5610c96565b6103ef6000610cf1565b565b6103f9610c96565b6001600160a01b03811661041f5760405162461bcd60e51b81526004016102f290611014565b61042a600082610d62565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b6001600160a01b0381166104875760405162461bcd60e51b81526004016102f290611014565b6002546104d65760405162461bcd60e51b815260206004820152601f60248201527f6964656e74697479207265676973747279206973206e6f742073746f7265640060448201526064016102f2565b60025460005b818110156105d257826001600160a01b0316600282815481106105015761050161104b565b6000918252602090912001546001600160a01b0316036105ca576002610528600184611061565b815481106105385761053861104b565b600091825260209091200154600280546001600160a01b0390921691839081106105645761056461104b565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060028054806105a3576105a3611082565b600082815260209020810160001990810180546001600160a01b03191690550190556105d2565b6001016104dc565b506105dc82610614565b6040516001600160a01b038316907f51f353eb5801583fdf2706e43c045b62fdf6b1566820b349390616363ecf72c990600090a25050565b61061c610c96565b6001600160a01b0381166106425760405162461bcd60e51b81526004016102f290611014565b61064d600082610dde565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b61068d336102ba565b6106a95760405162461bcd60e51b81526004016102f290611098565b6001600160a01b0382166106cf5760405162461bcd60e51b81526004016102f290611014565b6001600160a01b03828116600090815260016020526040902054166107065760405162461bcd60e51b81526004016102f2906110e6565b6001600160a01b038216600081815260016020526040808220805461ffff60a01b1916600160a01b61ffff87169081029190911790915590519092917f20965fcdc6eed7ae398065b40ece4e732ba667992ca819fc54e80e9f2047c4cf91a35050565b610772336102ba565b61078e5760405162461bcd60e51b81526004016102f290611098565b6001600160a01b038316158015906107ae57506001600160a01b03821615155b6107ca5760405162461bcd60e51b81526004016102f290611014565b6001600160a01b03838116600090815260016020526040902054161561082b5760405162461bcd60e51b8152602060048201526016602482015275616464726573732073746f72656420616c726561647960501b60448201526064016102f2565b6001600160a01b0383811660008181526001602052604080822080549487166001600160b01b03199095168517600160a01b61ffff881602179055517e30dea7e9c9afaa2e3c9810f2fc9b5181f1bad74ca5a8db85f746a33585e7479190a3505050565b606060028054806020026020016040519081016040528092919081815260200182805480156108e757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108c9575b5050505050905090565b6108fa336102ba565b6109165760405162461bcd60e51b81526004016102f290611098565b6001600160a01b03811661093c5760405162461bcd60e51b81526004016102f290611014565b6001600160a01b03818116600090815260016020526040902054166109735760405162461bcd60e51b81526004016102f2906110e6565b6001600160a01b0380821660008181526001602052604080822080546001600160b01b0319811690915590519316928392917fca6a4c3370b859312246e7f086284076e557997e10d856b716c23ab67067790b91a35050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff16600081158015610a125750825b905060008267ffffffffffffffff166001148015610a2f5750303b155b905081158015610a3d575080155b15610a5b5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a8557845460ff60401b1916600160401b1785555b610a8e33610e60565b8315610ad457845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b610ae4336102ba565b610b005760405162461bcd60e51b81526004016102f290611098565b6001600160a01b03821615801590610b2057506001600160a01b03811615155b610b3c5760405162461bcd60e51b81526004016102f290611014565b6001600160a01b0382811660009081526001602052604090205416610b735760405162461bcd60e51b81526004016102f2906110e6565b6001600160a01b0380831660009081526001602052604080822080548585166001600160a01b031982168117909255915191909316929183917f556ce885dfcea52155c773f1ed2e58781c51945c13030ab8f793c61f51d1b8089190a3505050565b610bdd610c96565b6001600160a01b038116610c0757604051631e4fbdf760e01b8152600060048201526024016102f2565b610c1081610cf1565b50565b60006001600160a01b038216610c765760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b60648201526084016102f2565b506001600160a01b03166000908152602091909152604090205460ff1690565b33610cc87f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103ef5760405163118cdaa760e01b81523360048201526024016102f2565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b610d6c8282610c13565b15610db95760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650060448201526064016102f2565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610de88282610c13565b610e3e5760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b60648201526084016102f2565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b610e68610e71565b610c1081610eba565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166103ef57604051631afcd79f60e31b815260040160405180910390fd5b610bdd610e71565b6001600160a01b0381168114610c1057600080fd5b600060208284031215610ee957600080fd5b8135610ef481610ec2565b9392505050565b803561ffff81168114610f0d57600080fd5b919050565b60008060408385031215610f2557600080fd5b8235610f3081610ec2565b9150610f3e60208401610efb565b90509250929050565b600080600060608486031215610f5c57600080fd5b8335610f6781610ec2565b92506020840135610f7781610ec2565b9150610f8560408501610efb565b90509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610fcf5783516001600160a01b031683529284019291840191600101610faa565b50909695505050505050565b60008060408385031215610fee57600080fd5b8235610ff981610ec2565b9150602083013561100981610ec2565b809150509250929050565b6020808252601f908201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604082015260600190565b634e487b7160e01b600052603260045260246000fd5b818103818111156102c657634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6020808252602e908201527f4167656e74526f6c653a2063616c6c657220646f6573206e6f7420686176652060408201526d746865204167656e7420726f6c6560901b606082015260800190565b6020808252601690820152751859191c995cdcc81b9bdd081cdd1bdc9959081e595d60521b60408201526060019056fea26469706673582212205e1142cc95388554ec708a091d83595a7ff4a06ea65114d489b2d63b2bb7e47664736f6c63430008180033","sourceMap":"4032:4545:77:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101005760003560e01c806397a6278e11610097578063cf191bcd11610066578063cf191bcd14610279578063e1c7392a1461028c578063e805cf8614610294578063f2fde38b146102a757600080fd5b806397a6278e1461022b5780639f3418d51461023e578063a53410dd14610251578063bf9eb9591461026457600080fd5b80637988d3a5116100d35780637988d3a51461019157806384e79842146101d55780638da5cb5b146101e857806397a012f71461021857600080fd5b80631ffbb06414610105578063690a49f91461012d578063715018a614610142578063727e13bc1461014a575b600080fd5b610118610113366004610ed7565b6102ba565b60405190151581526020015b60405180910390f35b61014061013b366004610ed7565b6102cc565b005b6101406103dd565b61017e610158366004610ed7565b6001600160a01b0316600090815260016020526040902054600160a01b900461ffff1690565b60405161ffff9091168152602001610124565b6101bd61019f366004610ed7565b6001600160a01b039081166000908152600160205260409020541690565b6040516001600160a01b039091168152602001610124565b6101406101e3366004610ed7565b6103f1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166101bd565b610140610226366004610ed7565b610461565b610140610239366004610ed7565b610614565b61014061024c366004610f12565b610684565b61014061025f366004610f47565b610769565b61026c61088f565b6040516101249190610f8e565b610140610287366004610ed7565b6108f1565b6101406109cc565b6101406102a2366004610fdb565b610adb565b6101406102b5366004610ed7565b610bd5565b60006102c68183610c13565b92915050565b6001600160a01b0381166102fb5760405162461bcd60e51b81526004016102f290611014565b60405180910390fd5b60025461012c1161035c5760405162461bcd60e51b815260206004820152602560248201527f63616e6e6f742062696e64206d6f7265207468616e2033303020495220746f20604482015264312049525360d81b60648201526084016102f2565b610365816103f1565b6002805460018101825560009182527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b03841690811790915560405190917f500c250171aa20e861b680f93502547b9d436eda7d4c537fc360db6e0c6eedfb91a250565b6103e5610c96565b6103ef6000610cf1565b565b6103f9610c96565b6001600160a01b03811661041f5760405162461bcd60e51b81526004016102f290611014565b61042a600082610d62565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b6001600160a01b0381166104875760405162461bcd60e51b81526004016102f290611014565b6002546104d65760405162461bcd60e51b815260206004820152601f60248201527f6964656e74697479207265676973747279206973206e6f742073746f7265640060448201526064016102f2565b60025460005b818110156105d257826001600160a01b0316600282815481106105015761050161104b565b6000918252602090912001546001600160a01b0316036105ca576002610528600184611061565b815481106105385761053861104b565b600091825260209091200154600280546001600160a01b0390921691839081106105645761056461104b565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060028054806105a3576105a3611082565b600082815260209020810160001990810180546001600160a01b03191690550190556105d2565b6001016104dc565b506105dc82610614565b6040516001600160a01b038316907f51f353eb5801583fdf2706e43c045b62fdf6b1566820b349390616363ecf72c990600090a25050565b61061c610c96565b6001600160a01b0381166106425760405162461bcd60e51b81526004016102f290611014565b61064d600082610dde565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b61068d336102ba565b6106a95760405162461bcd60e51b81526004016102f290611098565b6001600160a01b0382166106cf5760405162461bcd60e51b81526004016102f290611014565b6001600160a01b03828116600090815260016020526040902054166107065760405162461bcd60e51b81526004016102f2906110e6565b6001600160a01b038216600081815260016020526040808220805461ffff60a01b1916600160a01b61ffff87169081029190911790915590519092917f20965fcdc6eed7ae398065b40ece4e732ba667992ca819fc54e80e9f2047c4cf91a35050565b610772336102ba565b61078e5760405162461bcd60e51b81526004016102f290611098565b6001600160a01b038316158015906107ae57506001600160a01b03821615155b6107ca5760405162461bcd60e51b81526004016102f290611014565b6001600160a01b03838116600090815260016020526040902054161561082b5760405162461bcd60e51b8152602060048201526016602482015275616464726573732073746f72656420616c726561647960501b60448201526064016102f2565b6001600160a01b0383811660008181526001602052604080822080549487166001600160b01b03199095168517600160a01b61ffff881602179055517e30dea7e9c9afaa2e3c9810f2fc9b5181f1bad74ca5a8db85f746a33585e7479190a3505050565b606060028054806020026020016040519081016040528092919081815260200182805480156108e757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108c9575b5050505050905090565b6108fa336102ba565b6109165760405162461bcd60e51b81526004016102f290611098565b6001600160a01b03811661093c5760405162461bcd60e51b81526004016102f290611014565b6001600160a01b03818116600090815260016020526040902054166109735760405162461bcd60e51b81526004016102f2906110e6565b6001600160a01b0380821660008181526001602052604080822080546001600160b01b0319811690915590519316928392917fca6a4c3370b859312246e7f086284076e557997e10d856b716c23ab67067790b91a35050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff16600081158015610a125750825b905060008267ffffffffffffffff166001148015610a2f5750303b155b905081158015610a3d575080155b15610a5b5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a8557845460ff60401b1916600160401b1785555b610a8e33610e60565b8315610ad457845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b610ae4336102ba565b610b005760405162461bcd60e51b81526004016102f290611098565b6001600160a01b03821615801590610b2057506001600160a01b03811615155b610b3c5760405162461bcd60e51b81526004016102f290611014565b6001600160a01b0382811660009081526001602052604090205416610b735760405162461bcd60e51b81526004016102f2906110e6565b6001600160a01b0380831660009081526001602052604080822080548585166001600160a01b031982168117909255915191909316929183917f556ce885dfcea52155c773f1ed2e58781c51945c13030ab8f793c61f51d1b8089190a3505050565b610bdd610c96565b6001600160a01b038116610c0757604051631e4fbdf760e01b8152600060048201526024016102f2565b610c1081610cf1565b50565b60006001600160a01b038216610c765760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b60648201526084016102f2565b506001600160a01b03166000908152602091909152604090205460ff1690565b33610cc87f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103ef5760405163118cdaa760e01b81523360048201526024016102f2565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b610d6c8282610c13565b15610db95760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650060448201526064016102f2565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610de88282610c13565b610e3e5760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b60648201526084016102f2565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b610e68610e71565b610c1081610eba565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166103ef57604051631afcd79f60e31b815260040160405180910390fd5b610bdd610e71565b6001600160a01b0381168114610c1057600080fd5b600060208284031215610ee957600080fd5b8135610ef481610ec2565b9392505050565b803561ffff81168114610f0d57600080fd5b919050565b60008060408385031215610f2557600080fd5b8235610f3081610ec2565b9150610f3e60208401610efb565b90509250929050565b600080600060608486031215610f5c57600080fd5b8335610f6781610ec2565b92506020840135610f7781610ec2565b9150610f8560408501610efb565b90509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610fcf5783516001600160a01b031683529284019291840191600101610faa565b50909695505050505050565b60008060408385031215610fee57600080fd5b8235610ff981610ec2565b9150602083013561100981610ec2565b809150509250929050565b6020808252601f908201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604082015260600190565b634e487b7160e01b600052603260045260246000fd5b818103818111156102c657634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6020808252602e908201527f4167656e74526f6c653a2063616c6c657220646f6573206e6f7420686176652060408201526d746865204167656e7420726f6c6560901b606082015260800190565b6020808252601690820152751859191c995cdcc81b9bdd081cdd1bdc9959081e595d60521b60408201526060019056fea26469706673582212205e1142cc95388554ec708a091d83595a7ff4a06ea65114d489b2d63b2bb7e47664736f6c63430008180033","sourceMap":"4032:4545:77:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4703:103:88;;;;;;:::i;:::-;;:::i;:::-;;;567:14:165;;560:22;542:41;;530:2;515:18;4703:103:88;;;;;;;;6699:404:77;;;;;;:::i;:::-;;:::i;:::-;;3155:101:136;;;:::i;8417:158:77:-;;;;;;:::i;:::-;-1:-1:-1;;;;;8527:25:77;8502:6;8527:25;;;:11;:25;;;;;:41;-1:-1:-1;;;8527:41:77;;;;;8417:158;;;;768:6:165;756:19;;;738:38;;726:2;711:18;8417:158:77;594:188:165;8173:155:77;;;;;;:::i;:::-;-1:-1:-1;;;;;8279:25:77;;;8251:9;8279:25;;;:11;:25;;;;;:42;;;8173:155;;;;-1:-1:-1;;;;;970:32:165;;;952:51;;940:2;925:18;8173:155:77;787:222:165;4295:194:88;;;;;;:::i;:::-;;:::i;2441:144:136:-;1313:22;2570:8;-1:-1:-1;;;;;2570:8:136;2441:144;;7193:677:77;;;;;;:::i;:::-;;:::i;4495:202:88:-;;;;;;:::i;:::-;;:::i;5643:417:77:-;;;;;;:::i;:::-;;:::i;4302:595::-;;;;;;:::i;:::-;;:::i;7962:129::-;;;:::i;:::-;;;;;;;:::i;6153:458::-;;;;;;:::i;:::-;;:::i;4134:80::-;;;:::i;4985:563::-;;;;;;:::i;:::-;;:::i;3405:215:136:-;;;;;;:::i;:::-;;:::i;4703:103:88:-;4757:4;4780:19;4757:4;4792:6;4780:11;:19::i;:::-;4773:26;4703:103;-1:-1:-1;;4703:103:88:o;6699:404:77:-;-1:-1:-1;;;;;6792:31:77;;6784:75;;;;-1:-1:-1;;;6784:75:77;;;;;;;:::i;:::-;;;;;;;;;6877:19;:26;6906:3;-1:-1:-1;6869:82:77;;;;-1:-1:-1;;;6869:82:77;;3831:2:165;6869:82:77;;;3813:21:165;3870:2;3850:18;;;3843:30;3909:34;3889:18;;;3882:62;-1:-1:-1;;;3960:18:165;;;3953:35;4005:19;;6869:82:77;3629:401:165;6869:82:77;6961:27;6970:17;6961:8;:27::i;:::-;6998:19;:43;;;;;;;-1:-1:-1;6998:43:77;;;;;;;-1:-1:-1;;;;;;6998:43:77;-1:-1:-1;;;;;6998:43:77;;;;;;;;7056:40;;6998:43;;7056:40;;;6699:404;:::o;3155:101:136:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;4295:194:88:-;2334:13:136;:11;:13::i;:::-;-1:-1:-1;;;;;4364:20:88;::::1;4356:64;;;;-1:-1:-1::0;;;4356:64:88::1;;;;;;;:::i;:::-;4430:19;:7;4442:6:::0;4430:11:::1;:19::i;:::-;4464:18;::::0;-1:-1:-1;;;;;4464:18:88;::::1;::::0;::::1;::::0;;;::::1;4295:194:::0;:::o;7193:677:77:-;-1:-1:-1;;;;;7288:31:77;;7280:75;;;;-1:-1:-1;;;7280:75:77;;;;;;;:::i;:::-;7373:19;:26;7365:74;;;;-1:-1:-1;;;7365:74:77;;4237:2:165;7365:74:77;;;4219:21:165;4276:2;4256:18;;;4249:30;4315:33;4295:18;;;4288:61;4366:18;;7365:74:77;4035:355:165;7365:74:77;7466:19;:26;7449:14;7502:265;7526:6;7522:1;:10;7502:265;;;7583:17;-1:-1:-1;;;;;7557:43:77;:19;7577:1;7557:22;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;7557:22:77;:43;7553:204;;7645:19;7665:10;7674:1;7665:6;:10;:::i;:::-;7645:31;;;;;;;;:::i;:::-;;;;;;;;;;;7620:19;:22;;-1:-1:-1;;;;;7645:31:77;;;;7640:1;;7620:22;;;;;;:::i;:::-;;;;;;;;;:56;;;;;-1:-1:-1;;;;;7620:56:77;;;;;-1:-1:-1;;;;;7620:56:77;;;;;;7694:19;:25;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;7694:25:77;;;;;-1:-1:-1;;;;;;7694:25:77;;;;;;7737:5;;7553:204;7534:3;;7502:265;;;;7776:30;7788:17;7776:11;:30::i;:::-;7821:42;;-1:-1:-1;;;;;7821:42:77;;;;;;;;7270:600;7193:677;:::o;4495:202:88:-;2334:13:136;:11;:13::i;:::-;-1:-1:-1;;;;;4567:20:88;::::1;4559:64;;;;-1:-1:-1::0;;;4559:64:88::1;;;;;;;:::i;:::-;4633:22;:7;4648:6:::0;4633:14:::1;:22::i;:::-;4670:20;::::0;-1:-1:-1;;;;;4670:20:88;::::1;::::0;::::1;::::0;;;::::1;4495:202:::0;:::o;5643:417:77:-;4201:19:88;4209:10;4201:7;:19::i;:::-;4193:78;;;;-1:-1:-1;;;4193:78:88;;;;;;;:::i;:::-;-1:-1:-1;;;;;5765:26:77;::::1;5757:70;;;;-1:-1:-1::0;;;5757:70:77::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5853:25:77;;::::1;5908:1;5853:25:::0;;;:11:::1;:25;::::0;;;;:42;::::1;5837:100;;;;-1:-1:-1::0;;;5837:100:77::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5947:25:77;::::1;;::::0;;;:11:::1;:25;::::0;;;;;:52;;-1:-1:-1;;;;5947:52:77::1;-1:-1:-1::0;;;5947:52:77::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;6014:39;;5947:52;;:25;6014:39:::1;::::0;::::1;5643:417:::0;;:::o;4302:595::-;4201:19:88;4209:10;4201:7;:19::i;:::-;4193:78;;;;-1:-1:-1;;;4193:78:88;;;;;;;:::i;:::-;-1:-1:-1;;;;;4481:26:77;::::1;::::0;;::::1;::::0;:74:::1;;-1:-1:-1::0;;;;;;4523:32:77;::::1;::::0;::::1;4481:74;4460:140;;;;-1:-1:-1::0;;;4460:140:77::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4626:25:77;;::::1;4681:1;4626:25:::0;;;:11:::1;:25;::::0;;;;:42;::::1;4618:65:::0;4610:100:::1;;;::::0;-1:-1:-1;;;4610:100:77;;5857:2:165;4610:100:77::1;::::0;::::1;5839:21:165::0;5896:2;5876:18;;;5869:30;-1:-1:-1;;;5915:18:165;;;5908:52;5977:18;;4610:100:77::1;5655:346:165::0;4610:100:77::1;-1:-1:-1::0;;;;;4720:25:77;;::::1;;::::0;;;:11:::1;:25;::::0;;;;;:54;;;;::::1;-1:-1:-1::0;;;;;;4784:52:77;;;;;-1:-1:-1;;;4784:52:77::1;::::0;::::1;;;::::0;;4851:39;::::1;::::0;4720:25;4851:39:::1;4302:595:::0;;;:::o;7962:129::-;8030:16;8065:19;8058:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8058:26:77;;;;;;;;;;;;;;;;;;;;;;;7962:129;:::o;6153:458::-;4201:19:88;4209:10;4201:7;:19::i;:::-;4193:78;;;;-1:-1:-1;;;4193:78:88;;;;;;;:::i;:::-;-1:-1:-1;;;;;6256:26:77;::::1;6248:70;;;;-1:-1:-1::0;;;6248:70:77::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6344:25:77;;::::1;6399:1;6344:25:::0;;;:11:::1;:25;::::0;;;;:42;::::1;6328:100;;;;-1:-1:-1::0;;;6328:100:77::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6462:25:77;;::::1;6438:21;6462:25:::0;;;:11:::1;:25;::::0;;;;;:42;;-1:-1:-1;;;;;;6514:32:77;;;;;6561:43;;6462:42;::::1;::::0;;;:25;6561:43:::1;::::0;::::1;6238:373;6153:458:::0;:::o;4134:80::-;8870:21:137;4302:15;;-1:-1:-1;;;4302:15:137;;;;4301:16;;4348:14;;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;:16;;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:137;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:137;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:137;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:137;-1:-1:-1;;;5013:22:137;;;4979:67;4181:26:77::1;4196:10;4181:14;:26::i;:::-;5070:14:137::0;5066:101;;;5100:23;;-1:-1:-1;;;;5100:23:137;;;5142:14;;-1:-1:-1;6159:50:165;;5142:14:137;;6147:2:165;6132:18;5142:14:137;;;;;;;5066:101;4092:1081;;;;;4134:80:77:o;4985:563::-;4201:19:88;4209:10;4201:7;:19::i;:::-;4193:78;;;;-1:-1:-1;;;4193:78:88;;;;;;;:::i;:::-;-1:-1:-1;;;;;5117:26:77;::::1;::::0;;::::1;::::0;:74:::1;;-1:-1:-1::0;;;;;;5159:32:77;::::1;::::0;::::1;5117:74;5096:140;;;;-1:-1:-1::0;;;5096:140:77::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5262:25:77;;::::1;5317:1;5262:25:::0;;;:11:::1;:25;::::0;;;;:42;::::1;5246:100;;;;-1:-1:-1::0;;;5246:100:77::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5380:25:77;;::::1;5356:21;5380:25:::0;;;:11:::1;:25;::::0;;;;;:42;;5432:54;;::::1;-1:-1:-1::0;;;;;;5432:54:77;::::1;::::0;::::1;::::0;;;5501:40;;5380:42;;;::::1;::::0;5432:54;5380:42;;5501:40:::1;::::0;5356:21;5501:40:::1;5086:462;4985:563:::0;;:::o;3405:215:136:-;2334:13;:11;:13::i;:::-;-1:-1:-1;;;;;3489:22:136;::::1;3485:91;;3534:31;::::0;-1:-1:-1;;;3534:31:136;;3562:1:::1;3534:31;::::0;::::1;952:51:165::0;925:18;;3534:31:136::1;787:222:165::0;3485:91:136::1;3585:28;3604:8;3585:18;:28::i;:::-;3405:215:::0;:::o;4596:200:89:-;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;6422:2:165;4684:68:89;;;6404:21:165;6461:2;6441:18;;;6434:30;6500:34;6480:18;;;6473:62;-1:-1:-1;;;6551:18:165;;;6544:32;6593:19;;4684:68:89;6220:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;2658:162:136:-;966:10:138;2717:7:136;1313:22;2570:8;-1:-1:-1;;;;;2570:8:136;;2441:144;2717:7;-1:-1:-1;;;;;2717:23:136;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:136;;966:10:138;2763:40:136;;;952:51:165;925:18;;2763:40:136;787:222:165;3774:248:136;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:136;;-1:-1:-1;;;;;3941:19:136;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;4077:175:89:-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;6825:2:165;4145:63:89;;;6807:21:165;6864:2;6844:18;;;6837:30;6903:33;6883:18;;;6876:61;6954:18;;4145:63:89;6623:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;4327:180::-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;7185:2:165;4398:64:89;;;7167:21:165;7224:2;7204:18;;;7197:30;7263:34;7243:18;;;7236:62;-1:-1:-1;;;7314:18:165;;;7307:31;7355:19;;4398:64:89;6983:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;1847:127:136:-;6931:20:137;:18;:20::i;:::-;1929:38:136::1;1954:12;1929:24;:38::i;7084:141:137:-:0;8870:21;8560:40;-1:-1:-1;;;8560:40:137;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:137;;;;;;;;;;;1980:235:136;6931:20:137;:18;:20::i;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;150:247;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;:::-;386:5;150:247;-1:-1:-1;;;150:247:165:o;1222:159::-;1289:20;;1349:6;1338:18;;1328:29;;1318:57;;1371:1;1368;1361:12;1318:57;1222:159;;;:::o;1386:319::-;1453:6;1461;1514:2;1502:9;1493:7;1489:23;1485:32;1482:52;;;1530:1;1527;1520:12;1482:52;1569:9;1556:23;1588:31;1613:5;1588:31;:::i;:::-;1638:5;-1:-1:-1;1662:37:165;1695:2;1680:18;;1662:37;:::i;:::-;1652:47;;1386:319;;;;;:::o;1710:479::-;1805:6;1813;1821;1874:2;1862:9;1853:7;1849:23;1845:32;1842:52;;;1890:1;1887;1880:12;1842:52;1929:9;1916:23;1948:31;1973:5;1948:31;:::i;:::-;1998:5;-1:-1:-1;2055:2:165;2040:18;;2027:32;2068:33;2027:32;2068:33;:::i;:::-;2120:7;-1:-1:-1;2146:37:165;2179:2;2164:18;;2146:37;:::i;:::-;2136:47;;1710:479;;;;;:::o;2194:658::-;2365:2;2417:21;;;2487:13;;2390:18;;;2509:22;;;2336:4;;2365:2;2588:15;;;;2562:2;2547:18;;;2336:4;2631:195;2645:6;2642:1;2639:13;2631:195;;;2710:13;;-1:-1:-1;;;;;2706:39:165;2694:52;;2801:15;;;;2766:12;;;;2742:1;2660:9;2631:195;;;-1:-1:-1;2843:3:165;;2194:658;-1:-1:-1;;;;;;2194:658:165:o;2857:407::-;2944:6;2952;3005:2;2993:9;2984:7;2980:23;2976:32;2973:52;;;3021:1;3018;3011:12;2973:52;3060:9;3047:23;3079:31;3104:5;3079:31;:::i;:::-;3129:5;-1:-1:-1;3186:2:165;3171:18;;3158:32;3199:33;3158:32;3199:33;:::i;:::-;3251:7;3241:17;;;2857:407;;;;;:::o;3269:355::-;3471:2;3453:21;;;3510:2;3490:18;;;3483:30;3549:33;3544:2;3529:18;;3522:61;3615:2;3600:18;;3269:355::o;4395:127::-;4456:10;4451:3;4447:20;4444:1;4437:31;4487:4;4484:1;4477:15;4511:4;4508:1;4501:15;4527:225;4594:9;;;4615:11;;;4612:134;;;4668:10;4663:3;4659:20;4656:1;4649:31;4703:4;4700:1;4693:15;4731:4;4728:1;4721:15;4757:127;4818:10;4813:3;4809:20;4806:1;4799:31;4849:4;4846:1;4839:15;4873:4;4870:1;4863:15;4889:410;5091:2;5073:21;;;5130:2;5110:18;;;5103:30;5169:34;5164:2;5149:18;;5142:62;-1:-1:-1;;;5235:2:165;5220:18;;5213:44;5289:3;5274:19;;4889:410::o;5304:346::-;5506:2;5488:21;;;5545:2;5525:18;;;5518:30;-1:-1:-1;;;5579:2:165;5564:18;;5557:52;5641:2;5626:18;;5304:346::o","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","addIdentityToStorage(address,address,uint16)":"a53410dd","bindIdentityRegistry(address)":"690a49f9","init()":"e1c7392a","isAgent(address)":"1ffbb064","linkedIdentityRegistries()":"bf9eb959","modifyStoredIdentity(address,address)":"e805cf86","modifyStoredInvestorCountry(address,uint16)":"9f3418d5","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","removeIdentityFromStorage(address)":"cf191bcd","renounceOwnership()":"715018a6","storedIdentity(address)":"7988d3a5","storedInvestorCountry(address)":"727e13bc","transferOwnership(address)":"f2fde38b","unbindIdentityRegistry(address)":"97a012f7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"country\",\"type\":\"uint16\"}],\"name\":\"CountryModified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IIdentity\",\"name\":\"oldIdentity\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IIdentity\",\"name\":\"newIdentity\",\"type\":\"address\"}],\"name\":\"IdentityModified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"identityRegistry\",\"type\":\"address\"}],\"name\":\"IdentityRegistryBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"identityRegistry\",\"type\":\"address\"}],\"name\":\"IdentityRegistryUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IIdentity\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"IdentityStored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IIdentity\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"IdentityUnstored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"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\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_identity\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"addIdentityToStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identityRegistry\",\"type\":\"address\"}],\"name\":\"bindIdentityRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"linkedIdentityRegistries\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_identity\",\"type\":\"address\"}],\"name\":\"modifyStoredIdentity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"modifyStoredInvestorCountry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"removeIdentityFromStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"storedIdentity\",\"outputs\":[{\"internalType\":\"contract IIdentity\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"storedInvestorCountry\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identityRegistry\",\"type\":\"address\"}],\"name\":\"unbindIdentityRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"addIdentityToStorage(address,address,uint16)\":{\"details\":\"See {IIdentityRegistryStorage-addIdentityToStorage}.\"},\"bindIdentityRegistry(address)\":{\"details\":\"See {IIdentityRegistryStorage-bindIdentityRegistry}.\"},\"linkedIdentityRegistries()\":{\"details\":\"See {IIdentityRegistryStorage-linkedIdentityRegistries}.\"},\"modifyStoredIdentity(address,address)\":{\"details\":\"See {IIdentityRegistryStorage-modifyStoredIdentity}.\"},\"modifyStoredInvestorCountry(address,uint16)\":{\"details\":\"See {IIdentityRegistryStorage-modifyStoredInvestorCountry}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeIdentityFromStorage(address)\":{\"details\":\"See {IIdentityRegistryStorage-removeIdentityFromStorage}.\"},\"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.\"},\"storedIdentity(address)\":{\"details\":\"See {IIdentityRegistryStorage-storedIdentity}.\"},\"storedInvestorCountry(address)\":{\"details\":\"See {IIdentityRegistryStorage-storedInvestorCountry}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unbindIdentityRegistry(address)\":{\"details\":\"See {IIdentityRegistryStorage-unbindIdentityRegistry}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"CountryModified(address,uint16)\":{\"notice\":\"this event is emitted when an Identity's country has been updated the event is emitted by the 'updateCountry' function `investorAddress` is the address on which the country has been updated `country` is the numeric code (ISO 3166-1) of the new country\"},\"IdentityModified(address,address)\":{\"notice\":\"this event is emitted when an Identity has been updated the event is emitted by the 'updateIdentity' function `oldIdentity` is the old Identity contract's address to update `newIdentity` is the new Identity contract's\"},\"IdentityRegistryBound(address)\":{\"notice\":\"this event is emitted when an Identity Registry is bound to the storage contract the event is emitted by the 'addIdentityRegistry' function `identityRegistry` is the address of the identity registry added\"},\"IdentityRegistryUnbound(address)\":{\"notice\":\"this event is emitted when an Identity Registry is unbound from the storage contract the event is emitted by the 'removeIdentityRegistry' function `identityRegistry` is the address of the identity registry removed\"},\"IdentityStored(address,address)\":{\"notice\":\"this event is emitted when an Identity is registered into the storage contract. the event is emitted by the 'registerIdentity' function `investorAddress` is the address of the investor's wallet `identity` is the address of the Identity smart contract (onchainID)\"},\"IdentityUnstored(address,address)\":{\"notice\":\"this event is emitted when an Identity is removed from the storage contract. the event is emitted by the 'deleteIdentity' function `investorAddress` is the address of the investor's wallet `identity` is the address of the Identity smart contract (onchainID)\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/registry/implementation/IdentityRegistryStorage.sol\":\"IdentityRegistryStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/registry/implementation/IdentityRegistryStorage.sol\":{\"keccak256\":\"0xada3b14a497d11c9314ede5d40e52ffc0503580a92fa21433b4ef2202b6258e5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5457628075dd3f4771dd3150a1bc2ff8450f4528522c09e98181e8cb4d0d6fce\",\"dweb:/ipfs/QmdAM4KSZVwB5AofHHi8bjvicv5fdCSG3gpXcV8uTMsvkE\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/storage/IRSStorage.sol\":{\"keccak256\":\"0xd50fece1c2d09d7308721257a0eb49248665ac479d3aecf4abda0daa67b36ed9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://9a6621fecc96d9eed5f895ad254f099902e39dbff8388f099a887ebce5302b8a\",\"dweb:/ipfs/Qmat7WcQ1KKPecmcpmfwu3R3vBU4iWMzkCR9eNH3xPT51Q\"]},\"contracts/erc3643/roles/AgentRoleUpgradeable.sol\":{\"keccak256\":\"0x621b1a88ff1637e2d14b1dd27cbd8cc5d1feba549be25cad7c57fb22a4d6a2b1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e81b966250d80f55c179eff2d28fc9a5322ba8d09230b8a4744e77f97ad53c8a\",\"dweb:/ipfs/QmTAB51L4yRgQdh3becJKXMHaAMR9vnpjjdpFs4LQ5kWKT\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"investorAddress","type":"address","indexed":true},{"internalType":"uint16","name":"country","type":"uint16","indexed":true}],"type":"event","name":"CountryModified","anonymous":false},{"inputs":[{"internalType":"contract IIdentity","name":"oldIdentity","type":"address","indexed":true},{"internalType":"contract IIdentity","name":"newIdentity","type":"address","indexed":true}],"type":"event","name":"IdentityModified","anonymous":false},{"inputs":[{"internalType":"address","name":"identityRegistry","type":"address","indexed":true}],"type":"event","name":"IdentityRegistryBound","anonymous":false},{"inputs":[{"internalType":"address","name":"identityRegistry","type":"address","indexed":true}],"type":"event","name":"IdentityRegistryUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"investorAddress","type":"address","indexed":true},{"internalType":"contract IIdentity","name":"identity","type":"address","indexed":true}],"type":"event","name":"IdentityStored","anonymous":false},{"inputs":[{"internalType":"address","name":"investorAddress","type":"address","indexed":true},{"internalType":"contract IIdentity","name":"identity","type":"address","indexed":true}],"type":"event","name":"IdentityUnstored","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"contract IIdentity","name":"_identity","type":"address"},{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"addIdentityToStorage"},{"inputs":[{"internalType":"address","name":"_identityRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindIdentityRegistry"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"init"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"linkedIdentityRegistries","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"contract IIdentity","name":"_identity","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"modifyStoredIdentity"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"modifyStoredInvestorCountry"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeIdentityFromStorage"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"storedIdentity","outputs":[{"internalType":"contract IIdentity","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"storedInvestorCountry","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_identityRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindIdentityRegistry"}],"devdoc":{"kind":"dev","methods":{"addIdentityToStorage(address,address,uint16)":{"details":"See {IIdentityRegistryStorage-addIdentityToStorage}."},"bindIdentityRegistry(address)":{"details":"See {IIdentityRegistryStorage-bindIdentityRegistry}."},"linkedIdentityRegistries()":{"details":"See {IIdentityRegistryStorage-linkedIdentityRegistries}."},"modifyStoredIdentity(address,address)":{"details":"See {IIdentityRegistryStorage-modifyStoredIdentity}."},"modifyStoredInvestorCountry(address,uint16)":{"details":"See {IIdentityRegistryStorage-modifyStoredInvestorCountry}."},"owner()":{"details":"Returns the address of the current owner."},"removeIdentityFromStorage(address)":{"details":"See {IIdentityRegistryStorage-removeIdentityFromStorage}."},"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."},"storedIdentity(address)":{"details":"See {IIdentityRegistryStorage-storedIdentity}."},"storedInvestorCountry(address)":{"details":"See {IIdentityRegistryStorage-storedInvestorCountry}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unbindIdentityRegistry(address)":{"details":"See {IIdentityRegistryStorage-unbindIdentityRegistry}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/registry/implementation/IdentityRegistryStorage.sol":"IdentityRegistryStorage"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/registry/implementation/IdentityRegistryStorage.sol":{"keccak256":"0xada3b14a497d11c9314ede5d40e52ffc0503580a92fa21433b4ef2202b6258e5","urls":["bzz-raw://5457628075dd3f4771dd3150a1bc2ff8450f4528522c09e98181e8cb4d0d6fce","dweb:/ipfs/QmdAM4KSZVwB5AofHHi8bjvicv5fdCSG3gpXcV8uTMsvkE"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/storage/IRSStorage.sol":{"keccak256":"0xd50fece1c2d09d7308721257a0eb49248665ac479d3aecf4abda0daa67b36ed9","urls":["bzz-raw://9a6621fecc96d9eed5f895ad254f099902e39dbff8388f099a887ebce5302b8a","dweb:/ipfs/Qmat7WcQ1KKPecmcpmfwu3R3vBU4iWMzkCR9eNH3xPT51Q"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRoleUpgradeable.sol":{"keccak256":"0x621b1a88ff1637e2d14b1dd27cbd8cc5d1feba549be25cad7c57fb22a4d6a2b1","urls":["bzz-raw://e81b966250d80f55c179eff2d28fc9a5322ba8d09230b8a4744e77f97ad53c8a","dweb:/ipfs/QmTAB51L4yRgQdh3becJKXMHaAMR9vnpjjdpFs4LQ5kWKT"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"}},"version":1},"id":77} \ No newline at end of file diff --git a/out/IdentityRegistryStorageProxy.sol/IdentityRegistryStorageProxy.json b/out/IdentityRegistryStorageProxy.sol/IdentityRegistryStorageProxy.json new file mode 100644 index 0000000..ae50072 --- /dev/null +++ b/out/IdentityRegistryStorageProxy.sol/IdentityRegistryStorageProxy.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"implementationAuthority","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"getImplementationAuthority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setImplementationAuthority","inputs":[{"name":"_newImplementationAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ImplementationAuthoritySet","inputs":[{"name":"_implementationAuthority","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516108fc3803806108fc83398101604081905261002f9161022a565b6001600160a01b03811661008a5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6100a0816000805160206108dc83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a260006100ec6000805160206108dc8339815191525490565b6001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014d919061022a565b60408051600481526024810182526020810180516001600160e01b03166370e39c9560e11b17905290519192506000916001600160a01b038416916101919161025a565b600060405180830381855af49150503d80600081146101cc576040519150601f19603f3d011682016040523d82523d6000602084013e6101d1565b606091505b50509050806102225760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e000000000000000000006044820152606401610081565b505050610289565b60006020828403121561023c57600080fd5b81516001600160a01b038116811461025357600080fd5b9392505050565b6000825160005b8181101561027b5760208186018101518583015201610261565b506000920191825250919050565b610644806102986000396000f3fe6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca26469706673582212205f0e682fedfcda123e3a8edcca67fc085e4ecd1fd5a649c9db3628d7d13f809764736f6c63430008180033821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc","sourceMap":"3873:1320:66:-:0;;;3935:577;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3998:37:66;;3990:81;;;;-1:-1:-1;;;3990:81:66;;511:2:165;3990:81:66;;;493:21:165;550:2;530:18;;;523:30;589:33;569:18;;;562:61;640:18;;3990:81:66;;;;;;;;;4081:54;4111:23;-1:-1:-1;;;;;;;;;;;6099:99:63;5929:285;4081:54:66;4150:51;;-1:-1:-1;;;;;4150:51:66;;;;;;;;4212:13;4258:28;-1:-1:-1;;;;;;;;;;;5598:73:63;;5391:323;4258:28:66;-1:-1:-1;;;;;4228:81:66;;:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4419:33;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4419:33:66;-1:-1:-1;;;4419:33:66;;;4400:53;;4212:99;;-1:-1:-1;4382:12:66;;-1:-1:-1;;;;;4400:18:66;;;:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4381:72;;;4471:7;4463:42;;;;-1:-1:-1;;;4463:42:66;;1288:2:165;4463:42:66;;;1270:21:165;1327:2;1307:18;;;1300:30;1366:24;1346:18;;;1339:52;1408:18;;4463:42:66;1086:346:165;4463:42:66;3980:532;;3935:577;3873:1320;;14:290:165;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:165;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:165:o;669:412::-;798:3;836:6;830:13;861:1;871:129;885:6;882:1;879:13;871:129;;;983:4;967:14;;;963:25;;957:32;944:11;;;937:53;900:12;871:129;;;-1:-1:-1;1055:1:165;1019:16;;1044:13;;;-1:-1:-1;1019:16:165;669:412;-1:-1:-1;669:412:165:o;1086:346::-;3873:1320:66;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca26469706673582212205f0e682fedfcda123e3a8edcca67fc085e4ecd1fd5a649c9db3628d7d13f809764736f6c63430008180033","sourceMap":"3873:1320:66:-:0;;;;;;;;;;;;;;;;;;;;;;;4609:13;4655:28;-1:-1:-1;;;;;;;;;;;5598:73:63;;5391:323;4655:28:66;-1:-1:-1;;;;;4625:81:66;;:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4609:99;;4821:14;4816:3;4811;4798:38;4927:1;4924;4908:14;4903:3;4896:5;4888;4881;4877:17;4864:65;4955:16;5005:5;5002:1;4999;4984:27;5031:7;5051:55;;;;5155:5;5152:1;5145:16;5051:55;5086:5;5083:1;5076:16;5024:151;;5391:323:63;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;5598:73:63;5391:323;;-1:-1:-1;;;;;570:32:165;;;552:51;;540:2;525:18;5391:323:63;;;;;;;4141:1174;;;;;;;;;;-1:-1:-1;4141:1174:63;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;5598:73:63;-1:-1:-1;;;;;4250:42:63;:10;-1:-1:-1;;;;;4250:42:63;;4242:100;;;;-1:-1:-1;;;4242:100:63;;1068:2:165;4242:100:63;;;1050:21:165;1107:2;1087:18;;;1080:30;1146:34;1126:18;;;1119:62;-1:-1:-1;;;1197:18:165;;;1190:43;1250:19;;4242:100:63;;;;;;;;;-1:-1:-1;;;;;4360:41:63;;4352:85;;;;-1:-1:-1;;;4352:85:63;;1482:2:165;4352:85:63;;;1464:21:165;1521:2;1501:18;;;1494:30;1560:33;1540:18;;;1533:61;1611:18;;4352:85:63;1280:355:165;4352:85:63;4564:1;-1:-1:-1;;;;;4468:98:63;4498:27;-1:-1:-1;;;;;4468:82:63;;:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4468:98:63;;;:210;;;;;4676:1;-1:-1:-1;;;;;4582:96:63;4612:27;-1:-1:-1;;;;;4582:80:63;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4582:96:63;;;4468:210;:321;;;;;4787:1;-1:-1:-1;;;;;4694:95:63;4724:27;-1:-1:-1;;;;;4694:79:63;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4694:95:63;;;4468:321;:433;;;;;4899:1;-1:-1:-1;;;;;4805:96:63;4835:27;-1:-1:-1;;;;;4805:80:63;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4805:96:63;;;4468:433;:544;;;;;5010:1;-1:-1:-1;;;;;4917:95:63;4947:27;-1:-1:-1;;;;;4917:79:63;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4917:95:63;;;4468:544;:656;;;;;5122:1;-1:-1:-1;;;;;5028:96:63;5058:27;-1:-1:-1;;;;;5028:80:63;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5028:96:63;;;4468:656;4447:723;;;;-1:-1:-1;;;4447:723:63;;1842:2:165;4447:723:63;;;1824:21:165;;;1861:18;;;1854:30;1920:34;1900:18;;;1893:62;1972:18;;4447:723:63;1640:356:165;4447:723:63;5180:58;5210:27;-1:-1:-1;;;;;;;;;;;6099:99:63;5929:285;5180:58;5253:55;;-1:-1:-1;;;;;5253:55:63;;;;;;;;4141:1174;:::o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:251::-;220:6;273:2;261:9;252:7;248:23;244:32;241:52;;;289:1;286;279:12;241:52;321:9;315:16;340:31;365:5;340:31;:::i;:::-;390:5;150:251;-1:-1:-1;;;150:251:165:o;614:247::-;673:6;726:2;714:9;705:7;701:23;697:32;694:52;;;742:1;739;732:12;694:52;781:9;768:23;800:31;825:5;800:31;:::i","linkReferences":{}},"methodIdentifiers":{"getImplementationAuthority()":"2d5f1187","setImplementationAuthority(address)":"92dd9d65"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementationAuthority\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_implementationAuthority\",\"type\":\"address\"}],\"name\":\"ImplementationAuthoritySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"getImplementationAuthority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newImplementationAuthority\",\"type\":\"address\"}],\"name\":\"setImplementationAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"getImplementationAuthority()\":{\"details\":\"See {IProxy-getImplementationAuthority}.\"},\"setImplementationAuthority(address)\":{\"details\":\"See {IProxy-setImplementationAuthority}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ImplementationAuthoritySet(address)\":{\"notice\":\"events\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/proxy/IdentityRegistryStorageProxy.sol\":\"IdentityRegistryStorageProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/proxy/AbstractProxy.sol\":{\"keccak256\":\"0x25dca1861c6dd72695b0b509da29cfb0fcce7c1ac1df0a0266f444596affc3f4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://221fb9fd02e0db96ff0ce584de79edefeb3b66a820c4dfab788147c0d32743fc\",\"dweb:/ipfs/QmcTatYqxSryAPkrqpvy3A9eFNoa13WjE48jitjBYwB7wq\"]},\"contracts/erc3643/proxy/IdentityRegistryStorageProxy.sol\":{\"keccak256\":\"0x5dae449f9bce21a0135a7af1cfea8eb7e87ba3e8d727c94da8f79ff74e1a840f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4c4d8fc0e321a268d6410151dcb948b0600e70672bccc114e44a9f38ab755e39\",\"dweb:/ipfs/QmWZvTRsotARWJa88AGfQ8Ar3tQFv1dTSo3GSo36oZZkAD\"]},\"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol\":{\"keccak256\":\"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa\",\"dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc\"]},\"contracts/erc3643/proxy/interface/IProxy.sol\":{\"keccak256\":\"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65\",\"dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"implementationAuthority","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"_implementationAuthority","type":"address","indexed":true}],"type":"event","name":"ImplementationAuthoritySet","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"getImplementationAuthority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_newImplementationAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setImplementationAuthority"}],"devdoc":{"kind":"dev","methods":{"getImplementationAuthority()":{"details":"See {IProxy-getImplementationAuthority}."},"setImplementationAuthority(address)":{"details":"See {IProxy-setImplementationAuthority}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/proxy/IdentityRegistryStorageProxy.sol":"IdentityRegistryStorageProxy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/proxy/AbstractProxy.sol":{"keccak256":"0x25dca1861c6dd72695b0b509da29cfb0fcce7c1ac1df0a0266f444596affc3f4","urls":["bzz-raw://221fb9fd02e0db96ff0ce584de79edefeb3b66a820c4dfab788147c0d32743fc","dweb:/ipfs/QmcTatYqxSryAPkrqpvy3A9eFNoa13WjE48jitjBYwB7wq"],"license":"GPL-3.0"},"contracts/erc3643/proxy/IdentityRegistryStorageProxy.sol":{"keccak256":"0x5dae449f9bce21a0135a7af1cfea8eb7e87ba3e8d727c94da8f79ff74e1a840f","urls":["bzz-raw://4c4d8fc0e321a268d6410151dcb948b0600e70672bccc114e44a9f38ab755e39","dweb:/ipfs/QmWZvTRsotARWJa88AGfQ8Ar3tQFv1dTSo3GSo36oZZkAD"],"license":"GPL-3.0"},"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol":{"keccak256":"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5","urls":["bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa","dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc"],"license":"GPL-3.0"},"contracts/erc3643/proxy/interface/IProxy.sol":{"keccak256":"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536","urls":["bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65","dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"}},"version":1},"id":66} \ No newline at end of file diff --git a/out/ImplementationAuthority.sol/ImplementationAuthority.json b/out/ImplementationAuthority.sol/ImplementationAuthority.json new file mode 100644 index 0000000..42e6080 --- /dev/null +++ b/out/ImplementationAuthority.sol/ImplementationAuthority.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"implementation","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"getImplementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateImplementation","inputs":[{"name":"_newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UpdatedImplementation","inputs":[{"name":"newAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161044e38038061044e83398101604081905261002f9161015d565b338061005657604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61005f8161010d565b506001600160a01b0381166100b65760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161004d565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f87c4e67a766ffddda27f441d63853a36ae64fbb07775a7c59d395e064b204eeb9060200160405180910390a15061018d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561016f57600080fd5b81516001600160a01b038116811461018657600080fd5b9392505050565b6102b28061019c6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063025b22bc1461005c578063715018a6146100715780638da5cb5b14610079578063aaf10f42146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a36600461024c565b6100c6565b005b61006f61017d565b6000546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b6001546001600160a01b0316610086565b61006f6100c136600461024c565b610191565b6100ce6101cf565b6001600160a01b0381166101295760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f87c4e67a766ffddda27f441d63853a36ae64fbb07775a7c59d395e064b204eeb9060200160405180910390a150565b6101856101cf565b61018f60006101fc565b565b6101996101cf565b6001600160a01b0381166101c357604051631e4fbdf760e01b815260006004820152602401610120565b6101cc816101fc565b50565b6000546001600160a01b0316331461018f5760405163118cdaa760e01b8152336004820152602401610120565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561025e57600080fd5b81356001600160a01b038116811461027557600080fd5b939250505056fea26469706673582212204816ef7c1bc043a38a1f9825b392eacc85c7582b3bfaff3e1f8ea21e123aef2464736f6c63430008180033","sourceMap":"168:969:125:-:0;;;334:239;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;378:10;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;455:51:165;428:18;;1322:31:141;;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;408:28:125;::::1;400:72;;;::::0;-1:-1:-1;;;400:72:125;;719:2:165;400:72:125::1;::::0;::::1;701:21:165::0;758:2;738:18;;;731:30;797:33;777:18;;;770:61;848:18;;400:72:125::1;517:355:165::0;400:72:125::1;482:15;:32:::0;;-1:-1:-1;;;;;;482:32:125::1;-1:-1:-1::0;;;;;482:32:125;::::1;::::0;;::::1;::::0;;;529:37:::1;::::0;455:51:165;;;529:37:125::1;::::0;443:2:165;428:18;529:37:125::1;;;;;;;334:239:::0;168:969;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:290:165:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:165;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:165:o;517:355::-;168:969:125;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063025b22bc1461005c578063715018a6146100715780638da5cb5b14610079578063aaf10f42146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a36600461024c565b6100c6565b005b61006f61017d565b6000546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b6001546001600160a01b0316610086565b61006f6100c136600461024c565b610191565b6100ce6101cf565b6001600160a01b0381166101295760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f87c4e67a766ffddda27f441d63853a36ae64fbb07775a7c59d395e064b204eeb9060200160405180910390a150565b6101856101cf565b61018f60006101fc565b565b6101996101cf565b6001600160a01b0381166101c357604051631e4fbdf760e01b815260006004820152602401610120565b6101cc816101fc565b50565b6000546001600160a01b0316331461018f5760405163118cdaa760e01b8152336004820152602401610120565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561025e57600080fd5b81356001600160a01b038116811461027557600080fd5b939250505056fea26469706673582212204816ef7c1bc043a38a1f9825b392eacc85c7582b3bfaff3e1f8ea21e123aef2464736f6c63430008180033","sourceMap":"168:969:125:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;661:281;;;;;;:::i;:::-;;:::i;:::-;;2293:101:141;;;:::i;1638:85::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;1638:85;;;-1:-1:-1;;;;;469:32:165;;;451:51;;439:2;424:18;1638:85:141;;;;;;;1027:108:125;1113:15;;-1:-1:-1;;;;;1113:15:125;1027:108;;2543:215:141;;;;;;:::i;:::-;;:::i;661:281:125:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;765:32:125;::::1;757:76;;;::::0;-1:-1:-1;;;757:76:125;;715:2:165;757:76:125::1;::::0;::::1;697:21:165::0;754:2;734:18;;;727:30;793:33;773:18;;;766:61;844:18;;757:76:125::1;;;;;;;;;843:15;:36:::0;;-1:-1:-1;;;;;;843:36:125::1;-1:-1:-1::0;;;;;843:36:125;::::1;::::0;;::::1;::::0;;;894:41:::1;::::0;451:51:165;;;894:41:125::1;::::0;439:2:165;424:18;894:41:125::1;;;;;;;661:281:::0;:::o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2543:215::-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;451:51:165::0;424:18;;2672:31:141::1;305:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;451:51:165;424:18;;1901:40:141;305:203:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:286:165:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:165;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:165:o","linkReferences":{}},"methodIdentifiers":{"getImplementation()":"aaf10f42","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","updateImplementation(address)":"025b22bc"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"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\":\"newAddress\",\"type\":\"address\"}],\"name\":\"UpdatedImplementation\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newImplementation\",\"type\":\"address\"}],\"name\":\"updateImplementation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"getImplementation()\":{\"details\":\"See {IImplementationAuthority-getImplementation}.\"},\"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.\"},\"updateImplementation(address)\":{\"details\":\"See {IImplementationAuthority-updateImplementation}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onchainid/proxy/ImplementationAuthority.sol\":\"ImplementationAuthority\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/onchainid/interface/IImplementationAuthority.sol\":{\"keccak256\":\"0xa46065896246e1a610410ae59828978d8cd6d04527b636e1e7399217941bcf09\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f8c493c0291774cf2da1f84e928c8999c36f7640e6fef82621cd990564a7dd80\",\"dweb:/ipfs/QmPxDk18X86b8FKG91ABkrrkX6fJa2Z8S4jjXDniQ2jvwa\"]},\"contracts/onchainid/proxy/ImplementationAuthority.sol\":{\"keccak256\":\"0xa1199977380dcd3a36481a5e9b7eb6fa694549f17b85911e5ad1b4b4866a69c8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6532b0fbaa7803c7aff3831c5902396013a87e677d5e2c8b3f015504d173be1e\",\"dweb:/ipfs/QmXuJmpzapw9UxV8qifJvKu2cjo2iHCKAF1qRpFXtycj17\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"newAddress","type":"address","indexed":false}],"type":"event","name":"UpdatedImplementation","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"getImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateImplementation"}],"devdoc":{"kind":"dev","methods":{"getImplementation()":{"details":"See {IImplementationAuthority-getImplementation}."},"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."},"updateImplementation(address)":{"details":"See {IImplementationAuthority-updateImplementation}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onchainid/proxy/ImplementationAuthority.sol":"ImplementationAuthority"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onchainid/interface/IImplementationAuthority.sol":{"keccak256":"0xa46065896246e1a610410ae59828978d8cd6d04527b636e1e7399217941bcf09","urls":["bzz-raw://f8c493c0291774cf2da1f84e928c8999c36f7640e6fef82621cd990564a7dd80","dweb:/ipfs/QmPxDk18X86b8FKG91ABkrrkX6fJa2Z8S4jjXDniQ2jvwa"],"license":"GPL-3.0"},"contracts/onchainid/proxy/ImplementationAuthority.sol":{"keccak256":"0xa1199977380dcd3a36481a5e9b7eb6fa694549f17b85911e5ad1b4b4866a69c8","urls":["bzz-raw://6532b0fbaa7803c7aff3831c5902396013a87e677d5e2c8b3f015504d173be1e","dweb:/ipfs/QmXuJmpzapw9UxV8qifJvKu2cjo2iHCKAF1qRpFXtycj17"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":125} \ No newline at end of file diff --git a/out/Initializable.sol/Initializable.json b/out/Initializable.sol/Initializable.json new file mode 100644 index 0000000..e18f522 --- /dev/null +++ b/out/Initializable.sol/Initializable.json @@ -0,0 +1 @@ +{"abi":[{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"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] ```\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":"Initializable"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"}},"version":1},"id":137} \ No newline at end of file diff --git a/out/KeyHelper.sol/Bits.json b/out/KeyHelper.sol/Bits.json new file mode 100644 index 0000000..b330b19 --- /dev/null +++ b/out/KeyHelper.sol/Bits.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122055658ec0ecbfe57903bd1ae64679e2dc1916b3f90d2b8bfe4ea2141d4eb802bf64736f6c63430008180033","sourceMap":"5361:284:9:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;5361:284:9;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122055658ec0ecbfe57903bd1ae64679e2dc1916b3f90d2b8bfe4ea2141d4eb802bf64736f6c63430008180033","sourceMap":"5361:284:9:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/hedera/KeyHelper.sol\":\"Bits\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/hedera/HederaResponseCodes.sol\":{\"keccak256\":\"0x85734572347c25f45480488ad4fdb63ed749a794daac839540f5b0eb7dbb22e6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addc4c8c31e1b3fd001986599856bb39e9cb4532a922155f699aae1686563e63\",\"dweb:/ipfs/QmXJES7o4xoSowiDo3qm3Mr3LaWm7g5qTQosw5EAAiz9R5\"]},\"contracts/common/hedera/HederaTokenService.sol\":{\"keccak256\":\"0x91138524b7d67ef498b1cade84eb4f79b5d7cc8b3b59f6c2f60439b91f6c3e79\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4d3a8bcc40da8200571c06b531fcb6b964dfb8d3cb2fd0e96300452b301e2db9\",\"dweb:/ipfs/Qmcv17ozumtuJLNYZz2evqUbRc2dyvprVYeh7Rq1qBrjHG\"]},\"contracts/common/hedera/IHederaTokenService.sol\":{\"keccak256\":\"0xd0606986a26e82ecd4c2cadd498a74fe9fc2061bd65f4e90592d51962ffbd245\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://786b1c29918038c33f7154c7df73d1a668482965ad0dfe920309533314050b6d\",\"dweb:/ipfs/QmV2Lvy9wvWBxXfSz2tPimZf5xEsDwsWqqujyY2a75i7Te\"]},\"contracts/common/hedera/KeyHelper.sol\":{\"keccak256\":\"0xf3a6185aacf2e4964df0a4ad35f4190abe75fb7ed8e6846459513df86a08389a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8700852d1b95bb75bb4f2dd0b8eeb97829d7baa5c3440db874c09d043d2f7a89\",\"dweb:/ipfs/QmP7JneGLR9QHFsGZmDmqUWQDQ6TjWcQWZnbjuxLYzx6dB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/common/hedera/KeyHelper.sol":"Bits"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/hedera/HederaResponseCodes.sol":{"keccak256":"0x85734572347c25f45480488ad4fdb63ed749a794daac839540f5b0eb7dbb22e6","urls":["bzz-raw://addc4c8c31e1b3fd001986599856bb39e9cb4532a922155f699aae1686563e63","dweb:/ipfs/QmXJES7o4xoSowiDo3qm3Mr3LaWm7g5qTQosw5EAAiz9R5"],"license":"Apache-2.0"},"contracts/common/hedera/HederaTokenService.sol":{"keccak256":"0x91138524b7d67ef498b1cade84eb4f79b5d7cc8b3b59f6c2f60439b91f6c3e79","urls":["bzz-raw://4d3a8bcc40da8200571c06b531fcb6b964dfb8d3cb2fd0e96300452b301e2db9","dweb:/ipfs/Qmcv17ozumtuJLNYZz2evqUbRc2dyvprVYeh7Rq1qBrjHG"],"license":"Apache-2.0"},"contracts/common/hedera/IHederaTokenService.sol":{"keccak256":"0xd0606986a26e82ecd4c2cadd498a74fe9fc2061bd65f4e90592d51962ffbd245","urls":["bzz-raw://786b1c29918038c33f7154c7df73d1a668482965ad0dfe920309533314050b6d","dweb:/ipfs/QmV2Lvy9wvWBxXfSz2tPimZf5xEsDwsWqqujyY2a75i7Te"],"license":"Apache-2.0"},"contracts/common/hedera/KeyHelper.sol":{"keccak256":"0xf3a6185aacf2e4964df0a4ad35f4190abe75fb7ed8e6846459513df86a08389a","urls":["bzz-raw://8700852d1b95bb75bb4f2dd0b8eeb97829d7baa5c3440db874c09d043d2f7a89","dweb:/ipfs/QmP7JneGLR9QHFsGZmDmqUWQDQ6TjWcQWZnbjuxLYzx6dB"],"license":"Apache-2.0"}},"version":1},"id":9} \ No newline at end of file diff --git a/out/KeyHelper.sol/KeyHelper.json b/out/KeyHelper.sol/KeyHelper.json new file mode 100644 index 0000000..244406c --- /dev/null +++ b/out/KeyHelper.sol/KeyHelper.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/hedera/KeyHelper.sol\":\"KeyHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/hedera/HederaResponseCodes.sol\":{\"keccak256\":\"0x85734572347c25f45480488ad4fdb63ed749a794daac839540f5b0eb7dbb22e6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addc4c8c31e1b3fd001986599856bb39e9cb4532a922155f699aae1686563e63\",\"dweb:/ipfs/QmXJES7o4xoSowiDo3qm3Mr3LaWm7g5qTQosw5EAAiz9R5\"]},\"contracts/common/hedera/HederaTokenService.sol\":{\"keccak256\":\"0x91138524b7d67ef498b1cade84eb4f79b5d7cc8b3b59f6c2f60439b91f6c3e79\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4d3a8bcc40da8200571c06b531fcb6b964dfb8d3cb2fd0e96300452b301e2db9\",\"dweb:/ipfs/Qmcv17ozumtuJLNYZz2evqUbRc2dyvprVYeh7Rq1qBrjHG\"]},\"contracts/common/hedera/IHederaTokenService.sol\":{\"keccak256\":\"0xd0606986a26e82ecd4c2cadd498a74fe9fc2061bd65f4e90592d51962ffbd245\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://786b1c29918038c33f7154c7df73d1a668482965ad0dfe920309533314050b6d\",\"dweb:/ipfs/QmV2Lvy9wvWBxXfSz2tPimZf5xEsDwsWqqujyY2a75i7Te\"]},\"contracts/common/hedera/KeyHelper.sol\":{\"keccak256\":\"0xf3a6185aacf2e4964df0a4ad35f4190abe75fb7ed8e6846459513df86a08389a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8700852d1b95bb75bb4f2dd0b8eeb97829d7baa5c3440db874c09d043d2f7a89\",\"dweb:/ipfs/QmP7JneGLR9QHFsGZmDmqUWQDQ6TjWcQWZnbjuxLYzx6dB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/common/hedera/KeyHelper.sol":"KeyHelper"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/hedera/HederaResponseCodes.sol":{"keccak256":"0x85734572347c25f45480488ad4fdb63ed749a794daac839540f5b0eb7dbb22e6","urls":["bzz-raw://addc4c8c31e1b3fd001986599856bb39e9cb4532a922155f699aae1686563e63","dweb:/ipfs/QmXJES7o4xoSowiDo3qm3Mr3LaWm7g5qTQosw5EAAiz9R5"],"license":"Apache-2.0"},"contracts/common/hedera/HederaTokenService.sol":{"keccak256":"0x91138524b7d67ef498b1cade84eb4f79b5d7cc8b3b59f6c2f60439b91f6c3e79","urls":["bzz-raw://4d3a8bcc40da8200571c06b531fcb6b964dfb8d3cb2fd0e96300452b301e2db9","dweb:/ipfs/Qmcv17ozumtuJLNYZz2evqUbRc2dyvprVYeh7Rq1qBrjHG"],"license":"Apache-2.0"},"contracts/common/hedera/IHederaTokenService.sol":{"keccak256":"0xd0606986a26e82ecd4c2cadd498a74fe9fc2061bd65f4e90592d51962ffbd245","urls":["bzz-raw://786b1c29918038c33f7154c7df73d1a668482965ad0dfe920309533314050b6d","dweb:/ipfs/QmV2Lvy9wvWBxXfSz2tPimZf5xEsDwsWqqujyY2a75i7Te"],"license":"Apache-2.0"},"contracts/common/hedera/KeyHelper.sol":{"keccak256":"0xf3a6185aacf2e4964df0a4ad35f4190abe75fb7ed8e6846459513df86a08389a","urls":["bzz-raw://8700852d1b95bb75bb4f2dd0b8eeb97829d7baa5c3440db874c09d043d2f7a89","dweb:/ipfs/QmP7JneGLR9QHFsGZmDmqUWQDQ6TjWcQWZnbjuxLYzx6dB"],"license":"Apache-2.0"}},"version":1},"id":9} \ No newline at end of file diff --git a/out/LegacyIA.sol/ContextLegacy.json b/out/LegacyIA.sol/ContextLegacy.json new file mode 100644 index 0000000..2580a71 --- /dev/null +++ b/out/LegacyIA.sol/ContextLegacy.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyIA.sol\":\"ContextLegacy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyIA.sol\":{\"keccak256\":\"0xfe418c4a1c08edc3ce83d38a334011e8317725d9289314f528373d5b16f26dec\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://27e5977922c2b3f37ce92d407d811e6126e291486b9e151cbc62341c25ec0150\",\"dweb:/ipfs/QmPpr8gyHNn2Yqx3cxcMmjobcdzA4xPcuneUxpwq9GAhZH\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyIA.sol":"ContextLegacy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyIA.sol":{"keccak256":"0xfe418c4a1c08edc3ce83d38a334011e8317725d9289314f528373d5b16f26dec","urls":["bzz-raw://27e5977922c2b3f37ce92d407d811e6126e291486b9e151cbc62341c25ec0150","dweb:/ipfs/QmPpr8gyHNn2Yqx3cxcMmjobcdzA4xPcuneUxpwq9GAhZH"],"license":"GPL-3.0"}},"version":1},"id":21} \ No newline at end of file diff --git a/out/LegacyIA.sol/LegacyIA.json b/out/LegacyIA.sol/LegacyIA.json new file mode 100644 index 0000000..39ebb97 --- /dev/null +++ b/out/LegacyIA.sol/LegacyIA.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_implementation","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"getImplementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateImplementation","inputs":[{"name":"_newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UpdatedImplementation","inputs":[{"name":"newAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161048538038061048583398101604081905261002f916100c7565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f87c4e67a766ffddda27f441d63853a36ae64fbb07775a7c59d395e064b204eeb9060200160405180910390a1506100f7565b6000602082840312156100d957600080fd5b81516001600160a01b03811681146100f057600080fd5b9392505050565b61037f806101066000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063025b22bc146100675780635c60da1b1461007c578063715018a6146100ab5780638da5cb5b146100b3578063aaf10f42146100c4578063f2fde38b146100d5575b600080fd5b61007a6100753660046102d3565b6100e8565b005b60015461008f906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b61007a61016f565b6000546001600160a01b031661008f565b6001546001600160a01b031661008f565b61007a6100e33660046102d3565b6101e3565b6000546001600160a01b0316331461011b5760405162461bcd60e51b815260040161011290610303565b60405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f87c4e67a766ffddda27f441d63853a36ae64fbb07775a7c59d395e064b204eeb9060200160405180910390a150565b6000546001600160a01b031633146101995760405162461bcd60e51b815260040161011290610303565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461020d5760405162461bcd60e51b815260040161011290610303565b6001600160a01b0381166102785760405162461bcd60e51b815260206004820152602c60248201527f4f776e61626c654c65676163793a206e6577206f776e6572206973207468652060448201526b7a65726f206164647265737360a01b6064820152608401610112565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000602082840312156102e557600080fd5b81356001600160a01b03811681146102fc57600080fd5b9392505050565b60208082526026908201527f4f776e61626c654c65676163793a2063616c6c6572206973206e6f74207468656040820152651037bbb732b960d11b60608201526080019056fea2646970667358221220bc53765727d8e7a0ff7d8d15bddabbf877239ab72562ea4884c3b45bef38934264736f6c63430008180033","sourceMap":"2118:566:21:-:0;;;2249:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;734:17;776:18;;-1:-1:-1;;;;;;776:18:21;179:10;776:18;;;;;809:43;;179:10;;;;809:43;;734:17;;809:43;-1:-1:-1;2296:14:21;:32;;-1:-1:-1;;;;;;2296:32:21;-1:-1:-1;;;;;2296:32:21;;;;;;;;2343:38;;455:51:165;;;2343:38:21;;443:2:165;428:18;2343:38:21;;;;;;;2249:139;2118:566;;14:290:165;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:165;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:165:o;309:203::-;2118:566:21;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c8063025b22bc146100675780635c60da1b1461007c578063715018a6146100ab5780638da5cb5b146100b3578063aaf10f42146100c4578063f2fde38b146100d5575b600080fd5b61007a6100753660046102d3565b6100e8565b005b60015461008f906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b61007a61016f565b6000546001600160a01b031661008f565b6001546001600160a01b031661008f565b61007a6100e33660046102d3565b6101e3565b6000546001600160a01b0316331461011b5760405162461bcd60e51b815260040161011290610303565b60405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f87c4e67a766ffddda27f441d63853a36ae64fbb07775a7c59d395e064b204eeb9060200160405180910390a150565b6000546001600160a01b031633146101995760405162461bcd60e51b815260040161011290610303565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461020d5760405162461bcd60e51b815260040161011290610303565b6001600160a01b0381166102785760405162461bcd60e51b815260206004820152602c60248201527f4f776e61626c654c65676163793a206e6577206f776e6572206973207468652060448201526b7a65726f206164647265737360a01b6064820152608401610112565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000602082840312156102e557600080fd5b81356001600160a01b03811681146102fc57600080fd5b9392505050565b60208082526026908201527f4f776e61626c654c65676163793a2063616c6c6572206973206e6f74207468656040820152651037bbb732b960d11b60608201526080019056fea2646970667358221220bc53765727d8e7a0ff7d8d15bddabbf877239ab72562ea4884c3b45bef38934264736f6c63430008180033","sourceMap":"2118:566:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2499:183;;;;;;:::i;:::-;;:::i;:::-;;2213:29;;;;;-1:-1:-1;;;;;2213:29:21;;;;;;-1:-1:-1;;;;;469:32:165;;;451:51;;439:2;424:18;2213:29:21;;;;;;;1573:145;;;:::i;935:85::-;981:7;1007:6;-1:-1:-1;;;;;1007:6:21;935:85;;2394:99;2472:14;;-1:-1:-1;;;;;2472:14:21;2394:99;;1867:246;;;;;;:::i;:::-;;:::i;2499:183::-;981:7;1007:6;-1:-1:-1;;;;;1007:6:21;179:10;1147:23;1139:74;;;;-1:-1:-1;;;1139:74:21;;;;;;;:::i;:::-;;;;;;;;;2584:14:::1;:35:::0;;-1:-1:-1;;;;;;2584:35:21::1;-1:-1:-1::0;;;;;2584:35:21;::::1;::::0;;::::1;::::0;;;2634:41:::1;::::0;451:51:165;;;2634:41:21::1;::::0;439:2:165;424:18;2634:41:21::1;;;;;;;2499:183:::0;:::o;1573:145::-;981:7;1007:6;-1:-1:-1;;;;;1007:6:21;179:10;1147:23;1139:74;;;;-1:-1:-1;;;1139:74:21;;;;;;;:::i;:::-;1679:1:::1;1663:6:::0;;1642:40:::1;::::0;-1:-1:-1;;;;;1663:6:21;;::::1;::::0;1642:40:::1;::::0;1679:1;;1642:40:::1;1709:1;1692:19:::0;;-1:-1:-1;;;;;;1692:19:21::1;::::0;;1573:145::o;1867:246::-;981:7;1007:6;-1:-1:-1;;;;;1007:6:21;179:10;1147:23;1139:74;;;;-1:-1:-1;;;1139:74:21;;;;;;;:::i;:::-;-1:-1:-1;;;;;1955:22:21;::::1;1947:79;;;::::0;-1:-1:-1;;;1947:79:21;;1122:2:165;1947:79:21::1;::::0;::::1;1104:21:165::0;1161:2;1141:18;;;1134:30;1200:34;1180:18;;;1173:62;-1:-1:-1;;;1251:18:165;;;1244:42;1303:19;;1947:79:21::1;920:408:165::0;1947:79:21::1;2062:6;::::0;;2041:38:::1;::::0;-1:-1:-1;;;;;2041:38:21;;::::1;::::0;2062:6;::::1;::::0;2041:38:::1;::::0;::::1;2089:6;:17:::0;;-1:-1:-1;;;;;;2089:17:21::1;-1:-1:-1::0;;;;;2089:17:21;;;::::1;::::0;;;::::1;::::0;;1867:246::o;14:286:165:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:165;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:165:o;513:402::-;715:2;697:21;;;754:2;734:18;;;727:30;793:34;788:2;773:18;;766:62;-1:-1:-1;;;859:2:165;844:18;;837:36;905:3;890:19;;513:402::o","linkReferences":{}},"methodIdentifiers":{"getImplementation()":"aaf10f42","implementation()":"5c60da1b","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","updateImplementation(address)":"025b22bc"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"newAddress\",\"type\":\"address\"}],\"name\":\"UpdatedImplementation\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newImplementation\",\"type\":\"address\"}],\"name\":\"updateImplementation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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 anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing 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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyIA.sol\":\"LegacyIA\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyIA.sol\":{\"keccak256\":\"0xfe418c4a1c08edc3ce83d38a334011e8317725d9289314f528373d5b16f26dec\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://27e5977922c2b3f37ce92d407d811e6126e291486b9e151cbc62341c25ec0150\",\"dweb:/ipfs/QmPpr8gyHNn2Yqx3cxcMmjobcdzA4xPcuneUxpwq9GAhZH\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"newAddress","type":"address","indexed":false}],"type":"event","name":"UpdatedImplementation","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"getImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateImplementation"}],"devdoc":{"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 anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing 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."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyIA.sol":"LegacyIA"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyIA.sol":{"keccak256":"0xfe418c4a1c08edc3ce83d38a334011e8317725d9289314f528373d5b16f26dec","urls":["bzz-raw://27e5977922c2b3f37ce92d407d811e6126e291486b9e151cbc62341c25ec0150","dweb:/ipfs/QmPpr8gyHNn2Yqx3cxcMmjobcdzA4xPcuneUxpwq9GAhZH"],"license":"GPL-3.0"}},"version":1},"id":21} \ No newline at end of file diff --git a/out/LegacyIA.sol/OwnableLegacy.json b/out/LegacyIA.sol/OwnableLegacy.json new file mode 100644 index 0000000..a284285 --- /dev/null +++ b/out/LegacyIA.sol/OwnableLegacy.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"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 anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing 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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyIA.sol\":\"OwnableLegacy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyIA.sol\":{\"keccak256\":\"0xfe418c4a1c08edc3ce83d38a334011e8317725d9289314f528373d5b16f26dec\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://27e5977922c2b3f37ce92d407d811e6126e291486b9e151cbc62341c25ec0150\",\"dweb:/ipfs/QmPpr8gyHNn2Yqx3cxcMmjobcdzA4xPcuneUxpwq9GAhZH\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"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 anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing 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."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyIA.sol":"OwnableLegacy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyIA.sol":{"keccak256":"0xfe418c4a1c08edc3ce83d38a334011e8317725d9289314f528373d5b16f26dec","urls":["bzz-raw://27e5977922c2b3f37ce92d407d811e6126e291486b9e151cbc62341c25ec0150","dweb:/ipfs/QmPpr8gyHNn2Yqx3cxcMmjobcdzA4xPcuneUxpwq9GAhZH"],"license":"GPL-3.0"}},"version":1},"id":21} \ No newline at end of file diff --git a/out/LegacyProxy.sol/IImplementationAuthorityLegacy.json b/out/LegacyProxy.sol/IImplementationAuthorityLegacy.json new file mode 100644 index 0000000..06fdc1d --- /dev/null +++ b/out/LegacyProxy.sol/IImplementationAuthorityLegacy.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"getImplementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getImplementation()":"aaf10f42"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyProxy.sol\":\"IImplementationAuthorityLegacy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyProxy.sol\":{\"keccak256\":\"0x2aa656bbb5c1a23503da33005d4acf20adaa985ca6bee18b0f5b4454002cb838\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://47463c70545c195de5e27b29c59e499b44e6bfc02f4cd07a4c58ddbb86b0311b\",\"dweb:/ipfs/QmPgTDpUf3jsu6jzYDXxLehDZTLLn7818C6b5ArMf1RCvb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"getImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyProxy.sol":"IImplementationAuthorityLegacy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyProxy.sol":{"keccak256":"0x2aa656bbb5c1a23503da33005d4acf20adaa985ca6bee18b0f5b4454002cb838","urls":["bzz-raw://47463c70545c195de5e27b29c59e499b44e6bfc02f4cd07a4c58ddbb86b0311b","dweb:/ipfs/QmPgTDpUf3jsu6jzYDXxLehDZTLLn7818C6b5ArMf1RCvb"],"license":"GPL-3.0"}},"version":1},"id":22} \ No newline at end of file diff --git a/out/LegacyProxy.sol/LegacyProxy.json b/out/LegacyProxy.sol/LegacyProxy.json new file mode 100644 index 0000000..6a6f11e --- /dev/null +++ b/out/LegacyProxy.sol/LegacyProxy.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_implementationAuthority","type":"address","internalType":"address"},{"name":"_identityRegistry","type":"address","internalType":"address"},{"name":"_compliance","type":"address","internalType":"address"},{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_decimals","type":"uint8","internalType":"uint8"},{"name":"_onchainID","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"implementationAuthority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161057f38038061057f83398101604081905261002f91610289565b600080546001600160a01b0319166001600160a01b03891690811782556040805163557887a160e11b8152905163aaf10f42916004808201926020929091908290030181865afa158015610087573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ab9190610348565b90506000816001600160a01b03168888888888886040516024016100d496959493929190610396565b60408051601f198184030181529181526020820180516001600160e01b0316633e46d86760e21b1790525161010991906103f1565b600060405180830381855af49150503d8060008114610144576040519150601f19603f3d011682016040523d82523d6000602084013e610149565b606091505b505090508061019e5760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e00000000000000000000604482015260640160405180910390fd5b50505050505050505061040d565b80516001600160a01b03811681146101c357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156101f95781810151838201526020016101e1565b50506000910152565b600082601f83011261021357600080fd5b81516001600160401b038082111561022d5761022d6101c8565b604051601f8301601f19908116603f01168101908282118183101715610255576102556101c8565b8160405283815286602085880101111561026e57600080fd5b61027f8460208301602089016101de565b9695505050505050565b600080600080600080600060e0888a0312156102a457600080fd5b6102ad886101ac565b96506102bb602089016101ac565b95506102c9604089016101ac565b60608901519095506001600160401b03808211156102e657600080fd5b6102f28b838c01610202565b955060808a015191508082111561030857600080fd5b506103158a828b01610202565b93505060a088015160ff8116811461032c57600080fd5b915061033a60c089016101ac565b905092959891949750929550565b60006020828403121561035a57600080fd5b610363826101ac565b9392505050565b600081518084526103828160208601602086016101de565b601f01601f19169290920160200192915050565b600060018060a01b038089168352808816602084015260c060408401526103c060c084018861036a565b83810360608501526103d2818861036a565b60ff969096166080850152509290921660a09091015250949350505050565b600082516104038184602087016101de565b9190910192915050565b6101638061041c6000396000f3fe60806040526004361061001e5760003560e01c80632307f882146100c1575b60008060009054906101000a90046001600160a01b03166001600160a01b031663aaf10f426040518163ffffffff1660e01b8152600401602060405180830381865afa158015610072573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061009691906100fd565b90503660008037600080366000846127105a03f43d806000803e8180156100bc57816000f35b816000fd5b3480156100cd57600080fd5b506000546100e1906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b60006020828403121561010f57600080fd5b81516001600160a01b038116811461012657600080fd5b939250505056fea2646970667358221220698b01c6fd59147a546d1cfbd2be6f07690d2ec46e85a7dea8b1dca84c9af4b064736f6c63430008180033","sourceMap":"174:1537:22:-:0;;;246:870;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;493:23;:50;;-1:-1:-1;;;;;;493:50:22;-1:-1:-1;;;;;493:50:22;;;;;;;570:75;;;-1:-1:-1;;;570:75:22;;;;:73;;:75;;;;;;;;;;;;;;;493:50;570:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;554:91;;716:12;742:5;-1:-1:-1;;;;;742:18:22;884:17;919:11;948:5;971:7;996:9;1023:10;774:273;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;774:273:22;;;;;;;;;;;;;;-1:-1:-1;;;;;774:273:22;-1:-1:-1;;;774:273:22;;;742:315;;;774:273;742:315;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;715:342;;;1075:7;1067:42;;;;-1:-1:-1;;;1067:42:22;;4079:2:165;1067:42:22;;;4061:21:165;4118:2;4098:18;;;4091:30;4157:24;4137:18;;;4130:52;4199:18;;1067:42:22;;;;;;;;483:633;;246:870;;;;;;;174:1537;;14:177:165;93:13;;-1:-1:-1;;;;;135:31:165;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:250;413:1;423:113;437:6;434:1;431:13;423:113;;;513:11;;;507:18;494:11;;;487:39;459:2;452:10;423:113;;;-1:-1:-1;;570:1:165;552:16;;545:27;328:250::o;583:699::-;637:5;690:3;683:4;675:6;671:17;667:27;657:55;;708:1;705;698:12;657:55;731:13;;-1:-1:-1;;;;;793:10:165;;;790:36;;;806:18;;:::i;:::-;881:2;875:9;849:2;935:13;;-1:-1:-1;;931:22:165;;;955:2;927:31;923:40;911:53;;;979:18;;;999:22;;;976:46;973:72;;;1025:18;;:::i;:::-;1065:10;1061:2;1054:22;1100:2;1092:6;1085:18;1146:3;1139:4;1134:2;1126:6;1122:15;1118:26;1115:35;1112:55;;;1163:1;1160;1153:12;1112:55;1176:76;1249:2;1242:4;1234:6;1230:17;1223:4;1215:6;1211:17;1176:76;:::i;:::-;1270:6;583:699;-1:-1:-1;;;;;;583:699:165:o;1287:1056::-;1429:6;1437;1445;1453;1461;1469;1477;1530:3;1518:9;1509:7;1505:23;1501:33;1498:53;;;1547:1;1544;1537:12;1498:53;1570:40;1600:9;1570:40;:::i;:::-;1560:50;;1629:49;1674:2;1663:9;1659:18;1629:49;:::i;:::-;1619:59;;1697:49;1742:2;1731:9;1727:18;1697:49;:::i;:::-;1790:2;1775:18;;1769:25;1687:59;;-1:-1:-1;;;;;;1843:14:165;;;1840:34;;;1870:1;1867;1860:12;1840:34;1893:61;1946:7;1937:6;1926:9;1922:22;1893:61;:::i;:::-;1883:71;;2000:3;1989:9;1985:19;1979:26;1963:42;;2030:2;2020:8;2017:16;2014:36;;;2046:1;2043;2036:12;2014:36;;2069:63;2124:7;2113:8;2102:9;2098:24;2069:63;:::i;:::-;2059:73;;;2175:3;2164:9;2160:19;2154:26;2220:4;2213:5;2209:16;2202:5;2199:27;2189:55;;2240:1;2237;2230:12;2189:55;2263:5;-1:-1:-1;2287:50:165;2332:3;2317:19;;2287:50;:::i;:::-;2277:60;;1287:1056;;;;;;;;;;:::o;2348:208::-;2418:6;2471:2;2459:9;2450:7;2446:23;2442:32;2439:52;;;2487:1;2484;2477:12;2439:52;2510:40;2540:9;2510:40;:::i;:::-;2500:50;2348:208;-1:-1:-1;;;2348:208:165:o;2561:271::-;2603:3;2641:5;2635:12;2668:6;2663:3;2656:19;2684:76;2753:6;2746:4;2741:3;2737:14;2730:4;2723:5;2719:16;2684:76;:::i;:::-;2814:2;2793:15;-1:-1:-1;;2789:29:165;2780:39;;;;2821:4;2776:50;;2561:271;-1:-1:-1;;2561:271:165:o;2837:743::-;3105:4;3151:1;3147;3142:3;3138:11;3134:19;3192:2;3184:6;3180:15;3169:9;3162:34;3244:2;3236:6;3232:15;3227:2;3216:9;3212:18;3205:43;3284:3;3279:2;3268:9;3264:18;3257:31;3311:46;3352:3;3341:9;3337:19;3329:6;3311:46;:::i;:::-;3405:9;3397:6;3393:22;3388:2;3377:9;3373:18;3366:50;3433:33;3459:6;3451;3433:33;:::i;:::-;3515:4;3503:17;;;;3497:3;3482:19;;3475:46;-1:-1:-1;3558:15:165;;;;3552:3;3537:19;;;3530:44;-1:-1:-1;3425:41:165;2837:743;-1:-1:-1;;;;2837:743:165:o;3585:287::-;3714:3;3752:6;3746:13;3768:66;3827:6;3822:3;3815:4;3807:6;3803:17;3768:66;:::i;:::-;3850:16;;;;;3585:287;-1:-1:-1;;3585:287:165:o;3877:346::-;174:1537:22;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061001e5760003560e01c80632307f882146100c1575b60008060009054906101000a90046001600160a01b03166001600160a01b031663aaf10f426040518163ffffffff1660e01b8152600401602060405180830381865afa158015610072573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061009691906100fd565b90503660008037600080366000846127105a03f43d806000803e8180156100bc57816000f35b816000fd5b3480156100cd57600080fd5b506000546100e1906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b60006020828403121561010f57600080fd5b81516001600160a01b038116811461012657600080fd5b939250505056fea2646970667358221220698b01c6fd59147a546d1cfbd2be6f07690d2ec46e85a7dea8b1dca84c9af4b064736f6c63430008180033","sourceMap":"174:1537:22:-:0;;;;;;;;;;;;;;;;;;1160:13;1207:23;;;;;;;;;-1:-1:-1;;;;;1207:23:22;-1:-1:-1;;;;;1176:73:22;;:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1160:91;;1339:14;1334:3;1329;1316:38;1445:1;1442;1426:14;1421:3;1414:5;1406;1399;1395:17;1382:65;1473:16;1523:5;1520:1;1517;1502:27;1549:7;1569:55;;;;1673:5;1670:1;1663:16;1569:55;1604:5;1601:1;1594:16;201:38;;;;;;;;;;-1:-1:-1;201:38:22;;;;-1:-1:-1;;;;;201:38:22;;;;;;-1:-1:-1;;;;;473:32:165;;;455:51;;443:2;428:18;201:38:22;;;;;;;14:290:165;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:165;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:165:o","linkReferences":{}},"methodIdentifiers":{"implementationAuthority()":"2307f882"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_implementationAuthority\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_identityRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"implementationAuthority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyProxy.sol\":\"LegacyProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyProxy.sol\":{\"keccak256\":\"0x2aa656bbb5c1a23503da33005d4acf20adaa985ca6bee18b0f5b4454002cb838\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://47463c70545c195de5e27b29c59e499b44e6bfc02f4cd07a4c58ddbb86b0311b\",\"dweb:/ipfs/QmPgTDpUf3jsu6jzYDXxLehDZTLLn7818C6b5ArMf1RCvb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_implementationAuthority","type":"address"},{"internalType":"address","name":"_identityRegistry","type":"address"},{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"address","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"implementationAuthority","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyProxy.sol":"LegacyProxy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyProxy.sol":{"keccak256":"0x2aa656bbb5c1a23503da33005d4acf20adaa985ca6bee18b0f5b4454002cb838","urls":["bzz-raw://47463c70545c195de5e27b29c59e499b44e6bfc02f4cd07a4c58ddbb86b0311b","dweb:/ipfs/QmPgTDpUf3jsu6jzYDXxLehDZTLLn7818C6b5ArMf1RCvb"],"license":"GPL-3.0"}},"version":1},"id":22} \ No newline at end of file diff --git a/out/LegacyToken_3_5_2.sol/AgentRoleUpgradeableLegacy.json b/out/LegacyToken_3_5_2.sol/AgentRoleUpgradeableLegacy.json new file mode 100644 index 0000000..7e828d7 --- /dev/null +++ b/out/LegacyToken_3_5_2.sol/AgentRoleUpgradeableLegacy.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610576806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631ffbb06414610067578063715018a61461008f57806384e79842146100995780638da5cb5b146100ac57806397a6278e146100c7578063f2fde38b146100da575b600080fd5b61007a6100753660046104db565b6100ed565b60405190151581526020015b60405180910390f35b610097610100565b005b6100976100a73660046104db565b61017d565b6033546040516001600160a01b039091168152602001610086565b6100976100d53660046104db565b6101e9565b6100976100e83660046104db565b610255565b60006100fa606583610340565b92915050565b6033546001600160a01b031633146101335760405162461bcd60e51b815260040161012a9061050b565b60405180910390fd5b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319169055565b6033546001600160a01b031633146101a75760405162461bcd60e51b815260040161012a9061050b565b6101b26065826103c9565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b6033546001600160a01b031633146102135760405162461bcd60e51b815260040161012a9061050b565b61021e606582610453565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6033546001600160a01b0316331461027f5760405162461bcd60e51b815260040161012a9061050b565b6001600160a01b0381166102e45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161012a565b6033546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b0382166103a95760405162461bcd60e51b815260206004820152602860248201527f526f6c65734c65676163793a206163636f756e7420697320746865207a65726f604482015267206164647265737360c01b606482015260840161012a565b506001600160a01b03166000908152602091909152604090205460ff1690565b6103d38282610340565b1561042e5760405162461bcd60e51b815260206004820152602560248201527f526f6c65734c65676163793a206163636f756e7420616c72656164792068617360448201526420726f6c6560d81b606482015260840161012a565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61045d8282610340565b6104b95760405162461bcd60e51b815260206004820152602760248201527f526f6c65734c65676163793a206163636f756e7420646f6573206e6f74206861604482015266766520726f6c6560c81b606482015260840161012a565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6000602082840312156104ed57600080fd5b81356001600160a01b038116811461050457600080fd5b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea26469706673582212206178259abda3421995fc15b90568bb28a8d79a213684780e4d4c4e81164f897164736f6c63430008180033","sourceMap":"74584:747:23:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c80631ffbb06414610067578063715018a61461008f57806384e79842146100995780638da5cb5b146100ac57806397a6278e146100c7578063f2fde38b146100da575b600080fd5b61007a6100753660046104db565b6100ed565b60405190151581526020015b60405180910390f35b610097610100565b005b6100976100a73660046104db565b61017d565b6033546040516001600160a01b039091168152602001610086565b6100976100d53660046104db565b6101e9565b6100976100e83660046104db565b610255565b60006100fa606583610340565b92915050565b6033546001600160a01b031633146101335760405162461bcd60e51b815260040161012a9061050b565b60405180910390fd5b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319169055565b6033546001600160a01b031633146101a75760405162461bcd60e51b815260040161012a9061050b565b6101b26065826103c9565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b6033546001600160a01b031633146102135760405162461bcd60e51b815260040161012a9061050b565b61021e606582610453565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6033546001600160a01b0316331461027f5760405162461bcd60e51b815260040161012a9061050b565b6001600160a01b0381166102e45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161012a565b6033546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b0382166103a95760405162461bcd60e51b815260206004820152602860248201527f526f6c65734c65676163793a206163636f756e7420697320746865207a65726f604482015267206164647265737360c01b606482015260840161012a565b506001600160a01b03166000908152602091909152604090205460ff1690565b6103d38282610340565b1561042e5760405162461bcd60e51b815260206004820152602560248201527f526f6c65734c65676163793a206163636f756e7420616c72656164792068617360448201526420726f6c6560d81b606482015260840161012a565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61045d8282610340565b6104b95760405162461bcd60e51b815260206004820152602760248201527f526f6c65734c65676163793a206163636f756e7420646f6573206e6f74206861604482015266766520726f6c6560c81b606482015260840161012a565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6000602082840312156104ed57600080fd5b81356001600160a01b038116811461050457600080fd5b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea26469706673582212206178259abda3421995fc15b90568bb28a8d79a213684780e4d4c4e81164f897164736f6c63430008180033","sourceMap":"74584:747:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;74966:103;;;;;;:::i;:::-;;:::i;:::-;;;470:14:165;;463:22;445:41;;433:2;418:18;74966:103:23;;;;;;;;71871:145;;;:::i;:::-;;75075:120;;;;;;:::i;:::-;;:::i;71239:85::-;71311:6;;71239:85;;-1:-1:-1;;;;;71311:6:23;;;643:51:165;;631:2;616:18;71239:85:23;497:203:165;75201:128:23;;;;;;:::i;:::-;;:::i;72165:240::-;;;;;;:::i;:::-;;:::i;74966:103::-;75020:4;75043:19;:7;75055:6;75043:11;:19::i;:::-;75036:26;74966:103;-1:-1:-1;;74966:103:23:o;71871:145::-;71311:6;;-1:-1:-1;;;;;71311:6:23;69658:10;71451:23;71443:68;;;;-1:-1:-1;;;71443:68:23;;;;;;;:::i;:::-;;;;;;;;;71961:6:::1;::::0;71940:40:::1;::::0;71977:1:::1;::::0;-1:-1:-1;;;;;71961:6:23::1;::::0;71940:40:::1;::::0;71977:1;;71940:40:::1;71990:6;:19:::0;;-1:-1:-1;;;;;;71990:19:23::1;::::0;;71871:145::o;75075:120::-;71311:6;;-1:-1:-1;;;;;71311:6:23;69658:10;71451:23;71443:68;;;;-1:-1:-1;;;71443:68:23;;;;;;;:::i;:::-;75136:19:::1;:7;75148:6:::0;75136:11:::1;:19::i;:::-;75170:18;::::0;-1:-1:-1;;;;;75170:18:23;::::1;::::0;::::1;::::0;;;::::1;75075:120:::0;:::o;75201:128::-;71311:6;;-1:-1:-1;;;;;71311:6:23;69658:10;71451:23;71443:68;;;;-1:-1:-1;;;71443:68:23;;;;;;;:::i;:::-;75265:22:::1;:7;75280:6:::0;75265:14:::1;:22::i;:::-;75302:20;::::0;-1:-1:-1;;;;;75302:20:23;::::1;::::0;::::1;::::0;;;::::1;75201:128:::0;:::o;72165:240::-;71311:6;;-1:-1:-1;;;;;71311:6:23;69658:10;71451:23;71443:68;;;;-1:-1:-1;;;71443:68:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;72253:22:23;::::1;72245:73;;;::::0;-1:-1:-1;;;72245:73:23;;1268:2:165;72245:73:23::1;::::0;::::1;1250:21:165::0;1307:2;1287:18;;;1280:30;1346:34;1326:18;;;1319:62;-1:-1:-1;;;1397:18:165;;;1390:36;1443:19;;72245:73:23::1;1066:402:165::0;72245:73:23::1;72354:6;::::0;72333:38:::1;::::0;-1:-1:-1;;;;;72333:38:23;;::::1;::::0;72354:6:::1;::::0;72333:38:::1;::::0;72354:6:::1;::::0;72333:38:::1;72381:6;:17:::0;;-1:-1:-1;;;;;;72381:17:23::1;-1:-1:-1::0;;;;;72381:17:23;;;::::1;::::0;;;::::1;::::0;;72165:240::o;73259:206::-;73331:4;-1:-1:-1;;;;;73355:21:23;;73347:74;;;;-1:-1:-1;;;73347:74:23;;1675:2:165;73347:74:23;;;1657:21:165;1714:2;1694:18;;;1687:30;1753:34;1733:18;;;1726:62;-1:-1:-1;;;1804:18:165;;;1797:38;1852:19;;73347:74:23;1473:404:165;73347:74:23;-1:-1:-1;;;;;;73438:20:23;:11;:20;;;;;;;;;;;;;;;73259:206::o;72728:181::-;72805:18;72809:4;72815:7;72805:3;:18::i;:::-;72804:19;72796:69;;;;-1:-1:-1;;;72796:69:23;;2084:2:165;72796:69:23;;;2066:21:165;2123:2;2103:18;;;2096:30;2162:34;2142:18;;;2135:62;-1:-1:-1;;;2213:18:165;;;2206:35;2258:19;;72796:69:23;1882:401:165;72796:69:23;-1:-1:-1;;;;;72875:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;72875:27:23;72898:4;72875:27;;;72728:181::o;72984:186::-;73063:18;73067:4;73073:7;73063:3;:18::i;:::-;73055:70;;;;-1:-1:-1;;;73055:70:23;;2490:2:165;73055:70:23;;;2472:21:165;2529:2;2509:18;;;2502:30;2568:34;2548:18;;;2541:62;-1:-1:-1;;;2619:18:165;;;2612:37;2666:19;;73055:70:23;2288:403:165;73055:70:23;-1:-1:-1;;;;;73135:20:23;73158:5;73135:20;;;;;;;;;;;:28;;-1:-1:-1;;73135:28:23;;;72984:186::o;14:286:165:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:165;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:165:o;705:356::-;907:2;889:21;;;926:18;;;919:30;985:34;980:2;965:18;;958:62;1052:2;1037:18;;705:356::o","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","isAgent(address)":"1ffbb064","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"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\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":{\"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 anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing 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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"NOTICE The T-REX software is licensed under a proprietary license or the GPL v.3. If you choose to receive it under the GPL v.3 license, the following applies: T-REX is a suite of smart contracts developed by Tokeny to manage and transfer financial assets on the ethereum blockchain Copyright (C) 2021, Tokeny s\\u00e0rl. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see .\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":\"AgentRoleUpgradeableLegacy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":{\"keccak256\":\"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a\",\"dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"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 anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing 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."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":"AgentRoleUpgradeableLegacy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":{"keccak256":"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d","urls":["bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a","dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3"],"license":"GPL-3.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/LegacyToken_3_5_2.sol/ContextUpgradeableLegacy.json b/out/LegacyToken_3_5_2.sol/ContextUpgradeableLegacy.json new file mode 100644 index 0000000..51aa7fb --- /dev/null +++ b/out/LegacyToken_3_5_2.sol/ContextUpgradeableLegacy.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":\"ContextUpgradeableLegacy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":{\"keccak256\":\"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a\",\"dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":"ContextUpgradeableLegacy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":{"keccak256":"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d","urls":["bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a","dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3"],"license":"GPL-3.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/LegacyToken_3_5_2.sol/IClaimIssuerLegacy.json b/out/LegacyToken_3_5_2.sol/IClaimIssuerLegacy.json new file mode 100644 index 0000000..25311a3 --- /dev/null +++ b/out/LegacyToken_3_5_2.sol/IClaimIssuerLegacy.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addClaim","inputs":[{"name":"_topic","type":"uint256","internalType":"uint256"},{"name":"_scheme","type":"uint256","internalType":"uint256"},{"name":"issuer","type":"address","internalType":"address"},{"name":"_signature","type":"bytes","internalType":"bytes"},{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_uri","type":"string","internalType":"string"}],"outputs":[{"name":"claimRequestId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"addKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"},{"name":"_keyType","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"_id","type":"uint256","internalType":"uint256"},{"name":"_approve","type":"bool","internalType":"bool"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"execute","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"executionId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"getClaim","inputs":[{"name":"_claimId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"topic","type":"uint256","internalType":"uint256"},{"name":"scheme","type":"uint256","internalType":"uint256"},{"name":"issuer","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"uri","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getClaimIdsByTopic","inputs":[{"name":"_topic","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"claimIds","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"purposes","type":"uint256[]","internalType":"uint256[]"},{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getKeyPurposes","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_purposes","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getKeysByPurpose","inputs":[{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keys","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getRecoveredAddress","inputs":[{"name":"sig","type":"bytes","internalType":"bytes"},{"name":"dataHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"isClaimRevoked","inputs":[{"name":"_sig","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isClaimValid","inputs":[{"name":"_identity","type":"address","internalType":"contract LegacyIIdentity"},{"name":"claimTopic","type":"uint256","internalType":"uint256"},{"name":"sig","type":"bytes","internalType":"bytes"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyHasPurpose","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeClaim","inputs":[{"name":"_claimId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokeClaim","inputs":[{"name":"_claimId","type":"bytes32","internalType":"bytes32"},{"name":"_identity","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approved","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ClaimAdded","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimChanged","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimRemoved","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimRequested","inputs":[{"name":"claimRequestId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"Executed","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ExecutionFailed","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ExecutionRequested","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"KeyAdded","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"purpose","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"keyType","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"KeyRemoved","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"purpose","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"keyType","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"KeysRequiredChanged","inputs":[{"name":"purpose","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"number","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addClaim(uint256,uint256,address,bytes,bytes,string)":"b1a34e0d","addKey(bytes32,uint256,uint256)":"1d381240","approve(uint256,bool)":"747442d3","execute(address,uint256,bytes)":"b61d27f6","getClaim(bytes32)":"c9100bcb","getClaimIdsByTopic(uint256)":"80e9e9e1","getKey(bytes32)":"12aaac70","getKeyPurposes(bytes32)":"fb307b34","getKeysByPurpose(uint256)":"9010f726","getRecoveredAddress(bytes,bytes32)":"c3b129e3","isClaimRevoked(bytes)":"2646b264","isClaimValid(address,uint256,bytes,bytes)":"c0969a6e","keyHasPurpose(bytes32,uint256)":"d202158d","removeClaim(bytes32)":"4eee424a","removeKey(bytes32,uint256)":"53d413c5","revokeClaim(bytes32,address)":"73c33708"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"Approved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"claimRequestId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Executed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"name\":\"KeysRequiredChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_topic\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_scheme\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"_uri\",\"type\":\"string\"}],\"name\":\"addClaim\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimRequestId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_keyType\",\"type\":\"uint256\"}],\"name\":\"addKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_approve\",\"type\":\"bool\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimId\",\"type\":\"bytes32\"}],\"name\":\"getClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_topic\",\"type\":\"uint256\"}],\"name\":\"getClaimIdsByTopic\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"claimIds\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getKey\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"purposes\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getKeyPurposes\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_purposes\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"getKeysByPurpose\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"keys\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"sig\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"dataHash\",\"type\":\"bytes32\"}],\"name\":\"getRecoveredAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_sig\",\"type\":\"bytes\"}],\"name\":\"isClaimRevoked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract LegacyIIdentity\",\"name\":\"_identity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sig\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"isClaimValid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"keyHasPurpose\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimId\",\"type\":\"bytes32\"}],\"name\":\"removeClaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"removeKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_identity\",\"type\":\"address\"}],\"name\":\"revokeClaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approved(uint256,bool)\":{\"details\":\"Emitted when an execution request was approved. Specification: MUST be triggered when approve was successfully called.\"},\"ClaimAdded(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was added. Specification: MUST be triggered when a claim was successfully added.\"},\"ClaimChanged(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was changed. Specification: MUST be triggered when changeClaim was successfully called.\"},\"ClaimRemoved(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was removed. Specification: MUST be triggered when removeClaim was successfully called.\"},\"ClaimRequested(uint256,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim request was performed. Specification: Is not clear\"},\"Executed(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execute operation was approved and successfully performed. Specification: MUST be triggered when approve was called and the execution was successfully approved.\"},\"ExecutionRequested(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execution request was performed via `execute`. Specification: MUST be triggered when execute was successfully called.\"},\"KeyAdded(bytes32,uint256,uint256)\":{\"details\":\"Emitted when a key was added to the Identity. Specification: MUST be triggered when addKey was successfully called.\"},\"KeyRemoved(bytes32,uint256,uint256)\":{\"details\":\"Emitted when a key was removed from the Identity. Specification: MUST be triggered when removeKey was successfully called.\"},\"KeysRequiredChanged(uint256,uint256)\":{\"details\":\"Emitted when the list of required keys to perform an action was updated. Specification: MUST be triggered when changeKeysRequired was successfully called.\"}},\"kind\":\"dev\",\"methods\":{\"addClaim(uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Add or update a claim. Triggers Event: `ClaimRequested`, `ClaimAdded`, `ClaimChanged` Specification: Requests the ADDITION or the CHANGE of a claim from an issuer. Claims can requested to be added by anybody, including the claim holder itself (self issued). _signature is a signed message of the following structure: `keccak256(abi.encode(address identityHolder_address, uint256 topic, bytes data))`. Claim IDs are generated using `keccak256(abi.encode(address issuer_address + uint256 topic))`. This COULD implement an approval process for pending claims, or add them right away. MUST return a claimRequestId (use claim ID) that COULD be sent to the approve function.\"},\"addKey(bytes32,uint256,uint256)\":{\"details\":\"Adds a _key to the identity. The _purpose specifies the purpose of the key. Triggers Event: `KeyAdded` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval.\"},\"approve(uint256,bool)\":{\"details\":\"Approves an execution or claim addition. Triggers Event: `Approved`, `Executed` Specification: This SHOULD require n of m approvals of keys purpose 1, if the _to of the execution is the identity contract itself, to successfully approve an execution. And COULD require n of m approvals of keys purpose 2, if the _to of the execution is another contract, to successfully approve an execution.\"},\"execute(address,uint256,bytes)\":{\"details\":\"Passes an execution instruction to an ERC725 identity. Triggers Event: `ExecutionRequested`, `Executed` Specification: SHOULD require approve to be called with one or more keys of purpose 1 or 2 to approve this execution. Execute COULD be used as the only accessor for `addKey` and `removeKey`.\"},\"getClaim(bytes32)\":{\"details\":\"Get a claim by its ID. Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`.\"},\"getClaimIdsByTopic(uint256)\":{\"details\":\"Returns an array of claim IDs by topic.\"},\"getKey(bytes32)\":{\"details\":\"Returns the full key data, if present in the identity.\"},\"getKeyPurposes(bytes32)\":{\"details\":\"Returns the list of purposes associated with a key.\"},\"getKeysByPurpose(uint256)\":{\"details\":\"Returns an array of public key bytes32 held by this identity.\"},\"keyHasPurpose(bytes32,uint256)\":{\"details\":\"Returns TRUE if a key is present and has the given purpose. If the key is not present it returns FALSE.\"},\"removeClaim(bytes32)\":{\"details\":\"Removes a claim. Triggers Event: `ClaimRemoved` Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`.\"},\"removeKey(bytes32,uint256)\":{\"details\":\"Removes _purpose for _key from the identity. Triggers Event: `KeyRemoved` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":\"IClaimIssuerLegacy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":{\"keccak256\":\"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a\",\"dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"Approved","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"claimRequestId","type":"uint256","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimRequested","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Executed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"ExecutionFailed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"ExecutionRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"uint256","name":"purpose","type":"uint256","indexed":true},{"internalType":"uint256","name":"keyType","type":"uint256","indexed":true}],"type":"event","name":"KeyAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"uint256","name":"purpose","type":"uint256","indexed":true},{"internalType":"uint256","name":"keyType","type":"uint256","indexed":true}],"type":"event","name":"KeyRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"purpose","type":"uint256","indexed":false},{"internalType":"uint256","name":"number","type":"uint256","indexed":false}],"type":"event","name":"KeysRequiredChanged","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_topic","type":"uint256"},{"internalType":"uint256","name":"_scheme","type":"uint256"},{"internalType":"address","name":"issuer","type":"address"},{"internalType":"bytes","name":"_signature","type":"bytes"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"string","name":"_uri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addClaim","outputs":[{"internalType":"bytes32","name":"claimRequestId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"},{"internalType":"uint256","name":"_keyType","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addKey","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"bool","name":"_approve","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"execute","outputs":[{"internalType":"uint256","name":"executionId","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"_claimId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClaim","outputs":[{"internalType":"uint256","name":"topic","type":"uint256"},{"internalType":"uint256","name":"scheme","type":"uint256"},{"internalType":"address","name":"issuer","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string","name":"uri","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"_topic","type":"uint256"}],"stateMutability":"view","type":"function","name":"getClaimIdsByTopic","outputs":[{"internalType":"bytes32[]","name":"claimIds","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKey","outputs":[{"internalType":"uint256[]","name":"purposes","type":"uint256[]"},{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"bytes32","name":"key","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeyPurposes","outputs":[{"internalType":"uint256[]","name":"_purposes","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"view","type":"function","name":"getKeysByPurpose","outputs":[{"internalType":"bytes32[]","name":"keys","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes","name":"sig","type":"bytes"},{"internalType":"bytes32","name":"dataHash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getRecoveredAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_sig","type":"bytes"}],"stateMutability":"view","type":"function","name":"isClaimRevoked","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"contract LegacyIIdentity","name":"_identity","type":"address"},{"internalType":"uint256","name":"claimTopic","type":"uint256"},{"internalType":"bytes","name":"sig","type":"bytes"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"isClaimValid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"view","type":"function","name":"keyHasPurpose","outputs":[{"internalType":"bool","name":"exists","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_claimId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeClaim","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeKey","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_claimId","type":"bytes32"},{"internalType":"address","name":"_identity","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeClaim","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"addClaim(uint256,uint256,address,bytes,bytes,string)":{"details":"Add or update a claim. Triggers Event: `ClaimRequested`, `ClaimAdded`, `ClaimChanged` Specification: Requests the ADDITION or the CHANGE of a claim from an issuer. Claims can requested to be added by anybody, including the claim holder itself (self issued). _signature is a signed message of the following structure: `keccak256(abi.encode(address identityHolder_address, uint256 topic, bytes data))`. Claim IDs are generated using `keccak256(abi.encode(address issuer_address + uint256 topic))`. This COULD implement an approval process for pending claims, or add them right away. MUST return a claimRequestId (use claim ID) that COULD be sent to the approve function."},"addKey(bytes32,uint256,uint256)":{"details":"Adds a _key to the identity. The _purpose specifies the purpose of the key. Triggers Event: `KeyAdded` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval."},"approve(uint256,bool)":{"details":"Approves an execution or claim addition. Triggers Event: `Approved`, `Executed` Specification: This SHOULD require n of m approvals of keys purpose 1, if the _to of the execution is the identity contract itself, to successfully approve an execution. And COULD require n of m approvals of keys purpose 2, if the _to of the execution is another contract, to successfully approve an execution."},"execute(address,uint256,bytes)":{"details":"Passes an execution instruction to an ERC725 identity. Triggers Event: `ExecutionRequested`, `Executed` Specification: SHOULD require approve to be called with one or more keys of purpose 1 or 2 to approve this execution. Execute COULD be used as the only accessor for `addKey` and `removeKey`."},"getClaim(bytes32)":{"details":"Get a claim by its ID. Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`."},"getClaimIdsByTopic(uint256)":{"details":"Returns an array of claim IDs by topic."},"getKey(bytes32)":{"details":"Returns the full key data, if present in the identity."},"getKeyPurposes(bytes32)":{"details":"Returns the list of purposes associated with a key."},"getKeysByPurpose(uint256)":{"details":"Returns an array of public key bytes32 held by this identity."},"keyHasPurpose(bytes32,uint256)":{"details":"Returns TRUE if a key is present and has the given purpose. If the key is not present it returns FALSE."},"removeClaim(bytes32)":{"details":"Removes a claim. Triggers Event: `ClaimRemoved` Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`."},"removeKey(bytes32,uint256)":{"details":"Removes _purpose for _key from the identity. Triggers Event: `KeyRemoved` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":"IClaimIssuerLegacy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":{"keccak256":"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d","urls":["bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a","dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3"],"license":"GPL-3.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/LegacyToken_3_5_2.sol/IClaimTopicsRegistryLegacy.json b/out/LegacyToken_3_5_2.sol/IClaimTopicsRegistryLegacy.json new file mode 100644 index 0000000..3898fc4 --- /dev/null +++ b/out/LegacyToken_3_5_2.sol/IClaimTopicsRegistryLegacy.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addClaimTopic","inputs":[{"name":"_claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getClaimTopics","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"removeClaimTopic","inputs":[{"name":"_claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnershipOnClaimTopicsRegistryContract","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ClaimTopicAdded","inputs":[{"name":"claimTopic","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimTopicRemoved","inputs":[{"name":"claimTopic","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addClaimTopic(uint256)":"c7b22551","getClaimTopics()":"df09d604","removeClaimTopic(uint256)":"08297846","transferOwnershipOnClaimTopicsRegistryContract(address)":"d5144472"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"ClaimTopicAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"ClaimTopicRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimTopic\",\"type\":\"uint256\"}],\"name\":\"addClaimTopic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getClaimTopics\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimTopic\",\"type\":\"uint256\"}],\"name\":\"removeClaimTopic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnershipOnClaimTopicsRegistryContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addClaimTopic(uint256)\":{\"details\":\"Add a trusted claim topic (For example: KYC=1, AML=2). Only owner can call. emits `ClaimTopicAdded` event\",\"params\":{\"_claimTopic\":\"The claim topic index\"}},\"getClaimTopics()\":{\"details\":\"Get the trusted claim topics for the security token\",\"returns\":{\"_0\":\"Array of trusted claim topics\"}},\"removeClaimTopic(uint256)\":{\"details\":\"Remove a trusted claim topic (For example: KYC=1, AML=2). Only owner can call. emits `ClaimTopicRemoved` event\",\"params\":{\"_claimTopic\":\"The claim topic index\"}},\"transferOwnershipOnClaimTopicsRegistryContract(address)\":{\"details\":\"Transfers the Ownership of ClaimTopics to a new Owner. Only owner can call.\",\"params\":{\"_newOwner\":\"The new owner of this contract.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ClaimTopicAdded(uint256)\":{\"notice\":\"this event is emitted when a claim topic has been added to the ClaimTopicsRegistry the event is emitted by the 'addClaimTopic' function `claimTopic` is the required claim added to the Claim Topics Registry\"},\"ClaimTopicRemoved(uint256)\":{\"notice\":\"this event is emitted when a claim topic has been removed from the ClaimTopicsRegistry the event is emitted by the 'removeClaimTopic' function `claimTopic` is the required claim removed from the Claim Topics Registry\"}},\"kind\":\"user\",\"methods\":{},\"notice\":\"NOTICE The T-REX software is licensed under a proprietary license or the GPL v.3. If you choose to receive it under the GPL v.3 license, the following applies: T-REX is a suite of smart contracts developed by Tokeny to manage and transfer financial assets on the ethereum blockchain Copyright (C) 2021, Tokeny s\\u00e0rl. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see .\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":\"IClaimTopicsRegistryLegacy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":{\"keccak256\":\"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a\",\"dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256","indexed":true}],"type":"event","name":"ClaimTopicAdded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256","indexed":true}],"type":"event","name":"ClaimTopicRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_claimTopic","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addClaimTopic"},{"inputs":[],"stateMutability":"view","type":"function","name":"getClaimTopics","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"_claimTopic","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeClaimTopic"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnershipOnClaimTopicsRegistryContract"}],"devdoc":{"kind":"dev","methods":{"addClaimTopic(uint256)":{"details":"Add a trusted claim topic (For example: KYC=1, AML=2). Only owner can call. emits `ClaimTopicAdded` event","params":{"_claimTopic":"The claim topic index"}},"getClaimTopics()":{"details":"Get the trusted claim topics for the security token","returns":{"_0":"Array of trusted claim topics"}},"removeClaimTopic(uint256)":{"details":"Remove a trusted claim topic (For example: KYC=1, AML=2). Only owner can call. emits `ClaimTopicRemoved` event","params":{"_claimTopic":"The claim topic index"}},"transferOwnershipOnClaimTopicsRegistryContract(address)":{"details":"Transfers the Ownership of ClaimTopics to a new Owner. Only owner can call.","params":{"_newOwner":"The new owner of this contract."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":"IClaimTopicsRegistryLegacy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":{"keccak256":"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d","urls":["bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a","dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3"],"license":"GPL-3.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/LegacyToken_3_5_2.sol/IComplianceLegacy.json b/out/LegacyToken_3_5_2.sol/IComplianceLegacy.json new file mode 100644 index 0000000..657ca93 --- /dev/null +++ b/out/LegacyToken_3_5_2.sol/IComplianceLegacy.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenBound","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnershipOnComplianceContract","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"TokenAgentAdded","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentRemoved","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addTokenAgent(address)":"ff3e6954","bindToken(address)":"3ff5aa02","canTransfer(address,address,uint256)":"e46638e6","created(address,uint256)":"5f8dead3","destroyed(address,uint256)":"8d2ea772","isTokenAgent(address)":"346531fa","isTokenBound(address)":"993e8b95","removeTokenAgent(address)":"cdde2932","transferOwnershipOnComplianceContract(address)":"7bcf0487","transferred(address,address,uint256)":"8baf29b4","unbindToken(address)":"40db3b50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"addTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"isTokenAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"removeTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnershipOnComplianceContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addTokenAgent(address)\":{\"details\":\"adds an agent to the list of token agents\",\"params\":{\"_agentAddress\":\"address of the agent to be added Emits a TokenAgentAdded event\"}},\"bindToken(address)\":{\"details\":\"binds a token to the compliance contract\",\"params\":{\"_token\":\"address of the token to bind Emits a TokenBound event\"}},\"canTransfer(address,address,uint256)\":{\"details\":\"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"created(address,uint256)\":{\"details\":\"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_to\":\"The address of the receiver\"}},\"destroyed(address,uint256)\":{\"details\":\"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the receiver\"}},\"isTokenAgent(address)\":{\"details\":\"Returns true if the Address is in the list of token agents\",\"params\":{\"_agentAddress\":\"address of this agent\"}},\"isTokenBound(address)\":{\"details\":\"Returns true if the address given corresponds to a token that is bound with the Compliance contract\",\"params\":{\"_token\":\"address of the token\"}},\"removeTokenAgent(address)\":{\"details\":\"remove Agent from the list of token agents\",\"params\":{\"_agentAddress\":\"address of the agent to be removed (must be added first) Emits a TokenAgentRemoved event\"}},\"transferOwnershipOnComplianceContract(address)\":{\"details\":\"function used to transfer the ownership of the compliance contract to a new owner, giving him access to the `OnlyOwner` functions implemented on the contract\",\"params\":{\"newOwner\":\"The address of the new owner of the compliance contract This function can only be called by the owner of the compliance contract emits an `OwnershipTransferred` event\"}},\"transferred(address,address,uint256)\":{\"details\":\"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"unbindToken(address)\":{\"details\":\"unbinds a token from the compliance contract\",\"params\":{\"_token\":\"address of the token to unbind Emits a TokenUnbound event\"}}},\"version\":1},\"userdoc\":{\"events\":{\"TokenAgentAdded(address)\":{\"notice\":\"this event is emitted when the Agent has been added on the allowedList of this Compliance. the event is emitted by the Compliance constructor and by the addTokenAgent function `_agentAddress` is the address of the Agent to add\"},\"TokenAgentRemoved(address)\":{\"notice\":\"this event is emitted when the Agent has been removed from the agent list of this Compliance. the event is emitted by the Compliance constructor and by the removeTokenAgent function `_agentAddress` is the address of the Agent to remove\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"}},\"kind\":\"user\",\"methods\":{},\"notice\":\"NOTICE The T-REX software is licensed under a proprietary license or the GPL v.3. If you choose to receive it under the GPL v.3 license, the following applies: T-REX is a suite of smart contracts developed by Tokeny to manage and transfer financial assets on the ethereum blockchain Copyright (C) 2021, Tokeny s\\u00e0rl. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see .\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":\"IComplianceLegacy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":{\"keccak256\":\"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a\",\"dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenAgent"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenAgent"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnershipOnComplianceContract"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"}],"devdoc":{"kind":"dev","methods":{"addTokenAgent(address)":{"details":"adds an agent to the list of token agents","params":{"_agentAddress":"address of the agent to be added Emits a TokenAgentAdded event"}},"bindToken(address)":{"details":"binds a token to the compliance contract","params":{"_token":"address of the token to bind Emits a TokenBound event"}},"canTransfer(address,address,uint256)":{"details":"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"created(address,uint256)":{"details":"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_to":"The address of the receiver"}},"destroyed(address,uint256)":{"details":"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the receiver"}},"isTokenAgent(address)":{"details":"Returns true if the Address is in the list of token agents","params":{"_agentAddress":"address of this agent"}},"isTokenBound(address)":{"details":"Returns true if the address given corresponds to a token that is bound with the Compliance contract","params":{"_token":"address of the token"}},"removeTokenAgent(address)":{"details":"remove Agent from the list of token agents","params":{"_agentAddress":"address of the agent to be removed (must be added first) Emits a TokenAgentRemoved event"}},"transferOwnershipOnComplianceContract(address)":{"details":"function used to transfer the ownership of the compliance contract to a new owner, giving him access to the `OnlyOwner` functions implemented on the contract","params":{"newOwner":"The address of the new owner of the compliance contract This function can only be called by the owner of the compliance contract emits an `OwnershipTransferred` event"}},"transferred(address,address,uint256)":{"details":"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"unbindToken(address)":{"details":"unbinds a token from the compliance contract","params":{"_token":"address of the token to unbind Emits a TokenUnbound event"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":"IComplianceLegacy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":{"keccak256":"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d","urls":["bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a","dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3"],"license":"GPL-3.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/LegacyToken_3_5_2.sol/IERC20Legacy.json b/out/LegacyToken_3_5_2.sol/IERC20Legacy.json new file mode 100644 index 0000000..5a07be9 --- /dev/null +++ b/out/LegacyToken_3_5_2.sol/IERC20Legacy.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"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 `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `sender` to `recipient` 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\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":\"IERC20Legacy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":{\"keccak256\":\"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a\",\"dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"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 `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `sender` to `recipient` 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":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":"IERC20Legacy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":{"keccak256":"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d","urls":["bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a","dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3"],"license":"GPL-3.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/LegacyToken_3_5_2.sol/IERC734Legacy.json b/out/LegacyToken_3_5_2.sol/IERC734Legacy.json new file mode 100644 index 0000000..9cac502 --- /dev/null +++ b/out/LegacyToken_3_5_2.sol/IERC734Legacy.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"},{"name":"_keyType","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"_id","type":"uint256","internalType":"uint256"},{"name":"_approve","type":"bool","internalType":"bool"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"execute","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"executionId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"getKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"purposes","type":"uint256[]","internalType":"uint256[]"},{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getKeyPurposes","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_purposes","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getKeysByPurpose","inputs":[{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keys","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"keyHasPurpose","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approved","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Executed","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ExecutionFailed","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ExecutionRequested","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"KeyAdded","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"purpose","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"keyType","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"KeyRemoved","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"purpose","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"keyType","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"KeysRequiredChanged","inputs":[{"name":"purpose","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"number","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addKey(bytes32,uint256,uint256)":"1d381240","approve(uint256,bool)":"747442d3","execute(address,uint256,bytes)":"b61d27f6","getKey(bytes32)":"12aaac70","getKeyPurposes(bytes32)":"fb307b34","getKeysByPurpose(uint256)":"9010f726","keyHasPurpose(bytes32,uint256)":"d202158d","removeKey(bytes32,uint256)":"53d413c5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"Approved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Executed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"name\":\"KeysRequiredChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_keyType\",\"type\":\"uint256\"}],\"name\":\"addKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_approve\",\"type\":\"bool\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getKey\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"purposes\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getKeyPurposes\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_purposes\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"getKeysByPurpose\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"keys\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"keyHasPurpose\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"removeKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"interface of the ERC734 (Key Holder) standard as defined in the EIP.\",\"events\":{\"Approved(uint256,bool)\":{\"details\":\"Emitted when an execution request was approved. Specification: MUST be triggered when approve was successfully called.\"},\"Executed(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execute operation was approved and successfully performed. Specification: MUST be triggered when approve was called and the execution was successfully approved.\"},\"ExecutionRequested(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execution request was performed via `execute`. Specification: MUST be triggered when execute was successfully called.\"},\"KeyAdded(bytes32,uint256,uint256)\":{\"details\":\"Emitted when a key was added to the Identity. Specification: MUST be triggered when addKey was successfully called.\"},\"KeyRemoved(bytes32,uint256,uint256)\":{\"details\":\"Emitted when a key was removed from the Identity. Specification: MUST be triggered when removeKey was successfully called.\"},\"KeysRequiredChanged(uint256,uint256)\":{\"details\":\"Emitted when the list of required keys to perform an action was updated. Specification: MUST be triggered when changeKeysRequired was successfully called.\"}},\"kind\":\"dev\",\"methods\":{\"addKey(bytes32,uint256,uint256)\":{\"details\":\"Adds a _key to the identity. The _purpose specifies the purpose of the key. Triggers Event: `KeyAdded` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval.\"},\"approve(uint256,bool)\":{\"details\":\"Approves an execution or claim addition. Triggers Event: `Approved`, `Executed` Specification: This SHOULD require n of m approvals of keys purpose 1, if the _to of the execution is the identity contract itself, to successfully approve an execution. And COULD require n of m approvals of keys purpose 2, if the _to of the execution is another contract, to successfully approve an execution.\"},\"execute(address,uint256,bytes)\":{\"details\":\"Passes an execution instruction to an ERC725 identity. Triggers Event: `ExecutionRequested`, `Executed` Specification: SHOULD require approve to be called with one or more keys of purpose 1 or 2 to approve this execution. Execute COULD be used as the only accessor for `addKey` and `removeKey`.\"},\"getKey(bytes32)\":{\"details\":\"Returns the full key data, if present in the identity.\"},\"getKeyPurposes(bytes32)\":{\"details\":\"Returns the list of purposes associated with a key.\"},\"getKeysByPurpose(uint256)\":{\"details\":\"Returns an array of public key bytes32 held by this identity.\"},\"keyHasPurpose(bytes32,uint256)\":{\"details\":\"Returns TRUE if a key is present and has the given purpose. If the key is not present it returns FALSE.\"},\"removeKey(bytes32,uint256)\":{\"details\":\"Removes _purpose for _key from the identity. Triggers Event: `KeyRemoved` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":\"IERC734Legacy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":{\"keccak256\":\"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a\",\"dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"Approved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Executed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"ExecutionFailed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"ExecutionRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"uint256","name":"purpose","type":"uint256","indexed":true},{"internalType":"uint256","name":"keyType","type":"uint256","indexed":true}],"type":"event","name":"KeyAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"uint256","name":"purpose","type":"uint256","indexed":true},{"internalType":"uint256","name":"keyType","type":"uint256","indexed":true}],"type":"event","name":"KeyRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"purpose","type":"uint256","indexed":false},{"internalType":"uint256","name":"number","type":"uint256","indexed":false}],"type":"event","name":"KeysRequiredChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"},{"internalType":"uint256","name":"_keyType","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addKey","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"bool","name":"_approve","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"execute","outputs":[{"internalType":"uint256","name":"executionId","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKey","outputs":[{"internalType":"uint256[]","name":"purposes","type":"uint256[]"},{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"bytes32","name":"key","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeyPurposes","outputs":[{"internalType":"uint256[]","name":"_purposes","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"view","type":"function","name":"getKeysByPurpose","outputs":[{"internalType":"bytes32[]","name":"keys","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"view","type":"function","name":"keyHasPurpose","outputs":[{"internalType":"bool","name":"exists","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeKey","outputs":[{"internalType":"bool","name":"success","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"addKey(bytes32,uint256,uint256)":{"details":"Adds a _key to the identity. The _purpose specifies the purpose of the key. Triggers Event: `KeyAdded` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval."},"approve(uint256,bool)":{"details":"Approves an execution or claim addition. Triggers Event: `Approved`, `Executed` Specification: This SHOULD require n of m approvals of keys purpose 1, if the _to of the execution is the identity contract itself, to successfully approve an execution. And COULD require n of m approvals of keys purpose 2, if the _to of the execution is another contract, to successfully approve an execution."},"execute(address,uint256,bytes)":{"details":"Passes an execution instruction to an ERC725 identity. Triggers Event: `ExecutionRequested`, `Executed` Specification: SHOULD require approve to be called with one or more keys of purpose 1 or 2 to approve this execution. Execute COULD be used as the only accessor for `addKey` and `removeKey`."},"getKey(bytes32)":{"details":"Returns the full key data, if present in the identity."},"getKeyPurposes(bytes32)":{"details":"Returns the list of purposes associated with a key."},"getKeysByPurpose(uint256)":{"details":"Returns an array of public key bytes32 held by this identity."},"keyHasPurpose(bytes32,uint256)":{"details":"Returns TRUE if a key is present and has the given purpose. If the key is not present it returns FALSE."},"removeKey(bytes32,uint256)":{"details":"Removes _purpose for _key from the identity. Triggers Event: `KeyRemoved` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":"IERC734Legacy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":{"keccak256":"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d","urls":["bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a","dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3"],"license":"GPL-3.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/LegacyToken_3_5_2.sol/IERC735Legacy.json b/out/LegacyToken_3_5_2.sol/IERC735Legacy.json new file mode 100644 index 0000000..799ecd7 --- /dev/null +++ b/out/LegacyToken_3_5_2.sol/IERC735Legacy.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addClaim","inputs":[{"name":"_topic","type":"uint256","internalType":"uint256"},{"name":"_scheme","type":"uint256","internalType":"uint256"},{"name":"issuer","type":"address","internalType":"address"},{"name":"_signature","type":"bytes","internalType":"bytes"},{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_uri","type":"string","internalType":"string"}],"outputs":[{"name":"claimRequestId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getClaim","inputs":[{"name":"_claimId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"topic","type":"uint256","internalType":"uint256"},{"name":"scheme","type":"uint256","internalType":"uint256"},{"name":"issuer","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"uri","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getClaimIdsByTopic","inputs":[{"name":"_topic","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"claimIds","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"removeClaim","inputs":[{"name":"_claimId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"ClaimAdded","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimChanged","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimRemoved","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimRequested","inputs":[{"name":"claimRequestId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addClaim(uint256,uint256,address,bytes,bytes,string)":"b1a34e0d","getClaim(bytes32)":"c9100bcb","getClaimIdsByTopic(uint256)":"80e9e9e1","removeClaim(bytes32)":"4eee424a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"claimRequestId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimRequested\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_topic\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_scheme\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"_uri\",\"type\":\"string\"}],\"name\":\"addClaim\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimRequestId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimId\",\"type\":\"bytes32\"}],\"name\":\"getClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_topic\",\"type\":\"uint256\"}],\"name\":\"getClaimIdsByTopic\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"claimIds\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimId\",\"type\":\"bytes32\"}],\"name\":\"removeClaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"interface of the ERC735 (Claim Holder) standard as defined in the EIP.\",\"events\":{\"ClaimAdded(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was added. Specification: MUST be triggered when a claim was successfully added.\"},\"ClaimChanged(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was changed. Specification: MUST be triggered when changeClaim was successfully called.\"},\"ClaimRemoved(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was removed. Specification: MUST be triggered when removeClaim was successfully called.\"},\"ClaimRequested(uint256,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim request was performed. Specification: Is not clear\"}},\"kind\":\"dev\",\"methods\":{\"addClaim(uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Add or update a claim. Triggers Event: `ClaimRequested`, `ClaimAdded`, `ClaimChanged` Specification: Requests the ADDITION or the CHANGE of a claim from an issuer. Claims can requested to be added by anybody, including the claim holder itself (self issued). _signature is a signed message of the following structure: `keccak256(abi.encode(address identityHolder_address, uint256 topic, bytes data))`. Claim IDs are generated using `keccak256(abi.encode(address issuer_address + uint256 topic))`. This COULD implement an approval process for pending claims, or add them right away. MUST return a claimRequestId (use claim ID) that COULD be sent to the approve function.\"},\"getClaim(bytes32)\":{\"details\":\"Get a claim by its ID. Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`.\"},\"getClaimIdsByTopic(uint256)\":{\"details\":\"Returns an array of claim IDs by topic.\"},\"removeClaim(bytes32)\":{\"details\":\"Removes a claim. Triggers Event: `ClaimRemoved` Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":\"IERC735Legacy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":{\"keccak256\":\"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a\",\"dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"claimRequestId","type":"uint256","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimRequested","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_topic","type":"uint256"},{"internalType":"uint256","name":"_scheme","type":"uint256"},{"internalType":"address","name":"issuer","type":"address"},{"internalType":"bytes","name":"_signature","type":"bytes"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"string","name":"_uri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addClaim","outputs":[{"internalType":"bytes32","name":"claimRequestId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_claimId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClaim","outputs":[{"internalType":"uint256","name":"topic","type":"uint256"},{"internalType":"uint256","name":"scheme","type":"uint256"},{"internalType":"address","name":"issuer","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string","name":"uri","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"_topic","type":"uint256"}],"stateMutability":"view","type":"function","name":"getClaimIdsByTopic","outputs":[{"internalType":"bytes32[]","name":"claimIds","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"_claimId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeClaim","outputs":[{"internalType":"bool","name":"success","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"addClaim(uint256,uint256,address,bytes,bytes,string)":{"details":"Add or update a claim. Triggers Event: `ClaimRequested`, `ClaimAdded`, `ClaimChanged` Specification: Requests the ADDITION or the CHANGE of a claim from an issuer. Claims can requested to be added by anybody, including the claim holder itself (self issued). _signature is a signed message of the following structure: `keccak256(abi.encode(address identityHolder_address, uint256 topic, bytes data))`. Claim IDs are generated using `keccak256(abi.encode(address issuer_address + uint256 topic))`. This COULD implement an approval process for pending claims, or add them right away. MUST return a claimRequestId (use claim ID) that COULD be sent to the approve function."},"getClaim(bytes32)":{"details":"Get a claim by its ID. Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`."},"getClaimIdsByTopic(uint256)":{"details":"Returns an array of claim IDs by topic."},"removeClaim(bytes32)":{"details":"Removes a claim. Triggers Event: `ClaimRemoved` Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":"IERC735Legacy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":{"keccak256":"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d","urls":["bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a","dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3"],"license":"GPL-3.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/LegacyToken_3_5_2.sol/IIdentityRegistryLegacy.json b/out/LegacyToken_3_5_2.sol/IIdentityRegistryLegacy.json new file mode 100644 index 0000000..91c33e7 --- /dev/null +++ b/out/LegacyToken_3_5_2.sol/IIdentityRegistryLegacy.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgentOnIdentityRegistryContract","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchRegisterIdentity","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_identities","type":"address[]","internalType":"contract LegacyIIdentity[]"},{"name":"_countries","type":"uint16[]","internalType":"uint16[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"contains","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"deleteIdentity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"identity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract LegacyIIdentity"}],"stateMutability":"view"},{"type":"function","name":"identityStorage","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IIdentityRegistryStorageLegacy"}],"stateMutability":"view"},{"type":"function","name":"investorCountry","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"isVerified","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"issuersRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITrustedIssuersRegistryLegacy"}],"stateMutability":"view"},{"type":"function","name":"registerIdentity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_identity","type":"address","internalType":"contract LegacyIIdentity"},{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeAgentOnIdentityRegistryContract","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setClaimTopicsRegistry","inputs":[{"name":"_claimTopicsRegistry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIdentityRegistryStorage","inputs":[{"name":"_identityRegistryStorage","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTrustedIssuersRegistry","inputs":[{"name":"_trustedIssuersRegistry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"topicsRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IClaimTopicsRegistryLegacy"}],"stateMutability":"view"},{"type":"function","name":"transferOwnershipOnIdentityRegistryContract","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateCountry","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateIdentity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_identity","type":"address","internalType":"contract LegacyIIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ClaimTopicsRegistrySet","inputs":[{"name":"claimTopicsRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CountryUpdated","inputs":[{"name":"investorAddress","type":"address","indexed":true,"internalType":"address"},{"name":"country","type":"uint16","indexed":true,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"IdentityRegistered","inputs":[{"name":"investorAddress","type":"address","indexed":true,"internalType":"address"},{"name":"identity","type":"address","indexed":true,"internalType":"contract LegacyIIdentity"}],"anonymous":false},{"type":"event","name":"IdentityRemoved","inputs":[{"name":"investorAddress","type":"address","indexed":true,"internalType":"address"},{"name":"identity","type":"address","indexed":true,"internalType":"contract LegacyIIdentity"}],"anonymous":false},{"type":"event","name":"IdentityStorageSet","inputs":[{"name":"identityStorage","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"IdentityUpdated","inputs":[{"name":"oldIdentity","type":"address","indexed":true,"internalType":"contract LegacyIIdentity"},{"name":"newIdentity","type":"address","indexed":true,"internalType":"contract LegacyIIdentity"}],"anonymous":false},{"type":"event","name":"TrustedIssuersRegistrySet","inputs":[{"name":"trustedIssuersRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addAgentOnIdentityRegistryContract(address)":"50bc7bda","batchRegisterIdentity(address[],address[],uint16[])":"653dc9f1","contains(address)":"5dbe47e8","deleteIdentity(address)":"a8d29d1d","identity(address)":"f0eb5e54","identityStorage()":"f11abfd8","investorCountry(address)":"7e42683b","isVerified(address)":"b9209e33","issuersRegistry()":"b4f3fcb7","registerIdentity(address,address,uint16)":"454a03e0","removeAgentOnIdentityRegistryContract(address)":"5e5741f3","setClaimTopicsRegistry(address)":"670af6a9","setIdentityRegistryStorage(address)":"26d941ae","setTrustedIssuersRegistry(address)":"e744d789","topicsRegistry()":"3b3e12f4","transferOwnershipOnIdentityRegistryContract(address)":"ce240d9c","updateCountry(address,uint16)":"3b239a7f","updateIdentity(address,address)":"8e098ca1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimTopicsRegistry\",\"type\":\"address\"}],\"name\":\"ClaimTopicsRegistrySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"country\",\"type\":\"uint16\"}],\"name\":\"CountryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract LegacyIIdentity\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"IdentityRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract LegacyIIdentity\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"IdentityRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"identityStorage\",\"type\":\"address\"}],\"name\":\"IdentityStorageSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract LegacyIIdentity\",\"name\":\"oldIdentity\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract LegacyIIdentity\",\"name\":\"newIdentity\",\"type\":\"address\"}],\"name\":\"IdentityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"trustedIssuersRegistry\",\"type\":\"address\"}],\"name\":\"TrustedIssuersRegistrySet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgentOnIdentityRegistryContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"contract LegacyIIdentity[]\",\"name\":\"_identities\",\"type\":\"address[]\"},{\"internalType\":\"uint16[]\",\"name\":\"_countries\",\"type\":\"uint16[]\"}],\"name\":\"batchRegisterIdentity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"contains\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"deleteIdentity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"identity\",\"outputs\":[{\"internalType\":\"contract LegacyIIdentity\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identityStorage\",\"outputs\":[{\"internalType\":\"contract IIdentityRegistryStorageLegacy\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"investorCountry\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"isVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"issuersRegistry\",\"outputs\":[{\"internalType\":\"contract ITrustedIssuersRegistryLegacy\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"contract LegacyIIdentity\",\"name\":\"_identity\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"registerIdentity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgentOnIdentityRegistryContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_claimTopicsRegistry\",\"type\":\"address\"}],\"name\":\"setClaimTopicsRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identityRegistryStorage\",\"type\":\"address\"}],\"name\":\"setIdentityRegistryStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_trustedIssuersRegistry\",\"type\":\"address\"}],\"name\":\"setTrustedIssuersRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"topicsRegistry\",\"outputs\":[{\"internalType\":\"contract IClaimTopicsRegistryLegacy\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnershipOnIdentityRegistryContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"updateCountry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"contract LegacyIIdentity\",\"name\":\"_identity\",\"type\":\"address\"}],\"name\":\"updateIdentity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addAgentOnIdentityRegistryContract(address)\":{\"params\":{\"_agent\":\"The _agent's address to add.\"}},\"batchRegisterIdentity(address[],address[],uint16[])\":{\"details\":\"function allowing to register identities in batch This function can only be called by a wallet set as agent of the smart contract Requires that none of the users has an identity contract already registered. IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \\\"OUT OF GAS\\\" TRANSACTION\",\"params\":{\"_countries\":\"The countries of the corresponding investors emits _userAddresses.length `IdentityRegistered` events\",\"_identities\":\"The addresses of the corresponding identity contracts\",\"_userAddresses\":\"The addresses of the users\"}},\"contains(address)\":{\"details\":\"This functions checks whether a wallet has its Identity registered or not in the Identity Registry.\",\"params\":{\"_userAddress\":\"The address of the user to be checked.\"},\"returns\":{\"_0\":\"'True' if the address is contained in the Identity Registry, 'false' if not.\"}},\"deleteIdentity(address)\":{\"details\":\"Removes an user from the identity registry. Requires that the user have an identity contract already deployed that will be deleted. This function can only be called by a wallet set as agent of the smart contract\",\"params\":{\"_userAddress\":\"The address of the user to be removed emits `IdentityRemoved` event\"}},\"identity(address)\":{\"details\":\"Returns the onchainID of an investor.\",\"params\":{\"_userAddress\":\"The wallet of the investor\"}},\"identityStorage()\":{\"details\":\"Returns the IdentityRegistryStorage linked to the current IdentityRegistry.\"},\"investorCountry(address)\":{\"details\":\"Returns the country code of an investor.\",\"params\":{\"_userAddress\":\"The wallet of the investor\"}},\"isVerified(address)\":{\"details\":\"This functions checks whether an identity contract corresponding to the provided user address has the required claims or not based on the data fetched from trusted issuers registry and from the claim topics registry\",\"params\":{\"_userAddress\":\"The address of the user to be verified.\"},\"returns\":{\"_0\":\"'True' if the address is verified, 'false' if not.\"}},\"issuersRegistry()\":{\"details\":\"Returns the TrustedIssuersRegistry linked to the current IdentityRegistry.\"},\"registerIdentity(address,address,uint16)\":{\"details\":\"Register an identity contract corresponding to a user address. Requires that the user doesn't have an identity contract already registered. This function can only be called by a wallet set as agent of the smart contract\",\"params\":{\"_country\":\"The country of the investor emits `IdentityRegistered` event\",\"_identity\":\"The address of the user's identity contract\",\"_userAddress\":\"The address of the user\"}},\"removeAgentOnIdentityRegistryContract(address)\":{\"params\":{\"_agent\":\"The _agent's address to remove.\"}},\"setClaimTopicsRegistry(address)\":{\"details\":\"Replace the actual claimTopicsRegistry contract with a new one. This function can only be called by the wallet set as owner of the smart contract\",\"params\":{\"_claimTopicsRegistry\":\"The address of the new claim Topics Registry emits `ClaimTopicsRegistrySet` event\"}},\"setIdentityRegistryStorage(address)\":{\"details\":\"Replace the actual identityRegistryStorage contract with a new one. This function can only be called by the wallet set as owner of the smart contract\",\"params\":{\"_identityRegistryStorage\":\"The address of the new Identity Registry Storage emits `IdentityStorageSet` event\"}},\"setTrustedIssuersRegistry(address)\":{\"details\":\"Replace the actual trustedIssuersRegistry contract with a new one. This function can only be called by the wallet set as owner of the smart contract\",\"params\":{\"_trustedIssuersRegistry\":\"The address of the new Trusted Issuers Registry emits `TrustedIssuersRegistrySet` event\"}},\"topicsRegistry()\":{\"details\":\"Returns the ClaimTopicsRegistry linked to the current IdentityRegistry.\"},\"transferOwnershipOnIdentityRegistryContract(address)\":{\"params\":{\"_newOwner\":\"The new owner of this contract.\"}},\"updateCountry(address,uint16)\":{\"details\":\"Updates the country corresponding to a user address. Requires that the user should have an identity contract already deployed that will be replaced. This function can only be called by a wallet set as agent of the smart contract\",\"params\":{\"_country\":\"The new country of the user emits `CountryUpdated` event\",\"_userAddress\":\"The address of the user\"}},\"updateIdentity(address,address)\":{\"details\":\"Updates an identity contract corresponding to a user address. Requires that the user address should be the owner of the identity contract. Requires that the user should have an identity contract already deployed that will be replaced. This function can only be called by a wallet set as agent of the smart contract\",\"params\":{\"_identity\":\"The address of the user's new identity contract emits `IdentityUpdated` event\",\"_userAddress\":\"The address of the user\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ClaimTopicsRegistrySet(address)\":{\"notice\":\"this event is emitted when the ClaimTopicsRegistry has been set for the IdentityRegistry the event is emitted by the IdentityRegistry constructor `claimTopicsRegistry` is the address of the Claim Topics Registry contract\"},\"CountryUpdated(address,uint16)\":{\"notice\":\"this event is emitted when an Identity's country has been updated the event is emitted by the 'updateCountry' function `investorAddress` is the address on which the country has been updated `country` is the numeric code (ISO 3166-1) of the new country\"},\"IdentityRegistered(address,address)\":{\"notice\":\"this event is emitted when an Identity is registered into the Identity Registry. the event is emitted by the 'registerIdentity' function `investorAddress` is the address of the investor's wallet `identity` is the address of the Identity smart contract (onchainID)\"},\"IdentityRemoved(address,address)\":{\"notice\":\"this event is emitted when an Identity is removed from the Identity Registry. the event is emitted by the 'deleteIdentity' function `investorAddress` is the address of the investor's wallet `identity` is the address of the Identity smart contract (onchainID)\"},\"IdentityStorageSet(address)\":{\"notice\":\"this event is emitted when the IdentityRegistryStorage has been set for the IdentityRegistry the event is emitted by the IdentityRegistry constructor `identityStorage` is the address of the Identity Registry Storage contract\"},\"IdentityUpdated(address,address)\":{\"notice\":\"this event is emitted when an Identity has been updated the event is emitted by the 'updateIdentity' function `oldIdentity` is the old Identity contract's address to update `newIdentity` is the new Identity contract's\"},\"TrustedIssuersRegistrySet(address)\":{\"notice\":\"this event is emitted when the ClaimTopicsRegistry has been set for the IdentityRegistry the event is emitted by the IdentityRegistry constructor `trustedIssuersRegistry` is the address of the Trusted Issuers Registry contract\"}},\"kind\":\"user\",\"methods\":{\"addAgentOnIdentityRegistryContract(address)\":{\"notice\":\"Adds an address as _agent of the Identity Registry Contract. This function can only be called by the wallet set as owner of the smart contract\"},\"removeAgentOnIdentityRegistryContract(address)\":{\"notice\":\"Removes an address from being _agent of the Identity Registry Contract. This function can only be called by the wallet set as owner of the smart contract\"},\"transferOwnershipOnIdentityRegistryContract(address)\":{\"notice\":\"Transfers the Ownership of the Identity Registry to a new Owner. This function can only be called by the wallet set as owner of the smart contract\"}},\"notice\":\"NOTICE The T-REX software is licensed under a proprietary license or the GPL v.3. If you choose to receive it under the GPL v.3 license, the following applies: T-REX is a suite of smart contracts developed by Tokeny to manage and transfer financial assets on the ethereum blockchain Copyright (C) 2021, Tokeny s\\u00e0rl. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see .\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":\"IIdentityRegistryLegacy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":{\"keccak256\":\"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a\",\"dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"claimTopicsRegistry","type":"address","indexed":true}],"type":"event","name":"ClaimTopicsRegistrySet","anonymous":false},{"inputs":[{"internalType":"address","name":"investorAddress","type":"address","indexed":true},{"internalType":"uint16","name":"country","type":"uint16","indexed":true}],"type":"event","name":"CountryUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"investorAddress","type":"address","indexed":true},{"internalType":"contract LegacyIIdentity","name":"identity","type":"address","indexed":true}],"type":"event","name":"IdentityRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"investorAddress","type":"address","indexed":true},{"internalType":"contract LegacyIIdentity","name":"identity","type":"address","indexed":true}],"type":"event","name":"IdentityRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"identityStorage","type":"address","indexed":true}],"type":"event","name":"IdentityStorageSet","anonymous":false},{"inputs":[{"internalType":"contract LegacyIIdentity","name":"oldIdentity","type":"address","indexed":true},{"internalType":"contract LegacyIIdentity","name":"newIdentity","type":"address","indexed":true}],"type":"event","name":"IdentityUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"trustedIssuersRegistry","type":"address","indexed":true}],"type":"event","name":"TrustedIssuersRegistrySet","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgentOnIdentityRegistryContract"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"contract LegacyIIdentity[]","name":"_identities","type":"address[]"},{"internalType":"uint16[]","name":"_countries","type":"uint16[]"}],"stateMutability":"nonpayable","type":"function","name":"batchRegisterIdentity"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"contains","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deleteIdentity"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"identity","outputs":[{"internalType":"contract LegacyIIdentity","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"identityStorage","outputs":[{"internalType":"contract IIdentityRegistryStorageLegacy","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"investorCountry","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"issuersRegistry","outputs":[{"internalType":"contract ITrustedIssuersRegistryLegacy","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"contract LegacyIIdentity","name":"_identity","type":"address"},{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"registerIdentity"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgentOnIdentityRegistryContract"},{"inputs":[{"internalType":"address","name":"_claimTopicsRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setClaimTopicsRegistry"},{"inputs":[{"internalType":"address","name":"_identityRegistryStorage","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setIdentityRegistryStorage"},{"inputs":[{"internalType":"address","name":"_trustedIssuersRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTrustedIssuersRegistry"},{"inputs":[],"stateMutability":"view","type":"function","name":"topicsRegistry","outputs":[{"internalType":"contract IClaimTopicsRegistryLegacy","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnershipOnIdentityRegistryContract"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"updateCountry"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"contract LegacyIIdentity","name":"_identity","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateIdentity"}],"devdoc":{"kind":"dev","methods":{"addAgentOnIdentityRegistryContract(address)":{"params":{"_agent":"The _agent's address to add."}},"batchRegisterIdentity(address[],address[],uint16[])":{"details":"function allowing to register identities in batch This function can only be called by a wallet set as agent of the smart contract Requires that none of the users has an identity contract already registered. IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \"OUT OF GAS\" TRANSACTION","params":{"_countries":"The countries of the corresponding investors emits _userAddresses.length `IdentityRegistered` events","_identities":"The addresses of the corresponding identity contracts","_userAddresses":"The addresses of the users"}},"contains(address)":{"details":"This functions checks whether a wallet has its Identity registered or not in the Identity Registry.","params":{"_userAddress":"The address of the user to be checked."},"returns":{"_0":"'True' if the address is contained in the Identity Registry, 'false' if not."}},"deleteIdentity(address)":{"details":"Removes an user from the identity registry. Requires that the user have an identity contract already deployed that will be deleted. This function can only be called by a wallet set as agent of the smart contract","params":{"_userAddress":"The address of the user to be removed emits `IdentityRemoved` event"}},"identity(address)":{"details":"Returns the onchainID of an investor.","params":{"_userAddress":"The wallet of the investor"}},"identityStorage()":{"details":"Returns the IdentityRegistryStorage linked to the current IdentityRegistry."},"investorCountry(address)":{"details":"Returns the country code of an investor.","params":{"_userAddress":"The wallet of the investor"}},"isVerified(address)":{"details":"This functions checks whether an identity contract corresponding to the provided user address has the required claims or not based on the data fetched from trusted issuers registry and from the claim topics registry","params":{"_userAddress":"The address of the user to be verified."},"returns":{"_0":"'True' if the address is verified, 'false' if not."}},"issuersRegistry()":{"details":"Returns the TrustedIssuersRegistry linked to the current IdentityRegistry."},"registerIdentity(address,address,uint16)":{"details":"Register an identity contract corresponding to a user address. Requires that the user doesn't have an identity contract already registered. This function can only be called by a wallet set as agent of the smart contract","params":{"_country":"The country of the investor emits `IdentityRegistered` event","_identity":"The address of the user's identity contract","_userAddress":"The address of the user"}},"removeAgentOnIdentityRegistryContract(address)":{"params":{"_agent":"The _agent's address to remove."}},"setClaimTopicsRegistry(address)":{"details":"Replace the actual claimTopicsRegistry contract with a new one. This function can only be called by the wallet set as owner of the smart contract","params":{"_claimTopicsRegistry":"The address of the new claim Topics Registry emits `ClaimTopicsRegistrySet` event"}},"setIdentityRegistryStorage(address)":{"details":"Replace the actual identityRegistryStorage contract with a new one. This function can only be called by the wallet set as owner of the smart contract","params":{"_identityRegistryStorage":"The address of the new Identity Registry Storage emits `IdentityStorageSet` event"}},"setTrustedIssuersRegistry(address)":{"details":"Replace the actual trustedIssuersRegistry contract with a new one. This function can only be called by the wallet set as owner of the smart contract","params":{"_trustedIssuersRegistry":"The address of the new Trusted Issuers Registry emits `TrustedIssuersRegistrySet` event"}},"topicsRegistry()":{"details":"Returns the ClaimTopicsRegistry linked to the current IdentityRegistry."},"transferOwnershipOnIdentityRegistryContract(address)":{"params":{"_newOwner":"The new owner of this contract."}},"updateCountry(address,uint16)":{"details":"Updates the country corresponding to a user address. Requires that the user should have an identity contract already deployed that will be replaced. This function can only be called by a wallet set as agent of the smart contract","params":{"_country":"The new country of the user emits `CountryUpdated` event","_userAddress":"The address of the user"}},"updateIdentity(address,address)":{"details":"Updates an identity contract corresponding to a user address. Requires that the user address should be the owner of the identity contract. Requires that the user should have an identity contract already deployed that will be replaced. This function can only be called by a wallet set as agent of the smart contract","params":{"_identity":"The address of the user's new identity contract emits `IdentityUpdated` event","_userAddress":"The address of the user"}}},"version":1},"userdoc":{"kind":"user","methods":{"addAgentOnIdentityRegistryContract(address)":{"notice":"Adds an address as _agent of the Identity Registry Contract. This function can only be called by the wallet set as owner of the smart contract"},"removeAgentOnIdentityRegistryContract(address)":{"notice":"Removes an address from being _agent of the Identity Registry Contract. This function can only be called by the wallet set as owner of the smart contract"},"transferOwnershipOnIdentityRegistryContract(address)":{"notice":"Transfers the Ownership of the Identity Registry to a new Owner. This function can only be called by the wallet set as owner of the smart contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":"IIdentityRegistryLegacy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":{"keccak256":"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d","urls":["bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a","dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3"],"license":"GPL-3.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/LegacyToken_3_5_2.sol/IIdentityRegistryStorageLegacy.json b/out/LegacyToken_3_5_2.sol/IIdentityRegistryStorageLegacy.json new file mode 100644 index 0000000..e54e5aa --- /dev/null +++ b/out/LegacyToken_3_5_2.sol/IIdentityRegistryStorageLegacy.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addIdentityToStorage","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_identity","type":"address","internalType":"contract LegacyIIdentity"},{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindIdentityRegistry","inputs":[{"name":"_identityRegistry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"linkedIdentityRegistries","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"modifyStoredIdentity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_identity","type":"address","internalType":"contract LegacyIIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"modifyStoredInvestorCountry","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeIdentityFromStorage","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"storedIdentity","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract LegacyIIdentity"}],"stateMutability":"view"},{"type":"function","name":"storedInvestorCountry","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"transferOwnershipOnIdentityRegistryStorage","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindIdentityRegistry","inputs":[{"name":"_identityRegistry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"CountryModified","inputs":[{"name":"investorAddress","type":"address","indexed":true,"internalType":"address"},{"name":"country","type":"uint16","indexed":true,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"IdentityModified","inputs":[{"name":"oldIdentity","type":"address","indexed":true,"internalType":"contract LegacyIIdentity"},{"name":"newIdentity","type":"address","indexed":true,"internalType":"contract LegacyIIdentity"}],"anonymous":false},{"type":"event","name":"IdentityRegistryBound","inputs":[{"name":"identityRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"IdentityRegistryUnbound","inputs":[{"name":"identityRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"IdentityStored","inputs":[{"name":"investorAddress","type":"address","indexed":true,"internalType":"address"},{"name":"identity","type":"address","indexed":true,"internalType":"contract LegacyIIdentity"}],"anonymous":false},{"type":"event","name":"IdentityUnstored","inputs":[{"name":"investorAddress","type":"address","indexed":true,"internalType":"address"},{"name":"identity","type":"address","indexed":true,"internalType":"contract LegacyIIdentity"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addIdentityToStorage(address,address,uint16)":"a53410dd","bindIdentityRegistry(address)":"690a49f9","linkedIdentityRegistries()":"bf9eb959","modifyStoredIdentity(address,address)":"e805cf86","modifyStoredInvestorCountry(address,uint16)":"9f3418d5","removeIdentityFromStorage(address)":"cf191bcd","storedIdentity(address)":"7988d3a5","storedInvestorCountry(address)":"727e13bc","transferOwnershipOnIdentityRegistryStorage(address)":"5ccbbe49","unbindIdentityRegistry(address)":"97a012f7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"country\",\"type\":\"uint16\"}],\"name\":\"CountryModified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract LegacyIIdentity\",\"name\":\"oldIdentity\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract LegacyIIdentity\",\"name\":\"newIdentity\",\"type\":\"address\"}],\"name\":\"IdentityModified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"identityRegistry\",\"type\":\"address\"}],\"name\":\"IdentityRegistryBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"identityRegistry\",\"type\":\"address\"}],\"name\":\"IdentityRegistryUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract LegacyIIdentity\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"IdentityStored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract LegacyIIdentity\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"IdentityUnstored\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"contract LegacyIIdentity\",\"name\":\"_identity\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"addIdentityToStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identityRegistry\",\"type\":\"address\"}],\"name\":\"bindIdentityRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"linkedIdentityRegistries\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"contract LegacyIIdentity\",\"name\":\"_identity\",\"type\":\"address\"}],\"name\":\"modifyStoredIdentity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"}],\"name\":\"modifyStoredInvestorCountry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"removeIdentityFromStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"storedIdentity\",\"outputs\":[{\"internalType\":\"contract LegacyIIdentity\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"storedInvestorCountry\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnershipOnIdentityRegistryStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identityRegistry\",\"type\":\"address\"}],\"name\":\"unbindIdentityRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addIdentityToStorage(address,address,uint16)\":{\"details\":\"adds an identity contract corresponding to a user address in the storage. Requires that the user doesn't have an identity contract already registered. This function can only be called by an address set as agent of the smart contract\",\"params\":{\"_country\":\"The country of the investor emits `IdentityStored` event\",\"_identity\":\"The address of the user's identity contract\",\"_userAddress\":\"The address of the user\"}},\"bindIdentityRegistry(address)\":{\"params\":{\"_identityRegistry\":\"The identity registry address to add.\"}},\"linkedIdentityRegistries()\":{\"details\":\"Returns the identity registries linked to the storage contract\"},\"modifyStoredIdentity(address,address)\":{\"details\":\"Updates an identity contract corresponding to a user address. Requires that the user address should be the owner of the identity contract. Requires that the user should have an identity contract already deployed that will be replaced. This function can only be called by an address set as agent of the smart contract\",\"params\":{\"_identity\":\"The address of the user's new identity contract emits `IdentityModified` event\",\"_userAddress\":\"The address of the user\"}},\"modifyStoredInvestorCountry(address,uint16)\":{\"details\":\"Updates the country corresponding to a user address. Requires that the user should have an identity contract already deployed that will be replaced. This function can only be called by an address set as agent of the smart contract\",\"params\":{\"_country\":\"The new country of the user emits `CountryModified` event\",\"_userAddress\":\"The address of the user\"}},\"removeIdentityFromStorage(address)\":{\"details\":\"Removes an user from the storage. Requires that the user have an identity contract already deployed that will be deleted. This function can only be called by an address set as agent of the smart contract\",\"params\":{\"_userAddress\":\"The address of the user to be removed emits `IdentityUnstored` event\"}},\"storedIdentity(address)\":{\"details\":\"Returns the onchainID of an investor.\",\"params\":{\"_userAddress\":\"The wallet of the investor\"}},\"storedInvestorCountry(address)\":{\"details\":\"Returns the country code of an investor.\",\"params\":{\"_userAddress\":\"The wallet of the investor\"}},\"transferOwnershipOnIdentityRegistryStorage(address)\":{\"params\":{\"_newOwner\":\"The new owner of this contract.\"}},\"unbindIdentityRegistry(address)\":{\"params\":{\"_identityRegistry\":\"The identity registry address to remove.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"CountryModified(address,uint16)\":{\"notice\":\"this event is emitted when an Identity's country has been updated the event is emitted by the 'updateCountry' function `investorAddress` is the address on which the country has been updated `country` is the numeric code (ISO 3166-1) of the new country\"},\"IdentityModified(address,address)\":{\"notice\":\"this event is emitted when an Identity has been updated the event is emitted by the 'updateIdentity' function `oldIdentity` is the old Identity contract's address to update `newIdentity` is the new Identity contract's\"},\"IdentityRegistryBound(address)\":{\"notice\":\"this event is emitted when an Identity Registry is bound to the storage contract the event is emitted by the 'addIdentityRegistry' function `identityRegistry` is the address of the identity registry added\"},\"IdentityRegistryUnbound(address)\":{\"notice\":\"this event is emitted when an Identity Registry is unbound from the storage contract the event is emitted by the 'removeIdentityRegistry' function `identityRegistry` is the address of the identity registry removed\"},\"IdentityStored(address,address)\":{\"notice\":\"this event is emitted when an Identity is registered into the storage contract. the event is emitted by the 'registerIdentity' function `investorAddress` is the address of the investor's wallet `identity` is the address of the Identity smart contract (onchainID)\"},\"IdentityUnstored(address,address)\":{\"notice\":\"this event is emitted when an Identity is removed from the storage contract. the event is emitted by the 'deleteIdentity' function `investorAddress` is the address of the investor's wallet `identity` is the address of the Identity smart contract (onchainID)\"}},\"kind\":\"user\",\"methods\":{\"bindIdentityRegistry(address)\":{\"notice\":\"Adds an identity registry as agent of the Identity Registry Storage Contract. This function can only be called by the wallet set as owner of the smart contract This function adds the identity registry to the list of identityRegistries linked to the storage contract\"},\"transferOwnershipOnIdentityRegistryStorage(address)\":{\"notice\":\"Transfers the Ownership of the Identity Registry Storage to a new Owner. This function can only be called by the wallet set as owner of the smart contract\"},\"unbindIdentityRegistry(address)\":{\"notice\":\"Removes an identity registry from being agent of the Identity Registry Storage Contract. This function can only be called by the wallet set as owner of the smart contract This function removes the identity registry from the list of identityRegistries linked to the storage contract\"}},\"notice\":\"NOTICE The T-REX software is licensed under a proprietary license or the GPL v.3. If you choose to receive it under the GPL v.3 license, the following applies: T-REX is a suite of smart contracts developed by Tokeny to manage and transfer financial assets on the ethereum blockchain Copyright (C) 2021, Tokeny s\\u00e0rl. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see .\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":\"IIdentityRegistryStorageLegacy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":{\"keccak256\":\"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a\",\"dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"investorAddress","type":"address","indexed":true},{"internalType":"uint16","name":"country","type":"uint16","indexed":true}],"type":"event","name":"CountryModified","anonymous":false},{"inputs":[{"internalType":"contract LegacyIIdentity","name":"oldIdentity","type":"address","indexed":true},{"internalType":"contract LegacyIIdentity","name":"newIdentity","type":"address","indexed":true}],"type":"event","name":"IdentityModified","anonymous":false},{"inputs":[{"internalType":"address","name":"identityRegistry","type":"address","indexed":true}],"type":"event","name":"IdentityRegistryBound","anonymous":false},{"inputs":[{"internalType":"address","name":"identityRegistry","type":"address","indexed":true}],"type":"event","name":"IdentityRegistryUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"investorAddress","type":"address","indexed":true},{"internalType":"contract LegacyIIdentity","name":"identity","type":"address","indexed":true}],"type":"event","name":"IdentityStored","anonymous":false},{"inputs":[{"internalType":"address","name":"investorAddress","type":"address","indexed":true},{"internalType":"contract LegacyIIdentity","name":"identity","type":"address","indexed":true}],"type":"event","name":"IdentityUnstored","anonymous":false},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"contract LegacyIIdentity","name":"_identity","type":"address"},{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"addIdentityToStorage"},{"inputs":[{"internalType":"address","name":"_identityRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindIdentityRegistry"},{"inputs":[],"stateMutability":"view","type":"function","name":"linkedIdentityRegistries","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"contract LegacyIIdentity","name":"_identity","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"modifyStoredIdentity"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint16","name":"_country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"modifyStoredInvestorCountry"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeIdentityFromStorage"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"storedIdentity","outputs":[{"internalType":"contract LegacyIIdentity","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"storedInvestorCountry","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnershipOnIdentityRegistryStorage"},{"inputs":[{"internalType":"address","name":"_identityRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindIdentityRegistry"}],"devdoc":{"kind":"dev","methods":{"addIdentityToStorage(address,address,uint16)":{"details":"adds an identity contract corresponding to a user address in the storage. Requires that the user doesn't have an identity contract already registered. This function can only be called by an address set as agent of the smart contract","params":{"_country":"The country of the investor emits `IdentityStored` event","_identity":"The address of the user's identity contract","_userAddress":"The address of the user"}},"bindIdentityRegistry(address)":{"params":{"_identityRegistry":"The identity registry address to add."}},"linkedIdentityRegistries()":{"details":"Returns the identity registries linked to the storage contract"},"modifyStoredIdentity(address,address)":{"details":"Updates an identity contract corresponding to a user address. Requires that the user address should be the owner of the identity contract. Requires that the user should have an identity contract already deployed that will be replaced. This function can only be called by an address set as agent of the smart contract","params":{"_identity":"The address of the user's new identity contract emits `IdentityModified` event","_userAddress":"The address of the user"}},"modifyStoredInvestorCountry(address,uint16)":{"details":"Updates the country corresponding to a user address. Requires that the user should have an identity contract already deployed that will be replaced. This function can only be called by an address set as agent of the smart contract","params":{"_country":"The new country of the user emits `CountryModified` event","_userAddress":"The address of the user"}},"removeIdentityFromStorage(address)":{"details":"Removes an user from the storage. Requires that the user have an identity contract already deployed that will be deleted. This function can only be called by an address set as agent of the smart contract","params":{"_userAddress":"The address of the user to be removed emits `IdentityUnstored` event"}},"storedIdentity(address)":{"details":"Returns the onchainID of an investor.","params":{"_userAddress":"The wallet of the investor"}},"storedInvestorCountry(address)":{"details":"Returns the country code of an investor.","params":{"_userAddress":"The wallet of the investor"}},"transferOwnershipOnIdentityRegistryStorage(address)":{"params":{"_newOwner":"The new owner of this contract."}},"unbindIdentityRegistry(address)":{"params":{"_identityRegistry":"The identity registry address to remove."}}},"version":1},"userdoc":{"kind":"user","methods":{"bindIdentityRegistry(address)":{"notice":"Adds an identity registry as agent of the Identity Registry Storage Contract. This function can only be called by the wallet set as owner of the smart contract This function adds the identity registry to the list of identityRegistries linked to the storage contract"},"transferOwnershipOnIdentityRegistryStorage(address)":{"notice":"Transfers the Ownership of the Identity Registry Storage to a new Owner. This function can only be called by the wallet set as owner of the smart contract"},"unbindIdentityRegistry(address)":{"notice":"Removes an identity registry from being agent of the Identity Registry Storage Contract. This function can only be called by the wallet set as owner of the smart contract This function removes the identity registry from the list of identityRegistries linked to the storage contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":"IIdentityRegistryStorageLegacy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":{"keccak256":"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d","urls":["bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a","dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3"],"license":"GPL-3.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/LegacyToken_3_5_2.sol/ITokenLegacy.json b/out/LegacyToken_3_5_2.sol/ITokenLegacy.json new file mode 100644 index 0000000..8d02a1b --- /dev/null +++ b/out/LegacyToken_3_5_2.sol/ITokenLegacy.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgentOnTokenContract","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"batchBurn","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchForcedTransfer","inputs":[{"name":"_fromList","type":"address[]","internalType":"address[]"},{"name":"_toList","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchFreezePartialTokens","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchMint","inputs":[{"name":"_toList","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchSetAddressFrozen","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_freeze","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchTransfer","inputs":[{"name":"_toList","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchUnfreezePartialTokens","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burn","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"compliance","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IComplianceLegacy"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"forcedTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"freezePartialTokens","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getFrozenTokens","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"identityRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IIdentityRegistryLegacy"}],"stateMutability":"view"},{"type":"function","name":"isFrozen","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"onchainID","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"recoveryAddress","inputs":[{"name":"_lostWallet","type":"address","internalType":"address"},{"name":"_newWallet","type":"address","internalType":"address"},{"name":"_investorOnchainID","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeAgentOnTokenContract","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAddressFrozen","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_freeze","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIdentityRegistry","inputs":[{"name":"_identityRegistry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setName","inputs":[{"name":"_name","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOnchainID","inputs":[{"name":"_onchainID","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSymbol","inputs":[{"name":"_symbol","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnershipOnTokenContract","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unfreezePartialTokens","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"AddressFrozen","inputs":[{"name":"_userAddress","type":"address","indexed":true,"internalType":"address"},{"name":"_isFrozen","type":"bool","indexed":true,"internalType":"bool"},{"name":"_owner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ComplianceAdded","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"IdentityRegistryAdded","inputs":[{"name":"_identityRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"_userAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RecoverySuccess","inputs":[{"name":"_lostWallet","type":"address","indexed":false,"internalType":"address"},{"name":"_newWallet","type":"address","indexed":false,"internalType":"address"},{"name":"_investorOnchainID","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokensFrozen","inputs":[{"name":"_userAddress","type":"address","indexed":true,"internalType":"address"},{"name":"_amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TokensUnfrozen","inputs":[{"name":"_userAddress","type":"address","indexed":true,"internalType":"address"},{"name":"_amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"_userAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UpdatedTokenInformation","inputs":[{"name":"_newName","type":"string","indexed":false,"internalType":"string"},{"name":"_newSymbol","type":"string","indexed":false,"internalType":"string"},{"name":"_newDecimals","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"_newVersion","type":"string","indexed":false,"internalType":"string"},{"name":"_newOnchainID","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addAgentOnTokenContract(address)":"b422d830","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","batchBurn(address[],uint256[])":"4a6cc677","batchForcedTransfer(address[],address[],uint256[])":"42a47abc","batchFreezePartialTokens(address[],uint256[])":"fc7e5fa8","batchMint(address[],uint256[])":"68573107","batchSetAddressFrozen(address[],bool[])":"1a7af379","batchTransfer(address[],uint256[])":"88d695b2","batchUnfreezePartialTokens(address[],uint256[])":"4710362d","burn(address,uint256)":"9dc29fac","compliance()":"6290865d","decimals()":"313ce567","forcedTransfer(address,address,uint256)":"9fc1d0e7","freezePartialTokens(address,uint256)":"125c4a33","getFrozenTokens(address)":"158b1a57","identityRegistry()":"134e18f4","isFrozen(address)":"e5839836","mint(address,uint256)":"40c10f19","name()":"06fdde03","onchainID()":"aba63705","pause()":"8456cb59","paused()":"5c975abb","recoveryAddress(address,address,address)":"9285948a","removeAgentOnTokenContract(address)":"5dc7a3cb","setAddressFrozen(address,bool)":"c69c09cf","setCompliance(address)":"f8981789","setIdentityRegistry(address)":"cbf3f861","setName(string)":"c47f0027","setOnchainID(address)":"3d1ddc5b","setSymbol(string)":"b84c8246","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnershipOnTokenContract(address)":"51411b33","unfreezePartialTokens(address,uint256)":"1fe56f7d","unpause()":"3f4ba83a","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"_isFrozen\",\"type\":\"bool\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"AddressFrozen\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_identityRegistry\",\"type\":\"address\"}],\"name\":\"IdentityRegistryAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_lostWallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newWallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_investorOnchainID\",\"type\":\"address\"}],\"name\":\"RecoverySuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"TokensFrozen\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"TokensUnfrozen\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_newName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_newSymbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_newDecimals\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_newVersion\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newOnchainID\",\"type\":\"address\"}],\"name\":\"UpdatedTokenInformation\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgentOnTokenContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchBurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_fromList\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_toList\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchForcedTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchFreezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_toList\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"_freeze\",\"type\":\"bool[]\"}],\"name\":\"batchSetAddressFrozen\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_toList\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchUnfreezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"compliance\",\"outputs\":[{\"internalType\":\"contract IComplianceLegacy\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"forcedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"freezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"getFrozenTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identityRegistry\",\"outputs\":[{\"internalType\":\"contract IIdentityRegistryLegacy\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"isFrozen\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onchainID\",\"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\":[{\"internalType\":\"address\",\"name\":\"_lostWallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newWallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_investorOnchainID\",\"type\":\"address\"}],\"name\":\"recoveryAddress\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgentOnTokenContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_freeze\",\"type\":\"bool\"}],\"name\":\"setAddressFrozen\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"setCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identityRegistry\",\"type\":\"address\"}],\"name\":\"setIdentityRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"setName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"setOnchainID\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"name\":\"setSymbol\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnershipOnTokenContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"unfreezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"interface\",\"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\":{\"addAgentOnTokenContract(address)\":{\"details\":\"adds an agent to the token smart contract\",\"params\":{\"_agent\":\"the address of the new agent of the token smart contract This function can only be called by the owner of the token emits an `AgentAdded` event\"}},\"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`.\"},\"batchBurn(address[],uint256[])\":{\"details\":\"function allowing to burn tokens in batch Require that the `_userAddresses` addresses are all verified addresses IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \\\"OUT OF GAS\\\" TRANSACTION\",\"params\":{\"_amounts\":\"The number of tokens to burn from the corresponding wallets This function can only be called by a wallet set as agent of the token emits _userAddresses.length `Transfer` events\",\"_userAddresses\":\"The addresses of the wallets concerned by the burn\"}},\"batchForcedTransfer(address[],address[],uint256[])\":{\"details\":\"function allowing to issue forced transfers in batch Require that `_amounts[i]` should not exceed available balance of `_fromList[i]`. Require that the `_toList` addresses are all verified addresses IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_fromList.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \\\"OUT OF GAS\\\" TRANSACTION\",\"params\":{\"_amounts\":\"The number of tokens to transfer to the corresponding receiver This function can only be called by a wallet set as agent of the token emits `TokensUnfrozen` events if `_amounts[i]` is higher than the free balance of `_fromList[i]` emits _fromList.length `Transfer` events\",\"_fromList\":\"The addresses of the senders\",\"_toList\":\"The addresses of the receivers\"}},\"batchFreezePartialTokens(address[],uint256[])\":{\"details\":\"function allowing to freeze tokens partially in batch IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \\\"OUT OF GAS\\\" TRANSACTION\",\"params\":{\"_amounts\":\"the amount of tokens to freeze on the corresponding address This function can only be called by a wallet set as agent of the token emits _userAddresses.length `TokensFrozen` events\",\"_userAddresses\":\"The addresses on which tokens need to be frozen\"}},\"batchMint(address[],uint256[])\":{\"details\":\"function allowing to mint tokens in batch Require that the `_toList` addresses are all verified addresses IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_toList.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \\\"OUT OF GAS\\\" TRANSACTION\",\"params\":{\"_amounts\":\"The number of tokens to mint to the corresponding receiver This function can only be called by a wallet set as agent of the token emits _toList.length `Transfer` events\",\"_toList\":\"The addresses of the receivers\"}},\"batchSetAddressFrozen(address[],bool[])\":{\"details\":\"function allowing to set frozen addresses in batch IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \\\"OUT OF GAS\\\" TRANSACTION\",\"params\":{\"_freeze\":\"Frozen status of the corresponding address This function can only be called by a wallet set as agent of the token emits _userAddresses.length `AddressFrozen` events\",\"_userAddresses\":\"The addresses for which to update frozen status\"}},\"batchTransfer(address[],uint256[])\":{\"details\":\"function allowing to issue transfers in batch Require that the msg.sender and `to` addresses are not frozen. Require that the total value should not exceed available balance. Require that the `to` addresses are all verified addresses, IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_toList.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \\\"OUT OF GAS\\\" TRANSACTION\",\"params\":{\"_amounts\":\"The number of tokens to transfer to the corresponding receiver emits _toList.length `Transfer` events\",\"_toList\":\"The addresses of the receivers\"}},\"batchUnfreezePartialTokens(address[],uint256[])\":{\"details\":\"function allowing to unfreeze tokens partially in batch IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \\\"OUT OF GAS\\\" TRANSACTION\",\"params\":{\"_amounts\":\"the amount of tokens to unfreeze on the corresponding address This function can only be called by a wallet set as agent of the token emits _userAddresses.length `TokensUnfrozen` events\",\"_userAddresses\":\"The addresses on which tokens need to be unfrozen\"}},\"burn(address,uint256)\":{\"details\":\"burn tokens on a wallet In case the `account` address has not enough free tokens (unfrozen tokens) but has a total balance higher or equal to the `value` amount the amount of frozen tokens is reduced in order to have enough free tokens to proceed the burn, in such a case, the remaining balance on the `account` is 100% composed of frozen tokens post-transaction.\",\"params\":{\"_amount\":\"Amount of tokens to burn. This function can only be called by a wallet set as agent of the token emits a `TokensUnfrozen` event if `_amount` is higher than the free balance of `_userAddress` emits a `Transfer` event\",\"_userAddress\":\"Address to burn the tokens from.\"}},\"compliance()\":{\"details\":\"Returns the Compliance contract linked to the token\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 1 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including balanceOf() and transfer().\"},\"forcedTransfer(address,address,uint256)\":{\"details\":\"force a transfer of tokens between 2 whitelisted wallets In case the `from` address has not enough free tokens (unfrozen tokens) but has a total balance higher or equal to the `amount` the amount of frozen tokens is reduced in order to have enough free tokens to proceed the transfer, in such a case, the remaining balance on the `from` account is 100% composed of frozen tokens post-transfer. Require that the `to` address is a verified address,\",\"params\":{\"_amount\":\"The number of tokens to transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"},\"returns\":{\"_0\":\"`true` if successful and revert if unsuccessful This function can only be called by a wallet set as agent of the token emits a `TokensUnfrozen` event if `_amount` is higher than the free balance of `_from` emits a `Transfer` event\"}},\"freezePartialTokens(address,uint256)\":{\"details\":\"freezes token amount specified for given address.\",\"params\":{\"_amount\":\"Amount of Tokens to be frozen This function can only be called by a wallet set as agent of the token emits a `TokensFrozen` event\",\"_userAddress\":\"The address for which to update frozen tokens\"}},\"getFrozenTokens(address)\":{\"details\":\"Returns the amount of tokens that are partially frozen on a wallet the amount of frozen tokens is always <= to the total balance of the wallet\",\"params\":{\"_userAddress\":\"the address of the wallet on which getFrozenTokens is called\"}},\"identityRegistry()\":{\"details\":\"Returns the Identity Registry linked to the token\"},\"isFrozen(address)\":{\"details\":\"Returns the freezing status of a wallet if isFrozen returns `true` the wallet is frozen if isFrozen returns `false` the wallet is not frozen isFrozen returning `true` doesn't mean that the balance is free, tokens could be blocked by a partial freeze or the whole token could be blocked by pause\",\"params\":{\"_userAddress\":\"the address of the wallet on which isFrozen is called\"}},\"mint(address,uint256)\":{\"details\":\"mint tokens on a wallet Improved version of default mint method. Tokens can be minted to an address if only it is a verified address as per the security token.\",\"params\":{\"_amount\":\"Amount of tokens to mint. This function can only be called by a wallet set as agent of the token emits a `Transfer` event\",\"_to\":\"Address to mint the tokens to.\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"onchainID()\":{\"details\":\"Returns the address of the onchainID of the token. the onchainID of the token gives all the information available about the token and is managed by the token issuer or his agent.\"},\"pause()\":{\"details\":\"pauses the token contract, when contract is paused investors cannot transfer tokens anymore This function can only be called by a wallet set as agent of the token emits a `Paused` event\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"recoveryAddress(address,address,address)\":{\"details\":\"recovery function used to force transfer tokens from a lost wallet to a new wallet for an investor.\",\"params\":{\"_investorOnchainID\":\"the onchainID of the investor asking for a recovery This function can only be called by a wallet set as agent of the token emits a `TokensUnfrozen` event if there is some frozen tokens on the lost wallet if the recovery process is successful emits a `Transfer` event if the recovery process is successful emits a `RecoverySuccess` event if the recovery process is successful emits a `RecoveryFails` event if the recovery process fails\",\"_lostWallet\":\"the wallet that the investor lost\",\"_newWallet\":\"the newly provided wallet on which tokens have to be transferred\"}},\"removeAgentOnTokenContract(address)\":{\"details\":\"remove an agent from the token smart contract\",\"params\":{\"_agent\":\"the address of the agent to remove This function can only be called by the owner of the token emits an `AgentRemoved` event\"}},\"setAddressFrozen(address,bool)\":{\"details\":\"sets an address frozen status for this token.\",\"params\":{\"_freeze\":\"Frozen status of the address This function can only be called by a wallet set as agent of the token emits an `AddressFrozen` event\",\"_userAddress\":\"The address for which to update frozen status\"}},\"setCompliance(address)\":{\"details\":\"sets the compliance contract of the token\",\"params\":{\"_compliance\":\"the address of the compliance contract to set Only the owner of the token smart contract can call this function emits a `ComplianceAdded` event\"}},\"setIdentityRegistry(address)\":{\"details\":\"sets the Identity Registry for the token\",\"params\":{\"_identityRegistry\":\"the address of the Identity Registry to set Only the owner of the token smart contract can call this function emits an `IdentityRegistryAdded` event\"}},\"setName(string)\":{\"details\":\"sets the token name\",\"params\":{\"_name\":\"the name of token to set Only the owner of the token smart contract can call this function emits a `UpdatedTokenInformation` event\"}},\"setOnchainID(address)\":{\"details\":\"sets the onchain ID of the token\",\"params\":{\"_onchainID\":\"the address of the onchain ID to set Only the owner of the token smart contract can call this function emits a `UpdatedTokenInformation` event\"}},\"setSymbol(string)\":{\"details\":\"sets the token symbol\",\"params\":{\"_symbol\":\"the token symbol to set Only the owner of the token smart contract can call this function emits a `UpdatedTokenInformation` event\"}},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `sender` to `recipient` 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.\"},\"transferOwnershipOnTokenContract(address)\":{\"details\":\"transfers the ownership of the token smart contract\",\"params\":{\"_newOwner\":\"the address of the new token smart contract owner This function can only be called by the owner of the token emits an `OwnershipTransferred` event\"}},\"unfreezePartialTokens(address,uint256)\":{\"details\":\"unfreezes token amount specified for given address\",\"params\":{\"_amount\":\"Amount of Tokens to be unfrozen This function can only be called by a wallet set as agent of the token emits a `TokensUnfrozen` event\",\"_userAddress\":\"The address for which to update frozen tokens\"}},\"unpause()\":{\"details\":\"unpauses the token contract, when contract is unpaused investors can transfer tokens if their wallet is not blocked & if the amount to transfer is <= to the amount of free tokens This function can only be called by a wallet set as agent of the token emits an `Unpaused` event\"},\"version()\":{\"details\":\"Returns the TREX version of the token. current version is 3.0.0\"}},\"version\":1},\"userdoc\":{\"events\":{\"AddressFrozen(address,bool,address)\":{\"notice\":\"this event is emitted when the wallet of an investor is frozen or unfrozen the event is emitted by setAddressFrozen and batchSetAddressFrozen functions `_userAddress` is the wallet of the investor that is concerned by the freezing status `_isFrozen` is the freezing status of the wallet if `_isFrozen` equals `true` the wallet is frozen after emission of the event if `_isFrozen` equals `false` the wallet is unfrozen after emission of the event `_owner` is the address of the agent who called the function to freeze the wallet\"},\"ComplianceAdded(address)\":{\"notice\":\"this event is emitted when the Compliance has been set for the token the event is emitted by the token constructor and by the setCompliance function `_compliance` is the address of the Compliance contract of the token\"},\"IdentityRegistryAdded(address)\":{\"notice\":\"this event is emitted when the IdentityRegistry has been set for the token the event is emitted by the token constructor and by the setIdentityRegistry function `_identityRegistry` is the address of the Identity Registry of the token\"},\"Paused(address)\":{\"notice\":\"this event is emitted when the token is paused the event is emitted by the pause function `_userAddress` is the address of the wallet that called the pause function\"},\"RecoverySuccess(address,address,address)\":{\"notice\":\"this event is emitted when an investor successfully recovers his tokens the event is emitted by the recoveryAddress function `_lostWallet` is the address of the wallet that the investor lost access to `_newWallet` is the address of the wallet that the investor provided for the recovery `_investorOnchainID` is the address of the onchainID of the investor who asked for a recovery\"},\"TokensFrozen(address,uint256)\":{\"notice\":\"this event is emitted when a certain amount of tokens is frozen on a wallet the event is emitted by freezePartialTokens and batchFreezePartialTokens functions `_userAddress` is the wallet of the investor that is concerned by the freezing status `_amount` is the amount of tokens that are frozen\"},\"TokensUnfrozen(address,uint256)\":{\"notice\":\"this event is emitted when a certain amount of tokens is unfrozen on a wallet the event is emitted by unfreezePartialTokens and batchUnfreezePartialTokens functions `_userAddress` is the wallet of the investor that is concerned by the freezing status `_amount` is the amount of tokens that are unfrozen\"},\"Unpaused(address)\":{\"notice\":\"this event is emitted when the token is unpaused the event is emitted by the unpause function `_userAddress` is the address of the wallet that called the unpause function\"},\"UpdatedTokenInformation(string,string,uint8,string,address)\":{\"notice\":\"this event is emitted when the token information is updated. the event is emitted by the token constructor and by the setTokenInformation function `_newName` is the name of the token `_newSymbol` is the symbol of the token `_newDecimals` is the decimals of the token `_newVersion` is the version of the token, current version is 3.0 `_newOnchainID` is the address of the onchainID of the token\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":\"ITokenLegacy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":{\"keccak256\":\"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a\",\"dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":true},{"internalType":"bool","name":"_isFrozen","type":"bool","indexed":true},{"internalType":"address","name":"_owner","type":"address","indexed":true}],"type":"event","name":"AddressFrozen","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_identityRegistry","type":"address","indexed":true}],"type":"event","name":"IdentityRegistryAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"_lostWallet","type":"address","indexed":false},{"internalType":"address","name":"_newWallet","type":"address","indexed":false},{"internalType":"address","name":"_investorOnchainID","type":"address","indexed":false}],"type":"event","name":"RecoverySuccess","anonymous":false},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":true},{"internalType":"uint256","name":"_amount","type":"uint256","indexed":false}],"type":"event","name":"TokensFrozen","anonymous":false},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":true},{"internalType":"uint256","name":"_amount","type":"uint256","indexed":false}],"type":"event","name":"TokensUnfrozen","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"string","name":"_newName","type":"string","indexed":false},{"internalType":"string","name":"_newSymbol","type":"string","indexed":false},{"internalType":"uint8","name":"_newDecimals","type":"uint8","indexed":false},{"internalType":"string","name":"_newVersion","type":"string","indexed":false},{"internalType":"address","name":"_newOnchainID","type":"address","indexed":false}],"type":"event","name":"UpdatedTokenInformation","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgentOnTokenContract"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchBurn"},{"inputs":[{"internalType":"address[]","name":"_fromList","type":"address[]"},{"internalType":"address[]","name":"_toList","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchForcedTransfer"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchFreezePartialTokens"},{"inputs":[{"internalType":"address[]","name":"_toList","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchMint"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"bool[]","name":"_freeze","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"batchSetAddressFrozen"},{"inputs":[{"internalType":"address[]","name":"_toList","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchTransfer"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchUnfreezePartialTokens"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"compliance","outputs":[{"internalType":"contract IComplianceLegacy","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"forcedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"freezePartialTokens"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getFrozenTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"identityRegistry","outputs":[{"internalType":"contract IIdentityRegistryLegacy","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isFrozen","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"onchainID","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_lostWallet","type":"address"},{"internalType":"address","name":"_newWallet","type":"address"},{"internalType":"address","name":"_investorOnchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recoveryAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgentOnTokenContract"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"bool","name":"_freeze","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setAddressFrozen"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setCompliance"},{"inputs":[{"internalType":"address","name":"_identityRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setIdentityRegistry"},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setName"},{"inputs":[{"internalType":"address","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOnchainID"},{"inputs":[{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setSymbol"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnershipOnTokenContract"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unfreezePartialTokens"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"addAgentOnTokenContract(address)":{"details":"adds an agent to the token smart contract","params":{"_agent":"the address of the new agent of the token smart contract This function can only be called by the owner of the token emits an `AgentAdded` event"}},"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`."},"batchBurn(address[],uint256[])":{"details":"function allowing to burn tokens in batch Require that the `_userAddresses` addresses are all verified addresses IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \"OUT OF GAS\" TRANSACTION","params":{"_amounts":"The number of tokens to burn from the corresponding wallets This function can only be called by a wallet set as agent of the token emits _userAddresses.length `Transfer` events","_userAddresses":"The addresses of the wallets concerned by the burn"}},"batchForcedTransfer(address[],address[],uint256[])":{"details":"function allowing to issue forced transfers in batch Require that `_amounts[i]` should not exceed available balance of `_fromList[i]`. Require that the `_toList` addresses are all verified addresses IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_fromList.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \"OUT OF GAS\" TRANSACTION","params":{"_amounts":"The number of tokens to transfer to the corresponding receiver This function can only be called by a wallet set as agent of the token emits `TokensUnfrozen` events if `_amounts[i]` is higher than the free balance of `_fromList[i]` emits _fromList.length `Transfer` events","_fromList":"The addresses of the senders","_toList":"The addresses of the receivers"}},"batchFreezePartialTokens(address[],uint256[])":{"details":"function allowing to freeze tokens partially in batch IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \"OUT OF GAS\" TRANSACTION","params":{"_amounts":"the amount of tokens to freeze on the corresponding address This function can only be called by a wallet set as agent of the token emits _userAddresses.length `TokensFrozen` events","_userAddresses":"The addresses on which tokens need to be frozen"}},"batchMint(address[],uint256[])":{"details":"function allowing to mint tokens in batch Require that the `_toList` addresses are all verified addresses IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_toList.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \"OUT OF GAS\" TRANSACTION","params":{"_amounts":"The number of tokens to mint to the corresponding receiver This function can only be called by a wallet set as agent of the token emits _toList.length `Transfer` events","_toList":"The addresses of the receivers"}},"batchSetAddressFrozen(address[],bool[])":{"details":"function allowing to set frozen addresses in batch IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \"OUT OF GAS\" TRANSACTION","params":{"_freeze":"Frozen status of the corresponding address This function can only be called by a wallet set as agent of the token emits _userAddresses.length `AddressFrozen` events","_userAddresses":"The addresses for which to update frozen status"}},"batchTransfer(address[],uint256[])":{"details":"function allowing to issue transfers in batch Require that the msg.sender and `to` addresses are not frozen. Require that the total value should not exceed available balance. Require that the `to` addresses are all verified addresses, IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_toList.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \"OUT OF GAS\" TRANSACTION","params":{"_amounts":"The number of tokens to transfer to the corresponding receiver emits _toList.length `Transfer` events","_toList":"The addresses of the receivers"}},"batchUnfreezePartialTokens(address[],uint256[])":{"details":"function allowing to unfreeze tokens partially in batch IMPORTANT : THIS TRANSACTION COULD EXCEED GAS LIMIT IF `_userAddresses.length` IS TOO HIGH, USE WITH CARE OR YOU COULD LOSE TX FEES WITH AN \"OUT OF GAS\" TRANSACTION","params":{"_amounts":"the amount of tokens to unfreeze on the corresponding address This function can only be called by a wallet set as agent of the token emits _userAddresses.length `TokensUnfrozen` events","_userAddresses":"The addresses on which tokens need to be unfrozen"}},"burn(address,uint256)":{"details":"burn tokens on a wallet In case the `account` address has not enough free tokens (unfrozen tokens) but has a total balance higher or equal to the `value` amount the amount of frozen tokens is reduced in order to have enough free tokens to proceed the burn, in such a case, the remaining balance on the `account` is 100% composed of frozen tokens post-transaction.","params":{"_amount":"Amount of tokens to burn. This function can only be called by a wallet set as agent of the token emits a `TokensUnfrozen` event if `_amount` is higher than the free balance of `_userAddress` emits a `Transfer` event","_userAddress":"Address to burn the tokens from."}},"compliance()":{"details":"Returns the Compliance contract linked to the token"},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 1 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including balanceOf() and transfer()."},"forcedTransfer(address,address,uint256)":{"details":"force a transfer of tokens between 2 whitelisted wallets In case the `from` address has not enough free tokens (unfrozen tokens) but has a total balance higher or equal to the `amount` the amount of frozen tokens is reduced in order to have enough free tokens to proceed the transfer, in such a case, the remaining balance on the `from` account is 100% composed of frozen tokens post-transfer. Require that the `to` address is a verified address,","params":{"_amount":"The number of tokens to transfer","_from":"The address of the sender","_to":"The address of the receiver"},"returns":{"_0":"`true` if successful and revert if unsuccessful This function can only be called by a wallet set as agent of the token emits a `TokensUnfrozen` event if `_amount` is higher than the free balance of `_from` emits a `Transfer` event"}},"freezePartialTokens(address,uint256)":{"details":"freezes token amount specified for given address.","params":{"_amount":"Amount of Tokens to be frozen This function can only be called by a wallet set as agent of the token emits a `TokensFrozen` event","_userAddress":"The address for which to update frozen tokens"}},"getFrozenTokens(address)":{"details":"Returns the amount of tokens that are partially frozen on a wallet the amount of frozen tokens is always <= to the total balance of the wallet","params":{"_userAddress":"the address of the wallet on which getFrozenTokens is called"}},"identityRegistry()":{"details":"Returns the Identity Registry linked to the token"},"isFrozen(address)":{"details":"Returns the freezing status of a wallet if isFrozen returns `true` the wallet is frozen if isFrozen returns `false` the wallet is not frozen isFrozen returning `true` doesn't mean that the balance is free, tokens could be blocked by a partial freeze or the whole token could be blocked by pause","params":{"_userAddress":"the address of the wallet on which isFrozen is called"}},"mint(address,uint256)":{"details":"mint tokens on a wallet Improved version of default mint method. Tokens can be minted to an address if only it is a verified address as per the security token.","params":{"_amount":"Amount of tokens to mint. This function can only be called by a wallet set as agent of the token emits a `Transfer` event","_to":"Address to mint the tokens to."}},"name()":{"details":"Returns the name of the token."},"onchainID()":{"details":"Returns the address of the onchainID of the token. the onchainID of the token gives all the information available about the token and is managed by the token issuer or his agent."},"pause()":{"details":"pauses the token contract, when contract is paused investors cannot transfer tokens anymore This function can only be called by a wallet set as agent of the token emits a `Paused` event"},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"recoveryAddress(address,address,address)":{"details":"recovery function used to force transfer tokens from a lost wallet to a new wallet for an investor.","params":{"_investorOnchainID":"the onchainID of the investor asking for a recovery This function can only be called by a wallet set as agent of the token emits a `TokensUnfrozen` event if there is some frozen tokens on the lost wallet if the recovery process is successful emits a `Transfer` event if the recovery process is successful emits a `RecoverySuccess` event if the recovery process is successful emits a `RecoveryFails` event if the recovery process fails","_lostWallet":"the wallet that the investor lost","_newWallet":"the newly provided wallet on which tokens have to be transferred"}},"removeAgentOnTokenContract(address)":{"details":"remove an agent from the token smart contract","params":{"_agent":"the address of the agent to remove This function can only be called by the owner of the token emits an `AgentRemoved` event"}},"setAddressFrozen(address,bool)":{"details":"sets an address frozen status for this token.","params":{"_freeze":"Frozen status of the address This function can only be called by a wallet set as agent of the token emits an `AddressFrozen` event","_userAddress":"The address for which to update frozen status"}},"setCompliance(address)":{"details":"sets the compliance contract of the token","params":{"_compliance":"the address of the compliance contract to set Only the owner of the token smart contract can call this function emits a `ComplianceAdded` event"}},"setIdentityRegistry(address)":{"details":"sets the Identity Registry for the token","params":{"_identityRegistry":"the address of the Identity Registry to set Only the owner of the token smart contract can call this function emits an `IdentityRegistryAdded` event"}},"setName(string)":{"details":"sets the token name","params":{"_name":"the name of token to set Only the owner of the token smart contract can call this function emits a `UpdatedTokenInformation` event"}},"setOnchainID(address)":{"details":"sets the onchain ID of the token","params":{"_onchainID":"the address of the onchain ID to set Only the owner of the token smart contract can call this function emits a `UpdatedTokenInformation` event"}},"setSymbol(string)":{"details":"sets the token symbol","params":{"_symbol":"the token symbol to set Only the owner of the token smart contract can call this function emits a `UpdatedTokenInformation` event"}},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `sender` to `recipient` 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."},"transferOwnershipOnTokenContract(address)":{"details":"transfers the ownership of the token smart contract","params":{"_newOwner":"the address of the new token smart contract owner This function can only be called by the owner of the token emits an `OwnershipTransferred` event"}},"unfreezePartialTokens(address,uint256)":{"details":"unfreezes token amount specified for given address","params":{"_amount":"Amount of Tokens to be unfrozen This function can only be called by a wallet set as agent of the token emits a `TokensUnfrozen` event","_userAddress":"The address for which to update frozen tokens"}},"unpause()":{"details":"unpauses the token contract, when contract is unpaused investors can transfer tokens if their wallet is not blocked & if the amount to transfer is <= to the amount of free tokens This function can only be called by a wallet set as agent of the token emits an `Unpaused` event"},"version()":{"details":"Returns the TREX version of the token. current version is 3.0.0"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":"ITokenLegacy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":{"keccak256":"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d","urls":["bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a","dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3"],"license":"GPL-3.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/LegacyToken_3_5_2.sol/ITrustedIssuersRegistryLegacy.json b/out/LegacyToken_3_5_2.sol/ITrustedIssuersRegistryLegacy.json new file mode 100644 index 0000000..5145211 --- /dev/null +++ b/out/LegacyToken_3_5_2.sol/ITrustedIssuersRegistryLegacy.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addTrustedIssuer","inputs":[{"name":"_trustedIssuer","type":"address","internalType":"contract IClaimIssuerLegacy"},{"name":"_claimTopics","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getTrustedIssuerClaimTopics","inputs":[{"name":"_trustedIssuer","type":"address","internalType":"contract IClaimIssuerLegacy"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getTrustedIssuers","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"contract IClaimIssuerLegacy[]"}],"stateMutability":"view"},{"type":"function","name":"hasClaimTopic","inputs":[{"name":"_issuer","type":"address","internalType":"address"},{"name":"_claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTrustedIssuer","inputs":[{"name":"_issuer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeTrustedIssuer","inputs":[{"name":"_trustedIssuer","type":"address","internalType":"contract IClaimIssuerLegacy"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnershipOnIssuersRegistryContract","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateIssuerClaimTopics","inputs":[{"name":"_trustedIssuer","type":"address","internalType":"contract IClaimIssuerLegacy"},{"name":"_claimTopics","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ClaimTopicsUpdated","inputs":[{"name":"trustedIssuer","type":"address","indexed":true,"internalType":"contract IClaimIssuerLegacy"},{"name":"claimTopics","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TrustedIssuerAdded","inputs":[{"name":"trustedIssuer","type":"address","indexed":true,"internalType":"contract IClaimIssuerLegacy"},{"name":"claimTopics","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TrustedIssuerRemoved","inputs":[{"name":"trustedIssuer","type":"address","indexed":true,"internalType":"contract IClaimIssuerLegacy"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addTrustedIssuer(address,uint256[])":"9f63ea98","getTrustedIssuerClaimTopics(address)":"c28fb278","getTrustedIssuers()":"d9dd24c5","hasClaimTopic(address,uint256)":"34a89987","isTrustedIssuer(address)":"ef2ed1a4","removeTrustedIssuer(address)":"b93d28eb","transferOwnershipOnIssuersRegistryContract(address)":"e36dce28","updateIssuerClaimTopics(address,uint256[])":"04bc7e84"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IClaimIssuerLegacy\",\"name\":\"trustedIssuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"ClaimTopicsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IClaimIssuerLegacy\",\"name\":\"trustedIssuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"TrustedIssuerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IClaimIssuerLegacy\",\"name\":\"trustedIssuer\",\"type\":\"address\"}],\"name\":\"TrustedIssuerRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuerLegacy\",\"name\":\"_trustedIssuer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"addTrustedIssuer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuerLegacy\",\"name\":\"_trustedIssuer\",\"type\":\"address\"}],\"name\":\"getTrustedIssuerClaimTopics\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTrustedIssuers\",\"outputs\":[{\"internalType\":\"contract IClaimIssuerLegacy[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_issuer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_claimTopic\",\"type\":\"uint256\"}],\"name\":\"hasClaimTopic\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_issuer\",\"type\":\"address\"}],\"name\":\"isTrustedIssuer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuerLegacy\",\"name\":\"_trustedIssuer\",\"type\":\"address\"}],\"name\":\"removeTrustedIssuer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnershipOnIssuersRegistryContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuerLegacy\",\"name\":\"_trustedIssuer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"updateIssuerClaimTopics\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addTrustedIssuer(address,uint256[])\":{\"details\":\"registers a ClaimIssuer contract as trusted claim issuer. Requires that a ClaimIssuer contract doesn't already exist Requires that the claimTopics set is not empty\",\"params\":{\"_claimTopics\":\"the set of claim topics that the trusted issuer is allowed to emit This function can only be called by the owner of the Trusted Issuers Registry contract emits a `TrustedIssuerAdded` event\",\"_trustedIssuer\":\"The ClaimIssuer contract address of the trusted claim issuer.\"}},\"getTrustedIssuerClaimTopics(address)\":{\"details\":\"Function for getting all the claim topic of trusted claim issuer Requires the provided ClaimIssuer contract to be registered in the trusted issuers registry.\",\"params\":{\"_trustedIssuer\":\"the trusted issuer concerned.\"},\"returns\":{\"_0\":\"The set of claim topics that the trusted issuer is allowed to emit\"}},\"getTrustedIssuers()\":{\"details\":\"Function for getting all the trusted claim issuers stored.\",\"returns\":{\"_0\":\"array of all claim issuers registered.\"}},\"hasClaimTopic(address,uint256)\":{\"details\":\"Function for checking if the trusted claim issuer is allowed to emit a certain claim topic\",\"params\":{\"_claimTopic\":\"the Claim Topic that has to be checked to know if the `issuer` is allowed to emit it\",\"_issuer\":\"the address of the trusted issuer's ClaimIssuer contract\"},\"returns\":{\"_0\":\"true if the issuer is trusted for this claim topic.\"}},\"isTrustedIssuer(address)\":{\"details\":\"Checks if the ClaimIssuer contract is trusted\",\"params\":{\"_issuer\":\"the address of the ClaimIssuer contract\"},\"returns\":{\"_0\":\"true if the issuer is trusted, false otherwise.\"}},\"removeTrustedIssuer(address)\":{\"details\":\"Removes the ClaimIssuer contract of a trusted claim issuer. Requires that the claim issuer contract to be registered first\",\"params\":{\"_trustedIssuer\":\"the claim issuer to remove. This function can only be called by the owner of the Trusted Issuers Registry contract emits a `TrustedIssuerRemoved` event\"}},\"transferOwnershipOnIssuersRegistryContract(address)\":{\"details\":\"Transfers the Ownership of TrustedIssuersRegistry to a new Owner.\",\"params\":{\"_newOwner\":\"The new owner of this contract. This function can only be called by the owner of the Trusted Issuers Registry contract emits an `OwnershipTransferred` event\"}},\"updateIssuerClaimTopics(address,uint256[])\":{\"details\":\"Updates the set of claim topics that a trusted issuer is allowed to emit. Requires that this ClaimIssuer contract already exists in the registry Requires that the provided claimTopics set is not empty\",\"params\":{\"_claimTopics\":\"the set of claim topics that the trusted issuer is allowed to emit This function can only be called by the owner of the Trusted Issuers Registry contract emits a `ClaimTopicsUpdated` event\",\"_trustedIssuer\":\"the claim issuer to update.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ClaimTopicsUpdated(address,uint256[])\":{\"notice\":\"this event is emitted when the set of claim topics is changed for a given trusted issuer. the event is emitted by the updateIssuerClaimTopics function `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract `claimTopics` is the set of claims that the trusted issuer is allowed to emit\"},\"TrustedIssuerAdded(address,uint256[])\":{\"notice\":\"this event is emitted when a trusted issuer is added in the registry. the event is emitted by the addTrustedIssuer function `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract `claimTopics` is the set of claims that the trusted issuer is allowed to emit\"},\"TrustedIssuerRemoved(address)\":{\"notice\":\"this event is emitted when a trusted issuer is removed from the registry. the event is emitted by the removeTrustedIssuer function `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract\"}},\"kind\":\"user\",\"methods\":{},\"notice\":\"NOTICE The T-REX software is licensed under a proprietary license or the GPL v.3. If you choose to receive it under the GPL v.3 license, the following applies: T-REX is a suite of smart contracts developed by Tokeny to manage and transfer financial assets on the ethereum blockchain Copyright (C) 2021, Tokeny s\\u00e0rl. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see .\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":\"ITrustedIssuersRegistryLegacy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":{\"keccak256\":\"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a\",\"dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IClaimIssuerLegacy","name":"trustedIssuer","type":"address","indexed":true},{"internalType":"uint256[]","name":"claimTopics","type":"uint256[]","indexed":false}],"type":"event","name":"ClaimTopicsUpdated","anonymous":false},{"inputs":[{"internalType":"contract IClaimIssuerLegacy","name":"trustedIssuer","type":"address","indexed":true},{"internalType":"uint256[]","name":"claimTopics","type":"uint256[]","indexed":false}],"type":"event","name":"TrustedIssuerAdded","anonymous":false},{"inputs":[{"internalType":"contract IClaimIssuerLegacy","name":"trustedIssuer","type":"address","indexed":true}],"type":"event","name":"TrustedIssuerRemoved","anonymous":false},{"inputs":[{"internalType":"contract IClaimIssuerLegacy","name":"_trustedIssuer","type":"address"},{"internalType":"uint256[]","name":"_claimTopics","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"addTrustedIssuer"},{"inputs":[{"internalType":"contract IClaimIssuerLegacy","name":"_trustedIssuer","type":"address"}],"stateMutability":"view","type":"function","name":"getTrustedIssuerClaimTopics","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTrustedIssuers","outputs":[{"internalType":"contract IClaimIssuerLegacy[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_issuer","type":"address"},{"internalType":"uint256","name":"_claimTopic","type":"uint256"}],"stateMutability":"view","type":"function","name":"hasClaimTopic","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_issuer","type":"address"}],"stateMutability":"view","type":"function","name":"isTrustedIssuer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"contract IClaimIssuerLegacy","name":"_trustedIssuer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTrustedIssuer"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnershipOnIssuersRegistryContract"},{"inputs":[{"internalType":"contract IClaimIssuerLegacy","name":"_trustedIssuer","type":"address"},{"internalType":"uint256[]","name":"_claimTopics","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"updateIssuerClaimTopics"}],"devdoc":{"kind":"dev","methods":{"addTrustedIssuer(address,uint256[])":{"details":"registers a ClaimIssuer contract as trusted claim issuer. Requires that a ClaimIssuer contract doesn't already exist Requires that the claimTopics set is not empty","params":{"_claimTopics":"the set of claim topics that the trusted issuer is allowed to emit This function can only be called by the owner of the Trusted Issuers Registry contract emits a `TrustedIssuerAdded` event","_trustedIssuer":"The ClaimIssuer contract address of the trusted claim issuer."}},"getTrustedIssuerClaimTopics(address)":{"details":"Function for getting all the claim topic of trusted claim issuer Requires the provided ClaimIssuer contract to be registered in the trusted issuers registry.","params":{"_trustedIssuer":"the trusted issuer concerned."},"returns":{"_0":"The set of claim topics that the trusted issuer is allowed to emit"}},"getTrustedIssuers()":{"details":"Function for getting all the trusted claim issuers stored.","returns":{"_0":"array of all claim issuers registered."}},"hasClaimTopic(address,uint256)":{"details":"Function for checking if the trusted claim issuer is allowed to emit a certain claim topic","params":{"_claimTopic":"the Claim Topic that has to be checked to know if the `issuer` is allowed to emit it","_issuer":"the address of the trusted issuer's ClaimIssuer contract"},"returns":{"_0":"true if the issuer is trusted for this claim topic."}},"isTrustedIssuer(address)":{"details":"Checks if the ClaimIssuer contract is trusted","params":{"_issuer":"the address of the ClaimIssuer contract"},"returns":{"_0":"true if the issuer is trusted, false otherwise."}},"removeTrustedIssuer(address)":{"details":"Removes the ClaimIssuer contract of a trusted claim issuer. Requires that the claim issuer contract to be registered first","params":{"_trustedIssuer":"the claim issuer to remove. This function can only be called by the owner of the Trusted Issuers Registry contract emits a `TrustedIssuerRemoved` event"}},"transferOwnershipOnIssuersRegistryContract(address)":{"details":"Transfers the Ownership of TrustedIssuersRegistry to a new Owner.","params":{"_newOwner":"The new owner of this contract. This function can only be called by the owner of the Trusted Issuers Registry contract emits an `OwnershipTransferred` event"}},"updateIssuerClaimTopics(address,uint256[])":{"details":"Updates the set of claim topics that a trusted issuer is allowed to emit. Requires that this ClaimIssuer contract already exists in the registry Requires that the provided claimTopics set is not empty","params":{"_claimTopics":"the set of claim topics that the trusted issuer is allowed to emit This function can only be called by the owner of the Trusted Issuers Registry contract emits a `ClaimTopicsUpdated` event","_trustedIssuer":"the claim issuer to update."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":"ITrustedIssuersRegistryLegacy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":{"keccak256":"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d","urls":["bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a","dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3"],"license":"GPL-3.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/LegacyToken_3_5_2.sol/InitializableLegacy.json b/out/LegacyToken_3_5_2.sol/InitializableLegacy.json new file mode 100644 index 0000000..954ede1 --- /dev/null +++ b/out/LegacyToken_3_5_2.sol/InitializableLegacy.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"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 a proxied contract can't have 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. 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.\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"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\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":\"InitializableLegacy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":{\"keccak256\":\"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a\",\"dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":"InitializableLegacy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":{"keccak256":"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d","urls":["bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a","dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3"],"license":"GPL-3.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/LegacyToken_3_5_2.sol/LegacyIIdentity.json b/out/LegacyToken_3_5_2.sol/LegacyIIdentity.json new file mode 100644 index 0000000..52f9555 --- /dev/null +++ b/out/LegacyToken_3_5_2.sol/LegacyIIdentity.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addClaim","inputs":[{"name":"_topic","type":"uint256","internalType":"uint256"},{"name":"_scheme","type":"uint256","internalType":"uint256"},{"name":"issuer","type":"address","internalType":"address"},{"name":"_signature","type":"bytes","internalType":"bytes"},{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_uri","type":"string","internalType":"string"}],"outputs":[{"name":"claimRequestId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"addKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"},{"name":"_keyType","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"_id","type":"uint256","internalType":"uint256"},{"name":"_approve","type":"bool","internalType":"bool"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"execute","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"executionId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"getClaim","inputs":[{"name":"_claimId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"topic","type":"uint256","internalType":"uint256"},{"name":"scheme","type":"uint256","internalType":"uint256"},{"name":"issuer","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"uri","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getClaimIdsByTopic","inputs":[{"name":"_topic","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"claimIds","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"purposes","type":"uint256[]","internalType":"uint256[]"},{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getKeyPurposes","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_purposes","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getKeysByPurpose","inputs":[{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keys","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"keyHasPurpose","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeClaim","inputs":[{"name":"_claimId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeKey","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_purpose","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approved","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ClaimAdded","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimChanged","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimRemoved","inputs":[{"name":"claimId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ClaimRequested","inputs":[{"name":"claimRequestId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"topic","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"scheme","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":true,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"uri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"Executed","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ExecutionFailed","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ExecutionRequested","inputs":[{"name":"executionId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"KeyAdded","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"purpose","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"keyType","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"KeyRemoved","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"purpose","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"keyType","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"KeysRequiredChanged","inputs":[{"name":"purpose","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"number","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addClaim(uint256,uint256,address,bytes,bytes,string)":"b1a34e0d","addKey(bytes32,uint256,uint256)":"1d381240","approve(uint256,bool)":"747442d3","execute(address,uint256,bytes)":"b61d27f6","getClaim(bytes32)":"c9100bcb","getClaimIdsByTopic(uint256)":"80e9e9e1","getKey(bytes32)":"12aaac70","getKeyPurposes(bytes32)":"fb307b34","getKeysByPurpose(uint256)":"9010f726","keyHasPurpose(bytes32,uint256)":"d202158d","removeClaim(bytes32)":"4eee424a","removeKey(bytes32,uint256)":"53d413c5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"Approved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"claimRequestId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"ClaimRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Executed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"name\":\"KeysRequiredChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_topic\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_scheme\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"_uri\",\"type\":\"string\"}],\"name\":\"addClaim\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimRequestId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_keyType\",\"type\":\"uint256\"}],\"name\":\"addKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_approve\",\"type\":\"bool\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimId\",\"type\":\"bytes32\"}],\"name\":\"getClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"topic\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"scheme\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_topic\",\"type\":\"uint256\"}],\"name\":\"getClaimIdsByTopic\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"claimIds\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getKey\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"purposes\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getKeyPurposes\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_purposes\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"getKeysByPurpose\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"keys\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"keyHasPurpose\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimId\",\"type\":\"bytes32\"}],\"name\":\"removeClaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"removeKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approved(uint256,bool)\":{\"details\":\"Emitted when an execution request was approved. Specification: MUST be triggered when approve was successfully called.\"},\"ClaimAdded(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was added. Specification: MUST be triggered when a claim was successfully added.\"},\"ClaimChanged(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was changed. Specification: MUST be triggered when changeClaim was successfully called.\"},\"ClaimRemoved(bytes32,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim was removed. Specification: MUST be triggered when removeClaim was successfully called.\"},\"ClaimRequested(uint256,uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Emitted when a claim request was performed. Specification: Is not clear\"},\"Executed(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execute operation was approved and successfully performed. Specification: MUST be triggered when approve was called and the execution was successfully approved.\"},\"ExecutionRequested(uint256,address,uint256,bytes)\":{\"details\":\"Emitted when an execution request was performed via `execute`. Specification: MUST be triggered when execute was successfully called.\"},\"KeyAdded(bytes32,uint256,uint256)\":{\"details\":\"Emitted when a key was added to the Identity. Specification: MUST be triggered when addKey was successfully called.\"},\"KeyRemoved(bytes32,uint256,uint256)\":{\"details\":\"Emitted when a key was removed from the Identity. Specification: MUST be triggered when removeKey was successfully called.\"},\"KeysRequiredChanged(uint256,uint256)\":{\"details\":\"Emitted when the list of required keys to perform an action was updated. Specification: MUST be triggered when changeKeysRequired was successfully called.\"}},\"kind\":\"dev\",\"methods\":{\"addClaim(uint256,uint256,address,bytes,bytes,string)\":{\"details\":\"Add or update a claim. Triggers Event: `ClaimRequested`, `ClaimAdded`, `ClaimChanged` Specification: Requests the ADDITION or the CHANGE of a claim from an issuer. Claims can requested to be added by anybody, including the claim holder itself (self issued). _signature is a signed message of the following structure: `keccak256(abi.encode(address identityHolder_address, uint256 topic, bytes data))`. Claim IDs are generated using `keccak256(abi.encode(address issuer_address + uint256 topic))`. This COULD implement an approval process for pending claims, or add them right away. MUST return a claimRequestId (use claim ID) that COULD be sent to the approve function.\"},\"addKey(bytes32,uint256,uint256)\":{\"details\":\"Adds a _key to the identity. The _purpose specifies the purpose of the key. Triggers Event: `KeyAdded` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval.\"},\"approve(uint256,bool)\":{\"details\":\"Approves an execution or claim addition. Triggers Event: `Approved`, `Executed` Specification: This SHOULD require n of m approvals of keys purpose 1, if the _to of the execution is the identity contract itself, to successfully approve an execution. And COULD require n of m approvals of keys purpose 2, if the _to of the execution is another contract, to successfully approve an execution.\"},\"execute(address,uint256,bytes)\":{\"details\":\"Passes an execution instruction to an ERC725 identity. Triggers Event: `ExecutionRequested`, `Executed` Specification: SHOULD require approve to be called with one or more keys of purpose 1 or 2 to approve this execution. Execute COULD be used as the only accessor for `addKey` and `removeKey`.\"},\"getClaim(bytes32)\":{\"details\":\"Get a claim by its ID. Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`.\"},\"getClaimIdsByTopic(uint256)\":{\"details\":\"Returns an array of claim IDs by topic.\"},\"getKey(bytes32)\":{\"details\":\"Returns the full key data, if present in the identity.\"},\"getKeyPurposes(bytes32)\":{\"details\":\"Returns the list of purposes associated with a key.\"},\"getKeysByPurpose(uint256)\":{\"details\":\"Returns an array of public key bytes32 held by this identity.\"},\"keyHasPurpose(bytes32,uint256)\":{\"details\":\"Returns TRUE if a key is present and has the given purpose. If the key is not present it returns FALSE.\"},\"removeClaim(bytes32)\":{\"details\":\"Removes a claim. Triggers Event: `ClaimRemoved` Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`.\"},\"removeKey(bytes32,uint256)\":{\"details\":\"Removes _purpose for _key from the identity. Triggers Event: `KeyRemoved` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":\"LegacyIIdentity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":{\"keccak256\":\"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a\",\"dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"Approved","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"claimRequestId","type":"uint256","indexed":true},{"internalType":"uint256","name":"topic","type":"uint256","indexed":true},{"internalType":"uint256","name":"scheme","type":"uint256","indexed":false},{"internalType":"address","name":"issuer","type":"address","indexed":true},{"internalType":"bytes","name":"signature","type":"bytes","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"string","name":"uri","type":"string","indexed":false}],"type":"event","name":"ClaimRequested","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Executed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"ExecutionFailed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"executionId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"ExecutionRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"uint256","name":"purpose","type":"uint256","indexed":true},{"internalType":"uint256","name":"keyType","type":"uint256","indexed":true}],"type":"event","name":"KeyAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"uint256","name":"purpose","type":"uint256","indexed":true},{"internalType":"uint256","name":"keyType","type":"uint256","indexed":true}],"type":"event","name":"KeyRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"purpose","type":"uint256","indexed":false},{"internalType":"uint256","name":"number","type":"uint256","indexed":false}],"type":"event","name":"KeysRequiredChanged","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_topic","type":"uint256"},{"internalType":"uint256","name":"_scheme","type":"uint256"},{"internalType":"address","name":"issuer","type":"address"},{"internalType":"bytes","name":"_signature","type":"bytes"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"string","name":"_uri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addClaim","outputs":[{"internalType":"bytes32","name":"claimRequestId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"},{"internalType":"uint256","name":"_keyType","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addKey","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"bool","name":"_approve","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"execute","outputs":[{"internalType":"uint256","name":"executionId","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"_claimId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClaim","outputs":[{"internalType":"uint256","name":"topic","type":"uint256"},{"internalType":"uint256","name":"scheme","type":"uint256"},{"internalType":"address","name":"issuer","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string","name":"uri","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"_topic","type":"uint256"}],"stateMutability":"view","type":"function","name":"getClaimIdsByTopic","outputs":[{"internalType":"bytes32[]","name":"claimIds","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKey","outputs":[{"internalType":"uint256[]","name":"purposes","type":"uint256[]"},{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"bytes32","name":"key","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeyPurposes","outputs":[{"internalType":"uint256[]","name":"_purposes","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"view","type":"function","name":"getKeysByPurpose","outputs":[{"internalType":"bytes32[]","name":"keys","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"view","type":"function","name":"keyHasPurpose","outputs":[{"internalType":"bool","name":"exists","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_claimId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeClaim","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_purpose","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeKey","outputs":[{"internalType":"bool","name":"success","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"addClaim(uint256,uint256,address,bytes,bytes,string)":{"details":"Add or update a claim. Triggers Event: `ClaimRequested`, `ClaimAdded`, `ClaimChanged` Specification: Requests the ADDITION or the CHANGE of a claim from an issuer. Claims can requested to be added by anybody, including the claim holder itself (self issued). _signature is a signed message of the following structure: `keccak256(abi.encode(address identityHolder_address, uint256 topic, bytes data))`. Claim IDs are generated using `keccak256(abi.encode(address issuer_address + uint256 topic))`. This COULD implement an approval process for pending claims, or add them right away. MUST return a claimRequestId (use claim ID) that COULD be sent to the approve function."},"addKey(bytes32,uint256,uint256)":{"details":"Adds a _key to the identity. The _purpose specifies the purpose of the key. Triggers Event: `KeyAdded` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval."},"approve(uint256,bool)":{"details":"Approves an execution or claim addition. Triggers Event: `Approved`, `Executed` Specification: This SHOULD require n of m approvals of keys purpose 1, if the _to of the execution is the identity contract itself, to successfully approve an execution. And COULD require n of m approvals of keys purpose 2, if the _to of the execution is another contract, to successfully approve an execution."},"execute(address,uint256,bytes)":{"details":"Passes an execution instruction to an ERC725 identity. Triggers Event: `ExecutionRequested`, `Executed` Specification: SHOULD require approve to be called with one or more keys of purpose 1 or 2 to approve this execution. Execute COULD be used as the only accessor for `addKey` and `removeKey`."},"getClaim(bytes32)":{"details":"Get a claim by its ID. Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`."},"getClaimIdsByTopic(uint256)":{"details":"Returns an array of claim IDs by topic."},"getKey(bytes32)":{"details":"Returns the full key data, if present in the identity."},"getKeyPurposes(bytes32)":{"details":"Returns the list of purposes associated with a key."},"getKeysByPurpose(uint256)":{"details":"Returns an array of public key bytes32 held by this identity."},"keyHasPurpose(bytes32,uint256)":{"details":"Returns TRUE if a key is present and has the given purpose. If the key is not present it returns FALSE."},"removeClaim(bytes32)":{"details":"Removes a claim. Triggers Event: `ClaimRemoved` Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`."},"removeKey(bytes32,uint256)":{"details":"Removes _purpose for _key from the identity. Triggers Event: `KeyRemoved` Specification: MUST only be done by keys of purpose 1, or the identity itself. If it's the identity itself, the approval process will determine its approval."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":"LegacyIIdentity"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":{"keccak256":"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d","urls":["bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a","dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3"],"license":"GPL-3.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/LegacyToken_3_5_2.sol/LegacyToken_3_5_2.json b/out/LegacyToken_3_5_2.sol/LegacyToken_3_5_2.json new file mode 100644 index 0000000..d1f9dac --- /dev/null +++ b/out/LegacyToken_3_5_2.sol/LegacyToken_3_5_2.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addAgentOnTokenContract","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"_spender","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"batchBurn","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchForcedTransfer","inputs":[{"name":"_fromList","type":"address[]","internalType":"address[]"},{"name":"_toList","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchFreezePartialTokens","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchMint","inputs":[{"name":"_toList","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchSetAddressFrozen","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_freeze","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchTransfer","inputs":[{"name":"_toList","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchUnfreezePartialTokens","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burn","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"compliance","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IComplianceLegacy"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"_spender","type":"address","internalType":"address"},{"name":"_subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"forcedTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"freezePartialTokens","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getFrozenTokens","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"identityRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IIdentityRegistryLegacy"}],"stateMutability":"view"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"_spender","type":"address","internalType":"address"},{"name":"_addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"init","inputs":[{"name":"_identityRegistry","type":"address","internalType":"address"},{"name":"_compliance","type":"address","internalType":"address"},{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_decimals","type":"uint8","internalType":"uint8"},{"name":"_onchainID","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isFrozen","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"onchainID","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"recoveryAddress","inputs":[{"name":"_lostWallet","type":"address","internalType":"address"},{"name":"_newWallet","type":"address","internalType":"address"},{"name":"_investorOnchainID","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeAgentOnTokenContract","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAddressFrozen","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_freeze","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIdentityRegistry","inputs":[{"name":"_identityRegistry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setName","inputs":[{"name":"_name","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOnchainID","inputs":[{"name":"_onchainID","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSymbol","inputs":[{"name":"_symbol","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnershipOnTokenContract","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unfreezePartialTokens","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"AddressFrozen","inputs":[{"name":"_userAddress","type":"address","indexed":true,"internalType":"address"},{"name":"_isFrozen","type":"bool","indexed":true,"internalType":"bool"},{"name":"_owner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ComplianceAdded","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"IdentityRegistryAdded","inputs":[{"name":"_identityRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"_userAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RecoverySuccess","inputs":[{"name":"_lostWallet","type":"address","indexed":false,"internalType":"address"},{"name":"_newWallet","type":"address","indexed":false,"internalType":"address"},{"name":"_investorOnchainID","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokensFrozen","inputs":[{"name":"_userAddress","type":"address","indexed":true,"internalType":"address"},{"name":"_amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TokensUnfrozen","inputs":[{"name":"_userAddress","type":"address","indexed":true,"internalType":"address"},{"name":"_amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"_userAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UpdatedTokenInformation","inputs":[{"name":"_newName","type":"string","indexed":false,"internalType":"string"},{"name":"_newSymbol","type":"string","indexed":false,"internalType":"string"},{"name":"_newDecimals","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"_newVersion","type":"string","indexed":false,"internalType":"string"},{"name":"_newOnchainID","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x6080604052606e805460ff1916905534801561001a57600080fd5b506135108061002a6000396000f3fe608060405234801561001057600080fd5b50600436106102bb5760003560e01c806370a0823111610182578063a9059cbb116100e9578063cbf3f861116100a2578063f2fde38b1161007c578063f2fde38b1461067e578063f898178914610691578063f91b619c146106a4578063fc7e5fa8146106b757600080fd5b8063cbf3f86114610606578063dd62ed3e14610619578063e58398361461065257600080fd5b8063a9059cbb14610591578063aba63705146105a4578063b422d830146105ba578063b84c8246146105cd578063c47f0027146105e0578063c69c09cf146105f357600080fd5b80639285948a1161013b5780639285948a1461052a57806395d89b411461053d57806397a6278e146105455780639dc29fac146105585780639fc1d0e71461056b578063a457c2d71461057e57600080fd5b806370a08231146104d0578063715018a6146104e35780638456cb59146104eb57806384e79842146104f357806388d695b2146105065780638da5cb5b1461051957600080fd5b80633d1ddc5b1161022657806351411b33116101df57806351411b331461045a57806354fd4d501461046d5780635c975abb1461048e5780635dc7a3cb146104995780636290865d146104ac57806368573107146104bd57600080fd5b80633d1ddc5b146103f35780633f4ba83a1461040657806340c10f191461040e57806342a47abc146104215780634710362d146104345780634a6cc6771461044757600080fd5b80631a7af379116102785780631a7af3791461037f5780631fe56f7d146103925780631ffbb064146103a557806323b872dd146103b8578063313ce567146103cb57806339509351146103e057600080fd5b806306fdde03146102c0578063095ea7b3146102de578063125c4a3314610301578063134e18f414610316578063158b1a571461034057806318160ddd14610377575b600080fd5b6102c86106ca565b6040516102d59190612baa565b60405180910390f35b6102f16102ec366004612bd9565b61075c565b60405190151581526020016102d5565b61031461030f366004612bd9565b610773565b005b606e5461010090046001600160a01b03165b6040516001600160a01b0390911681526020016102d5565b61036961034e366004612c03565b6001600160a01b03166000908152606d602052604090205490565b6040519081526020016102d5565b606854610369565b61031461038d366004612c6a565b6108a2565b6103146103a0366004612bd9565b61090d565b6102f16103b3366004612c03565b610a36565b6102f16103c6366004612cd6565b610a43565b606b5460405160ff90911681526020016102d5565b6102f16103ee366004612bd9565b610d4c565b610314610401366004612c03565b610d83565b610314610e3f565b61031461041c366004612bd9565b610eed565b61031461042f366004612d12565b611107565b610314610442366004612c6a565b611193565b610314610455366004612c6a565b6111ee565b610314610468366004612c03565b611249565b604080518082019091526005815264332e352e3160d81b60208201526102c8565b606e5460ff166102f1565b6103146104a7366004612c03565b61127f565b606f546001600160a01b0316610328565b6103146104cb366004612c6a565b611288565b6103696104de366004612c03565b6112e3565b6103146112fe565b610314611372565b610314610501366004612c03565b6113f7565b610314610514366004612c6a565b611463565b6033546001600160a01b0316610328565b6102f1610538366004612dac565b6114bf565b6102c861182f565b610314610553366004612c03565b61183e565b610314610566366004612bd9565b6118aa565b6102f1610579366004612cd6565b6119fd565b6102f161058c366004612bd9565b611bda565b6102f161059f366004612bd9565b611c11565b606b5461010090046001600160a01b0316610328565b6103146105c8366004612c03565b611e87565b6103146105db366004612def565b611e90565b6103146105ee366004612def565b611f3b565b610314610601366004612e6f565b611f72565b610314610614366004612c03565b611fec565b610369610627366004612ea6565b6001600160a01b03918216600090815260676020908152604080832093909416825291909152205490565b6102f1610660366004612c03565b6001600160a01b03166000908152606c602052604090205460ff1690565b61031461068c366004612c03565b612068565b61031461069f366004612c03565b612153565b6103146106b2366004612f7c565b6121c7565b6103146106c5366004612c6a565b61236f565b6060606980546106d990613029565b80601f016020809104026020016040519081016040528092919081815260200182805461070590613029565b80156107525780601f1061072757610100808354040283529160200191610752565b820191906000526020600020905b81548152906001019060200180831161073557829003601f168201915b5050505050905090565b60006107693384846123ca565b5060015b92915050565b61077c33610a36565b6107a15760405162461bcd60e51b815260040161079890613063565b60405180910390fd5b60006107ac836112e3565b6001600160a01b0384166000908152606d60205260409020549091506107d39083906130c7565b8110156108225760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206578636565647320617661696c61626c652062616c616e63656044820152606401610798565b6001600160a01b0383166000908152606d60205260409020546108469083906130c7565b6001600160a01b0384166000818152606d6020526040908190209290925590517fa065e63c631c86f1b9f66a4a2f63f2093bf1c2168d23290259dbd969e0222a45906108959085815260200190565b60405180910390a2505050565b60005b83811015610906576108fe8585838181106108c2576108c26130da565b90506020020160208101906108d79190612c03565b8484848181106108e9576108e96130da565b905060200201602081019061060191906130f0565b6001016108a5565b5050505050565b61091633610a36565b6109325760405162461bcd60e51b815260040161079890613063565b6001600160a01b0382166000908152606d60205260409020548111156109b75760405162461bcd60e51b815260206004820152603460248201527f416d6f756e742073686f756c64206265206c657373207468616e206f7220657160448201527375616c20746f2066726f7a656e20746f6b656e7360601b6064820152608401610798565b6001600160a01b0382166000908152606d60205260409020546109db90829061310d565b6001600160a01b0383166000818152606d6020526040908190209290925590517f9bed35cb62ad0dba04f9d5bfee4b5bc91443e77da8a65c4c84834c51bb08b0d690610a2a9084815260200190565b60405180910390a25050565b600061076d6065836124ef565b606e5460009060ff1615610a695760405162461bcd60e51b815260040161079890613120565b6001600160a01b0383166000908152606c602052604090205460ff16158015610aab57506001600160a01b0384166000908152606c602052604090205460ff16155b610aea5760405162461bcd60e51b815260206004820152601060248201526f3bb0b63632ba1034b990333937bd32b760811b6044820152606401610798565b6001600160a01b0384166000908152606d6020526040902054610b0c856112e3565b610b16919061310d565b821115610b5c5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610798565b606e5460405163b9209e3360e01b81526001600160a01b0385811660048301526101009092049091169063b9209e3390602401602060405180830381865afa158015610bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd0919061314a565b8015610c4c5750606f546040516372331c7360e11b81526001600160a01b039091169063e46638e690610c0b90879087908790600401613167565b602060405180830381865afa158015610c28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4c919061314a565b15610d0557606f546040516322ebca6d60e21b81526001600160a01b0390911690638baf29b490610c8590879087908790600401613167565b600060405180830381600087803b158015610c9f57600080fd5b505af1158015610cb3573d6000803e3d6000fd5b50505050610cc2848484612578565b6001600160a01b038416600090815260676020908152604080832033808552925290912054610cfd918691610cf890869061310d565b6123ca565b506001610d45565b60405162461bcd60e51b81526020600482015260156024820152745472616e73666572206e6f7420706f737369626c6560581b6044820152606401610798565b9392505050565b3360008181526067602090815260408083206001600160a01b03871684529091528120549091610769918590610cf89086906130c7565b6033546001600160a01b03163314610dad5760405162461bcd60e51b81526004016107989061318b565b606b80546001600160a01b03808416610100908102610100600160a81b031984168117948590556040805180820182526005815264332e352e3160d81b602082015290517f6a1105ac8148a3c319adbc369f9072573e8a11d3a3d195e067e7c40767ec54d196610e3496606996606a9660ff9687169690921695909517949104169061323d565b60405180910390a150565b610e4833610a36565b610e645760405162461bcd60e51b815260040161079890613063565b606e5460ff16610ead5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610798565b606e805460ff191690556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b610ef633610a36565b610f125760405162461bcd60e51b815260040161079890613063565b606e5460405163b9209e3360e01b81526001600160a01b0384811660048301526101009092049091169063b9209e3390602401602060405180830381865afa158015610f62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f86919061314a565b610fd25760405162461bcd60e51b815260206004820152601960248201527f4964656e74697479206973206e6f742076657269666965642e000000000000006044820152606401610798565b606f546040516372331c7360e11b81526001600160a01b039091169063e46638e69061100690339086908690600401613167565b602060405180830381865afa158015611023573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611047919061314a565b6110935760405162461bcd60e51b815260206004820152601760248201527f436f6d706c69616e6365206e6f7420666f6c6c6f7765640000000000000000006044820152606401610798565b61109d82826126e6565b606f54604051635f8dead360e01b81526001600160a01b0384811660048301526024820184905290911690635f8dead390604401600060405180830381600087803b1580156110eb57600080fd5b505af11580156110ff573d6000803e3d6000fd5b505050505050565b60005b8581101561118a57611181878783818110611127576111276130da565b905060200201602081019061113c9190612c03565b86868481811061114e5761114e6130da565b90506020020160208101906111639190612c03565b858585818110611175576111756130da565b905060200201356119fd565b5060010161110a565b50505050505050565b60005b83811015610906576111e68585838181106111b3576111b36130da565b90506020020160208101906111c89190612c03565b8484848181106111da576111da6130da565b9050602002013561090d565b600101611196565b60005b838110156109065761124185858381811061120e5761120e6130da565b90506020020160208101906112239190612c03565b848484818110611235576112356130da565b905060200201356118aa565b6001016111f1565b6033546001600160a01b031633146112735760405162461bcd60e51b81526004016107989061318b565b61127c81612068565b50565b61127c8161183e565b60005b83811015610906576112db8585838181106112a8576112a86130da565b90506020020160208101906112bd9190612c03565b8484848181106112cf576112cf6130da565b90506020020135610eed565b60010161128b565b6001600160a01b031660009081526066602052604090205490565b6033546001600160a01b031633146113285760405162461bcd60e51b81526004016107989061318b565b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319169055565b61137b33610a36565b6113975760405162461bcd60e51b815260040161079890613063565b606e5460ff16156113ba5760405162461bcd60e51b815260040161079890613120565b606e805460ff191660011790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610ee3565b6033546001600160a01b031633146114215760405162461bcd60e51b81526004016107989061318b565b61142c6065826127ce565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b60005b83811015610906576114b6858583818110611483576114836130da565b90506020020160208101906114989190612c03565b8484848181106114aa576114aa6130da565b90506020020135611c11565b50600101611466565b60006114ca33610a36565b6114e65760405162461bcd60e51b815260040161079890613063565b6114ef846112e3565b6000036115355760405162461bcd60e51b81526020600482015260146024820152733737903a37b5b2b739903a37903932b1b7bb32b960611b6044820152606401610798565b604080516001600160a01b038516602082015283916000910160408051808303601f1901815290829052805160209091012063d202158d60e01b8252600482018190526001602483015291506001600160a01b0383169063d202158d90604401602060405180830381865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d6919061314a565b156117ef5760006115e6876112e3565b6001600160a01b038881166000818152606d60205260409081902054606e549151637e42683b60e01b8152600481019390935293945061010090049091169063454a03e090899087908490637e42683b90602401602060405180830381865afa158015611657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167b919061329a565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015261ffff166044820152606401600060405180830381600087803b1580156116ce57600080fd5b505af11580156116e2573d6000803e3d6000fd5b5050606e5460405163a8d29d1d60e01b81526001600160a01b038c81166004830152610100909204909116925063a8d29d1d9150602401600060405180830381600087803b15801561173357600080fd5b505af1158015611747573d6000803e3d6000fd5b505050506117568888846119fd565b508015611767576117678782610773565b6001600160a01b0388166000908152606c602052604090205460ff16151560010361179757611797876001611f72565b604080516001600160a01b038a81168252898116602083015288168183015290517ff0c9129a94f30f1caaceb63e44b9811d0a3edf1d6c23757f346093af5553fed09181900360600190a16001945050505050610d45565b60405162461bcd60e51b81526020600482015260156024820152745265636f76657279206e6f7420706f737369626c6560581b6044820152606401610798565b6060606a80546106d990613029565b6033546001600160a01b031633146118685760405162461bcd60e51b81526004016107989061318b565b611873606582612858565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6118b333610a36565b6118cf5760405162461bcd60e51b815260040161079890613063565b6001600160a01b0382166000908152606d60205260408120546118f1846112e3565b6118fb919061310d565b905080821115611991576000611911828461310d565b6001600160a01b0385166000908152606d602052604090205490915061193890829061310d565b6001600160a01b0385166000818152606d6020526040908190209290925590517f9bed35cb62ad0dba04f9d5bfee4b5bc91443e77da8a65c4c84834c51bb08b0d6906119879084815260200190565b60405180910390a2505b61199b83836128e0565b606f5460405163469753b960e11b81526001600160a01b0385811660048301526024820185905290911690638d2ea77290604401600060405180830381600087803b1580156119e957600080fd5b505af115801561118a573d6000803e3d6000fd5b6000611a0833610a36565b611a245760405162461bcd60e51b815260040161079890613063565b6001600160a01b0384166000908152606d6020526040812054611a46866112e3565b611a50919061310d565b905080831115611ae6576000611a66828561310d565b6001600160a01b0387166000908152606d6020526040902054909150611a8d90829061310d565b6001600160a01b0387166000818152606d6020526040908190209290925590517f9bed35cb62ad0dba04f9d5bfee4b5bc91443e77da8a65c4c84834c51bb08b0d690611adc9084815260200190565b60405180910390a2505b606e5460405163b9209e3360e01b81526001600160a01b0386811660048301526101009092049091169063b9209e3390602401602060405180830381865afa158015611b36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5a919061314a565b15610d0557606f546040516322ebca6d60e21b81526001600160a01b0390911690638baf29b490611b9390889088908890600401613167565b600060405180830381600087803b158015611bad57600080fd5b505af1158015611bc1573d6000803e3d6000fd5b50505050611bd0858585612578565b6001915050610d45565b3360008181526067602090815260408083206001600160a01b03871684529091528120549091610769918590610cf890869061310d565b606e5460009060ff1615611c375760405162461bcd60e51b815260040161079890613120565b6001600160a01b0383166000908152606c602052604090205460ff16158015611c705750336000908152606c602052604090205460ff16155b611caf5760405162461bcd60e51b815260206004820152601060248201526f3bb0b63632ba1034b990333937bd32b760811b6044820152606401610798565b336000818152606d602052604090205490611cc9906112e3565b611cd3919061310d565b821115611d195760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610798565b606e5460405163b9209e3360e01b81526001600160a01b0385811660048301526101009092049091169063b9209e3390602401602060405180830381865afa158015611d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8d919061314a565b8015611e095750606f546040516372331c7360e11b81526001600160a01b039091169063e46638e690611dc890339087908790600401613167565b602060405180830381865afa158015611de5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e09919061314a565b15610d0557606f546040516322ebca6d60e21b81526001600160a01b0390911690638baf29b490611e4290339087908790600401613167565b600060405180830381600087803b158015611e5c57600080fd5b505af1158015611e70573d6000803e3d6000fd5b50505050611e7f338484612578565b50600161076d565b61127c816113f7565b6033546001600160a01b03163314611eba5760405162461bcd60e51b81526004016107989061318b565b606a611ec7828483613306565b50606b546040805180820182526005815264332e352e3160d81b602082015290517f6a1105ac8148a3c319adbc369f9072573e8a11d3a3d195e067e7c40767ec54d192611f2f92606992606a9260ff811692916101009091046001600160a01b03169061323d565b60405180910390a15050565b6033546001600160a01b03163314611f655760405162461bcd60e51b81526004016107989061318b565b6069611ec7828483613306565b611f7b33610a36565b611f975760405162461bcd60e51b815260040161079890613063565b6001600160a01b0382166000818152606c6020526040808220805460ff19168515159081179091559051339391927f7fa523c84ab8d7fc5b72f08b9e46dbbf10c39e119a075b3e317002d14bc9f43691a45050565b6033546001600160a01b031633146120165760405162461bcd60e51b81526004016107989061318b565b606e8054610100600160a81b0319166101006001600160a01b038416908102919091179091556040517fd2be862d755bca7e0d39772b2cab3a5578da9c285f69199f4c063c2294a7f36c90600090a250565b6033546001600160a01b031633146120925760405162461bcd60e51b81526004016107989061318b565b6001600160a01b0381166120f75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610798565b6033546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461217d5760405162461bcd60e51b81526004016107989061318b565b606f80546001600160a01b0319166001600160a01b0383169081179091556040517f7f3a888862559648ec01d97deb7b5012bff86dc91e654a1de397170db40e35b690600090a250565b60006121db6033546001600160a01b031690565b6001600160a01b0316146122275760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610798565b606961223385826133c6565b50606a61224084826133c6565b50606b805460ff84166001600160a81b0319909116176101006001600160a01b03848116820292909217909255606e8054610100600160a81b0319169189169283029190911790556040517fd2be862d755bca7e0d39772b2cab3a5578da9c285f69199f4c063c2294a7f36c90600090a2606f80546001600160a01b0319166001600160a01b0387169081179091556040517f7f3a888862559648ec01d97deb7b5012bff86dc91e654a1de397170db40e35b690600090a2606b546040805180820182526005815264332e352e3160d81b602082015290517f6a1105ac8148a3c319adbc369f9072573e8a11d3a3d195e067e7c40767ec54d19261235f92606992606a9260ff811692916101009091046001600160a01b03169061323d565b60405180910390a16110ff6129cc565b60005b83811015610906576123c285858381811061238f5761238f6130da565b90506020020160208101906123a49190612c03565b8484848181106123b6576123b66130da565b90506020020135610773565b600101612372565b6001600160a01b03831661242c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610798565b6001600160a01b03821661248d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610798565b6001600160a01b0383811660008181526067602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0382166125585760405162461bcd60e51b815260206004820152602860248201527f526f6c65734c65676163793a206163636f756e7420697320746865207a65726f604482015267206164647265737360c01b6064820152608401610798565b506001600160a01b03166000908152602091909152604090205460ff1690565b6001600160a01b0383166125dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610798565b6001600160a01b03821661263e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610798565b6001600160a01b03831660009081526066602052604090205461266290829061310d565b6001600160a01b0380851660009081526066602052604080822093909355908416815220546126929082906130c7565b6001600160a01b0380841660008181526066602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906124e29085815260200190565b6001600160a01b03821661273c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610798565b8060685461274a91906130c7565b6068556001600160a01b0382166000908152606660205260409020546127719082906130c7565b6001600160a01b0383166000818152606660205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906127c29085815260200190565b60405180910390a35050565b6127d882826124ef565b156128335760405162461bcd60e51b815260206004820152602560248201527f526f6c65734c65676163793a206163636f756e7420616c72656164792068617360448201526420726f6c6560d81b6064820152608401610798565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61286282826124ef565b6128be5760405162461bcd60e51b815260206004820152602760248201527f526f6c65734c65676163793a206163636f756e7420646f6573206e6f74206861604482015266766520726f6c6560c81b6064820152608401610798565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b0382166129405760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610798565b6001600160a01b03821660009081526066602052604090205461296490829061310d565b6001600160a01b03831660009081526066602052604090205560685461298b90829061310d565b6068556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016127c2565b600054610100900460ff16806129e5575060005460ff16155b612a015760405162461bcd60e51b815260040161079890613486565b600054610100900460ff16158015612a23576000805461ffff19166101011790555b612a2b612a4c565b612a33612ab6565b801561127c576000805461ff001916905550565b505050565b600054610100900460ff1680612a65575060005460ff16155b612a815760405162461bcd60e51b815260040161079890613486565b600054610100900460ff16158015612a33576000805461ffff1916610101179055801561127c576000805461ff001916905550565b600054610100900460ff1680612acf575060005460ff16155b612aeb5760405162461bcd60e51b815260040161079890613486565b600054610100900460ff16158015612b0d576000805461ffff19166101011790555b603380546001600160a01b0319163390811790915560405181906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350801561127c576000805461ff001916905550565b6000815180845260005b81811015612b8a57602081850181015186830182015201612b6e565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610d456020830184612b64565b80356001600160a01b0381168114612bd457600080fd5b919050565b60008060408385031215612bec57600080fd5b612bf583612bbd565b946020939093013593505050565b600060208284031215612c1557600080fd5b610d4582612bbd565b60008083601f840112612c3057600080fd5b50813567ffffffffffffffff811115612c4857600080fd5b6020830191508360208260051b8501011115612c6357600080fd5b9250929050565b60008060008060408587031215612c8057600080fd5b843567ffffffffffffffff80821115612c9857600080fd5b612ca488838901612c1e565b90965094506020870135915080821115612cbd57600080fd5b50612cca87828801612c1e565b95989497509550505050565b600080600060608486031215612ceb57600080fd5b612cf484612bbd565b9250612d0260208501612bbd565b9150604084013590509250925092565b60008060008060008060608789031215612d2b57600080fd5b863567ffffffffffffffff80821115612d4357600080fd5b612d4f8a838b01612c1e565b90985096506020890135915080821115612d6857600080fd5b612d748a838b01612c1e565b90965094506040890135915080821115612d8d57600080fd5b50612d9a89828a01612c1e565b979a9699509497509295939492505050565b600080600060608486031215612dc157600080fd5b612dca84612bbd565b9250612dd860208501612bbd565b9150612de660408501612bbd565b90509250925092565b60008060208385031215612e0257600080fd5b823567ffffffffffffffff80821115612e1a57600080fd5b818501915085601f830112612e2e57600080fd5b813581811115612e3d57600080fd5b866020828501011115612e4f57600080fd5b60209290920196919550909350505050565b801515811461127c57600080fd5b60008060408385031215612e8257600080fd5b612e8b83612bbd565b91506020830135612e9b81612e61565b809150509250929050565b60008060408385031215612eb957600080fd5b612ec283612bbd565b9150612ed060208401612bbd565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112612f0057600080fd5b813567ffffffffffffffff80821115612f1b57612f1b612ed9565b604051601f8301601f19908116603f01168101908282118183101715612f4357612f43612ed9565b81604052838152866020858801011115612f5c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c08789031215612f9557600080fd5b612f9e87612bbd565b9550612fac60208801612bbd565b9450604087013567ffffffffffffffff80821115612fc957600080fd5b612fd58a838b01612eef565b95506060890135915080821115612feb57600080fd5b50612ff889828a01612eef565b935050608087013560ff8116811461300f57600080fd5b915061301d60a08801612bbd565b90509295509295509295565b600181811c9082168061303d57607f821691505b60208210810361305d57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4167656e74526f6c653a2063616c6c657220646f6573206e6f7420686176652060408201526d746865204167656e7420726f6c6560901b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561076d5761076d6130b1565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561310257600080fd5b8135610d4581612e61565b8181038181111561076d5761076d6130b1565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60006020828403121561315c57600080fd5b8151610d4581612e61565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600081546131cd81613029565b8085526020600183811680156131ea576001811461320457613232565b60ff1985168884015283151560051b880183019550613232565b866000528260002060005b8581101561322a5781548a820186015290830190840161320f565b890184019650505b505050505092915050565b60a08152600061325060a08301886131c0565b828103602084015261326281886131c0565b905060ff86166040840152828103606084015261327f8186612b64565b91505060018060a01b03831660808301529695505050505050565b6000602082840312156132ac57600080fd5b815161ffff81168114610d4557600080fd5b601f821115612a47576000816000526020600020601f850160051c810160208610156132e75750805b601f850160051c820191505b818110156110ff578281556001016132f3565b67ffffffffffffffff83111561331e5761331e612ed9565b6133328361332c8354613029565b836132be565b6000601f841160018114613366576000851561334e5750838201355b600019600387901b1c1916600186901b178355610906565b600083815260209020601f19861690835b828110156133975786850135825560209485019460019092019101613377565b50868210156133b45760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b815167ffffffffffffffff8111156133e0576133e0612ed9565b6133f4816133ee8454613029565b846132be565b602080601f83116001811461342957600084156134115750858301515b600019600386901b1c1916600185901b1785556110ff565b600085815260208120601f198616915b8281101561345857888601518255948401946001909101908401613439565b50858210156134765787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526034908201527f496e697469616c697a61626c654c65676163793a20636f6e747261637420697360408201527308185b1c9958591e481a5b9a5d1a585b1a5e995960621b60608201526080019056fea2646970667358221220a827d92b9a3c10f30a546605fd03884bf7cbd17df6e3774f6fd9e3c8521b1dae64736f6c63430008180033","sourceMap":"76427:18140:23:-:0;;;66637:33;;;-1:-1:-1;;66637:33:23;;;76427:18140;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106102bb5760003560e01c806370a0823111610182578063a9059cbb116100e9578063cbf3f861116100a2578063f2fde38b1161007c578063f2fde38b1461067e578063f898178914610691578063f91b619c146106a4578063fc7e5fa8146106b757600080fd5b8063cbf3f86114610606578063dd62ed3e14610619578063e58398361461065257600080fd5b8063a9059cbb14610591578063aba63705146105a4578063b422d830146105ba578063b84c8246146105cd578063c47f0027146105e0578063c69c09cf146105f357600080fd5b80639285948a1161013b5780639285948a1461052a57806395d89b411461053d57806397a6278e146105455780639dc29fac146105585780639fc1d0e71461056b578063a457c2d71461057e57600080fd5b806370a08231146104d0578063715018a6146104e35780638456cb59146104eb57806384e79842146104f357806388d695b2146105065780638da5cb5b1461051957600080fd5b80633d1ddc5b1161022657806351411b33116101df57806351411b331461045a57806354fd4d501461046d5780635c975abb1461048e5780635dc7a3cb146104995780636290865d146104ac57806368573107146104bd57600080fd5b80633d1ddc5b146103f35780633f4ba83a1461040657806340c10f191461040e57806342a47abc146104215780634710362d146104345780634a6cc6771461044757600080fd5b80631a7af379116102785780631a7af3791461037f5780631fe56f7d146103925780631ffbb064146103a557806323b872dd146103b8578063313ce567146103cb57806339509351146103e057600080fd5b806306fdde03146102c0578063095ea7b3146102de578063125c4a3314610301578063134e18f414610316578063158b1a571461034057806318160ddd14610377575b600080fd5b6102c86106ca565b6040516102d59190612baa565b60405180910390f35b6102f16102ec366004612bd9565b61075c565b60405190151581526020016102d5565b61031461030f366004612bd9565b610773565b005b606e5461010090046001600160a01b03165b6040516001600160a01b0390911681526020016102d5565b61036961034e366004612c03565b6001600160a01b03166000908152606d602052604090205490565b6040519081526020016102d5565b606854610369565b61031461038d366004612c6a565b6108a2565b6103146103a0366004612bd9565b61090d565b6102f16103b3366004612c03565b610a36565b6102f16103c6366004612cd6565b610a43565b606b5460405160ff90911681526020016102d5565b6102f16103ee366004612bd9565b610d4c565b610314610401366004612c03565b610d83565b610314610e3f565b61031461041c366004612bd9565b610eed565b61031461042f366004612d12565b611107565b610314610442366004612c6a565b611193565b610314610455366004612c6a565b6111ee565b610314610468366004612c03565b611249565b604080518082019091526005815264332e352e3160d81b60208201526102c8565b606e5460ff166102f1565b6103146104a7366004612c03565b61127f565b606f546001600160a01b0316610328565b6103146104cb366004612c6a565b611288565b6103696104de366004612c03565b6112e3565b6103146112fe565b610314611372565b610314610501366004612c03565b6113f7565b610314610514366004612c6a565b611463565b6033546001600160a01b0316610328565b6102f1610538366004612dac565b6114bf565b6102c861182f565b610314610553366004612c03565b61183e565b610314610566366004612bd9565b6118aa565b6102f1610579366004612cd6565b6119fd565b6102f161058c366004612bd9565b611bda565b6102f161059f366004612bd9565b611c11565b606b5461010090046001600160a01b0316610328565b6103146105c8366004612c03565b611e87565b6103146105db366004612def565b611e90565b6103146105ee366004612def565b611f3b565b610314610601366004612e6f565b611f72565b610314610614366004612c03565b611fec565b610369610627366004612ea6565b6001600160a01b03918216600090815260676020908152604080832093909416825291909152205490565b6102f1610660366004612c03565b6001600160a01b03166000908152606c602052604090205460ff1690565b61031461068c366004612c03565b612068565b61031461069f366004612c03565b612153565b6103146106b2366004612f7c565b6121c7565b6103146106c5366004612c6a565b61236f565b6060606980546106d990613029565b80601f016020809104026020016040519081016040528092919081815260200182805461070590613029565b80156107525780601f1061072757610100808354040283529160200191610752565b820191906000526020600020905b81548152906001019060200180831161073557829003601f168201915b5050505050905090565b60006107693384846123ca565b5060015b92915050565b61077c33610a36565b6107a15760405162461bcd60e51b815260040161079890613063565b60405180910390fd5b60006107ac836112e3565b6001600160a01b0384166000908152606d60205260409020549091506107d39083906130c7565b8110156108225760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206578636565647320617661696c61626c652062616c616e63656044820152606401610798565b6001600160a01b0383166000908152606d60205260409020546108469083906130c7565b6001600160a01b0384166000818152606d6020526040908190209290925590517fa065e63c631c86f1b9f66a4a2f63f2093bf1c2168d23290259dbd969e0222a45906108959085815260200190565b60405180910390a2505050565b60005b83811015610906576108fe8585838181106108c2576108c26130da565b90506020020160208101906108d79190612c03565b8484848181106108e9576108e96130da565b905060200201602081019061060191906130f0565b6001016108a5565b5050505050565b61091633610a36565b6109325760405162461bcd60e51b815260040161079890613063565b6001600160a01b0382166000908152606d60205260409020548111156109b75760405162461bcd60e51b815260206004820152603460248201527f416d6f756e742073686f756c64206265206c657373207468616e206f7220657160448201527375616c20746f2066726f7a656e20746f6b656e7360601b6064820152608401610798565b6001600160a01b0382166000908152606d60205260409020546109db90829061310d565b6001600160a01b0383166000818152606d6020526040908190209290925590517f9bed35cb62ad0dba04f9d5bfee4b5bc91443e77da8a65c4c84834c51bb08b0d690610a2a9084815260200190565b60405180910390a25050565b600061076d6065836124ef565b606e5460009060ff1615610a695760405162461bcd60e51b815260040161079890613120565b6001600160a01b0383166000908152606c602052604090205460ff16158015610aab57506001600160a01b0384166000908152606c602052604090205460ff16155b610aea5760405162461bcd60e51b815260206004820152601060248201526f3bb0b63632ba1034b990333937bd32b760811b6044820152606401610798565b6001600160a01b0384166000908152606d6020526040902054610b0c856112e3565b610b16919061310d565b821115610b5c5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610798565b606e5460405163b9209e3360e01b81526001600160a01b0385811660048301526101009092049091169063b9209e3390602401602060405180830381865afa158015610bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd0919061314a565b8015610c4c5750606f546040516372331c7360e11b81526001600160a01b039091169063e46638e690610c0b90879087908790600401613167565b602060405180830381865afa158015610c28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4c919061314a565b15610d0557606f546040516322ebca6d60e21b81526001600160a01b0390911690638baf29b490610c8590879087908790600401613167565b600060405180830381600087803b158015610c9f57600080fd5b505af1158015610cb3573d6000803e3d6000fd5b50505050610cc2848484612578565b6001600160a01b038416600090815260676020908152604080832033808552925290912054610cfd918691610cf890869061310d565b6123ca565b506001610d45565b60405162461bcd60e51b81526020600482015260156024820152745472616e73666572206e6f7420706f737369626c6560581b6044820152606401610798565b9392505050565b3360008181526067602090815260408083206001600160a01b03871684529091528120549091610769918590610cf89086906130c7565b6033546001600160a01b03163314610dad5760405162461bcd60e51b81526004016107989061318b565b606b80546001600160a01b03808416610100908102610100600160a81b031984168117948590556040805180820182526005815264332e352e3160d81b602082015290517f6a1105ac8148a3c319adbc369f9072573e8a11d3a3d195e067e7c40767ec54d196610e3496606996606a9660ff9687169690921695909517949104169061323d565b60405180910390a150565b610e4833610a36565b610e645760405162461bcd60e51b815260040161079890613063565b606e5460ff16610ead5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610798565b606e805460ff191690556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b610ef633610a36565b610f125760405162461bcd60e51b815260040161079890613063565b606e5460405163b9209e3360e01b81526001600160a01b0384811660048301526101009092049091169063b9209e3390602401602060405180830381865afa158015610f62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f86919061314a565b610fd25760405162461bcd60e51b815260206004820152601960248201527f4964656e74697479206973206e6f742076657269666965642e000000000000006044820152606401610798565b606f546040516372331c7360e11b81526001600160a01b039091169063e46638e69061100690339086908690600401613167565b602060405180830381865afa158015611023573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611047919061314a565b6110935760405162461bcd60e51b815260206004820152601760248201527f436f6d706c69616e6365206e6f7420666f6c6c6f7765640000000000000000006044820152606401610798565b61109d82826126e6565b606f54604051635f8dead360e01b81526001600160a01b0384811660048301526024820184905290911690635f8dead390604401600060405180830381600087803b1580156110eb57600080fd5b505af11580156110ff573d6000803e3d6000fd5b505050505050565b60005b8581101561118a57611181878783818110611127576111276130da565b905060200201602081019061113c9190612c03565b86868481811061114e5761114e6130da565b90506020020160208101906111639190612c03565b858585818110611175576111756130da565b905060200201356119fd565b5060010161110a565b50505050505050565b60005b83811015610906576111e68585838181106111b3576111b36130da565b90506020020160208101906111c89190612c03565b8484848181106111da576111da6130da565b9050602002013561090d565b600101611196565b60005b838110156109065761124185858381811061120e5761120e6130da565b90506020020160208101906112239190612c03565b848484818110611235576112356130da565b905060200201356118aa565b6001016111f1565b6033546001600160a01b031633146112735760405162461bcd60e51b81526004016107989061318b565b61127c81612068565b50565b61127c8161183e565b60005b83811015610906576112db8585838181106112a8576112a86130da565b90506020020160208101906112bd9190612c03565b8484848181106112cf576112cf6130da565b90506020020135610eed565b60010161128b565b6001600160a01b031660009081526066602052604090205490565b6033546001600160a01b031633146113285760405162461bcd60e51b81526004016107989061318b565b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319169055565b61137b33610a36565b6113975760405162461bcd60e51b815260040161079890613063565b606e5460ff16156113ba5760405162461bcd60e51b815260040161079890613120565b606e805460ff191660011790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610ee3565b6033546001600160a01b031633146114215760405162461bcd60e51b81526004016107989061318b565b61142c6065826127ce565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b60005b83811015610906576114b6858583818110611483576114836130da565b90506020020160208101906114989190612c03565b8484848181106114aa576114aa6130da565b90506020020135611c11565b50600101611466565b60006114ca33610a36565b6114e65760405162461bcd60e51b815260040161079890613063565b6114ef846112e3565b6000036115355760405162461bcd60e51b81526020600482015260146024820152733737903a37b5b2b739903a37903932b1b7bb32b960611b6044820152606401610798565b604080516001600160a01b038516602082015283916000910160408051808303601f1901815290829052805160209091012063d202158d60e01b8252600482018190526001602483015291506001600160a01b0383169063d202158d90604401602060405180830381865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d6919061314a565b156117ef5760006115e6876112e3565b6001600160a01b038881166000818152606d60205260409081902054606e549151637e42683b60e01b8152600481019390935293945061010090049091169063454a03e090899087908490637e42683b90602401602060405180830381865afa158015611657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167b919061329a565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015261ffff166044820152606401600060405180830381600087803b1580156116ce57600080fd5b505af11580156116e2573d6000803e3d6000fd5b5050606e5460405163a8d29d1d60e01b81526001600160a01b038c81166004830152610100909204909116925063a8d29d1d9150602401600060405180830381600087803b15801561173357600080fd5b505af1158015611747573d6000803e3d6000fd5b505050506117568888846119fd565b508015611767576117678782610773565b6001600160a01b0388166000908152606c602052604090205460ff16151560010361179757611797876001611f72565b604080516001600160a01b038a81168252898116602083015288168183015290517ff0c9129a94f30f1caaceb63e44b9811d0a3edf1d6c23757f346093af5553fed09181900360600190a16001945050505050610d45565b60405162461bcd60e51b81526020600482015260156024820152745265636f76657279206e6f7420706f737369626c6560581b6044820152606401610798565b6060606a80546106d990613029565b6033546001600160a01b031633146118685760405162461bcd60e51b81526004016107989061318b565b611873606582612858565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6118b333610a36565b6118cf5760405162461bcd60e51b815260040161079890613063565b6001600160a01b0382166000908152606d60205260408120546118f1846112e3565b6118fb919061310d565b905080821115611991576000611911828461310d565b6001600160a01b0385166000908152606d602052604090205490915061193890829061310d565b6001600160a01b0385166000818152606d6020526040908190209290925590517f9bed35cb62ad0dba04f9d5bfee4b5bc91443e77da8a65c4c84834c51bb08b0d6906119879084815260200190565b60405180910390a2505b61199b83836128e0565b606f5460405163469753b960e11b81526001600160a01b0385811660048301526024820185905290911690638d2ea77290604401600060405180830381600087803b1580156119e957600080fd5b505af115801561118a573d6000803e3d6000fd5b6000611a0833610a36565b611a245760405162461bcd60e51b815260040161079890613063565b6001600160a01b0384166000908152606d6020526040812054611a46866112e3565b611a50919061310d565b905080831115611ae6576000611a66828561310d565b6001600160a01b0387166000908152606d6020526040902054909150611a8d90829061310d565b6001600160a01b0387166000818152606d6020526040908190209290925590517f9bed35cb62ad0dba04f9d5bfee4b5bc91443e77da8a65c4c84834c51bb08b0d690611adc9084815260200190565b60405180910390a2505b606e5460405163b9209e3360e01b81526001600160a01b0386811660048301526101009092049091169063b9209e3390602401602060405180830381865afa158015611b36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5a919061314a565b15610d0557606f546040516322ebca6d60e21b81526001600160a01b0390911690638baf29b490611b9390889088908890600401613167565b600060405180830381600087803b158015611bad57600080fd5b505af1158015611bc1573d6000803e3d6000fd5b50505050611bd0858585612578565b6001915050610d45565b3360008181526067602090815260408083206001600160a01b03871684529091528120549091610769918590610cf890869061310d565b606e5460009060ff1615611c375760405162461bcd60e51b815260040161079890613120565b6001600160a01b0383166000908152606c602052604090205460ff16158015611c705750336000908152606c602052604090205460ff16155b611caf5760405162461bcd60e51b815260206004820152601060248201526f3bb0b63632ba1034b990333937bd32b760811b6044820152606401610798565b336000818152606d602052604090205490611cc9906112e3565b611cd3919061310d565b821115611d195760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610798565b606e5460405163b9209e3360e01b81526001600160a01b0385811660048301526101009092049091169063b9209e3390602401602060405180830381865afa158015611d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8d919061314a565b8015611e095750606f546040516372331c7360e11b81526001600160a01b039091169063e46638e690611dc890339087908790600401613167565b602060405180830381865afa158015611de5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e09919061314a565b15610d0557606f546040516322ebca6d60e21b81526001600160a01b0390911690638baf29b490611e4290339087908790600401613167565b600060405180830381600087803b158015611e5c57600080fd5b505af1158015611e70573d6000803e3d6000fd5b50505050611e7f338484612578565b50600161076d565b61127c816113f7565b6033546001600160a01b03163314611eba5760405162461bcd60e51b81526004016107989061318b565b606a611ec7828483613306565b50606b546040805180820182526005815264332e352e3160d81b602082015290517f6a1105ac8148a3c319adbc369f9072573e8a11d3a3d195e067e7c40767ec54d192611f2f92606992606a9260ff811692916101009091046001600160a01b03169061323d565b60405180910390a15050565b6033546001600160a01b03163314611f655760405162461bcd60e51b81526004016107989061318b565b6069611ec7828483613306565b611f7b33610a36565b611f975760405162461bcd60e51b815260040161079890613063565b6001600160a01b0382166000818152606c6020526040808220805460ff19168515159081179091559051339391927f7fa523c84ab8d7fc5b72f08b9e46dbbf10c39e119a075b3e317002d14bc9f43691a45050565b6033546001600160a01b031633146120165760405162461bcd60e51b81526004016107989061318b565b606e8054610100600160a81b0319166101006001600160a01b038416908102919091179091556040517fd2be862d755bca7e0d39772b2cab3a5578da9c285f69199f4c063c2294a7f36c90600090a250565b6033546001600160a01b031633146120925760405162461bcd60e51b81526004016107989061318b565b6001600160a01b0381166120f75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610798565b6033546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461217d5760405162461bcd60e51b81526004016107989061318b565b606f80546001600160a01b0319166001600160a01b0383169081179091556040517f7f3a888862559648ec01d97deb7b5012bff86dc91e654a1de397170db40e35b690600090a250565b60006121db6033546001600160a01b031690565b6001600160a01b0316146122275760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610798565b606961223385826133c6565b50606a61224084826133c6565b50606b805460ff84166001600160a81b0319909116176101006001600160a01b03848116820292909217909255606e8054610100600160a81b0319169189169283029190911790556040517fd2be862d755bca7e0d39772b2cab3a5578da9c285f69199f4c063c2294a7f36c90600090a2606f80546001600160a01b0319166001600160a01b0387169081179091556040517f7f3a888862559648ec01d97deb7b5012bff86dc91e654a1de397170db40e35b690600090a2606b546040805180820182526005815264332e352e3160d81b602082015290517f6a1105ac8148a3c319adbc369f9072573e8a11d3a3d195e067e7c40767ec54d19261235f92606992606a9260ff811692916101009091046001600160a01b03169061323d565b60405180910390a16110ff6129cc565b60005b83811015610906576123c285858381811061238f5761238f6130da565b90506020020160208101906123a49190612c03565b8484848181106123b6576123b66130da565b90506020020135610773565b600101612372565b6001600160a01b03831661242c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610798565b6001600160a01b03821661248d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610798565b6001600160a01b0383811660008181526067602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0382166125585760405162461bcd60e51b815260206004820152602860248201527f526f6c65734c65676163793a206163636f756e7420697320746865207a65726f604482015267206164647265737360c01b6064820152608401610798565b506001600160a01b03166000908152602091909152604090205460ff1690565b6001600160a01b0383166125dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610798565b6001600160a01b03821661263e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610798565b6001600160a01b03831660009081526066602052604090205461266290829061310d565b6001600160a01b0380851660009081526066602052604080822093909355908416815220546126929082906130c7565b6001600160a01b0380841660008181526066602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906124e29085815260200190565b6001600160a01b03821661273c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610798565b8060685461274a91906130c7565b6068556001600160a01b0382166000908152606660205260409020546127719082906130c7565b6001600160a01b0383166000818152606660205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906127c29085815260200190565b60405180910390a35050565b6127d882826124ef565b156128335760405162461bcd60e51b815260206004820152602560248201527f526f6c65734c65676163793a206163636f756e7420616c72656164792068617360448201526420726f6c6560d81b6064820152608401610798565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61286282826124ef565b6128be5760405162461bcd60e51b815260206004820152602760248201527f526f6c65734c65676163793a206163636f756e7420646f6573206e6f74206861604482015266766520726f6c6560c81b6064820152608401610798565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b0382166129405760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610798565b6001600160a01b03821660009081526066602052604090205461296490829061310d565b6001600160a01b03831660009081526066602052604090205560685461298b90829061310d565b6068556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016127c2565b600054610100900460ff16806129e5575060005460ff16155b612a015760405162461bcd60e51b815260040161079890613486565b600054610100900460ff16158015612a23576000805461ffff19166101011790555b612a2b612a4c565b612a33612ab6565b801561127c576000805461ff001916905550565b505050565b600054610100900460ff1680612a65575060005460ff16155b612a815760405162461bcd60e51b815260040161079890613486565b600054610100900460ff16158015612a33576000805461ffff1916610101179055801561127c576000805461ff001916905550565b600054610100900460ff1680612acf575060005460ff16155b612aeb5760405162461bcd60e51b815260040161079890613486565b600054610100900460ff16158015612b0d576000805461ffff19166101011790555b603380546001600160a01b0319163390811790915560405181906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350801561127c576000805461ff001916905550565b6000815180845260005b81811015612b8a57602081850181015186830182015201612b6e565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610d456020830184612b64565b80356001600160a01b0381168114612bd457600080fd5b919050565b60008060408385031215612bec57600080fd5b612bf583612bbd565b946020939093013593505050565b600060208284031215612c1557600080fd5b610d4582612bbd565b60008083601f840112612c3057600080fd5b50813567ffffffffffffffff811115612c4857600080fd5b6020830191508360208260051b8501011115612c6357600080fd5b9250929050565b60008060008060408587031215612c8057600080fd5b843567ffffffffffffffff80821115612c9857600080fd5b612ca488838901612c1e565b90965094506020870135915080821115612cbd57600080fd5b50612cca87828801612c1e565b95989497509550505050565b600080600060608486031215612ceb57600080fd5b612cf484612bbd565b9250612d0260208501612bbd565b9150604084013590509250925092565b60008060008060008060608789031215612d2b57600080fd5b863567ffffffffffffffff80821115612d4357600080fd5b612d4f8a838b01612c1e565b90985096506020890135915080821115612d6857600080fd5b612d748a838b01612c1e565b90965094506040890135915080821115612d8d57600080fd5b50612d9a89828a01612c1e565b979a9699509497509295939492505050565b600080600060608486031215612dc157600080fd5b612dca84612bbd565b9250612dd860208501612bbd565b9150612de660408501612bbd565b90509250925092565b60008060208385031215612e0257600080fd5b823567ffffffffffffffff80821115612e1a57600080fd5b818501915085601f830112612e2e57600080fd5b813581811115612e3d57600080fd5b866020828501011115612e4f57600080fd5b60209290920196919550909350505050565b801515811461127c57600080fd5b60008060408385031215612e8257600080fd5b612e8b83612bbd565b91506020830135612e9b81612e61565b809150509250929050565b60008060408385031215612eb957600080fd5b612ec283612bbd565b9150612ed060208401612bbd565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112612f0057600080fd5b813567ffffffffffffffff80821115612f1b57612f1b612ed9565b604051601f8301601f19908116603f01168101908282118183101715612f4357612f43612ed9565b81604052838152866020858801011115612f5c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c08789031215612f9557600080fd5b612f9e87612bbd565b9550612fac60208801612bbd565b9450604087013567ffffffffffffffff80821115612fc957600080fd5b612fd58a838b01612eef565b95506060890135915080821115612feb57600080fd5b50612ff889828a01612eef565b935050608087013560ff8116811461300f57600080fd5b915061301d60a08801612bbd565b90509295509295509295565b600181811c9082168061303d57607f821691505b60208210810361305d57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4167656e74526f6c653a2063616c6c657220646f6573206e6f7420686176652060408201526d746865204167656e7420726f6c6560901b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561076d5761076d6130b1565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561310257600080fd5b8135610d4581612e61565b8181038181111561076d5761076d6130b1565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60006020828403121561315c57600080fd5b8151610d4581612e61565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600081546131cd81613029565b8085526020600183811680156131ea576001811461320457613232565b60ff1985168884015283151560051b880183019550613232565b866000528260002060005b8581101561322a5781548a820186015290830190840161320f565b890184019650505b505050505092915050565b60a08152600061325060a08301886131c0565b828103602084015261326281886131c0565b905060ff86166040840152828103606084015261327f8186612b64565b91505060018060a01b03831660808301529695505050505050565b6000602082840312156132ac57600080fd5b815161ffff81168114610d4557600080fd5b601f821115612a47576000816000526020600020601f850160051c810160208610156132e75750805b601f850160051c820191505b818110156110ff578281556001016132f3565b67ffffffffffffffff83111561331e5761331e612ed9565b6133328361332c8354613029565b836132be565b6000601f841160018114613366576000851561334e5750838201355b600019600387901b1c1916600186901b178355610906565b600083815260209020601f19861690835b828110156133975786850135825560209485019460019092019101613377565b50868210156133b45760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b815167ffffffffffffffff8111156133e0576133e0612ed9565b6133f4816133ee8454613029565b846132be565b602080601f83116001811461342957600084156134115750858301515b600019600386901b1c1916600185901b1785556110ff565b600085815260208120601f198616915b8281101561345857888601518255948401946001909101908401613439565b50858210156134765787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526034908201527f496e697469616c697a61626c654c65676163793a20636f6e747261637420697360408201527308185b1c9958591e481a5b9a5d1a585b1a5e995960621b60608201526080019056fea2646970667358221220a827d92b9a3c10f30a546605fd03884bf7cbd17df6e3774f6fd9e3c8521b1dae64736f6c63430008180033","sourceMap":"76427:18140:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;82011:96;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;78979:170;;;;;;:::i;:::-;;:::i;:::-;;;1269:14:165;;1262:22;1244:41;;1232:2;1217:18;78979:170:23;1104:187:165;90679:381:23;;;;;;:::i;:::-;;:::i;:::-;;85502:130;85604:21;;;;;-1:-1:-1;;;;;85604:21:23;85502:130;;;-1:-1:-1;;;;;1493:32:165;;;1475:51;;1463:2;1448:18;85502:130:23;1296:236:165;83856:138:23;;;;;;:::i;:::-;-1:-1:-1;;;;;83961:26:23;83935:7;83961:26;;;:12;:26;;;;;;;83856:138;;;;1874:25:165;;;1862:2;1847:18;83856:138:23;1728:177:165;78404:100:23;78485:12;;78404:100;;90355:249;;;;;;:::i;:::-;;:::i;91477:344::-;;;;;;:::i;:::-;;:::i;74966:103::-;;;;;;:::i;:::-;;:::i;86613:687::-;;;;;;:::i;:::-;;:::i;81855:96::-;81931:13;;81855:96;;81931:13;;;;3532:36:165;;3520:2;3505:18;81855:96:23;3390:184:165;79215:217:23;;;;;;:::i;:::-;;:::i;83224:222::-;;;;;;:::i;:::-;;:::i;85301:129::-;;;:::i;88509:337::-;;;;;;:::i;:::-;;:::i;88144:305::-;;;;;;:::i;:::-;;:::i;91903:264::-;;;;;;:::i;:::-;;:::i;89777:230::-;;;;;;:::i;:::-;;:::i;94064:134::-;;;;;;:::i;:::-;;:::i;82497:103::-;82580:13;;;;;;;;;;;;-1:-1:-1;;;82580:13:23;;;;82497:103;;83508:91;83581:11;;;;83508:91;;94459:106;;;;;;:::i;:::-;;:::i;85698:112::-;85788:15;;-1:-1:-1;;;;;85788:15:23;85698:112;;88911:209;;;;;;:::i;:::-;;:::i;78569:127::-;;;;;;:::i;:::-;;:::i;71871:145::-;;;:::i;85111:127::-;;;:::i;75075:120::-;;;;;;:::i;:::-;;:::i;85879:217::-;;;;;;:::i;:::-;;:::i;71239:85::-;71311:6;;-1:-1:-1;;;;;71311:6:23;71239:85;;92784:1192;;;;;;:::i;:::-;;:::i;82334:100::-;;;:::i;75201:128::-;;;;;;:::i;:::-;;:::i;89180:532::-;;;;;;:::i;:::-;;:::i;87370:699::-;;;;;;:::i;:::-;;:::i;79498:225::-;;;;;;:::i;:::-;;:::i;84470:580::-;;;;;;:::i;:::-;;:::i;82172:100::-;82251:14;;;;;-1:-1:-1;;;;;82251:14:23;82172:100;;94277;;;;;;:::i;:::-;;:::i;82938:218::-;;;;;;:::i;:::-;;:::i;82663:210::-;;;;;;:::i;:::-;;:::i;90079:199::-;;;;;;:::i;:::-;;:::i;92242:222::-;;;;;;:::i;:::-;;:::i;78761:155::-;;;;;;:::i;:::-;-1:-1:-1;;;;;78880:19:23;;;78854:7;78880:19;;;:11;:19;;;;;;;;:29;;;;;;;;;;;;;78761:155;83663:122;;;;;;:::i;:::-;-1:-1:-1;;;;;83758:20:23;83735:4;83758:20;;;:6;:20;;;;;;;;;83663:122;72165:240;;;;;;:::i;:::-;;:::i;92533:180::-;;;;;;:::i;:::-;;:::i;77195:770::-;;;;;;:::i;:::-;;:::i;91140:260::-;;;;;;:::i;:::-;;:::i;82011:96::-;82059:13;82091:9;82084:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;82011:96;:::o;78979:170::-;79066:4;79082:39;79091:10;79103:8;79113:7;79082:8;:39::i;:::-;-1:-1:-1;79138:4:23;78979:170;;;;;:::o;90679:381::-;74872:19;74880:10;74872:7;:19::i;:::-;74864:78;;;;-1:-1:-1;;;74864:78:23;;;;;;;:::i;:::-;;;;;;;;;90783:15:::1;90801:23;90811:12;90801:9;:23::i;:::-;-1:-1:-1::0;;;;;90853:26:23;::::1;;::::0;;;:12:::1;:26;::::0;;;;;90783:41;;-1:-1:-1;90853:36:23::1;::::0;90882:7;;90853:36:::1;:::i;:::-;90842:7;:47;;90834:92;;;::::0;-1:-1:-1;;;90834:92:23;;10587:2:165;90834:92:23::1;::::0;::::1;10569:21:165::0;;;10606:18;;;10599:30;10665:34;10645:18;;;10638:62;10717:18;;90834:92:23::1;10385:356:165::0;90834:92:23::1;-1:-1:-1::0;;;;;90965:26:23;::::1;;::::0;;;:12:::1;:26;::::0;;;;;:38:::1;::::0;90995:7;;90965:38:::1;:::i;:::-;-1:-1:-1::0;;;;;90936:26:23;::::1;;::::0;;;:12:::1;:26;::::0;;;;;;:67;;;;91018:35;;::::1;::::0;::::1;::::0;91045:7;1874:25:165;;1862:2;1847:18;;1728:177;91018:35:23::1;;;;;;;;90773:287;90679:381:::0;;:::o;90355:249::-;90479:9;90474:124;90494:25;;;90474:124;;;90540:47;90557:14;;90572:1;90557:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;90576:7;;90584:1;90576:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;90540:47::-;90521:3;;90474:124;;;;90355:249;;;;:::o;91477:344::-;74872:19;74880:10;74872:7;:19::i;:::-;74864:78;;;;-1:-1:-1;;;74864:78:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;91591:26:23;::::1;;::::0;;;:12:::1;:26;::::0;;;;;:37;-1:-1:-1;91591:37:23::1;91583:102;;;::::0;-1:-1:-1;;;91583:102:23;;11326:2:165;91583:102:23::1;::::0;::::1;11308:21:165::0;11365:2;11345:18;;;11338:30;11404:34;11384:18;;;11377:62;-1:-1:-1;;;11455:18:165;;;11448:50;11515:19;;91583:102:23::1;11124:416:165::0;91583:102:23::1;-1:-1:-1::0;;;;;91724:26:23;::::1;;::::0;;;:12:::1;:26;::::0;;;;;:38:::1;::::0;91754:7;;91724:38:::1;:::i;:::-;-1:-1:-1::0;;;;;91695:26:23;::::1;;::::0;;;:12:::1;:26;::::0;;;;;;:67;;;;91777:37;;::::1;::::0;::::1;::::0;91806:7;1874:25:165;;1862:2;1847:18;;1728:177;91777:37:23::1;;;;;;;;91477:344:::0;;:::o;74966:103::-;75020:4;75043:19;:7;75055:6;75043:11;:19::i;86613:687::-;78103:11;;86751:4;;78103:11;;78102:12;78094:41;;;;-1:-1:-1;;;78094:41:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;86776:11:23;::::1;;::::0;;;:6:::1;:11;::::0;;;;;::::1;;86775:12;:30:::0;::::1;;;-1:-1:-1::0;;;;;;86792:13:23;::::1;;::::0;;;:6:::1;:13;::::0;;;;;::::1;;86791:14;86775:30;86767:59;;;::::0;-1:-1:-1;;;86767:59:23;;12225:2:165;86767:59:23::1;::::0;::::1;12207:21:165::0;12264:2;12244:18;;;12237:30;-1:-1:-1;;;12283:18:165;;;12276:46;12339:18;;86767:59:23::1;12023:340:165::0;86767:59:23::1;-1:-1:-1::0;;;;;86875:19:23;::::1;;::::0;;;:12:::1;:19;::::0;;;;;86855:16:::1;86888:5:::0;86855:9:::1;:16::i;:::-;:40;;;;:::i;:::-;86844:7;:51;;86836:84;;;::::0;-1:-1:-1;;;86836:84:23;;12570:2:165;86836:84:23::1;::::0;::::1;12552:21:165::0;12609:2;12589:18;;;12582:30;-1:-1:-1;;;12628:18:165;;;12621:50;12688:18;;86836:84:23::1;12368:344:165::0;86836:84:23::1;86934:21;::::0;:37:::1;::::0;-1:-1:-1;;;86934:37:23;;-1:-1:-1;;;;;1493:32:165;;;86934:37:23::1;::::0;::::1;1475:51:165::0;86934:21:23::1;::::0;;::::1;::::0;;::::1;::::0;:32:::1;::::0;1448:18:165;;86934:37:23::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:89;;;;-1:-1:-1::0;86975:15:23::1;::::0;:48:::1;::::0;-1:-1:-1;;;86975:48:23;;-1:-1:-1;;;;;86975:15:23;;::::1;::::0;:27:::1;::::0;:48:::1;::::0;87003:5;;87010:3;;87015:7;;86975:48:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;86930:322;;;87039:15;::::0;:48:::1;::::0;-1:-1:-1;;;87039:48:23;;-1:-1:-1;;;;;87039:15:23;;::::1;::::0;:27:::1;::::0;:48:::1;::::0;87067:5;;87074:3;;87079:7;;87039:48:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;87101:30;87111:5;87118:3;87123:7;87101:9;:30::i;:::-;-1:-1:-1::0;;;;;87173:18:23;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;87161:10:::1;87173:30:::0;;;;;;;;;87145:71:::1;::::0;87154:5;;87173:42:::1;::::0;87207:7;;87173:42:::1;:::i;:::-;87145:8;:71::i;:::-;-1:-1:-1::0;87237:4:23::1;87230:11;;86930:322;87262:31;::::0;-1:-1:-1;;;87262:31:23;;13549:2:165;87262:31:23::1;::::0;::::1;13531:21:165::0;13588:2;13568:18;;;13561:30;-1:-1:-1;;;13607:18:165;;;13600:51;13668:18;;87262:31:23::1;13347:345:165::0;78145:1:23::1;86613:687:::0;;;;;:::o;79215:217::-;79332:10;79307:4;79354:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;79354:33:23;;;;;;;;;;79307:4;;79323:81;;79344:8;;79354:49;;79391:11;;79354:49;:::i;83224:222::-;71311:6;;-1:-1:-1;;;;;71311:6:23;69658:10;71451:23;71443:68;;;;-1:-1:-1;;;71443:68:23;;;;;;;:::i;:::-;83304:14:::1;:27:::0;;-1:-1:-1;;;;;83304:27:23;;::::1;;::::0;;::::1;-1:-1:-1::0;;;;;;83304:27:23;::::1;::::0;::::1;::::0;;;;83409:13:::1;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;83409:13:23::1;::::0;::::1;::::0;83346:93;;::::1;::::0;::::1;::::0;83370:9:::1;::::0;83381:11:::1;::::0;83394:13:::1;::::0;;;;;;;;;;;;83424:14;::::1;;::::0;83346:93:::1;:::i;:::-;;;;;;;;83224:222:::0;:::o;85301:129::-;74872:19;74880:10;74872:7;:19::i;:::-;74864:78;;;;-1:-1:-1;;;74864:78:23;;;;;;;:::i;:::-;78283:11:::1;::::0;::::1;;78275:44;;;::::0;-1:-1:-1;;;78275:44:23;;15901:2:165;78275:44:23::1;::::0;::::1;15883:21:165::0;15940:2;15920:18;;;15913:30;-1:-1:-1;;;15959:18:165;;;15952:50;16019:18;;78275:44:23::1;15699:344:165::0;78275:44:23::1;85369:11:::2;:19:::0;;-1:-1:-1;;85369:19:23::2;::::0;;85403:20:::2;::::0;85412:10:::2;1475:51:165::0;;85403:20:23::2;::::0;1463:2:165;1448:18;85403:20:23::2;;;;;;;;85301:129::o:0;88509:337::-;74872:19;74880:10;74872:7;:19::i;:::-;74864:78;;;;-1:-1:-1;;;74864:78:23;;;;;;;:::i;:::-;88597:21:::1;::::0;:37:::1;::::0;-1:-1:-1;;;88597:37:23;;-1:-1:-1;;;;;1493:32:165;;;88597:37:23::1;::::0;::::1;1475:51:165::0;88597:21:23::1;::::0;;::::1;::::0;;::::1;::::0;:32:::1;::::0;1448:18:165;;88597:37:23::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;88589:75;;;::::0;-1:-1:-1;;;88589:75:23;;16250:2:165;88589:75:23::1;::::0;::::1;16232:21:165::0;16289:2;16269:18;;;16262:30;16328:27;16308:18;;;16301:55;16373:18;;88589:75:23::1;16048:349:165::0;88589:75:23::1;88682:15;::::0;:53:::1;::::0;-1:-1:-1;;;88682:53:23;;-1:-1:-1;;;;;88682:15:23;;::::1;::::0;:27:::1;::::0;:53:::1;::::0;88710:10:::1;::::0;88722:3;;88727:7;;88682:53:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;88674:89;;;::::0;-1:-1:-1;;;88674:89:23;;16604:2:165;88674:89:23::1;::::0;::::1;16586:21:165::0;16643:2;16623:18;;;16616:30;16682:25;16662:18;;;16655:53;16725:18;;88674:89:23::1;16402:347:165::0;88674:89:23::1;88773:19;88779:3;88784:7;88773:5;:19::i;:::-;88802:15;::::0;:37:::1;::::0;-1:-1:-1;;;88802:37:23;;-1:-1:-1;;;;;16946:32:165;;;88802:37:23::1;::::0;::::1;16928:51:165::0;16995:18;;;16988:34;;;88802:15:23;;::::1;::::0;:23:::1;::::0;16901:18:165;;88802:37:23::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;88509:337:::0;;:::o;88144:305::-;88323:9;88318:125;88338:20;;;88318:125;;;88379:53;88394:9;;88404:1;88394:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;88408:7;;88416:1;88408:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;88420:8;;88429:1;88420:11;;;;;;;:::i;:::-;;;;;;;88379:14;:53::i;:::-;-1:-1:-1;88360:3:23;;88318:125;;;;88144:305;;;;;;:::o;91903:264::-;92036:9;92031:130;92051:25;;;92031:130;;;92097:53;92119:14;;92134:1;92119:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;92138:8;;92147:1;92138:11;;;;;;;:::i;:::-;;;;;;;92097:21;:53::i;:::-;92078:3;;92031:130;;89777:230;89893:9;89888:113;89908:25;;;89888:113;;;89954:36;89959:14;;89974:1;89959:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;89978:8;;89987:1;89978:11;;;;;;;:::i;:::-;;;;;;;89954:4;:36::i;:::-;89935:3;;89888:113;;94064:134;71311:6;;-1:-1:-1;;;;;71311:6:23;69658:10;71451:23;71443:68;;;;-1:-1:-1;;;71443:68:23;;;;;;;:::i;:::-;94163:28:::1;94181:9;94163:17;:28::i;:::-;94064:134:::0;:::o;94459:106::-;94539:19;94551:6;94539:11;:19::i;88911:209::-;89020:9;89015:99;89035:18;;;89015:99;;;89074:29;89079:7;;89087:1;89079:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;89091:8;;89100:1;89091:11;;;;;;;:::i;:::-;;;;;;;89074:4;:29::i;:::-;89055:3;;89015:99;;78569:127;-1:-1:-1;;;;;78666:23:23;78640:7;78666:23;;;:9;:23;;;;;;;78569:127::o;71871:145::-;71311:6;;-1:-1:-1;;;;;71311:6:23;69658:10;71451:23;71443:68;;;;-1:-1:-1;;;71443:68:23;;;;;;;:::i;:::-;71961:6:::1;::::0;71940:40:::1;::::0;71977:1:::1;::::0;-1:-1:-1;;;;;71961:6:23::1;::::0;71940:40:::1;::::0;71977:1;;71940:40:::1;71990:6;:19:::0;;-1:-1:-1;;;;;;71990:19:23::1;::::0;;71871:145::o;85111:127::-;74872:19;74880:10;74872:7;:19::i;:::-;74864:78;;;;-1:-1:-1;;;74864:78:23;;;;;;;:::i;:::-;78103:11:::1;::::0;::::1;;78102:12;78094:41;;;;-1:-1:-1::0;;;78094:41:23::1;;;;;;;:::i;:::-;85180:11:::2;:18:::0;;-1:-1:-1;;85180:18:23::2;85194:4;85180:18;::::0;;85213::::2;::::0;85220:10:::2;1475:51:165::0;;85213:18:23::2;::::0;1463:2:165;1448:18;85213::23::2;1296:236:165::0;75075:120:23;71311:6;;-1:-1:-1;;;;;71311:6:23;69658:10;71451:23;71443:68;;;;-1:-1:-1;;;71443:68:23;;;;;;;:::i;:::-;75136:19:::1;:7;75148:6:::0;75136:11:::1;:19::i;:::-;75170:18;::::0;-1:-1:-1;;;;;75170:18:23;::::1;::::0;::::1;::::0;;;::::1;75075:120:::0;:::o;85879:217::-;85992:9;85987:103;86007:18;;;85987:103;;;86046:33;86055:7;;86063:1;86055:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;86067:8;;86076:1;86067:11;;;;;;;:::i;:::-;;;;;;;86046:8;:33::i;:::-;-1:-1:-1;86027:3:23;;85987:103;;92784:1192;92945:4;74872:19;74880:10;74872:7;:19::i;:::-;74864:78;;;;-1:-1:-1;;;74864:78:23;;;;;;;:::i;:::-;92969:22:::1;92979:11;92969:9;:22::i;:::-;92995:1;92969:27:::0;92961:60:::1;;;::::0;-1:-1:-1;;;92961:60:23;;17235:2:165;92961:60:23::1;::::0;::::1;17217:21:165::0;17274:2;17254:18;;;17247:30;-1:-1:-1;;;17293:18:165;;;17286:50;17353:18;;92961:60:23::1;17033:344:165::0;92961:60:23::1;93130:22;::::0;;-1:-1:-1;;;;;1493:32:165;;93130:22:23::1;::::0;::::1;1475:51:165::0;93076:18:23;;93031:26:::1;::::0;1448:18:165;93130:22:23::1;::::0;;;;::::1;-1:-1:-1::0;;93130:22:23;;;;;;;93120:33;;93130:22:::1;93120:33:::0;;::::1;::::0;-1:-1:-1;;;93167:33:23;;::::1;::::0;::::1;17564:25:165::0;;;93198:1:23::1;17605:18:165::0;;;17598:34;93120:33:23;-1:-1:-1;;;;;;93167:24:23;::::1;::::0;::::1;::::0;17537:18:165;;93167:33:23::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;93163:766;;;93216:22;93241;93251:11;93241:9;:22::i;:::-;-1:-1:-1::0;;;;;93301:25:23;;::::1;93277:21;93301:25:::0;;;:12:::1;:25;::::0;;;;;;;93340:21:::1;::::0;93403:50;;-1:-1:-1;;;93403:50:23;;::::1;::::0;::::1;1475:51:165::0;;;;93216:47:23;;-1:-1:-1;93340:21:23::1;::::0;::::1;::::0;;::::1;::::0;:38:::1;::::0;93379:10;;93391;;93340:21;;93403:37:::1;::::0;1448:18:165;;93403:50:23::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;93340:114;::::0;-1:-1:-1;;;;;;93340:114:23::1;::::0;;;;;;-1:-1:-1;;;;;18205:15:165;;;93340:114:23::1;::::0;::::1;18187:34:165::0;18257:15;;;;18237:18;;;18230:43;18321:6;18309:19;18289:18;;;18282:47;18122:18;;93340:114:23::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;93468:21:23::1;::::0;:49:::1;::::0;-1:-1:-1;;;93468:49:23;;-1:-1:-1;;;;;1493:32:165;;;93468:49:23::1;::::0;::::1;1475:51:165::0;93468:21:23::1;::::0;;::::1;::::0;;::::1;::::0;-1:-1:-1;93468:36:23::1;::::0;-1:-1:-1;1448:18:165;;93468:49:23::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;93531:55;93546:11;93559:10;93571:14;93531;:55::i;:::-;-1:-1:-1::0;93604:17:23;;93600:102:::1;;93641:46;93661:10;93673:13;93641:19;:46::i;:::-;-1:-1:-1::0;;;;;93719:19:23;::::1;;::::0;;;:6:::1;:19;::::0;;;;;::::1;;:27;;:19:::0;:27;93715:100:::1;;93766:34;93783:10;93795:4;93766:16;:34::i;:::-;93833:60;::::0;;-1:-1:-1;;;;;18598:15:165;;;18580:34;;18650:15;;;18645:2;18630:18;;18623:43;18702:15;;18682:18;;;18675:43;93833:60:23;;::::1;::::0;;;;18530:2:165;93833:60:23;;::::1;93914:4;93907:11;;;;;;;;93163:766;93938:31;::::0;-1:-1:-1;;;93938:31:23;;18931:2:165;93938:31:23::1;::::0;::::1;18913:21:165::0;18970:2;18950:18;;;18943:30;-1:-1:-1;;;18989:18:165;;;18982:51;19050:18;;93938:31:23::1;18729:345:165::0;82334:100:23;82384:13;82416:11;82409:18;;;;;:::i;75201:128::-;71311:6;;-1:-1:-1;;;;;71311:6:23;69658:10;71451:23;71443:68;;;;-1:-1:-1;;;71443:68:23;;;;;;;:::i;:::-;75265:22:::1;:7;75280:6:::0;75265:14:::1;:22::i;:::-;75302:20;::::0;-1:-1:-1;;;;;75302:20:23;::::1;::::0;::::1;::::0;;;::::1;75201:128:::0;:::o;89180:532::-;74872:19;74880:10;74872:7;:19::i;:::-;74864:78;;;;-1:-1:-1;;;74864:78:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;89317:26:23;::::1;89269:19;89317:26:::0;;;:12:::1;:26;::::0;;;;;89291:23:::1;89330:12:::0;89291:9:::1;:23::i;:::-;:52;;;;:::i;:::-;89269:74;;89367:11;89357:7;:21;89353:257;;;89394:24;89421:23;89432:11:::0;89421:7;:23:::1;:::i;:::-;-1:-1:-1::0;;;;;89487:26:23;::::1;;::::0;;;:12:::1;:26;::::0;;;;;89394:50;;-1:-1:-1;89487:47:23::1;::::0;89394:50;;89487:47:::1;:::i;:::-;-1:-1:-1::0;;;;;89458:26:23;::::1;;::::0;;;:12:::1;:26;::::0;;;;;;:76;;;;89553:46;;::::1;::::0;::::1;::::0;89582:16;1874:25:165;;1862:2;1847:18;;1728:177;89553:46:23::1;;;;;;;;89380:230;89353:257;89619:28;89625:12;89639:7;89619:5;:28::i;:::-;89657:15;::::0;:48:::1;::::0;-1:-1:-1;;;89657:48:23;;-1:-1:-1;;;;;16946:32:165;;;89657:48:23::1;::::0;::::1;16928:51:165::0;16995:18;;;16988:34;;;89657:15:23;;::::1;::::0;:25:::1;::::0;16901:18:165;;89657:48:23::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;87370:699:::0;87504:4;74872:19;74880:10;74872:7;:19::i;:::-;74864:78;;;;-1:-1:-1;;;74864:78:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;87562:19:23;::::1;87520;87562::::0;;;:12:::1;:19;::::0;;;;;87542:16:::1;87575:5:::0;87542:9:::1;:16::i;:::-;:40;;;;:::i;:::-;87520:62;;87606:11;87596:7;:21;87592:236;;;87633:24;87660:23;87671:11:::0;87660:7;:23:::1;:::i;:::-;-1:-1:-1::0;;;;;87719:19:23;::::1;;::::0;;;:12:::1;:19;::::0;;;;;87633:50;;-1:-1:-1;87719:40:23::1;::::0;87633:50;;87719:40:::1;:::i;:::-;-1:-1:-1::0;;;;;87697:19:23;::::1;;::::0;;;:12:::1;:19;::::0;;;;;;:62;;;;87778:39;;::::1;::::0;::::1;::::0;87800:16;1874:25:165;;1862:2;1847:18;;1728:177;87778:39:23::1;;;;;;;;87619:209;87592:236;87841:21;::::0;:37:::1;::::0;-1:-1:-1;;;87841:37:23;;-1:-1:-1;;;;;1493:32:165;;;87841:37:23::1;::::0;::::1;1475:51:165::0;87841:21:23::1;::::0;;::::1;::::0;;::::1;::::0;:32:::1;::::0;1448:18:165;;87841:37:23::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;87837:185;;;87894:15;::::0;:48:::1;::::0;-1:-1:-1;;;87894:48:23;;-1:-1:-1;;;;;87894:15:23;;::::1;::::0;:27:::1;::::0;:48:::1;::::0;87922:5;;87929:3;;87934:7;;87894:48:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;87956:30;87966:5;87973:3;87978:7;87956:9;:30::i;:::-;88007:4;88000:11;;;;;79498:225:::0;79620:10;79595:4;79642:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;79642:33:23;;;;;;;;;;79595:4;;79611:84;;79632:8;;79642:52;;79678:16;;79642:52;:::i;84470:580::-;78103:11;;84557:4;;78103:11;;78102:12;78094:41;;;;-1:-1:-1;;;78094:41:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;84582:11:23;::::1;;::::0;;;:6:::1;:11;::::0;;;;;::::1;;84581:12;:35:::0;::::1;;;-1:-1:-1::0;84605:10:23::1;84598:18;::::0;;;:6:::1;:18;::::0;;;;;::::1;;84597:19;84581:35;84573:64;;;::::0;-1:-1:-1;;;84573:64:23;;12225:2:165;84573:64:23::1;::::0;::::1;12207:21:165::0;12264:2;12244:18;;;12237:30;-1:-1:-1;;;12283:18:165;;;12276:46;12339:18;;84573:64:23::1;12023:340:165::0;84573:64:23::1;84704:10;84691:24;::::0;;;:12:::1;:24;::::0;;;;;;84666:21:::1;::::0;:9:::1;:21::i;:::-;:50;;;;:::i;:::-;84655:7;:61;;84647:94;;;::::0;-1:-1:-1;;;84647:94:23;;12570:2:165;84647:94:23::1;::::0;::::1;12552:21:165::0;12609:2;12589:18;;;12582:30;-1:-1:-1;;;12628:18:165;;;12621:50;12688:18;;84647:94:23::1;12368:344:165::0;84647:94:23::1;84755:21;::::0;:37:::1;::::0;-1:-1:-1;;;84755:37:23;;-1:-1:-1;;;;;1493:32:165;;;84755:37:23::1;::::0;::::1;1475:51:165::0;84755:21:23::1;::::0;;::::1;::::0;;::::1;::::0;:32:::1;::::0;1448:18:165;;84755:37:23::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:94;;;;-1:-1:-1::0;84796:15:23::1;::::0;:53:::1;::::0;-1:-1:-1;;;84796:53:23;;-1:-1:-1;;;;;84796:15:23;;::::1;::::0;:27:::1;::::0;:53:::1;::::0;84824:10:::1;::::0;84836:3;;84841:7;;84796:53:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;84751:252;;;84865:15;::::0;:53:::1;::::0;-1:-1:-1;;;84865:53:23;;-1:-1:-1;;;;;84865:15:23;;::::1;::::0;:27:::1;::::0;:53:::1;::::0;84893:10:::1;::::0;84905:3;;84910:7;;84865:53:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;84932:35;84942:10;84954:3;84959:7;84932:9;:35::i;:::-;-1:-1:-1::0;84988:4:23::1;84981:11;;94277:100:::0;94354:16;94363:6;94354:8;:16::i;82938:218::-;71311:6;;-1:-1:-1;;;;;71311:6:23;69658:10;71451:23;71443:68;;;;-1:-1:-1;;;71443:68:23;;;;;;;:::i;:::-;83020:11:::1;:21;83034:7:::0;;83020:11;:21:::1;:::i;:::-;-1:-1:-1::0;83104:13:23::1;::::0;83119::::1;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;83119:13:23::1;::::0;::::1;::::0;83056:93;;::::1;::::0;::::1;::::0;83080:9:::1;::::0;83091:11:::1;::::0;83104:13:::1;::::0;::::1;::::0;83119;83104::::1;83134:14:::0;;::::1;-1:-1:-1::0;;;;;83134:14:23::1;::::0;83056:93:::1;:::i;:::-;;;;;;;;82938:218:::0;;:::o;82663:210::-;71311:6;;-1:-1:-1;;;;;71311:6:23;69658:10;71451:23;71443:68;;;;-1:-1:-1;;;71443:68:23;;;;;;;:::i;:::-;82741:9:::1;:17;82753:5:::0;;82741:9;:17:::1;:::i;90079:199::-:0;74872:19;74880:10;74872:7;:19::i;:::-;74864:78;;;;-1:-1:-1;;;74864:78:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;90177:20:23;::::1;;::::0;;;:6:::1;:20;::::0;;;;;:30;;-1:-1:-1;;90177:30:23::1;::::0;::::1;;::::0;;::::1;::::0;;;90223:48;;90260:10:::1;::::0;90177:30;;90223:48:::1;::::0;::::1;90079:199:::0;;:::o;92242:222::-;71311:6;;-1:-1:-1;;;;;71311:6:23;69658:10;71451:23;71443:68;;;;-1:-1:-1;;;71443:68:23;;;;;;;:::i;:::-;92336:21:::1;:66:::0;;-1:-1:-1;;;;;;92336:66:23::1;;-1:-1:-1::0;;;;;92336:66:23;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;92417:40:::1;::::0;::::1;::::0;-1:-1:-1;;92417:40:23::1;92242:222:::0;:::o;72165:240::-;71311:6;;-1:-1:-1;;;;;71311:6:23;69658:10;71451:23;71443:68;;;;-1:-1:-1;;;71443:68:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;72253:22:23;::::1;72245:73;;;::::0;-1:-1:-1;;;72245:73:23;;21211:2:165;72245:73:23::1;::::0;::::1;21193:21:165::0;21250:2;21230:18;;;21223:30;21289:34;21269:18;;;21262:62;-1:-1:-1;;;21340:18:165;;;21333:36;21386:19;;72245:73:23::1;21009:402:165::0;72245:73:23::1;72354:6;::::0;72333:38:::1;::::0;-1:-1:-1;;;;;72333:38:23;;::::1;::::0;72354:6:::1;::::0;72333:38:::1;::::0;72354:6:::1;::::0;72333:38:::1;72381:6;:17:::0;;-1:-1:-1;;;;;;72381:17:23::1;-1:-1:-1::0;;;;;72381:17:23;;;::::1;::::0;;;::::1;::::0;;72165:240::o;92533:180::-;71311:6;;-1:-1:-1;;;;;71311:6:23;69658:10;71451:23;71443:68;;;;-1:-1:-1;;;71443:68:23;;;;;;;:::i;:::-;92615:15:::1;:48:::0;;-1:-1:-1;;;;;;92615:48:23::1;-1:-1:-1::0;;;;;92615:48:23;::::1;::::0;;::::1;::::0;;;92678:28:::1;::::0;::::1;::::0;-1:-1:-1;;92678:28:23::1;92533:180:::0;:::o;77195:770::-;77436:1;77417:7;71311:6;;-1:-1:-1;;;;;71311:6:23;;71239:85;77417:7;-1:-1:-1;;;;;77417:21:23;;77409:53;;;;-1:-1:-1;;;77409:53:23;;21618:2:165;77409:53:23;;;21600:21:165;21657:2;21637:18;;;21630:30;-1:-1:-1;;;21676:18:165;;;21669:49;21735:18;;77409:53:23;21416:343:165;77409:53:23;77472:9;:17;77484:5;77472:9;:17;:::i;:::-;-1:-1:-1;77499:11:23;:21;77513:7;77499:11;:21;:::i;:::-;-1:-1:-1;77530:13:23;:25;;;;;-1:-1:-1;;;;;;77565:27:23;;;;77530:25;-1:-1:-1;;;;;77565:27:23;;;;;;;;;;;;77602:21;:66;;-1:-1:-1;;;;;;77602:66:23;;;;;;;;;;;;;77683:40;;;;-1:-1:-1;;77683:40:23;77733:15;:48;;-1:-1:-1;;;;;;77733:48:23;-1:-1:-1;;;;;77733:48:23;;;;;;;;77796:28;;;;-1:-1:-1;;77796:28:23;77887:13;;77902;;;;;;;;;;;-1:-1:-1;;;77902:13:23;;;;77839:93;;;;;;77863:9;;77874:11;;77887:13;;;;77902;77887;77917:14;;;-1:-1:-1;;;;;77917:14:23;;77839:93;:::i;:::-;;;;;;;;77942:16;:14;:16::i;91140:260::-;91271:9;91266:128;91286:25;;;91266:128;;;91332:51;91352:14;;91367:1;91352:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;91371:8;;91380:1;91371:11;;;;;;;:::i;:::-;;;;;;;91332:19;:51::i;:::-;91313:3;;91266:128;;81217:381;-1:-1:-1;;;;;81351:20:23;;81343:69;;;;-1:-1:-1;;;81343:69:23;;23316:2:165;81343:69:23;;;23298:21:165;23355:2;23335:18;;;23328:30;23394:34;23374:18;;;23367:62;-1:-1:-1;;;23445:18:165;;;23438:34;23489:19;;81343:69:23;23114:400:165;81343:69:23;-1:-1:-1;;;;;81430:22:23;;81422:69;;;;-1:-1:-1;;;81422:69:23;;23721:2:165;81422:69:23;;;23703:21:165;23760:2;23740:18;;;23733:30;23799:34;23779:18;;;23772:62;-1:-1:-1;;;23850:18:165;;;23843:32;23892:19;;81422:69:23;23519:398:165;81422:69:23;-1:-1:-1;;;;;81502:19:23;;;;;;;:11;:19;;;;;;;;:29;;;;;;;;;;;;;:39;;;81556:35;;1874:25:165;;;81556:35:23;;1847:18:165;81556:35:23;;;;;;;;81217:381;;;:::o;73259:206::-;73331:4;-1:-1:-1;;;;;73355:21:23;;73347:74;;;;-1:-1:-1;;;73347:74:23;;24124:2:165;73347:74:23;;;24106:21:165;24163:2;24143:18;;;24136:30;24202:34;24182:18;;;24175:62;-1:-1:-1;;;24253:18:165;;;24246:38;24301:19;;73347:74:23;23922:404:165;73347:74:23;-1:-1:-1;;;;;;73438:20:23;:11;:20;;;;;;;;;;;;;;;73259:206::o;79777:475::-;-1:-1:-1;;;;;79906:19:23;;79898:69;;;;-1:-1:-1;;;79898:69:23;;24533:2:165;79898:69:23;;;24515:21:165;24572:2;24552:18;;;24545:30;24611:34;24591:18;;;24584:62;-1:-1:-1;;;24662:18:165;;;24655:35;24707:19;;79898:69:23;24331:401:165;79898:69:23;-1:-1:-1;;;;;79985:17:23;;79977:65;;;;-1:-1:-1;;;79977:65:23;;24939:2:165;79977:65:23;;;24921:21:165;24978:2;24958:18;;;24951:30;25017:34;24997:18;;;24990:62;-1:-1:-1;;;25068:18:165;;;25061:33;25111:19;;79977:65:23;24737:399:165;79977:65:23;-1:-1:-1;;;;;80124:16:23;;;;;;:9;:16;;;;;;:26;;80143:7;;80124:26;:::i;:::-;-1:-1:-1;;;;;80105:16:23;;;;;;;:9;:16;;;;;;:45;;;;80177:14;;;;;;;:24;;80194:7;;80177:24;:::i;:::-;-1:-1:-1;;;;;80160:14:23;;;;;;;:9;:14;;;;;;;:41;;;;80216:29;;;;;;;;;;80237:7;1874:25:165;;1862:2;1847:18;;1728:177;80306:399:23;-1:-1:-1;;;;;80395:26:23;;80387:70;;;;-1:-1:-1;;;80387:70:23;;25343:2:165;80387:70:23;;;25325:21:165;25382:2;25362:18;;;25355:30;25421:33;25401:18;;;25394:61;25472:18;;80387:70:23;25141:355:165;80387:70:23;80564:7;80549:12;;:22;;;;:::i;:::-;80534:12;:37;-1:-1:-1;;;;;80607:23:23;;;;;;:9;:23;;;;;;:33;;80633:7;;80607:33;:::i;:::-;-1:-1:-1;;;;;80581:23:23;;;;;;:9;:23;;;;;;:59;;;;80655:43;;80581:23;;;80655:43;;;;80690:7;1874:25:165;;1862:2;1847:18;;1728:177;80655:43:23;;;;;;;;80306:399;;:::o;72728:181::-;72805:18;72809:4;72815:7;72805:3;:18::i;:::-;72804:19;72796:69;;;;-1:-1:-1;;;72796:69:23;;25703:2:165;72796:69:23;;;25685:21:165;25742:2;25722:18;;;25715:30;25781:34;25761:18;;;25754:62;-1:-1:-1;;;25832:18:165;;;25825:35;25877:19;;72796:69:23;25501:401:165;72796:69:23;-1:-1:-1;;;;;72875:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;72875:27:23;72898:4;72875:27;;;72728:181::o;72984:186::-;73063:18;73067:4;73073:7;73063:3;:18::i;:::-;73055:70;;;;-1:-1:-1;;;73055:70:23;;26109:2:165;73055:70:23;;;26091:21:165;26148:2;26128:18;;;26121:30;26187:34;26167:18;;;26160:62;-1:-1:-1;;;26238:18:165;;;26231:37;26285:19;;73055:70:23;25907:403:165;73055:70:23;-1:-1:-1;;;;;73135:20:23;73158:5;73135:20;;;;;;;;;;;:28;;-1:-1:-1;;73135:28:23;;;72984:186::o;80759:401::-;-1:-1:-1;;;;;80848:26:23;;80840:72;;;;-1:-1:-1;;;80840:72:23;;26517:2:165;80840:72:23;;;26499:21:165;26556:2;26536:18;;;26529:30;26595:34;26575:18;;;26568:62;-1:-1:-1;;;26646:18:165;;;26639:31;26687:19;;80840:72:23;26315:397:165;80840:72:23;-1:-1:-1;;;;;81015:23:23;;;;;;:9;:23;;;;;;:33;;81041:7;;81015:33;:::i;:::-;-1:-1:-1;;;;;80989:23:23;;;;;;:9;:23;;;;;:59;81073:12;;:22;;81088:7;;81073:22;:::i;:::-;81058:12;:37;81110:43;;1874:25:165;;;81141:1:23;;-1:-1:-1;;;;;81110:43:23;;;;;1862:2:165;1847:18;81110:43:23;1728:177:165;70839:126:23;68422:13;;;;;;;;:30;;-1:-1:-1;68440:12:23;;;;68439:13;68422:30;68414:95;;;;-1:-1:-1;;;68414:95:23;;;;;;;:::i;:::-;68520:19;68543:13;;;;;;68542:14;68566:98;;;;68600:13;:20;;-1:-1:-1;;68634:19:23;;;;;68566:98;70896:26:::1;:24;:26::i;:::-;70932;:24;:26::i;:::-;68690:14:::0;68686:66;;;68736:5;68720:21;;-1:-1:-1;;68720:21:23;;;68404:354;70839:126::o;81667:124::-;;;;:::o;69510:64::-;68422:13;;;;;;;;:30;;-1:-1:-1;68440:12:23;;;;68439:13;68422:30;68414:95;;;;-1:-1:-1;;;68414:95:23;;;;;;;:::i;:::-;68520:19;68543:13;;;;;;68542:14;68566:98;;;;68600:13;:20;;-1:-1:-1;;68634:19:23;;;;;68686:66;;;;68736:5;68720:21;;-1:-1:-1;;68720:21:23;;;68404:354;69510:64::o;70971:192::-;68422:13;;;;;;;;:30;;-1:-1:-1;68440:12:23;;;;68439:13;68422:30;68414:95;;;;-1:-1:-1;;;68414:95:23;;;;;;;:::i;:::-;68520:19;68543:13;;;;;;68542:14;68566:98;;;;68600:13;:20;;-1:-1:-1;;68634:19:23;;;;;68566:98;71080:6:::1;:18:::0;;-1:-1:-1;;;;;;71080:18:23::1;69658:10:::0;71080:18;;::::1;::::0;;;71113:43:::1;::::0;69658:10;;71038:17:::1;::::0;71113:43:::1;::::0;71038:17;;71113:43:::1;71028:135;68690:14:::0;68686:66;;;68736:5;68720:21;;-1:-1:-1;;68720:21:23;;;68404:354;70971:192::o;14:423:165:-;56:3;94:5;88:12;121:6;116:3;109:19;146:1;156:162;170:6;167:1;164:13;156:162;;;232:4;288:13;;;284:22;;278:29;260:11;;;256:20;;249:59;185:12;156:162;;;160:3;363:1;356:4;347:6;342:3;338:16;334:27;327:38;426:4;419:2;415:7;410:2;402:6;398:15;394:29;389:3;385:39;381:50;374:57;;;14:423;;;;:::o;442:220::-;591:2;580:9;573:21;554:4;611:45;652:2;641:9;637:18;629:6;611:45;:::i;667:173::-;735:20;;-1:-1:-1;;;;;784:31:165;;774:42;;764:70;;830:1;827;820:12;764:70;667:173;;;:::o;845:254::-;913:6;921;974:2;962:9;953:7;949:23;945:32;942:52;;;990:1;987;980:12;942:52;1013:29;1032:9;1013:29;:::i;:::-;1003:39;1089:2;1074:18;;;;1061:32;;-1:-1:-1;;;845:254:165:o;1537:186::-;1596:6;1649:2;1637:9;1628:7;1624:23;1620:32;1617:52;;;1665:1;1662;1655:12;1617:52;1688:29;1707:9;1688:29;:::i;1910:367::-;1973:8;1983:6;2037:3;2030:4;2022:6;2018:17;2014:27;2004:55;;2055:1;2052;2045:12;2004:55;-1:-1:-1;2078:20:165;;2121:18;2110:30;;2107:50;;;2153:1;2150;2143:12;2107:50;2190:4;2182:6;2178:17;2166:29;;2250:3;2243:4;2233:6;2230:1;2226:14;2218:6;2214:27;2210:38;2207:47;2204:67;;;2267:1;2264;2257:12;2204:67;1910:367;;;;;:::o;2282:770::-;2401:6;2409;2417;2425;2478:2;2466:9;2457:7;2453:23;2449:32;2446:52;;;2494:1;2491;2484:12;2446:52;2534:9;2521:23;2563:18;2604:2;2596:6;2593:14;2590:34;;;2620:1;2617;2610:12;2590:34;2659:70;2721:7;2712:6;2701:9;2697:22;2659:70;:::i;:::-;2748:8;;-1:-1:-1;2633:96:165;-1:-1:-1;2836:2:165;2821:18;;2808:32;;-1:-1:-1;2852:16:165;;;2849:36;;;2881:1;2878;2871:12;2849:36;;2920:72;2984:7;2973:8;2962:9;2958:24;2920:72;:::i;:::-;2282:770;;;;-1:-1:-1;3011:8:165;-1:-1:-1;;;;2282:770:165:o;3057:328::-;3134:6;3142;3150;3203:2;3191:9;3182:7;3178:23;3174:32;3171:52;;;3219:1;3216;3209:12;3171:52;3242:29;3261:9;3242:29;:::i;:::-;3232:39;;3290:38;3324:2;3313:9;3309:18;3290:38;:::i;:::-;3280:48;;3375:2;3364:9;3360:18;3347:32;3337:42;;3057:328;;;;;:::o;3579:1088::-;3737:6;3745;3753;3761;3769;3777;3830:2;3818:9;3809:7;3805:23;3801:32;3798:52;;;3846:1;3843;3836:12;3798:52;3886:9;3873:23;3915:18;3956:2;3948:6;3945:14;3942:34;;;3972:1;3969;3962:12;3942:34;4011:70;4073:7;4064:6;4053:9;4049:22;4011:70;:::i;:::-;4100:8;;-1:-1:-1;3985:96:165;-1:-1:-1;4188:2:165;4173:18;;4160:32;;-1:-1:-1;4204:16:165;;;4201:36;;;4233:1;4230;4223:12;4201:36;4272:72;4336:7;4325:8;4314:9;4310:24;4272:72;:::i;:::-;4363:8;;-1:-1:-1;4246:98:165;-1:-1:-1;4451:2:165;4436:18;;4423:32;;-1:-1:-1;4467:16:165;;;4464:36;;;4496:1;4493;4486:12;4464:36;;4535:72;4599:7;4588:8;4577:9;4573:24;4535:72;:::i;:::-;3579:1088;;;;-1:-1:-1;3579:1088:165;;-1:-1:-1;3579:1088:165;;4626:8;;3579:1088;-1:-1:-1;;;3579:1088:165:o;5893:334::-;5970:6;5978;5986;6039:2;6027:9;6018:7;6014:23;6010:32;6007:52;;;6055:1;6052;6045:12;6007:52;6078:29;6097:9;6078:29;:::i;:::-;6068:39;;6126:38;6160:2;6149:9;6145:18;6126:38;:::i;:::-;6116:48;;6183:38;6217:2;6206:9;6202:18;6183:38;:::i;:::-;6173:48;;5893:334;;;;;:::o;6232:592::-;6303:6;6311;6364:2;6352:9;6343:7;6339:23;6335:32;6332:52;;;6380:1;6377;6370:12;6332:52;6420:9;6407:23;6449:18;6490:2;6482:6;6479:14;6476:34;;;6506:1;6503;6496:12;6476:34;6544:6;6533:9;6529:22;6519:32;;6589:7;6582:4;6578:2;6574:13;6570:27;6560:55;;6611:1;6608;6601:12;6560:55;6651:2;6638:16;6677:2;6669:6;6666:14;6663:34;;;6693:1;6690;6683:12;6663:34;6738:7;6733:2;6724:6;6720:2;6716:15;6712:24;6709:37;6706:57;;;6759:1;6756;6749:12;6706:57;6790:2;6782:11;;;;;6812:6;;-1:-1:-1;6232:592:165;;-1:-1:-1;;;;6232:592:165:o;6829:118::-;6915:5;6908:13;6901:21;6894:5;6891:32;6881:60;;6937:1;6934;6927:12;6952:315;7017:6;7025;7078:2;7066:9;7057:7;7053:23;7049:32;7046:52;;;7094:1;7091;7084:12;7046:52;7117:29;7136:9;7117:29;:::i;:::-;7107:39;;7196:2;7185:9;7181:18;7168:32;7209:28;7231:5;7209:28;:::i;:::-;7256:5;7246:15;;;6952:315;;;;;:::o;7272:260::-;7340:6;7348;7401:2;7389:9;7380:7;7376:23;7372:32;7369:52;;;7417:1;7414;7407:12;7369:52;7440:29;7459:9;7440:29;:::i;:::-;7430:39;;7488:38;7522:2;7511:9;7507:18;7488:38;:::i;:::-;7478:48;;7272:260;;;;;:::o;7537:127::-;7598:10;7593:3;7589:20;7586:1;7579:31;7629:4;7626:1;7619:15;7653:4;7650:1;7643:15;7669:719;7712:5;7765:3;7758:4;7750:6;7746:17;7742:27;7732:55;;7783:1;7780;7773:12;7732:55;7819:6;7806:20;7845:18;7882:2;7878;7875:10;7872:36;;;7888:18;;:::i;:::-;7963:2;7957:9;7931:2;8017:13;;-1:-1:-1;;8013:22:165;;;8037:2;8009:31;8005:40;7993:53;;;8061:18;;;8081:22;;;8058:46;8055:72;;;8107:18;;:::i;:::-;8147:10;8143:2;8136:22;8182:2;8174:6;8167:18;8228:3;8221:4;8216:2;8208:6;8204:15;8200:26;8197:35;8194:55;;;8245:1;8242;8235:12;8194:55;8309:2;8302:4;8294:6;8290:17;8283:4;8275:6;8271:17;8258:54;8356:1;8349:4;8344:2;8336:6;8332:15;8328:26;8321:37;8376:6;8367:15;;;;;;7669:719;;;;:::o;8393:925::-;8515:6;8523;8531;8539;8547;8555;8608:3;8596:9;8587:7;8583:23;8579:33;8576:53;;;8625:1;8622;8615:12;8576:53;8648:29;8667:9;8648:29;:::i;:::-;8638:39;;8696:38;8730:2;8719:9;8715:18;8696:38;:::i;:::-;8686:48;;8785:2;8774:9;8770:18;8757:32;8808:18;8849:2;8841:6;8838:14;8835:34;;;8865:1;8862;8855:12;8835:34;8888:50;8930:7;8921:6;8910:9;8906:22;8888:50;:::i;:::-;8878:60;;8991:2;8980:9;8976:18;8963:32;8947:48;;9020:2;9010:8;9007:16;9004:36;;;9036:1;9033;9026:12;9004:36;;9059:52;9103:7;9092:8;9081:9;9077:24;9059:52;:::i;:::-;9049:62;;;9161:3;9150:9;9146:19;9133:33;9206:4;9199:5;9195:16;9188:5;9185:27;9175:55;;9226:1;9223;9216:12;9175:55;9249:5;-1:-1:-1;9273:39:165;9307:3;9292:19;;9273:39;:::i;:::-;9263:49;;8393:925;;;;;;;;:::o;9323:380::-;9402:1;9398:12;;;;9445;;;9466:61;;9520:4;9512:6;9508:17;9498:27;;9466:61;9573:2;9565:6;9562:14;9542:18;9539:38;9536:161;;9619:10;9614:3;9610:20;9607:1;9600:31;9654:4;9651:1;9644:15;9682:4;9679:1;9672:15;9536:161;;9323:380;;;:::o;9708:410::-;9910:2;9892:21;;;9949:2;9929:18;;;9922:30;9988:34;9983:2;9968:18;;9961:62;-1:-1:-1;;;10054:2:165;10039:18;;10032:44;10108:3;10093:19;;9708:410::o;10123:127::-;10184:10;10179:3;10175:20;10172:1;10165:31;10215:4;10212:1;10205:15;10239:4;10236:1;10229:15;10255:125;10320:9;;;10341:10;;;10338:36;;;10354:18;;:::i;10746:127::-;10807:10;10802:3;10798:20;10795:1;10788:31;10838:4;10835:1;10828:15;10862:4;10859:1;10852:15;10878:241;10934:6;10987:2;10975:9;10966:7;10962:23;10958:32;10955:52;;;11003:1;11000;10993:12;10955:52;11042:9;11029:23;11061:28;11083:5;11061:28;:::i;11545:128::-;11612:9;;;11633:11;;;11630:37;;;11647:18;;:::i;11678:340::-;11880:2;11862:21;;;11919:2;11899:18;;;11892:30;-1:-1:-1;;;11953:2:165;11938:18;;11931:46;12009:2;11994:18;;11678:340::o;12717:245::-;12784:6;12837:2;12825:9;12816:7;12812:23;12808:32;12805:52;;;12853:1;12850;12843:12;12805:52;12885:9;12879:16;12904:28;12926:5;12904:28;:::i;12967:375::-;-1:-1:-1;;;;;13225:15:165;;;13207:34;;13277:15;;;;13272:2;13257:18;;13250:43;13324:2;13309:18;;13302:34;;;;13157:2;13142:18;;12967:375::o;13697:356::-;13899:2;13881:21;;;13918:18;;;13911:30;13977:34;13972:2;13957:18;;13950:62;14044:2;14029:18;;13697:356::o;14184:771::-;14234:3;14275:5;14269:12;14304:36;14330:9;14304:36;:::i;:::-;14349:19;;;14387:4;14410:1;14427:17;;;14453:146;;;;14613:1;14608:341;;;;14420:529;;14453:146;-1:-1:-1;;14495:24:165;;14481:12;;;14474:46;14567:14;;14560:22;14557:1;14553:30;14544:40;;14540:49;;;-1:-1:-1;14453:146:165;;14608:341;14639:5;14636:1;14629:16;14686:2;14683:1;14673:16;14711:1;14725:174;14739:6;14736:1;14733:13;14725:174;;;14826:14;;14808:11;;;14804:20;;14797:44;14869:16;;;;14754:10;;14725:174;;;14923:11;;14919:20;;;-1:-1:-1;;14420:529:165;;;;;;14184:771;;;;:::o;14960:734::-;15251:3;15240:9;15233:22;15214:4;15278:54;15327:3;15316:9;15312:19;15304:6;15278:54;:::i;:::-;15380:9;15372:6;15368:22;15363:2;15352:9;15348:18;15341:50;15414:41;15448:6;15440;15414:41;:::i;:::-;15400:55;;15503:4;15495:6;15491:17;15486:2;15475:9;15471:18;15464:45;15557:9;15549:6;15545:22;15540:2;15529:9;15525:18;15518:50;15585:33;15611:6;15603;15585:33;:::i;:::-;15577:41;;;15684:1;15680;15675:3;15671:11;15667:19;15659:6;15655:32;15649:3;15638:9;15634:19;15627:61;14960:734;;;;;;;;:::o;17643:276::-;17712:6;17765:2;17753:9;17744:7;17740:23;17736:32;17733:52;;;17781:1;17778;17771:12;17733:52;17813:9;17807:16;17863:6;17856:5;17852:18;17845:5;17842:29;17832:57;;17885:1;17882;17875:12;19079:543;19181:2;19176:3;19173:11;19170:446;;;19217:1;19241:5;19238:1;19231:16;19285:4;19282:1;19272:18;19355:2;19343:10;19339:19;19336:1;19332:27;19326:4;19322:38;19391:4;19379:10;19376:20;19373:47;;;-1:-1:-1;19414:4:165;19373:47;19469:2;19464:3;19460:12;19457:1;19453:20;19447:4;19443:31;19433:41;;19524:82;19542:2;19535:5;19532:13;19524:82;;;19587:17;;;19568:1;19557:13;19524:82;;19798:1206;19922:18;19917:3;19914:27;19911:53;;;19944:18;;:::i;:::-;19973:94;20063:3;20023:38;20055:4;20049:11;20023:38;:::i;:::-;20017:4;19973:94;:::i;:::-;20093:1;20118:2;20113:3;20110:11;20135:1;20130:616;;;;20790:1;20807:3;20804:93;;;-1:-1:-1;20863:19:165;;;20850:33;20804:93;-1:-1:-1;;19755:1:165;19751:11;;;19747:24;19743:29;19733:40;19779:1;19775:11;;;19730:57;20910:78;;20103:895;;20130:616;14131:1;14124:14;;;14168:4;14155:18;;-1:-1:-1;;20166:17:165;;;20267:9;20289:229;20303:7;20300:1;20297:14;20289:229;;;20392:19;;;20379:33;20364:49;;20499:4;20484:20;;;;20452:1;20440:14;;;;20319:12;20289:229;;;20293:3;20546;20537:7;20534:16;20531:159;;;20670:1;20666:6;20660:3;20654;20651:1;20647:11;20643:21;20639:34;20635:39;20622:9;20617:3;20613:19;20600:33;20596:79;20588:6;20581:95;20531:159;;;20733:1;20727:3;20724:1;20720:11;20716:19;20710:4;20703:33;20103:895;;19798:1206;;;:::o;21764:1345::-;21890:3;21884:10;21917:18;21909:6;21906:30;21903:56;;;21939:18;;:::i;:::-;21968:97;22058:6;22018:38;22050:4;22044:11;22018:38;:::i;:::-;22012:4;21968:97;:::i;:::-;22120:4;;22177:2;22166:14;;22194:1;22189:663;;;;22896:1;22913:6;22910:89;;;-1:-1:-1;22965:19:165;;;22959:26;22910:89;-1:-1:-1;;19755:1:165;19751:11;;;19747:24;19743:29;19733:40;19779:1;19775:11;;;19730:57;23012:81;;22159:944;;22189:663;14131:1;14124:14;;;14168:4;14155:18;;-1:-1:-1;;22225:20:165;;;22343:236;22357:7;22354:1;22351:14;22343:236;;;22446:19;;;22440:26;22425:42;;22538:27;;;;22506:1;22494:14;;;;22373:19;;22343:236;;;22347:3;22607:6;22598:7;22595:19;22592:201;;;22668:19;;;22662:26;-1:-1:-1;;22751:1:165;22747:14;;;22763:3;22743:24;22739:37;22735:42;22720:58;22705:74;;22592:201;-1:-1:-1;;;;;22839:1:165;22823:14;;;22819:22;22806:36;;-1:-1:-1;21764:1345:165:o;26717:416::-;26919:2;26901:21;;;26958:2;26938:18;;;26931:30;26997:34;26992:2;26977:18;;26970:62;-1:-1:-1;;;27063:2:165;27048:18;;27041:50;27123:3;27108:19;;26717:416::o","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","addAgentOnTokenContract(address)":"b422d830","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","batchBurn(address[],uint256[])":"4a6cc677","batchForcedTransfer(address[],address[],uint256[])":"42a47abc","batchFreezePartialTokens(address[],uint256[])":"fc7e5fa8","batchMint(address[],uint256[])":"68573107","batchSetAddressFrozen(address[],bool[])":"1a7af379","batchTransfer(address[],uint256[])":"88d695b2","batchUnfreezePartialTokens(address[],uint256[])":"4710362d","burn(address,uint256)":"9dc29fac","compliance()":"6290865d","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","forcedTransfer(address,address,uint256)":"9fc1d0e7","freezePartialTokens(address,uint256)":"125c4a33","getFrozenTokens(address)":"158b1a57","identityRegistry()":"134e18f4","increaseAllowance(address,uint256)":"39509351","init(address,address,string,string,uint8,address)":"f91b619c","isAgent(address)":"1ffbb064","isFrozen(address)":"e5839836","mint(address,uint256)":"40c10f19","name()":"06fdde03","onchainID()":"aba63705","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","recoveryAddress(address,address,address)":"9285948a","removeAgent(address)":"97a6278e","removeAgentOnTokenContract(address)":"5dc7a3cb","renounceOwnership()":"715018a6","setAddressFrozen(address,bool)":"c69c09cf","setCompliance(address)":"f8981789","setIdentityRegistry(address)":"cbf3f861","setName(string)":"c47f0027","setOnchainID(address)":"3d1ddc5b","setSymbol(string)":"b84c8246","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","transferOwnershipOnTokenContract(address)":"51411b33","unfreezePartialTokens(address,uint256)":"1fe56f7d","unpause()":"3f4ba83a","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"_isFrozen\",\"type\":\"bool\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"AddressFrozen\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_identityRegistry\",\"type\":\"address\"}],\"name\":\"IdentityRegistryAdded\",\"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\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_lostWallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newWallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_investorOnchainID\",\"type\":\"address\"}],\"name\":\"RecoverySuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"TokensFrozen\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"TokensUnfrozen\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_newName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_newSymbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_newDecimals\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_newVersion\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newOnchainID\",\"type\":\"address\"}],\"name\":\"UpdatedTokenInformation\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgentOnTokenContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchBurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_fromList\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_toList\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchForcedTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchFreezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_toList\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"_freeze\",\"type\":\"bool[]\"}],\"name\":\"batchSetAddressFrozen\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_toList\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchUnfreezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"compliance\",\"outputs\":[{\"internalType\":\"contract IComplianceLegacy\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"forcedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"freezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"getFrozenTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identityRegistry\",\"outputs\":[{\"internalType\":\"contract IIdentityRegistryLegacy\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identityRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"isFrozen\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onchainID\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":[{\"internalType\":\"address\",\"name\":\"_lostWallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newWallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_investorOnchainID\",\"type\":\"address\"}],\"name\":\"recoveryAddress\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgentOnTokenContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_freeze\",\"type\":\"bool\"}],\"name\":\"setAddressFrozen\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"setCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identityRegistry\",\"type\":\"address\"}],\"name\":\"setIdentityRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"setName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"setOnchainID\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"name\":\"setSymbol\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnershipOnTokenContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"unfreezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"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\":{\"addAgentOnTokenContract(address)\":{\"details\":\"See {ITokenLegacy-addAgentOnTokenContract}.\"},\"allowance(address,address)\":{\"details\":\"See {IERC20Legacy-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20Legacy-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20Legacy-balanceOf}.\"},\"batchBurn(address[],uint256[])\":{\"details\":\"See {ITokenLegacy-batchBurn}.\"},\"batchForcedTransfer(address[],address[],uint256[])\":{\"details\":\"See {ITokenLegacy-batchForcedTransfer}.\"},\"batchFreezePartialTokens(address[],uint256[])\":{\"details\":\"See {ITokenLegacy-batchFreezePartialTokens}.\"},\"batchMint(address[],uint256[])\":{\"details\":\"See {ITokenLegacy-batchMint}.\"},\"batchSetAddressFrozen(address[],bool[])\":{\"details\":\"See {ITokenLegacy-batchSetAddressFrozen}.\"},\"batchTransfer(address[],uint256[])\":{\"details\":\"See {ITokenLegacy-batchTransfer}.\"},\"batchUnfreezePartialTokens(address[],uint256[])\":{\"details\":\"See {ITokenLegacy-batchUnfreezePartialTokens}.\"},\"burn(address,uint256)\":{\"details\":\"See {ITokenLegacy-burn}.\"},\"compliance()\":{\"details\":\"See {ITokenLegacy-compliance}.\"},\"decimals()\":{\"details\":\"See {ITokenLegacy-decimals}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"See {ERC20-decreaseAllowance}.\"},\"forcedTransfer(address,address,uint256)\":{\"details\":\"See {ITokenLegacy-forcedTransfer}.\"},\"freezePartialTokens(address,uint256)\":{\"details\":\"See {ITokenLegacy-freezePartialTokens}.\"},\"getFrozenTokens(address)\":{\"details\":\"See {ITokenLegacy-getFrozenTokens}.\"},\"identityRegistry()\":{\"details\":\"See {ITokenLegacy-identityRegistry}.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"See {ERC20-increaseAllowance}.\"},\"init(address,address,string,string,uint8,address)\":{\"details\":\"the constructor initiates the token contract msg.sender is set automatically as the owner of the smart contract\",\"params\":{\"_compliance\":\"the address of the compliance contract linked to the token\",\"_decimals\":\"the decimals of the token\",\"_identityRegistry\":\"the address of the Identity registry linked to the token\",\"_name\":\"the name of the token\",\"_onchainID\":\"the address of the onchainID of the token emits an `UpdatedTokenInformation` event emits an `IdentityRegistryAdded` event emits a `ComplianceAdded` event\",\"_symbol\":\"the symbol of the token\"}},\"isFrozen(address)\":{\"details\":\"See {ITokenLegacy-isFrozen}.\"},\"mint(address,uint256)\":{\"details\":\"See {ITokenLegacy-mint}.\"},\"name()\":{\"details\":\"See {ITokenLegacy-name}.\"},\"onchainID()\":{\"details\":\"See {ITokenLegacy-onchainID}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"details\":\"See {ITokenLegacy-pause}.\"},\"paused()\":{\"details\":\"See {ITokenLegacy-paused}.\"},\"recoveryAddress(address,address,address)\":{\"details\":\"See {ITokenLegacy-recoveryAddress}.\"},\"removeAgentOnTokenContract(address)\":{\"details\":\"See {ITokenLegacy-removeAgentOnTokenContract}.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setAddressFrozen(address,bool)\":{\"details\":\"See {ITokenLegacy-setAddressFrozen}.\"},\"setCompliance(address)\":{\"details\":\"See {ITokenLegacy-setCompliance}.\"},\"setIdentityRegistry(address)\":{\"details\":\"See {ITokenLegacy-setIdentityRegistry}.\"},\"setName(string)\":{\"details\":\"See {ITokenLegacy-setName}.\"},\"setOnchainID(address)\":{\"details\":\"See {ITokenLegacy-setOnchainID}.\"},\"setSymbol(string)\":{\"details\":\"See {ITokenLegacy-setSymbol}.\"},\"symbol()\":{\"details\":\"See {ITokenLegacy-symbol}.\"},\"totalSupply()\":{\"details\":\"See {IERC20Legacy-totalSupply}.\"},\"transfer(address,uint256)\":{\"params\":{\"_amount\":\"The number of tokens to transfer\",\"_to\":\"The address of the receiver\"},\"returns\":{\"_0\":\"`true` if successful and revert if unsuccessful\"}},\"transferFrom(address,address,uint256)\":{\"params\":{\"_amount\":\"The number of tokens to transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"},\"returns\":{\"_0\":\"`true` if successful and revert if unsuccessful\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferOwnershipOnTokenContract(address)\":{\"details\":\"See {ITokenLegacy-transferOwnershipOnTokenContract}.\"},\"unfreezePartialTokens(address,uint256)\":{\"details\":\"See {ITokenLegacy-unfreezePartialTokens}.\"},\"unpause()\":{\"details\":\"See {ITokenLegacy-unpause}.\"},\"version()\":{\"details\":\"See {ITokenLegacy-version}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"AddressFrozen(address,bool,address)\":{\"notice\":\"this event is emitted when the wallet of an investor is frozen or unfrozen the event is emitted by setAddressFrozen and batchSetAddressFrozen functions `_userAddress` is the wallet of the investor that is concerned by the freezing status `_isFrozen` is the freezing status of the wallet if `_isFrozen` equals `true` the wallet is frozen after emission of the event if `_isFrozen` equals `false` the wallet is unfrozen after emission of the event `_owner` is the address of the agent who called the function to freeze the wallet\"},\"ComplianceAdded(address)\":{\"notice\":\"this event is emitted when the Compliance has been set for the token the event is emitted by the token constructor and by the setCompliance function `_compliance` is the address of the Compliance contract of the token\"},\"IdentityRegistryAdded(address)\":{\"notice\":\"this event is emitted when the IdentityRegistry has been set for the token the event is emitted by the token constructor and by the setIdentityRegistry function `_identityRegistry` is the address of the Identity Registry of the token\"},\"Paused(address)\":{\"notice\":\"this event is emitted when the token is paused the event is emitted by the pause function `_userAddress` is the address of the wallet that called the pause function\"},\"RecoverySuccess(address,address,address)\":{\"notice\":\"this event is emitted when an investor successfully recovers his tokens the event is emitted by the recoveryAddress function `_lostWallet` is the address of the wallet that the investor lost access to `_newWallet` is the address of the wallet that the investor provided for the recovery `_investorOnchainID` is the address of the onchainID of the investor who asked for a recovery\"},\"TokensFrozen(address,uint256)\":{\"notice\":\"this event is emitted when a certain amount of tokens is frozen on a wallet the event is emitted by freezePartialTokens and batchFreezePartialTokens functions `_userAddress` is the wallet of the investor that is concerned by the freezing status `_amount` is the amount of tokens that are frozen\"},\"TokensUnfrozen(address,uint256)\":{\"notice\":\"this event is emitted when a certain amount of tokens is unfrozen on a wallet the event is emitted by unfreezePartialTokens and batchUnfreezePartialTokens functions `_userAddress` is the wallet of the investor that is concerned by the freezing status `_amount` is the amount of tokens that are unfrozen\"},\"Unpaused(address)\":{\"notice\":\"this event is emitted when the token is unpaused the event is emitted by the unpause function `_userAddress` is the address of the wallet that called the unpause function\"},\"UpdatedTokenInformation(string,string,uint8,string,address)\":{\"notice\":\"this event is emitted when the token information is updated. the event is emitted by the token constructor and by the setTokenInformation function `_newName` is the name of the token `_newSymbol` is the symbol of the token `_newDecimals` is the decimals of the token `_newVersion` is the version of the token, current version is 3.0 `_newOnchainID` is the address of the onchainID of the token\"}},\"kind\":\"user\",\"methods\":{\"transfer(address,uint256)\":{\"notice\":\"ERC-20 overridden function that include logic to check for trade validity. Require that the msg.sender and to addresses are not frozen. Require that the value should not exceed available balance . Require that the to address is a verified address\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"ERC-20 overridden function that include logic to check for trade validity. Require that the from and to addresses are not frozen. Require that the value should not exceed available balance . Require that the to address is a verified address\"}},\"notice\":\"NOTICE The T-REX software is licensed under a proprietary license or the GPL v.3. If you choose to receive it under the GPL v.3 license, the following applies: T-REX is a suite of smart contracts developed by Tokeny to manage and transfer financial assets on the ethereum blockchain Copyright (C) 2021, Tokeny s\\u00e0rl. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see .\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":\"LegacyToken_3_5_2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":{\"keccak256\":\"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a\",\"dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":true},{"internalType":"bool","name":"_isFrozen","type":"bool","indexed":true},{"internalType":"address","name":"_owner","type":"address","indexed":true}],"type":"event","name":"AddressFrozen","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_identityRegistry","type":"address","indexed":true}],"type":"event","name":"IdentityRegistryAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"_lostWallet","type":"address","indexed":false},{"internalType":"address","name":"_newWallet","type":"address","indexed":false},{"internalType":"address","name":"_investorOnchainID","type":"address","indexed":false}],"type":"event","name":"RecoverySuccess","anonymous":false},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":true},{"internalType":"uint256","name":"_amount","type":"uint256","indexed":false}],"type":"event","name":"TokensFrozen","anonymous":false},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":true},{"internalType":"uint256","name":"_amount","type":"uint256","indexed":false}],"type":"event","name":"TokensUnfrozen","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"string","name":"_newName","type":"string","indexed":false},{"internalType":"string","name":"_newSymbol","type":"string","indexed":false},{"internalType":"uint8","name":"_newDecimals","type":"uint8","indexed":false},{"internalType":"string","name":"_newVersion","type":"string","indexed":false},{"internalType":"address","name":"_newOnchainID","type":"address","indexed":false}],"type":"event","name":"UpdatedTokenInformation","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgentOnTokenContract"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchBurn"},{"inputs":[{"internalType":"address[]","name":"_fromList","type":"address[]"},{"internalType":"address[]","name":"_toList","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchForcedTransfer"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchFreezePartialTokens"},{"inputs":[{"internalType":"address[]","name":"_toList","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchMint"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"bool[]","name":"_freeze","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"batchSetAddressFrozen"},{"inputs":[{"internalType":"address[]","name":"_toList","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchTransfer"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchUnfreezePartialTokens"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"compliance","outputs":[{"internalType":"contract IComplianceLegacy","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_subtractedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"forcedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"freezePartialTokens"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getFrozenTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"identityRegistry","outputs":[{"internalType":"contract IIdentityRegistryLegacy","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_identityRegistry","type":"address"},{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"address","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"init"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isFrozen","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"onchainID","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_lostWallet","type":"address"},{"internalType":"address","name":"_newWallet","type":"address"},{"internalType":"address","name":"_investorOnchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recoveryAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgentOnTokenContract"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"bool","name":"_freeze","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setAddressFrozen"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setCompliance"},{"inputs":[{"internalType":"address","name":"_identityRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setIdentityRegistry"},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setName"},{"inputs":[{"internalType":"address","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOnchainID"},{"inputs":[{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setSymbol"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnershipOnTokenContract"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unfreezePartialTokens"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"addAgentOnTokenContract(address)":{"details":"See {ITokenLegacy-addAgentOnTokenContract}."},"allowance(address,address)":{"details":"See {IERC20Legacy-allowance}."},"approve(address,uint256)":{"details":"See {IERC20Legacy-approve}."},"balanceOf(address)":{"details":"See {IERC20Legacy-balanceOf}."},"batchBurn(address[],uint256[])":{"details":"See {ITokenLegacy-batchBurn}."},"batchForcedTransfer(address[],address[],uint256[])":{"details":"See {ITokenLegacy-batchForcedTransfer}."},"batchFreezePartialTokens(address[],uint256[])":{"details":"See {ITokenLegacy-batchFreezePartialTokens}."},"batchMint(address[],uint256[])":{"details":"See {ITokenLegacy-batchMint}."},"batchSetAddressFrozen(address[],bool[])":{"details":"See {ITokenLegacy-batchSetAddressFrozen}."},"batchTransfer(address[],uint256[])":{"details":"See {ITokenLegacy-batchTransfer}."},"batchUnfreezePartialTokens(address[],uint256[])":{"details":"See {ITokenLegacy-batchUnfreezePartialTokens}."},"burn(address,uint256)":{"details":"See {ITokenLegacy-burn}."},"compliance()":{"details":"See {ITokenLegacy-compliance}."},"decimals()":{"details":"See {ITokenLegacy-decimals}."},"decreaseAllowance(address,uint256)":{"details":"See {ERC20-decreaseAllowance}."},"forcedTransfer(address,address,uint256)":{"details":"See {ITokenLegacy-forcedTransfer}."},"freezePartialTokens(address,uint256)":{"details":"See {ITokenLegacy-freezePartialTokens}."},"getFrozenTokens(address)":{"details":"See {ITokenLegacy-getFrozenTokens}."},"identityRegistry()":{"details":"See {ITokenLegacy-identityRegistry}."},"increaseAllowance(address,uint256)":{"details":"See {ERC20-increaseAllowance}."},"init(address,address,string,string,uint8,address)":{"details":"the constructor initiates the token contract msg.sender is set automatically as the owner of the smart contract","params":{"_compliance":"the address of the compliance contract linked to the token","_decimals":"the decimals of the token","_identityRegistry":"the address of the Identity registry linked to the token","_name":"the name of the token","_onchainID":"the address of the onchainID of the token emits an `UpdatedTokenInformation` event emits an `IdentityRegistryAdded` event emits a `ComplianceAdded` event","_symbol":"the symbol of the token"}},"isFrozen(address)":{"details":"See {ITokenLegacy-isFrozen}."},"mint(address,uint256)":{"details":"See {ITokenLegacy-mint}."},"name()":{"details":"See {ITokenLegacy-name}."},"onchainID()":{"details":"See {ITokenLegacy-onchainID}."},"owner()":{"details":"Returns the address of the current owner."},"pause()":{"details":"See {ITokenLegacy-pause}."},"paused()":{"details":"See {ITokenLegacy-paused}."},"recoveryAddress(address,address,address)":{"details":"See {ITokenLegacy-recoveryAddress}."},"removeAgentOnTokenContract(address)":{"details":"See {ITokenLegacy-removeAgentOnTokenContract}."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setAddressFrozen(address,bool)":{"details":"See {ITokenLegacy-setAddressFrozen}."},"setCompliance(address)":{"details":"See {ITokenLegacy-setCompliance}."},"setIdentityRegistry(address)":{"details":"See {ITokenLegacy-setIdentityRegistry}."},"setName(string)":{"details":"See {ITokenLegacy-setName}."},"setOnchainID(address)":{"details":"See {ITokenLegacy-setOnchainID}."},"setSymbol(string)":{"details":"See {ITokenLegacy-setSymbol}."},"symbol()":{"details":"See {ITokenLegacy-symbol}."},"totalSupply()":{"details":"See {IERC20Legacy-totalSupply}."},"transfer(address,uint256)":{"params":{"_amount":"The number of tokens to transfer","_to":"The address of the receiver"},"returns":{"_0":"`true` if successful and revert if unsuccessful"}},"transferFrom(address,address,uint256)":{"params":{"_amount":"The number of tokens to transfer","_from":"The address of the sender","_to":"The address of the receiver"},"returns":{"_0":"`true` if successful and revert if unsuccessful"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"transferOwnershipOnTokenContract(address)":{"details":"See {ITokenLegacy-transferOwnershipOnTokenContract}."},"unfreezePartialTokens(address,uint256)":{"details":"See {ITokenLegacy-unfreezePartialTokens}."},"unpause()":{"details":"See {ITokenLegacy-unpause}."},"version()":{"details":"See {ITokenLegacy-version}."}},"version":1},"userdoc":{"kind":"user","methods":{"transfer(address,uint256)":{"notice":"ERC-20 overridden function that include logic to check for trade validity. Require that the msg.sender and to addresses are not frozen. Require that the value should not exceed available balance . Require that the to address is a verified address"},"transferFrom(address,address,uint256)":{"notice":"ERC-20 overridden function that include logic to check for trade validity. Require that the from and to addresses are not frozen. Require that the value should not exceed available balance . Require that the to address is a verified address"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":"LegacyToken_3_5_2"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":{"keccak256":"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d","urls":["bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a","dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3"],"license":"GPL-3.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/LegacyToken_3_5_2.sol/OwnableUpgradeableLegacy.json b/out/LegacyToken_3_5_2.sol/OwnableUpgradeableLegacy.json new file mode 100644 index 0000000..bfa4ad2 --- /dev/null +++ b/out/LegacyToken_3_5_2.sol/OwnableUpgradeableLegacy.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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.\",\"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 anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing 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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":\"OwnableUpgradeableLegacy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":{\"keccak256\":\"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a\",\"dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"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 anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing 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."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":"OwnableUpgradeableLegacy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":{"keccak256":"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d","urls":["bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a","dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3"],"license":"GPL-3.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/LegacyToken_3_5_2.sol/RolesLegacy.json b/out/LegacyToken_3_5_2.sol/RolesLegacy.json new file mode 100644 index 0000000..ae81149 --- /dev/null +++ b/out/LegacyToken_3_5_2.sol/RolesLegacy.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dcf9479dad09e4826144487ec2d15561582351abcd3b620882edda344595e78364736f6c63430008180033","sourceMap":"72571:896:23:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;72571:896:23;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dcf9479dad09e4826144487ec2d15561582351abcd3b620882edda344595e78364736f6c63430008180033","sourceMap":"72571:896:23:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing addresses assigned to a Role.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"RolesLegacy\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":\"RolesLegacy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":{\"keccak256\":\"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a\",\"dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":"RolesLegacy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":{"keccak256":"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d","urls":["bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a","dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3"],"license":"GPL-3.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/LegacyToken_3_5_2.sol/TokenStorageLegacy.json b/out/LegacyToken_3_5_2.sol/TokenStorageLegacy.json new file mode 100644 index 0000000..f651588 --- /dev/null +++ b/out/LegacyToken_3_5_2.sol/TokenStorageLegacy.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60806040526008805460ff19169055348015601957600080fd5b50603f8060276000396000f3fe6080604052600080fdfea264697066735822122095a91b874f0656372d72cf07e0dd0300b738d8a63e5e520a41a8dae15bbfc54464736f6c63430008180033","sourceMap":"66030:902:23:-:0;;;66637:33;;;-1:-1:-1;;66637:33:23;;;66030:902;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea264697066735822122095a91b874f0656372d72cf07e0dd0300b738d8a63e5e520a41a8dae15bbfc54464736f6c63430008180033","sourceMap":"66030:902:23:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_balances\":{\"details\":\"ERC20 basic variables\"},\"frozen\":{\"details\":\"Variables of freeze and pause functions\"},\"tokenCompliance\":{\"details\":\"Compliance contract linked to the onchain validator system\"},\"tokenIdentityRegistry\":{\"details\":\"Identity Registry contract used by the onchain validator system\"},\"tokenName\":{\"details\":\"Token information\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"NOTICE The T-REX software is licensed under a proprietary license or the GPL v.3. If you choose to receive it under the GPL v.3 license, the following applies: T-REX is a suite of smart contracts developed by Tokeny to manage and transfer financial assets on the ethereum blockchain Copyright (C) 2021, Tokeny s\\u00e0rl. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see .\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":\"TokenStorageLegacy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol\":{\"keccak256\":\"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a\",\"dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":"TokenStorageLegacy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/v_3_5_2/LegacyToken_3_5_2.sol":{"keccak256":"0x805abfc1898863c3f27e9f51cddc4543d5a2cf011c5d86418bd7f98181c0ae0d","urls":["bzz-raw://403910603e38469585680a18d8c1a33c9ab07541ead5ae5a0fc35bdf550aeb6a","dweb:/ipfs/QmUyh5C1EFGYY83WCk4BnxK11cZEdiKFt58Ubm9NkYbrv3"],"license":"GPL-3.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/MCStorage.sol/MCStorage.json b/out/MCStorage.sol/MCStorage.json new file mode 100644 index 0000000..20a444d --- /dev/null +++ b/out/MCStorage.sol/MCStorage.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220de7a81becd49e6259b24259a3712f56eb23d12c374bb46252b193193ddf5607964736f6c63430008180033","sourceMap":"3843:492:42:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea2646970667358221220de7a81becd49e6259b24259a3712f56eb23d12c374bb46252b193193ddf5607964736f6c63430008180033","sourceMap":"3843:492:42:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/modular/MCStorage.sol\":\"MCStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/MCStorage.sol\":{\"keccak256\":\"0xf27c8a5fe6cdbd58f335bca9773a831a475f91fc63af0b3fba84b3e529e97209\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7bc26e7ff7bcba486c82b56f9eb968314dd0f290a053ee02771c8fb94cf79ad7\",\"dweb:/ipfs/QmX1nmCLJjy6LPQNYfyXZYvLiJYhVY2c4zboWiaZ3XKZgj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/modular/MCStorage.sol":"MCStorage"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/MCStorage.sol":{"keccak256":"0xf27c8a5fe6cdbd58f335bca9773a831a475f91fc63af0b3fba84b3e529e97209","urls":["bzz-raw://7bc26e7ff7bcba486c82b56f9eb968314dd0f290a053ee02771c8fb94cf79ad7","dweb:/ipfs/QmX1nmCLJjy6LPQNYfyXZYvLiJYhVY2c4zboWiaZ3XKZgj"],"license":"GPL-3.0"}},"version":1},"id":42} \ No newline at end of file diff --git a/out/Math.sol/Math.json b/out/Math.sol/Math.json new file mode 100644 index 0000000..6ef996e --- /dev/null +++ b/out/Math.sol/Math.json @@ -0,0 +1 @@ +{"abi":[{"type":"error","name":"MathOverflowedMulDiv","inputs":[]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206f0390aaf266476435fc59ed531b061a2980d65d6533a79ee9d13ff7cf523f0464736f6c63430008180033","sourceMap":"203:14914:160:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;203:14914:160;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206f0390aaf266476435fc59ed531b061a2980d65d6533a79ee9d13ff7cf523f0464736f6c63430008180033","sourceMap":"203:14914:160:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/math/Math.sol":"Math"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"}},"version":1},"id":160} \ No newline at end of file diff --git a/out/MaxBalance.sol/MaxBalance.json b/out/MaxBalance.sol/MaxBalance.json new file mode 100644 index 0000000..66a1f62 --- /dev/null +++ b/out/MaxBalance.sol/MaxBalance.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IDBalance","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"complianceCheckOnMaxBalance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenBound","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"maxBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxBalance","inputs":[{"name":"_max","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tokenBound","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IToken"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MaxBalanceSet","inputs":[{"name":"_maxBalance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentAdded","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentRemoved","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IDBalance(address)":"ff548267","addAgent(address)":"84e79842","addTokenAgent(address)":"ff3e6954","bindToken(address)":"3ff5aa02","canTransfer(address,address,uint256)":"e46638e6","complianceCheckOnMaxBalance(address,address,uint256)":"84d1fc40","created(address,uint256)":"5f8dead3","destroyed(address,uint256)":"8d2ea772","isAgent(address)":"1ffbb064","isTokenAgent(address)":"346531fa","isTokenBound(address)":"993e8b95","maxBalance()":"73ad468a","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","removeTokenAgent(address)":"cdde2932","renounceOwnership()":"715018a6","setMaxBalance(uint256)":"9d51d9b7","tokenBound()":"93e62f07","transferOwnership(address)":"f2fde38b","transferred(address,address,uint256)":"8baf29b4","unbindToken(address)":"40db3b50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_maxBalance\",\"type\":\"uint256\"}],\"name\":\"MaxBalanceSet\",\"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\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"IDBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"addTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"complianceCheckOnMaxBalance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"isTokenAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"removeTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_max\",\"type\":\"uint256\"}],\"name\":\"setMaxBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenBound\",\"outputs\":[{\"internalType\":\"contract IToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addTokenAgent(address)\":{\"details\":\"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces\"},\"bindToken(address)\":{\"details\":\"See {ICompliance-bindToken}.\"},\"canTransfer(address,address,uint256)\":{\"details\":\"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"complianceCheckOnMaxBalance(address,address,uint256)\":{\"details\":\"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the transfer doesn't push the ONCHAINID-based balance of `_to` above the authorized threshold fixed by maxBalance\",\"params\":{\"_to\":\"the address of the transfer receiver\",\"_value\":\"the amount of tokens that `_from` would send to `_to`\"}},\"created(address,uint256)\":{\"details\":\"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_to\":\"The address of the receiver\"}},\"destroyed(address,uint256)\":{\"details\":\"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the receiver\"}},\"isTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"isTokenBound(address)\":{\"details\":\"See {ICompliance-isTokenBound}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"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.\"},\"setMaxBalance(uint256)\":{\"details\":\"sets max balance limit\",\"params\":{\"_max\":\"max amount of tokens owned by an individual Only the owner of the Compliance smart contract can call this function emits an `MaxBalanceSet` event\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferred(address,address,uint256)\":{\"details\":\"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"unbindToken(address)\":{\"details\":\"See {ICompliance-unbindToken}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"MaxBalanceSet(uint256)\":{\"notice\":\"this event is emitted when the max balance has been set. `_maxBalance` is the max amount of tokens that a user can hold .\"},\"TokenAgentAdded(address)\":{\"notice\":\"this event is emitted when the Agent has been added on the allowedList of this Compliance. the event is emitted by the Compliance constructor and by the addTokenAgent function `_agentAddress` is the address of the Agent to add\"},\"TokenAgentRemoved(address)\":{\"notice\":\"this event is emitted when the Agent has been removed from the agent list of this Compliance. the event is emitted by the Compliance constructor and by the removeTokenAgent function `_agentAddress` is the address of the Agent to remove\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"}},\"kind\":\"user\",\"methods\":{\"IDBalance(address)\":{\"notice\":\"mapping of balances per ONCHAINID\"},\"maxBalance()\":{\"notice\":\"maximum balance per investor ONCHAINID\"},\"tokenBound()\":{\"notice\":\"Mapping of tokens linked to the compliance contract\"}},\"notice\":\"this feature allows to put a maximum balance for an investor\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/legacy/features/MaxBalance.sol\":\"MaxBalance\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/legacy/BasicCompliance.sol\":{\"keccak256\":\"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d\",\"dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4\"]},\"contracts/erc3643/compliance/legacy/ICompliance.sol\":{\"keccak256\":\"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e\",\"dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV\"]},\"contracts/erc3643/compliance/legacy/features/MaxBalance.sol\":{\"keccak256\":\"0x950c489570bb2160b53ba7ab66f5fc62ff7f9588f1f853bb238d1db8b26da751\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://afa80afc9b838fe7bb04804952d96f6212c4ba0006e786112aa16745b1b1e847\",\"dweb:/ipfs/QmZUz9rKRMvXp2pyNrjRefszCjqa6vmBrVWrJ4cBekgEoP\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_maxBalance","type":"uint256","indexed":false}],"type":"event","name":"MaxBalanceSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"IDBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenAgent"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"view","type":"function","name":"complianceCheckOnMaxBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"_max","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxBalance"},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenBound","outputs":[{"internalType":"contract IToken","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"}],"devdoc":{"kind":"dev","methods":{"addTokenAgent(address)":{"details":"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces"},"bindToken(address)":{"details":"See {ICompliance-bindToken}."},"canTransfer(address,address,uint256)":{"details":"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"complianceCheckOnMaxBalance(address,address,uint256)":{"details":"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the transfer doesn't push the ONCHAINID-based balance of `_to` above the authorized threshold fixed by maxBalance","params":{"_to":"the address of the transfer receiver","_value":"the amount of tokens that `_from` would send to `_to`"}},"created(address,uint256)":{"details":"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_to":"The address of the receiver"}},"destroyed(address,uint256)":{"details":"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the receiver"}},"isTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"isTokenBound(address)":{"details":"See {ICompliance-isTokenBound}."},"owner()":{"details":"Returns the address of the current owner."},"removeTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"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."},"setMaxBalance(uint256)":{"details":"sets max balance limit","params":{"_max":"max amount of tokens owned by an individual Only the owner of the Compliance smart contract can call this function emits an `MaxBalanceSet` event"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"transferred(address,address,uint256)":{"details":"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"unbindToken(address)":{"details":"See {ICompliance-unbindToken}."}},"version":1},"userdoc":{"kind":"user","methods":{"IDBalance(address)":{"notice":"mapping of balances per ONCHAINID"},"maxBalance()":{"notice":"maximum balance per investor ONCHAINID"},"tokenBound()":{"notice":"Mapping of tokens linked to the compliance contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/legacy/features/MaxBalance.sol":"MaxBalance"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/legacy/BasicCompliance.sol":{"keccak256":"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305","urls":["bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d","dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/ICompliance.sol":{"keccak256":"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7","urls":["bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e","dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/features/MaxBalance.sol":{"keccak256":"0x950c489570bb2160b53ba7ab66f5fc62ff7f9588f1f853bb238d1db8b26da751","urls":["bzz-raw://afa80afc9b838fe7bb04804952d96f6212c4ba0006e786112aa16745b1b1e847","dweb:/ipfs/QmZUz9rKRMvXp2pyNrjRefszCjqa6vmBrVWrJ4cBekgEoP"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":32} \ No newline at end of file diff --git a/out/MaxBalanceModule.sol/MaxBalanceModule.json b/out/MaxBalanceModule.sol/MaxBalanceModule.json new file mode 100644 index 0000000..c7bbb2d --- /dev/null +++ b/out/MaxBalanceModule.sol/MaxBalanceModule.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"batchPreSetModuleState","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_id","type":"address[]","internalType":"address[]"},{"name":"_balance","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canComplianceBind","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getIDBalance","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_identity","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isComplianceBound","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPlugAndPlay","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"moduleBurnAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleCheck","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleMintAction","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleTransferAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"preSetModuleState","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_id","type":"address","internalType":"address"},{"name":"_balance","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"presetCompleted","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxBalance","inputs":[{"name":"_max","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComplianceBound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ComplianceUnbound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"IDBalancePreSet","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"},{"name":"_id","type":"address","indexed":true,"internalType":"address"},{"name":"_balance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MaxBalanceSet","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"},{"name":"_maxBalance","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"InvalidPresetValues","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_id","type":"address[]","internalType":"address[]"},{"name":"_balance","type":"uint256[]","internalType":"uint256[]"}]},{"type":"error","name":"MaxBalanceExceeded","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyComplianceOwnerCanCall","inputs":[{"name":"_compliance","type":"address","internalType":"address"}]},{"type":"error","name":"TokenAlreadyBound","inputs":[{"name":"_compliance","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061135e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638f27c0eb11610097578063dd50b74c11610066578063dd50b74c14610228578063e6f5e8071461023b578063f104a8c914610242578063f7c4722c1461025557600080fd5b80638f27c0eb146101ce5780639d51d9b7146101e1578063bcc21053146101f4578063cc203f751461020757600080fd5b80632cb7e1ec116100d35780632cb7e1ec14610169578063372491a21461017c5780634a9325441461018f5780634cf4d295146101a257600080fd5b8063013b7ce4146100fa5780630694a5fb1461012257806306fdde0314610137575b600080fd5b61010d610108366004610f2a565b610268565b60405190151581526020015b60405180910390f35b610135610130366004610f7d565b6102f9565b005b604080518082018252601081526f4d617842616c616e63654d6f64756c6560801b602082015290516101199190610f9a565b610135610177366004610fe9565b6103f8565b61013561018a36600461102a565b610512565b61013561019d366004610f7d565b61058f565b61010d6101b0366004610f7d565b6001600160a01b031660009081526020819052604090205460ff1690565b6101356101dc3660046110a2565b6106c2565b6101356101ef366004611125565b6108b0565b61010d610202366004610f7d565b61091c565b61021a61021536600461113e565b610a2d565b604051908152602001610119565b610135610236366004610f7d565b610a5a565b600061010d565b61013561025036600461102a565b610b1f565b610135610263366004610fe9565b610bf1565b6001600160a01b038116600090815260026020526040812054831115610290575060006102f1565b600061029c8386610d2b565b6001600160a01b0380851660009081526002602090815260408083205460038352818420948616845293909152902054919250906102db90869061118d565b11156102eb5760009150506102f1565b60019150505b949350505050565b3360009081526020819052604090205460ff166103315760405162461bcd60e51b8152600401610328906111a0565b60405180910390fd5b6001600160a01b0381166103875760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610328565b336001600160a01b038216146103af5760405162461bcd60e51b8152600401610328906111d7565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166104275760405162461bcd60e51b8152600401610328906111a0565b60006104333385610d2b565b905060006104413385610d2b565b3360009081526003602090815260408083206001600160a01b038516845290915281208054929350859290919061047990849061118d565b90915550503360009081526003602090815260408083206001600160a01b0386168452909152812080548592906104b1908490611218565b909155505033600090815260026020908152604080832054600383528184206001600160a01b038616855290925290912054111561050b57604051630d9ada5960e21b815233600482015260248101849052604401610328565b5050505050565b3360009081526020819052604090205460ff166105415760405162461bcd60e51b8152600401610328906111a0565b600061054d3384610d2b565b3360009081526003602090815260408083206001600160a01b0385168452909152812080549293508492909190610585908490611218565b9091555050505050565b6001600160a01b0381166105e55760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610328565b6001600160a01b03811660009081526020819052604090205460ff161561064e5760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e6400000000000000006044820152606401610328565b336001600160a01b038216146106765760405162461bcd60e51b8152600401610328906111d7565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b8215806106cf5750828114155b156106f757848484848460405163355c2bfd60e11b815260040161032895949392919061122b565b336001600160a01b0316856001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561073f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076391906112ba565b6001600160a01b0316146107955760405163e8649dab60e01b81526001600160a01b0386166004820152602401610328565b60405163a446d49f60e01b81523060048201526001600160a01b0386169063a446d49f90602401602060405180830381865afa1580156107d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fd91906112d7565b156108265760405163346a0c0160e21b81526001600160a01b0386166004820152602401610328565b60005b838110156108825761087a86868684818110610847576108476112f9565b905060200201602081019061085c9190610f7d565b85858581811061086e5761086e6112f9565b90506020020135610eb1565b600101610829565b5050506001600160a01b039092166000908152600160208190526040909120805460ff191690911790555050565b3360009081526020819052604090205460ff166108df5760405162461bcd60e51b8152600401610328906111a0565b33600081815260026020526040808220849055518392917f8bec153ee727d17f3f63aa27cbb6bd64eb978b88821b30002a4b5517aeb10cec91a350565b6001600160a01b03811660009081526001602052604081205460ff161561094557506001919050565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610985573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a991906112ba565b90506000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0f919061130f565b905080600003610a23575060019392505050565b5060009392505050565b6001600160a01b038083166000908152600360209081526040808320938516835292905220545b92915050565b336001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac691906112ba565b6001600160a01b031614610af85760405163e8649dab60e01b81526001600160a01b0382166004820152602401610328565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b3360009081526020819052604090205460ff16610b4e5760405162461bcd60e51b8152600401610328906111a0565b6000610b5a3384610d2b565b3360009081526003602090815260408083206001600160a01b0385168452909152812080549293508492909190610b9290849061118d565b909155505033600090815260026020908152604080832054600383528184206001600160a01b0386168552909252909120541115610bec57604051630d9ada5960e21b815233600482015260248101839052604401610328565b505050565b336001600160a01b0316836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d91906112ba565b6001600160a01b031614610c8f5760405163e8649dab60e01b81526001600160a01b0384166004820152602401610328565b60405163a446d49f60e01b81523060048201526001600160a01b0384169063a446d49f90602401602060405180830381865afa158015610cd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf791906112d7565b15610d205760405163346a0c0160e21b81526001600160a01b0384166004820152602401610328565b610bec838383610eb1565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9091906112ba565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df191906112ba565b604051633c3ad79560e21b81526001600160a01b038581166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5d91906112ba565b90506001600160a01b038116610eaa5760405162461bcd60e51b81526020600482015260126024820152711a59195b9d1a5d1e481b9bdd08199bdd5b9960721b6044820152606401610328565b9392505050565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f0a777417e1c0a4b24c5f556b0c3dd522c37b99b2c3ca4bf9fea2fa1293c660c9910160405180910390a3505050565b6001600160a01b0381168114610f2757600080fd5b50565b60008060008060808587031215610f4057600080fd5b8435610f4b81610f12565b93506020850135610f5b81610f12565b9250604085013591506060850135610f7281610f12565b939692955090935050565b600060208284031215610f8f57600080fd5b8135610eaa81610f12565b60006020808352835180602085015260005b81811015610fc857858101830151858201604001528201610fac565b506000604082860101526040601f19601f8301168501019250505092915050565b600080600060608486031215610ffe57600080fd5b833561100981610f12565b9250602084013561101981610f12565b929592945050506040919091013590565b6000806040838503121561103d57600080fd5b823561104881610f12565b946020939093013593505050565b60008083601f84011261106857600080fd5b50813567ffffffffffffffff81111561108057600080fd5b6020830191508360208260051b850101111561109b57600080fd5b9250929050565b6000806000806000606086880312156110ba57600080fd5b85356110c581610f12565b9450602086013567ffffffffffffffff808211156110e257600080fd5b6110ee89838a01611056565b9096509450604088013591508082111561110757600080fd5b5061111488828901611056565b969995985093965092949392505050565b60006020828403121561113757600080fd5b5035919050565b6000806040838503121561115157600080fd5b823561115c81610f12565b9150602083013561116c81610f12565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a5457610a54611177565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b81810381811115610a5457610a54611177565b6001600160a01b03868116825260606020808401829052908301869052600091879160808501845b8981101561127a57843561126681610f12565b841682529382019390820190600101611253565b5085810360408701528681526001600160fb1b0387111561129a57600080fd5b8660051b9350838860208301379092016020019998505050505050505050565b6000602082840312156112cc57600080fd5b8151610eaa81610f12565b6000602082840312156112e957600080fd5b81518015158114610eaa57600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561132157600080fd5b505191905056fea26469706673582212208747d7273c70e8a438b769eeaa5a50aa4fc227fc13e6d712e9e2736ae56846df64736f6c63430008180033","sourceMap":"4022:8627:50:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80638f27c0eb11610097578063dd50b74c11610066578063dd50b74c14610228578063e6f5e8071461023b578063f104a8c914610242578063f7c4722c1461025557600080fd5b80638f27c0eb146101ce5780639d51d9b7146101e1578063bcc21053146101f4578063cc203f751461020757600080fd5b80632cb7e1ec116100d35780632cb7e1ec14610169578063372491a21461017c5780634a9325441461018f5780634cf4d295146101a257600080fd5b8063013b7ce4146100fa5780630694a5fb1461012257806306fdde0314610137575b600080fd5b61010d610108366004610f2a565b610268565b60405190151581526020015b60405180910390f35b610135610130366004610f7d565b6102f9565b005b604080518082018252601081526f4d617842616c616e63654d6f64756c6560801b602082015290516101199190610f9a565b610135610177366004610fe9565b6103f8565b61013561018a36600461102a565b610512565b61013561019d366004610f7d565b61058f565b61010d6101b0366004610f7d565b6001600160a01b031660009081526020819052604090205460ff1690565b6101356101dc3660046110a2565b6106c2565b6101356101ef366004611125565b6108b0565b61010d610202366004610f7d565b61091c565b61021a61021536600461113e565b610a2d565b604051908152602001610119565b610135610236366004610f7d565b610a5a565b600061010d565b61013561025036600461102a565b610b1f565b610135610263366004610fe9565b610bf1565b6001600160a01b038116600090815260026020526040812054831115610290575060006102f1565b600061029c8386610d2b565b6001600160a01b0380851660009081526002602090815260408083205460038352818420948616845293909152902054919250906102db90869061118d565b11156102eb5760009150506102f1565b60019150505b949350505050565b3360009081526020819052604090205460ff166103315760405162461bcd60e51b8152600401610328906111a0565b60405180910390fd5b6001600160a01b0381166103875760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610328565b336001600160a01b038216146103af5760405162461bcd60e51b8152600401610328906111d7565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166104275760405162461bcd60e51b8152600401610328906111a0565b60006104333385610d2b565b905060006104413385610d2b565b3360009081526003602090815260408083206001600160a01b038516845290915281208054929350859290919061047990849061118d565b90915550503360009081526003602090815260408083206001600160a01b0386168452909152812080548592906104b1908490611218565b909155505033600090815260026020908152604080832054600383528184206001600160a01b038616855290925290912054111561050b57604051630d9ada5960e21b815233600482015260248101849052604401610328565b5050505050565b3360009081526020819052604090205460ff166105415760405162461bcd60e51b8152600401610328906111a0565b600061054d3384610d2b565b3360009081526003602090815260408083206001600160a01b0385168452909152812080549293508492909190610585908490611218565b9091555050505050565b6001600160a01b0381166105e55760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610328565b6001600160a01b03811660009081526020819052604090205460ff161561064e5760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e6400000000000000006044820152606401610328565b336001600160a01b038216146106765760405162461bcd60e51b8152600401610328906111d7565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b8215806106cf5750828114155b156106f757848484848460405163355c2bfd60e11b815260040161032895949392919061122b565b336001600160a01b0316856001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561073f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076391906112ba565b6001600160a01b0316146107955760405163e8649dab60e01b81526001600160a01b0386166004820152602401610328565b60405163a446d49f60e01b81523060048201526001600160a01b0386169063a446d49f90602401602060405180830381865afa1580156107d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fd91906112d7565b156108265760405163346a0c0160e21b81526001600160a01b0386166004820152602401610328565b60005b838110156108825761087a86868684818110610847576108476112f9565b905060200201602081019061085c9190610f7d565b85858581811061086e5761086e6112f9565b90506020020135610eb1565b600101610829565b5050506001600160a01b039092166000908152600160208190526040909120805460ff191690911790555050565b3360009081526020819052604090205460ff166108df5760405162461bcd60e51b8152600401610328906111a0565b33600081815260026020526040808220849055518392917f8bec153ee727d17f3f63aa27cbb6bd64eb978b88821b30002a4b5517aeb10cec91a350565b6001600160a01b03811660009081526001602052604081205460ff161561094557506001919050565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610985573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a991906112ba565b90506000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0f919061130f565b905080600003610a23575060019392505050565b5060009392505050565b6001600160a01b038083166000908152600360209081526040808320938516835292905220545b92915050565b336001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac691906112ba565b6001600160a01b031614610af85760405163e8649dab60e01b81526001600160a01b0382166004820152602401610328565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b3360009081526020819052604090205460ff16610b4e5760405162461bcd60e51b8152600401610328906111a0565b6000610b5a3384610d2b565b3360009081526003602090815260408083206001600160a01b0385168452909152812080549293508492909190610b9290849061118d565b909155505033600090815260026020908152604080832054600383528184206001600160a01b0386168552909252909120541115610bec57604051630d9ada5960e21b815233600482015260248101839052604401610328565b505050565b336001600160a01b0316836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d91906112ba565b6001600160a01b031614610c8f5760405163e8649dab60e01b81526001600160a01b0384166004820152602401610328565b60405163a446d49f60e01b81523060048201526001600160a01b0384169063a446d49f90602401602060405180830381865afa158015610cd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf791906112d7565b15610d205760405163346a0c0160e21b81526001600160a01b0384166004820152602401610328565b610bec838383610eb1565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9091906112ba565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df191906112ba565b604051633c3ad79560e21b81526001600160a01b038581166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5d91906112ba565b90506001600160a01b038116610eaa5760405162461bcd60e51b81526020600482015260126024820152711a59195b9d1a5d1e481b9bdd08199bdd5b9960721b6044820152606401610328565b9392505050565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f0a777417e1c0a4b24c5f556b0c3dd522c37b99b2c3ca4bf9fea2fa1293c660c9910160405180910390a3505050565b6001600160a01b0381168114610f2757600080fd5b50565b60008060008060808587031215610f4057600080fd5b8435610f4b81610f12565b93506020850135610f5b81610f12565b9250604085013591506060850135610f7281610f12565b939692955090935050565b600060208284031215610f8f57600080fd5b8135610eaa81610f12565b60006020808352835180602085015260005b81811015610fc857858101830151858201604001528201610fac565b506000604082860101526040601f19601f8301168501019250505092915050565b600080600060608486031215610ffe57600080fd5b833561100981610f12565b9250602084013561101981610f12565b929592945050506040919091013590565b6000806040838503121561103d57600080fd5b823561104881610f12565b946020939093013593505050565b60008083601f84011261106857600080fd5b50813567ffffffffffffffff81111561108057600080fd5b6020830191508360208260051b850101111561109b57600080fd5b9250929050565b6000806000806000606086880312156110ba57600080fd5b85356110c581610f12565b9450602086013567ffffffffffffffff808211156110e257600080fd5b6110ee89838a01611056565b9096509450604088013591508082111561110757600080fd5b5061111488828901611056565b969995985093965092949392505050565b60006020828403121561113757600080fd5b5035919050565b6000806040838503121561115157600080fd5b823561115c81610f12565b9150602083013561116c81610f12565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a5457610a54611177565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b81810381811115610a5457610a54611177565b6001600160a01b03868116825260606020808401829052908301869052600091879160808501845b8981101561127a57843561126681610f12565b841682529382019390820190600101611253565b5085810360408701528681526001600160fb1b0387111561129a57600080fd5b8660051b9350838860208301379092016020019998505050505050505050565b6000602082840312156112cc57600080fd5b8151610eaa81610f12565b6000602082840312156112e957600080fd5b81518015158114610eaa57600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561132157600080fd5b505191905056fea26469706673582212208747d7273c70e8a438b769eeaa5a50aa4fc227fc13e6d712e9e2736ae56846df64736f6c63430008180033","sourceMap":"4022:8627:50:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9809:451;;;;;;:::i;:::-;;:::i;:::-;;;918:14:165;;911:22;893:41;;881:2;866:18;9809:451:50;;;;;;;;5018:343:44;;;;;;:::i;:::-;;:::i;:::-;;11255:100:50;11323:25;;;;;;;;;;;-1:-1:-1;;;11323:25:50;;;;11255:100;;;;11323:25;11255:100;:::i;8309:448::-;;;;;;:::i;:::-;;:::i;9304:211::-;;;;;;:::i;:::-;;:::i;4555:396:44:-;;;;;;:::i;:::-;;:::i;5429:139::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5532:29:44;5509:4;5532:29;;;;;;;;;;;;;;5429:139;6966:745:50;;;;;;:::i;:::-;;:::i;5541:158::-;;;;;;:::i;:::-;;:::i;10659:393::-;;;;;;:::i;:::-;;:::i;10438:152::-;;;;;;:::i;:::-;;:::i;:::-;;;4540:25:165;;;4528:2;4513:18;10438:152:50;4394:177:165;7932:255:50;;;;;;:::i;:::-;;:::i;11117:83::-;11165:4;11117:83;;8871:319;;;;;;:::i;:::-;;:::i;6106:429::-;;;;;;:::i;:::-;;:::i;9809:451::-;-1:-1:-1;;;;;9998:24:50;;9969:4;9998:24;;;:11;:24;;;;;;9989:33;;9985:76;;;-1:-1:-1;10045:5:50;10038:12;;9985:76;10070:11;10084:30;10097:11;10110:3;10084:12;:30::i;:::-;-1:-1:-1;;;;;10170:24:50;;;;;;;:11;:24;;;;;;;;;10129:10;:23;;;;;:28;;;;;;;;;;;;10070:44;;-1:-1:-1;10170:24:50;10129:37;;10160:6;;10129:37;:::i;:::-;10128:66;10124:109;;;10217:5;10210:12;;;;;10124:109;10249:4;10242:11;;;9809:451;;;;;;;:::o;5018:343:44:-;4426:10;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5120:25:44;::::1;5112:69;;;::::0;-1:-1:-1;;;5112:69:44;;5399:2:165;5112:69:44::1;::::0;::::1;5381:21:165::0;5438:2;5418:18;;;5411:30;5477:33;5457:18;;;5450:61;5528:18;;5112:69:44::1;5197:355:165::0;5112:69:44::1;5199:10;-1:-1:-1::0;;;;;5199:25:44;::::1;;5191:71;;;;-1:-1:-1::0;;;5191:71:44::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5272:29:44;::::1;5304:5;5272:29:::0;;;::::1;::::0;;;;;;;:37;;-1:-1:-1;;5272:37:44::1;::::0;;5324:30;::::1;::::0;5304:5;5324:30:::1;5018:343:::0;:::o;8309:448:50:-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;8430:15:50::1;8448:31;8461:10;8473:5;8448:12;:31::i;:::-;8430:49;;8489:13;8505:29;8518:10;8530:3;8505:12;:29::i;:::-;8555:10;8544:22;::::0;;;:10:::1;:22;::::0;;;;;;;-1:-1:-1;;;;;8544:29:50;::::1;::::0;;;;;;;:39;;8489:45;;-1:-1:-1;8577:6:50;;8544:29;;:22;:39:::1;::::0;8577:6;;8544:39:::1;:::i;:::-;::::0;;;-1:-1:-1;;8604:10:50::1;8593:22;::::0;;;:10:::1;:22;::::0;;;;;;;-1:-1:-1;;;;;8593:31:50;::::1;::::0;;;;;;;:41;;8628:6;;8593:22;:41:::1;::::0;8628:6;;8593:41:::1;:::i;:::-;::::0;;;-1:-1:-1;;8692:10:50::1;8680:23;::::0;;;:11:::1;:23;::::0;;;;;;;;8648:10:::1;:22:::0;;;;;-1:-1:-1;;;;;8648:29:50;::::1;::::0;;;;;;;;;:55:::1;8644:106;;;8712:38;::::0;-1:-1:-1;;;8712:38:50;;8731:10:::1;8712:38;::::0;::::1;6266:51:165::0;6333:18;;;6326:34;;;6239:18;;8712:38:50::1;6092:274:165::0;8644:106:50::1;8420:337;;8309:448:::0;;;:::o;9304:211::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;9408:15:50::1;9426:31;9439:10;9451:5;9426:12;:31::i;:::-;9478:10;9467:22;::::0;;;:10:::1;:22;::::0;;;;;;;-1:-1:-1;;;;;9467:31:50;::::1;::::0;;;;;;;:41;;9408:49;;-1:-1:-1;9502:6:50;;9467:31;;:22;:41:::1;::::0;9502:6;;9467:41:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;9304:211:50:o;4555:396:44:-;-1:-1:-1;;;;;4636:25:44;;4628:69;;;;-1:-1:-1;;;4628:69:44;;5399:2:165;4628:69:44;;;5381:21:165;5438:2;5418:18;;;5411:30;5477:33;5457:18;;;5450:61;5528:18;;4628:69:44;5197:355:165;4628:69:44;-1:-1:-1;;;;;4716:29:44;;:16;:29;;;;;;;;;;;;;4715:30;4707:67;;;;-1:-1:-1;;;4707:67:44;;6573:2:165;4707:67:44;;;6555:21:165;6612:2;6592:18;;;6585:30;6651:26;6631:18;;;6624:54;6695:18;;4707:67:44;6371:348:165;4707:67:44;4792:10;-1:-1:-1;;;;;4792:25:44;;;4784:71;;;;-1:-1:-1;;;4784:71:44;;;;;;;:::i;:::-;-1:-1:-1;;;;;4865:29:44;;:16;:29;;;;;;;;;;;:36;;-1:-1:-1;;4865:36:44;4897:4;4865:36;;;4916:28;;;4865:16;4916:28;4555:396;:::o;6966:745:50:-;7119:15;;;:48;;-1:-1:-1;7138:29:50;;;;7119:48;7116:132;;;7210:11;7223:3;;7228:8;;7190:47;;-1:-1:-1;;;7190:47:50;;;;;;;;;;;;:::i;7116:132::-;7305:10;-1:-1:-1;;;;;7262:53:50;7281:11;-1:-1:-1;;;;;7262:37:50;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7262:53:50;;7258:130;;7338:39;;-1:-1:-1;;;7338:39:50;;-1:-1:-1;;;;;8298:32:165;;7338:39:50;;;8280:51:165;8253:18;;7338:39:50;8134:203:165;7258:130:50;7402:60;;-1:-1:-1;;;7402:60:50;;7456:4;7402:60;;;8280:51:165;-1:-1:-1;;;;;7402:45:50;;;;;8253:18:165;;7402:60:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7398:128;;;7485:30;;-1:-1:-1;;;7485:30:50;;-1:-1:-1;;;;;8298:32:165;;7485:30:50;;;8280:51:165;8253:18;;7485:30:50;8134:203:165;7398:128:50;7541:6;7536:115;7553:14;;;7536:115;;;7588:52;7607:11;7620:3;;7624:1;7620:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7628:8;;7637:1;7628:11;;;;;;;:::i;:::-;;;;;;;7588:18;:52::i;:::-;7569:3;;7536:115;;;-1:-1:-1;;;;;;;;7661:36:50;;;;;;;7700:4;7661:36;;;;;;;;:43;;-1:-1:-1;;7661:43:50;;;;;;-1:-1:-1;;6966:745:50:o;5541:158::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;5628:10:50::1;5616:23;::::0;;;:11:::1;:23;::::0;;;;;:30;;;5661:31;5642:4;;5628:10;5661:31:::1;::::0;::::1;5541:158:::0;:::o;10659:393::-;-1:-1:-1;;;;;10750:36:50;;10730:4;10750:36;;;:23;:36;;;;;;;;10746:78;;;-1:-1:-1;10809:4:50;;10659:393;-1:-1:-1;10659:393:50:o;10746:78::-;10834:12;10875:11;-1:-1:-1;;;;;10856:45:50;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10834:70;;10914:19;10936:5;-1:-1:-1;;;;;10936:17:50;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10914:41;;10969:11;10984:1;10969:16;10965:58;;-1:-1:-1;11008:4:50;;10659:393;-1:-1:-1;;;10659:393:50:o;10965:58::-;-1:-1:-1;11040:5:50;;10659:393;-1:-1:-1;;;10659:393:50:o;10438:152::-;-1:-1:-1;;;;;10549:23:50;;;10523:7;10549:23;;;:10;:23;;;;;;;;:34;;;;;;;;;;10438:152;;;;;:::o;7932:255::-;8044:10;-1:-1:-1;;;;;8001:53:50;8020:11;-1:-1:-1;;;;;8001:37:50;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8001:53:50;;7997:130;;8077:39;;-1:-1:-1;;;8077:39:50;;-1:-1:-1;;;;;8298:32:165;;8077:39:50;;;8280:51:165;8253:18;;8077:39:50;8134:203:165;7997:130:50;-1:-1:-1;;;;;8137:36:50;;;;;8176:4;8137:36;;;;;;;;:43;;-1:-1:-1;;8137:43:50;;;;;;7932:255::o;8871:319::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;8973:13:50::1;8989:29;9002:10;9014:3;8989:12;:29::i;:::-;9039:10;9028:22;::::0;;;:10:::1;:22;::::0;;;;;;;-1:-1:-1;;;;;9028:29:50;::::1;::::0;;;;;;;:39;;8973:45;;-1:-1:-1;9061:6:50;;9028:29;;:22;:39:::1;::::0;9061:6;;9028:39:::1;:::i;:::-;::::0;;;-1:-1:-1;;9125:10:50::1;9113:23;::::0;;;:11:::1;:23;::::0;;;;;;;;9081:10:::1;:22:::0;;;;;-1:-1:-1;;;;;9081:29:50;::::1;::::0;;;;;;;;;:55:::1;9077:106;;;9145:38;::::0;-1:-1:-1;;;9145:38:50;;9164:10:::1;9145:38;::::0;::::1;6266:51:165::0;6333:18;;;6326:34;;;6239:18;;9145:38:50::1;6092:274:165::0;9077:106:50::1;8963:227;8871:319:::0;;:::o;6106:429::-;6251:10;-1:-1:-1;;;;;6208:53:50;6227:11;-1:-1:-1;;;;;6208:37:50;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6208:53:50;;6204:130;;6284:39;;-1:-1:-1;;;6284:39:50;;-1:-1:-1;;;;;8298:32:165;;6284:39:50;;;8280:51:165;8253:18;;6284:39:50;8134:203:165;6204:130:50;6348:60;;-1:-1:-1;;;6348:60:50;;6402:4;6348:60;;;8280:51:165;-1:-1:-1;;;;;6348:45:50;;;;;8253:18:165;;6348:60:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6344:128;;;6431:30;;-1:-1:-1;;;6431:30:50;;-1:-1:-1;;;;;8298:32:165;;6431:30:50;;;8280:51:165;8253:18;;6431:30:50;8134:203:165;6344:128:50;6482:46;6501:11;6514:3;6519:8;6482:18;:46::i;12307:340::-;12395:7;12414:16;12467:11;-1:-1:-1;;;;;12448:45:50;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12441:85:50;;:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:110;;-1:-1:-1;;;12441:110:50;;-1:-1:-1;;;;;8298:32:165;;;12441:110:50;;;8280:51:165;12441:96:50;;;;;;;8253:18:165;;12441:110:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12414:138;-1:-1:-1;;;;;;12570:22:50;;12562:53;;;;-1:-1:-1;;;12562:53:50;;9705:2:165;12562:53:50;;;9687:21:165;9744:2;9724:18;;;9717:30;-1:-1:-1;;;9763:18:165;;;9756:48;9821:18;;12562:53:50;9503:342:165;12562:53:50;12632:8;12307:340;-1:-1:-1;;;12307:340:50:o;11683:203::-;-1:-1:-1;;;;;11782:23:50;;;;;;;:10;:23;;;;;;;;:28;;;;;;;;;;;;;:39;;;11836:43;;4540:25:165;;;11836:43:50;;4513:18:165;11836:43:50;;;;;;;11683:203;;;:::o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:598::-;236:6;244;252;260;313:3;301:9;292:7;288:23;284:33;281:53;;;330:1;327;320:12;281:53;369:9;356:23;388:31;413:5;388:31;:::i;:::-;438:5;-1:-1:-1;495:2:165;480:18;;467:32;508:33;467:32;508:33;:::i;:::-;560:7;-1:-1:-1;614:2:165;599:18;;586:32;;-1:-1:-1;670:2:165;655:18;;642:32;683:33;642:32;683:33;:::i;:::-;150:598;;;;-1:-1:-1;150:598:165;;-1:-1:-1;;150:598:165:o;945:247::-;1004:6;1057:2;1045:9;1036:7;1032:23;1028:32;1025:52;;;1073:1;1070;1063:12;1025:52;1112:9;1099:23;1131:31;1156:5;1131:31;:::i;1197:548::-;1309:4;1338:2;1367;1356:9;1349:21;1399:6;1393:13;1442:6;1437:2;1426:9;1422:18;1415:34;1467:1;1477:140;1491:6;1488:1;1485:13;1477:140;;;1586:14;;;1582:23;;1576:30;1552:17;;;1571:2;1548:26;1541:66;1506:10;;1477:140;;;1481:3;1666:1;1661:2;1652:6;1641:9;1637:22;1633:31;1626:42;1736:2;1729;1725:7;1720:2;1712:6;1708:15;1704:29;1693:9;1689:45;1685:54;1677:62;;;;1197:548;;;;:::o;1750:456::-;1827:6;1835;1843;1896:2;1884:9;1875:7;1871:23;1867:32;1864:52;;;1912:1;1909;1902:12;1864:52;1951:9;1938:23;1970:31;1995:5;1970:31;:::i;:::-;2020:5;-1:-1:-1;2077:2:165;2062:18;;2049:32;2090:33;2049:32;2090:33;:::i;:::-;1750:456;;2142:7;;-1:-1:-1;;;2196:2:165;2181:18;;;;2168:32;;1750:456::o;2211:315::-;2279:6;2287;2340:2;2328:9;2319:7;2315:23;2311:32;2308:52;;;2356:1;2353;2346:12;2308:52;2395:9;2382:23;2414:31;2439:5;2414:31;:::i;:::-;2464:5;2516:2;2501:18;;;;2488:32;;-1:-1:-1;;;2211:315:165:o;2531:367::-;2594:8;2604:6;2658:3;2651:4;2643:6;2639:17;2635:27;2625:55;;2676:1;2673;2666:12;2625:55;-1:-1:-1;2699:20:165;;2742:18;2731:30;;2728:50;;;2774:1;2771;2764:12;2728:50;2811:4;2803:6;2799:17;2787:29;;2871:3;2864:4;2854:6;2851:1;2847:14;2839:6;2835:27;2831:38;2828:47;2825:67;;;2888:1;2885;2878:12;2825:67;2531:367;;;;;:::o;2903:908::-;3034:6;3042;3050;3058;3066;3119:2;3107:9;3098:7;3094:23;3090:32;3087:52;;;3135:1;3132;3125:12;3087:52;3174:9;3161:23;3193:31;3218:5;3193:31;:::i;:::-;3243:5;-1:-1:-1;3299:2:165;3284:18;;3271:32;3322:18;3352:14;;;3349:34;;;3379:1;3376;3369:12;3349:34;3418:70;3480:7;3471:6;3460:9;3456:22;3418:70;:::i;:::-;3507:8;;-1:-1:-1;3392:96:165;-1:-1:-1;3595:2:165;3580:18;;3567:32;;-1:-1:-1;3611:16:165;;;3608:36;;;3640:1;3637;3630:12;3608:36;;3679:72;3743:7;3732:8;3721:9;3717:24;3679:72;:::i;:::-;2903:908;;;;-1:-1:-1;2903:908:165;;-1:-1:-1;3770:8:165;;3653:98;2903:908;-1:-1:-1;;;2903:908:165:o;3816:180::-;3875:6;3928:2;3916:9;3907:7;3903:23;3899:32;3896:52;;;3944:1;3941;3934:12;3896:52;-1:-1:-1;3967:23:165;;3816:180;-1:-1:-1;3816:180:165:o;4001:388::-;4069:6;4077;4130:2;4118:9;4109:7;4105:23;4101:32;4098:52;;;4146:1;4143;4136:12;4098:52;4185:9;4172:23;4204:31;4229:5;4204:31;:::i;:::-;4254:5;-1:-1:-1;4311:2:165;4296:18;;4283:32;4324:33;4283:32;4324:33;:::i;:::-;4376:7;4366:17;;;4001:388;;;;;:::o;4576:127::-;4637:10;4632:3;4628:20;4625:1;4618:31;4668:4;4665:1;4658:15;4692:4;4689:1;4682:15;4708:125;4773:9;;;4794:10;;;4791:36;;;4807:18;;:::i;4838:354::-;5040:2;5022:21;;;5079:2;5059:18;;;5052:30;5118:32;5113:2;5098:18;;5091:60;5183:2;5168:18;;4838:354::o;5557:397::-;5759:2;5741:21;;;5798:2;5778:18;;;5771:30;5837:34;5832:2;5817:18;;5810:62;-1:-1:-1;;;5903:2:165;5888:18;;5881:31;5944:3;5929:19;;5557:397::o;5959:128::-;6026:9;;;6047:11;;;6044:37;;;6061:18;;:::i;6724:1149::-;-1:-1:-1;;;;;7108:15:165;;;7090:34;;7040:2;7143;7161:18;;;7154:30;;;7025:18;;;7219:22;;;6992:4;;7299:6;;7272:3;7257:19;;6992:4;7333:260;7347:6;7344:1;7341:13;7333:260;;;7422:6;7409:20;7442:31;7467:5;7442:31;:::i;:::-;7498:14;;7486:27;;7568:15;;;;7533:12;;;;7369:1;7362:9;7333:260;;;-1:-1:-1;7629:19:165;;;7624:2;7609:18;;7602:47;7658:19;;;-1:-1:-1;;;;;7689:31:165;;7686:51;;;7733:1;7730;7723:12;7686:51;7767:6;7764:1;7760:14;7746:28;;7818:6;7810;7805:2;7800:3;7796:12;7783:42;7846:16;;;7864:2;7842:25;;6724:1149;-1:-1:-1;;;;;;;;;6724:1149:165:o;7878:251::-;7948:6;8001:2;7989:9;7980:7;7976:23;7972:32;7969:52;;;8017:1;8014;8007:12;7969:52;8049:9;8043:16;8068:31;8093:5;8068:31;:::i;8342:277::-;8409:6;8462:2;8450:9;8441:7;8437:23;8433:32;8430:52;;;8478:1;8475;8468:12;8430:52;8510:9;8504:16;8563:5;8556:13;8549:21;8542:5;8539:32;8529:60;;8585:1;8582;8575:12;8624:127;8685:10;8680:3;8676:20;8673:1;8666:31;8716:4;8713:1;8706:15;8740:4;8737:1;8730:15;8756:184;8826:6;8879:2;8867:9;8858:7;8854:23;8850:32;8847:52;;;8895:1;8892;8885:12;8847:52;-1:-1:-1;8918:16:165;;8756:184;-1:-1:-1;8756:184:165:o","linkReferences":{}},"methodIdentifiers":{"batchPreSetModuleState(address,address[],uint256[])":"8f27c0eb","bindCompliance(address)":"4a932544","canComplianceBind(address)":"bcc21053","getIDBalance(address,address)":"cc203f75","isComplianceBound(address)":"4cf4d295","isPlugAndPlay()":"e6f5e807","moduleBurnAction(address,uint256)":"372491a2","moduleCheck(address,address,uint256,address)":"013b7ce4","moduleMintAction(address,uint256)":"f104a8c9","moduleTransferAction(address,address,uint256)":"2cb7e1ec","name()":"06fdde03","preSetModuleState(address,address,uint256)":"f7c4722c","presetCompleted(address)":"dd50b74c","setMaxBalance(uint256)":"9d51d9b7","unbindCompliance(address)":"0694a5fb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_id\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_balance\",\"type\":\"uint256[]\"}],\"name\":\"InvalidPresetValues\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"MaxBalanceExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"OnlyComplianceOwnerCanCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"TokenAlreadyBound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_id\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_balance\",\"type\":\"uint256\"}],\"name\":\"IDBalancePreSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_maxBalance\",\"type\":\"uint256\"}],\"name\":\"MaxBalanceSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_id\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_balance\",\"type\":\"uint256[]\"}],\"name\":\"batchPreSetModuleState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"bindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"canComplianceBind\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_identity\",\"type\":\"address\"}],\"name\":\"getIDBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"isComplianceBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPlugAndPlay\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleBurnAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"moduleCheck\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleMintAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleTransferAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_id\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_balance\",\"type\":\"uint256\"}],\"name\":\"preSetModuleState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"presetCompleted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_max\",\"type\":\"uint256\"}],\"name\":\"setMaxBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"unbindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"batchPreSetModuleState(address,address[],uint256[])\":{\"details\":\"make a batch transaction calling preSetModuleState multiple times\",\"params\":{\"_balance\":\"the current balance of the token holder Only the owner of the Compliance smart contract can call this function emits _id.length `IDBalancePreSet` events\",\"_compliance\":\"the address of the compliance contract to preset\",\"_id\":\"the ONCHAINID address of the token holder\"}},\"bindCompliance(address)\":{\"details\":\"See {IModule-bindCompliance}.\"},\"canComplianceBind(address)\":{\"details\":\"See {IModule-canComplianceBind}.\"},\"getIDBalance(address,address)\":{\"details\":\"getter for compliance identity balance\",\"params\":{\"_compliance\":\"address of the compliance contract\",\"_identity\":\"ONCHAINID address\"}},\"isComplianceBound(address)\":{\"details\":\"See {IModule-isComplianceBound}.\"},\"isPlugAndPlay()\":{\"details\":\"See {IModule-isPlugAndPlay}.\"},\"moduleBurnAction(address,uint256)\":{\"details\":\"See {IModule-moduleBurnAction}. no burn action required in this module\"},\"moduleCheck(address,address,uint256,address)\":{\"details\":\"See {IModule-moduleCheck}. checks if the country of address _to is allowed for this _compliance returns TRUE if the country of _to is allowed for this _compliance returns FALSE if the country of _to is not allowed for this _compliance\"},\"moduleMintAction(address,uint256)\":{\"details\":\"See {IModule-moduleMintAction}. no mint action required in this module\"},\"moduleTransferAction(address,address,uint256)\":{\"details\":\"See {IModule-moduleTransferAction}. no transfer action required in this module\"},\"name()\":{\"details\":\"See {IModule-name}.\"},\"preSetModuleState(address,address,uint256)\":{\"details\":\"pre-set the balance of a token holder per ONCHAINID\",\"params\":{\"_balance\":\"the current balance of the token holder Only the owner of the Compliance smart contract can call this function emits a `IDBalancePreSet` event\",\"_compliance\":\"the address of the compliance contract to preset\",\"_id\":\"the ONCHAINID address of the token holder\"}},\"presetCompleted(address)\":{\"details\":\"updates compliance preset status as true\",\"params\":{\"_compliance\":\"the address of the compliance contract Only the owner of the Compliance smart contract can call this function\"}},\"setMaxBalance(uint256)\":{\"details\":\"sets max balance limit for a bound compliance contract\",\"params\":{\"_max\":\"max amount of tokens owned by an individual Only the owner of the Compliance smart contract can call this function emits an `MaxBalanceSet` event\"}},\"unbindCompliance(address)\":{\"details\":\"See {IModule-unbindCompliance}.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"MaxBalanceExceeded(address,uint256)\":[{\"notice\":\"errors\"}]},\"events\":{\"ComplianceBound(address)\":{\"notice\":\"this event is emitted when the compliance contract is bound to the module. the event is emitted by the bindCompliance function `_compliance` is the address of the compliance contract being bound\"},\"ComplianceUnbound(address)\":{\"notice\":\"this event is emitted when the compliance contract is unbound from the module. the event is emitted by the unbindCompliance function `_compliance` is the address of the compliance contract being unbound\"},\"MaxBalanceSet(address,uint256)\":{\"notice\":\"this event is emitted when the max balance has been set for a compliance bound. `_compliance` is the address of modular compliance concerned `_maxBalance` is the max amount of tokens that a user can hold .\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/modular/modules/MaxBalanceModule.sol\":\"MaxBalanceModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/compliance/modular/modules/AbstractModule.sol\":{\"keccak256\":\"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8\",\"dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu\"]},\"contracts/erc3643/compliance/modular/modules/IModule.sol\":{\"keccak256\":\"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c\",\"dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk\"]},\"contracts/erc3643/compliance/modular/modules/MaxBalanceModule.sol\":{\"keccak256\":\"0x351039f7a394421215039613c906ea2e653d6e927b905354eb5a49b18c7e5d90\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7fa32e8bf3fc7145846c5b0ee4b5396cbac806348bf72d1595f3ac224be815df\",\"dweb:/ipfs/QmRK6TBGw1aYS3Tai3LaC22JETQ2mAHZ8kRTDTpHxyuD18\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"address[]","name":"_id","type":"address[]"},{"internalType":"uint256[]","name":"_balance","type":"uint256[]"}],"type":"error","name":"InvalidPresetValues"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"type":"error","name":"MaxBalanceExceeded"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"type":"error","name":"OnlyComplianceOwnerCanCall"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"type":"error","name":"TokenAlreadyBound"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true},{"internalType":"address","name":"_id","type":"address","indexed":true},{"internalType":"uint256","name":"_balance","type":"uint256","indexed":false}],"type":"event","name":"IDBalancePreSet","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true},{"internalType":"uint256","name":"_maxBalance","type":"uint256","indexed":true}],"type":"event","name":"MaxBalanceSet","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"address[]","name":"_id","type":"address[]"},{"internalType":"uint256[]","name":"_balance","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchPreSetModuleState"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindCompliance"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"canComplianceBind","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"address","name":"_identity","type":"address"}],"stateMutability":"view","type":"function","name":"getIDBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPlugAndPlay","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleBurnAction"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"moduleCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleMintAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleTransferAction"},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"address","name":"_id","type":"address"},{"internalType":"uint256","name":"_balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"preSetModuleState"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"presetCompleted"},{"inputs":[{"internalType":"uint256","name":"_max","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxBalance"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindCompliance"}],"devdoc":{"kind":"dev","methods":{"batchPreSetModuleState(address,address[],uint256[])":{"details":"make a batch transaction calling preSetModuleState multiple times","params":{"_balance":"the current balance of the token holder Only the owner of the Compliance smart contract can call this function emits _id.length `IDBalancePreSet` events","_compliance":"the address of the compliance contract to preset","_id":"the ONCHAINID address of the token holder"}},"bindCompliance(address)":{"details":"See {IModule-bindCompliance}."},"canComplianceBind(address)":{"details":"See {IModule-canComplianceBind}."},"getIDBalance(address,address)":{"details":"getter for compliance identity balance","params":{"_compliance":"address of the compliance contract","_identity":"ONCHAINID address"}},"isComplianceBound(address)":{"details":"See {IModule-isComplianceBound}."},"isPlugAndPlay()":{"details":"See {IModule-isPlugAndPlay}."},"moduleBurnAction(address,uint256)":{"details":"See {IModule-moduleBurnAction}. no burn action required in this module"},"moduleCheck(address,address,uint256,address)":{"details":"See {IModule-moduleCheck}. checks if the country of address _to is allowed for this _compliance returns TRUE if the country of _to is allowed for this _compliance returns FALSE if the country of _to is not allowed for this _compliance"},"moduleMintAction(address,uint256)":{"details":"See {IModule-moduleMintAction}. no mint action required in this module"},"moduleTransferAction(address,address,uint256)":{"details":"See {IModule-moduleTransferAction}. no transfer action required in this module"},"name()":{"details":"See {IModule-name}."},"preSetModuleState(address,address,uint256)":{"details":"pre-set the balance of a token holder per ONCHAINID","params":{"_balance":"the current balance of the token holder Only the owner of the Compliance smart contract can call this function emits a `IDBalancePreSet` event","_compliance":"the address of the compliance contract to preset","_id":"the ONCHAINID address of the token holder"}},"presetCompleted(address)":{"details":"updates compliance preset status as true","params":{"_compliance":"the address of the compliance contract Only the owner of the Compliance smart contract can call this function"}},"setMaxBalance(uint256)":{"details":"sets max balance limit for a bound compliance contract","params":{"_max":"max amount of tokens owned by an individual Only the owner of the Compliance smart contract can call this function emits an `MaxBalanceSet` event"}},"unbindCompliance(address)":{"details":"See {IModule-unbindCompliance}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/modular/modules/MaxBalanceModule.sol":"MaxBalanceModule"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/AbstractModule.sol":{"keccak256":"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3","urls":["bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8","dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/IModule.sol":{"keccak256":"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02","urls":["bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c","dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/MaxBalanceModule.sol":{"keccak256":"0x351039f7a394421215039613c906ea2e653d6e927b905354eb5a49b18c7e5d90","urls":["bzz-raw://7fa32e8bf3fc7145846c5b0ee4b5396cbac806348bf72d1595f3ac224be815df","dweb:/ipfs/QmRK6TBGw1aYS3Tai3LaC22JETQ2mAHZ8kRTDTpHxyuD18"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"}},"version":1},"id":50} \ No newline at end of file diff --git a/out/MaxBalanceTest.sol/MaxBalanceTest.json b/out/MaxBalanceTest.sol/MaxBalanceTest.json new file mode 100644 index 0000000..d1d49fa --- /dev/null +++ b/out/MaxBalanceTest.sol/MaxBalanceTest.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IDBalance","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"complianceCheckOnMaxBalance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenBound","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"maxBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxBalance","inputs":[{"name":"_max","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tokenBound","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IToken"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MaxBalanceSet","inputs":[{"name":"_maxBalance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentAdded","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentRemoved","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6110e1806100a56000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80638d2ea772116100b85780639d51d9b71161007c5780639d51d9b71461027b578063cdde29321461028e578063e46638e6146102a1578063f2fde38b146102b4578063ff3e6954146102c7578063ff548267146102da57600080fd5b80638d2ea7721461020a5780638da5cb5b1461021d57806393e62f071461024257806397a6278e14610255578063993e8b951461026857600080fd5b8063715018a6116100ff578063715018a6146101b257806373ad468a146101ba57806384d1fc40146101d157806384e79842146101e45780638baf29b4146101f757600080fd5b80631ffbb0641461013c578063346531fa146101645780633ff5aa021461017757806340db3b501461018c5780635f8dead31461019f575b600080fd5b61014f61014a366004610f23565b6102fa565b60405190151581526020015b60405180910390f35b61014f610172366004610f23565b61030d565b61018a610185366004610f23565b6103b6565b005b61018a61019a366004610f23565b6104a0565b61018a6101ad366004610f40565b6105c2565b61018a6105f4565b6101c360045481565b60405190815260200161015b565b61014f6101df366004610f6c565b610608565b61018a6101f2366004610f23565b61066f565b61018a610205366004610f6c565b61070f565b61018a610218366004610f40565b610743565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161015b565b60035461022a906001600160a01b031681565b61018a610263366004610f23565b610771565b61014f610276366004610f23565b610811565b61018a610289366004610fad565b610831565b61018a61029c366004610f23565b61086e565b61014f6102af366004610f6c565b61092f565b61018a6102c2366004610f23565b610952565b61018a6102d5366004610f23565b610990565b6101c36102e8366004610f23565b60056020526000908152604090205481565b6000610307600183610a55565b92915050565b6001600160a01b03811660009081526002602052604081205460ff161580156103a157506003546040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa15801561037b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039f9190610fc6565b155b156103ae57506000919050565b506001919050565b336103c96000546001600160a01b031690565b6001600160a01b031614806103fa57506003546001600160a01b03161580156103fa5750336001600160a01b038216145b61044b5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c0000000060448201526064015b60405180910390fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b906020015b60405180910390a150565b336104b36000546001600160a01b031690565b6001600160a01b031614806104d05750336001600160a01b038216145b61051c5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c000000006044820152606401610442565b6003546001600160a01b038281169116146105795760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e640000000000000000006044820152606401610442565b600380546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a90602001610495565b6105ca610ad8565b6105e65760405162461bcd60e51b815260040161044290610fe8565b6105f08282610ae8565b5050565b6105fc610b8f565b6106066000610bbc565b565b600060045482111561061c57506000610668565b600061062784610c0c565b6004546001600160a01b03821660009081526005602052604090205491925090610652908590611068565b1115610662576000915050610668565b60019150505b9392505050565b610677610b8f565b6001600160a01b0381166106cd5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610442565b6106d8600182610ce6565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b610717610ad8565b6107335760405162461bcd60e51b815260040161044290610fe8565b61073e838383610d62565b505050565b61074b610ad8565b6107675760405162461bcd60e51b815260040161044290610fe8565b6105f08282610e4a565b610779610b8f565b6001600160a01b0381166107cf5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610442565b6107da600182610e8c565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6003546000906001600160a01b038381169116146103ae57506000919050565b610839610b8f565b60048190556040518181527f82f9980487703d8db41f1ba63b2665566f7fb449fbc840a9e0c6ca932bed582c90602001610495565b610876610b8f565b6001600160a01b03811660009081526002602052604090205460ff166108de5760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e74206973206e6f742072656769737465726564207965746044820152606401610442565b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f6a659bb87bb23efbdc295f8eed8ae8c4379bfb77660ced2ef0f3d7d26b05c6a69101610495565b600061093c848484610608565b61094857506000610668565b5060019392505050565b61095a610b8f565b6001600160a01b03811661098457604051631e4fbdf760e01b815260006004820152602401610442565b61098d81610bbc565b50565b610998610b8f565b6001600160a01b03811660009081526002602052604090205460ff1615610a015760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e7420697320616c726561647920726567697374657265646044820152606401610442565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fd62c45e13ac30396aceb3ad37c89bd1ba9048032fe61679000e92eb93dbfd67d9101610495565b60006001600160a01b038216610ab85760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610442565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000610ae333610811565b905090565b6000610af383610c0c565b6001600160a01b038116600090815260056020526040812080549293508492909190610b20908490611068565b90915550506004546001600160a01b038216600090815260056020526040902054111561073e5760405162461bcd60e51b815260206004820152601d60248201527f706f73742d6d696e74696e672062616c616e636520746f6f20686967680000006044820152606401610442565b6000546001600160a01b031633146106065760405163118cdaa760e01b8152336004820152602401610442565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600354604080516304d3863d60e21b815290516000926001600160a01b03169163134e18f49160048083019260209291908290030181865afa158015610c56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7a919061107b565b604051633c3ad79560e21b81526001600160a01b038481166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610cc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610307919061107b565b610cf08282610a55565b15610d3d5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610442565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000610d6d84610c0c565b90506000610d7a84610c0c565b6001600160a01b038116600090815260056020526040812080549293508592909190610da7908490611068565b90915550506001600160a01b03821660009081526005602052604081208054859290610dd4908490611098565b90915550506004546001600160a01b0382166000908152600560205260409020541115610e435760405162461bcd60e51b815260206004820152601e60248201527f706f73742d7472616e736665722062616c616e636520746f6f206869676800006044820152606401610442565b5050505050565b6000610e5583610c0c565b6001600160a01b038116600090815260056020526040812080549293508492909190610e82908490611098565b9091555050505050565b610e968282610a55565b610eec5760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610442565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b038116811461098d57600080fd5b600060208284031215610f3557600080fd5b813561066881610f0e565b60008060408385031215610f5357600080fd5b8235610f5e81610f0e565b946020939093013593505050565b600080600060608486031215610f8157600080fd5b8335610f8c81610f0e565b92506020840135610f9c81610f0e565b929592945050506040919091013590565b600060208284031215610fbf57600080fd5b5035919050565b600060208284031215610fd857600080fd5b8151801515811461066857600080fd5b60208082526044908201527f6572726f72203a20746869732061646472657373206973206e6f74206120746f60408201527f6b656e20626f756e6420746f2074686520636f6d706c69616e636520636f6e746060820152631c9858dd60e21b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561030757610307611052565b60006020828403121561108d57600080fd5b815161066881610f0e565b818103818111156103075761030761105256fea2646970667358221220a57070471026ef6e58688c1dac75a3100a0b3a268df2f79525c6f6cf1b786e8e64736f6c63430008180033","sourceMap":"3880:963:39:-:0;;;;;;;;;;;;-1:-1:-1;4272:10:87;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;160:51:165;133:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;3880:963:39;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:165:-;3880:963:39;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101375760003560e01c80638d2ea772116100b85780639d51d9b71161007c5780639d51d9b71461027b578063cdde29321461028e578063e46638e6146102a1578063f2fde38b146102b4578063ff3e6954146102c7578063ff548267146102da57600080fd5b80638d2ea7721461020a5780638da5cb5b1461021d57806393e62f071461024257806397a6278e14610255578063993e8b951461026857600080fd5b8063715018a6116100ff578063715018a6146101b257806373ad468a146101ba57806384d1fc40146101d157806384e79842146101e45780638baf29b4146101f757600080fd5b80631ffbb0641461013c578063346531fa146101645780633ff5aa021461017757806340db3b501461018c5780635f8dead31461019f575b600080fd5b61014f61014a366004610f23565b6102fa565b60405190151581526020015b60405180910390f35b61014f610172366004610f23565b61030d565b61018a610185366004610f23565b6103b6565b005b61018a61019a366004610f23565b6104a0565b61018a6101ad366004610f40565b6105c2565b61018a6105f4565b6101c360045481565b60405190815260200161015b565b61014f6101df366004610f6c565b610608565b61018a6101f2366004610f23565b61066f565b61018a610205366004610f6c565b61070f565b61018a610218366004610f40565b610743565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161015b565b60035461022a906001600160a01b031681565b61018a610263366004610f23565b610771565b61014f610276366004610f23565b610811565b61018a610289366004610fad565b610831565b61018a61029c366004610f23565b61086e565b61014f6102af366004610f6c565b61092f565b61018a6102c2366004610f23565b610952565b61018a6102d5366004610f23565b610990565b6101c36102e8366004610f23565b60056020526000908152604090205481565b6000610307600183610a55565b92915050565b6001600160a01b03811660009081526002602052604081205460ff161580156103a157506003546040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa15801561037b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039f9190610fc6565b155b156103ae57506000919050565b506001919050565b336103c96000546001600160a01b031690565b6001600160a01b031614806103fa57506003546001600160a01b03161580156103fa5750336001600160a01b038216145b61044b5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c0000000060448201526064015b60405180910390fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b906020015b60405180910390a150565b336104b36000546001600160a01b031690565b6001600160a01b031614806104d05750336001600160a01b038216145b61051c5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c000000006044820152606401610442565b6003546001600160a01b038281169116146105795760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e640000000000000000006044820152606401610442565b600380546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a90602001610495565b6105ca610ad8565b6105e65760405162461bcd60e51b815260040161044290610fe8565b6105f08282610ae8565b5050565b6105fc610b8f565b6106066000610bbc565b565b600060045482111561061c57506000610668565b600061062784610c0c565b6004546001600160a01b03821660009081526005602052604090205491925090610652908590611068565b1115610662576000915050610668565b60019150505b9392505050565b610677610b8f565b6001600160a01b0381166106cd5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610442565b6106d8600182610ce6565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b610717610ad8565b6107335760405162461bcd60e51b815260040161044290610fe8565b61073e838383610d62565b505050565b61074b610ad8565b6107675760405162461bcd60e51b815260040161044290610fe8565b6105f08282610e4a565b610779610b8f565b6001600160a01b0381166107cf5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610442565b6107da600182610e8c565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6003546000906001600160a01b038381169116146103ae57506000919050565b610839610b8f565b60048190556040518181527f82f9980487703d8db41f1ba63b2665566f7fb449fbc840a9e0c6ca932bed582c90602001610495565b610876610b8f565b6001600160a01b03811660009081526002602052604090205460ff166108de5760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e74206973206e6f742072656769737465726564207965746044820152606401610442565b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f6a659bb87bb23efbdc295f8eed8ae8c4379bfb77660ced2ef0f3d7d26b05c6a69101610495565b600061093c848484610608565b61094857506000610668565b5060019392505050565b61095a610b8f565b6001600160a01b03811661098457604051631e4fbdf760e01b815260006004820152602401610442565b61098d81610bbc565b50565b610998610b8f565b6001600160a01b03811660009081526002602052604090205460ff1615610a015760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e7420697320616c726561647920726567697374657265646044820152606401610442565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fd62c45e13ac30396aceb3ad37c89bd1ba9048032fe61679000e92eb93dbfd67d9101610495565b60006001600160a01b038216610ab85760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610442565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000610ae333610811565b905090565b6000610af383610c0c565b6001600160a01b038116600090815260056020526040812080549293508492909190610b20908490611068565b90915550506004546001600160a01b038216600090815260056020526040902054111561073e5760405162461bcd60e51b815260206004820152601d60248201527f706f73742d6d696e74696e672062616c616e636520746f6f20686967680000006044820152606401610442565b6000546001600160a01b031633146106065760405163118cdaa760e01b8152336004820152602401610442565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600354604080516304d3863d60e21b815290516000926001600160a01b03169163134e18f49160048083019260209291908290030181865afa158015610c56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7a919061107b565b604051633c3ad79560e21b81526001600160a01b038481166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610cc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610307919061107b565b610cf08282610a55565b15610d3d5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610442565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000610d6d84610c0c565b90506000610d7a84610c0c565b6001600160a01b038116600090815260056020526040812080549293508592909190610da7908490611068565b90915550506001600160a01b03821660009081526005602052604081208054859290610dd4908490611098565b90915550506004546001600160a01b0382166000908152600560205260409020541115610e435760405162461bcd60e51b815260206004820152601e60248201527f706f73742d7472616e736665722062616c616e636520746f6f206869676800006044820152606401610442565b5050505050565b6000610e5583610c0c565b6001600160a01b038116600090815260056020526040812080549293508492909190610e82908490611098565b9091555050505050565b610e968282610a55565b610eec5760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610442565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b038116811461098d57600080fd5b600060208284031215610f3557600080fd5b813561066881610f0e565b60008060408385031215610f5357600080fd5b8235610f5e81610f0e565b946020939093013593505050565b600080600060608486031215610f8157600080fd5b8335610f8c81610f0e565b92506020840135610f9c81610f0e565b929592945050506040919091013590565b600060208284031215610fbf57600080fd5b5035919050565b600060208284031215610fd857600080fd5b8151801515811461066857600080fd5b60208082526044908201527f6572726f72203a20746869732061646472657373206973206e6f74206120746f60408201527f6b656e20626f756e6420746f2074686520636f6d706c69616e636520636f6e746060820152631c9858dd60e21b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561030757610307611052565b60006020828403121561108d57600080fd5b815161066881610f0e565b818103818111156103075761030761105256fea2646970667358221220a57070471026ef6e58688c1dac75a3100a0b3a268df2f79525c6f6cf1b786e8e64736f6c63430008180033","sourceMap":"3880:963:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4700:103:87;;;;;;:::i;:::-;;:::i;:::-;;;567:14:165;;560:22;542:41;;530:2;515:18;4700:103:87;;;;;;;;6271:253:24;;;;;;:::i;:::-;;:::i;5569:277::-;;;;;;:::i;:::-;;:::i;:::-;;5910:296;;;;;;:::i;:::-;;:::i;4201:131:39:-;;;;;;:::i;:::-;;:::i;2293:101:141:-;;;:::i;4051:25:32:-;;;;;;;;;1060::165;;;1048:2;1033:18;4051:25:32;914:177:165;5319:343:32;;;;;;:::i;:::-;;:::i;4292:194:87:-;;;;;;:::i;:::-;;:::i;3982:157:39:-;;;;;;:::i;:::-;;:::i;4396:140::-;;;;;;:::i;:::-;;:::i;1638:85:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;1638:85;;;-1:-1:-1;;;;;1721:32:165;;;1703:51;;1691:2;1676:18;1638:85:141;1557:203:165;4173:24:24;;;;;-1:-1:-1;;;;;4173:24:24;;;4492:202:87;;;;;;:::i;:::-;;:::i;6589:182:24:-;;;;;;:::i;:::-;;:::i;4664:124:32:-;;;;;;:::i;:::-;;:::i;5239:266:24:-;;;;;;:::i;:::-;;:::i;4602:239:39:-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;4913:261:24:-;;;;;;:::i;:::-;;:::i;4177:45:32:-;;;;;;:::i;:::-;;;;;;;;;;;;;;4700:103:87;4754:4;4777:19;:7;4789:6;4777:11;:19::i;:::-;4770:26;4700:103;-1:-1:-1;;4700:103:87:o;6271:253:24:-;-1:-1:-1;;;;;6367:31:24;;6346:4;6367:31;;;:16;:31;;;;;;;;6366:32;:92;;;;-1:-1:-1;6422:10:24;;6403:55;;-1:-1:-1;;;6403:55:24;;-1:-1:-1;;;;;1721:32:165;;;6403:55:24;;;1703:51:165;6422:10:24;;;;6403:40;;1676:18:165;;6403:55:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6402:56;6366:92;6362:135;;;-1:-1:-1;6481:5:24;;6271:253;-1:-1:-1;6271:253:24:o;6362:135::-;-1:-1:-1;6513:4:24;;6271:253;-1:-1:-1;6271:253:24:o;5569:277::-;5651:10;5640:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;5640:7:24;-1:-1:-1;;;;;5640:21:24;;:84;;;-1:-1:-1;5674:10:24;;-1:-1:-1;;;;;5674:10:24;5666:33;:57;;;;-1:-1:-1;5703:10:24;-1:-1:-1;;;;;5703:20:24;;;5666:57;5632:137;;;;-1:-1:-1;;;5632:137:24;;2658:2:165;5632:137:24;;;2640:21:165;2697:2;2677:18;;;2670:30;2736;2716:18;;;2709:58;2784:18;;5632:137:24;;;;;;;;;5779:10;:27;;-1:-1:-1;;;;;;5779:27:24;-1:-1:-1;;;;;5779:27:24;;;;;;;;5821:18;;1703:51:165;;;5821:18:24;;1691:2:165;1676:18;5821::24;;;;;;;;5569:277;:::o;5910:296::-;5994:10;5983:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;5983:7:24;-1:-1:-1;;;;;5983:21:24;;:45;;;-1:-1:-1;6008:10:24;-1:-1:-1;;;;;6008:20:24;;;5983:45;5975:87;;;;-1:-1:-1;;;5975:87:24;;2658:2:165;5975:87:24;;;2640:21:165;2697:2;2677:18;;;2670:30;2736;2716:18;;;2709:58;2784:18;;5975:87:24;2456:352:165;5975:87:24;6098:10;;-1:-1:-1;;;;;6080:29:24;;;6098:10;;6080:29;6072:65;;;;-1:-1:-1;;;6072:65:24;;3015:2:165;6072:65:24;;;2997:21:165;3054:2;3034:18;;;3027:30;3093:25;3073:18;;;3066:53;3136:18;;6072:65:24;2813:347:165;6072:65:24;6154:10;6147:17;;-1:-1:-1;;;;;;6147:17:24;;;6179:20;;-1:-1:-1;;;;;1721:32:165;;1703:51;;6179:20:24;;1691:2:165;1676:18;6179:20:24;1557:203:165;4201:131:39;4348:10:24;:8;:10::i;:::-;4340:91;;;;-1:-1:-1;;;4340:91:24;;;;;;;:::i;:::-;4285:40:39::1;4313:3;4318:6;4285:27;:40::i;:::-;4201:131:::0;;:::o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;5319:343:32:-;5426:4;5455:10;;5446:6;:19;5442:62;;;-1:-1:-1;5488:5:32;5481:12;;5442:62;5513:11;5527:17;5540:3;5527:12;:17::i;:::-;5586:10;;-1:-1:-1;;;;;5559:14:32;;;;;;:9;:14;;;;;;5513:31;;-1:-1:-1;5586:10:32;5559:23;;5576:6;;5559:23;:::i;:::-;5558:38;5554:81;;;5619:5;5612:12;;;;;5554:81;5651:4;5644:11;;;5319:343;;;;;;:::o;4292:194:87:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4361:20:87;::::1;4353:64;;;::::0;-1:-1:-1;;;4353:64:87;;4106:2:165;4353:64:87::1;::::0;::::1;4088:21:165::0;4145:2;4125:18;;;4118:30;4184:33;4164:18;;;4157:61;4235:18;;4353:64:87::1;3904:355:165::0;4353:64:87::1;4427:19;:7;4439:6:::0;4427:11:::1;:19::i;:::-;4461:18;::::0;-1:-1:-1;;;;;4461:18:87;::::1;::::0;::::1;::::0;;;::::1;4292:194:::0;:::o;3982:157:39:-;4348:10:24;:8;:10::i;:::-;4340:91;;;;-1:-1:-1;;;4340:91:24;;;;;;;:::i;:::-;4085:47:39::1;4113:5;4120:3;4125:6;4085:27;:47::i;:::-;3982:157:::0;;;:::o;4396:140::-;4348:10:24;:8;:10::i;:::-;4340:91;;;;-1:-1:-1;;;4340:91:24;;;;;;;:::i;:::-;4484:45:39::1;4515:5;4522:6;4484:30;:45::i;4492:202:87:-:0;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4564:20:87;::::1;4556:64;;;::::0;-1:-1:-1;;;4556:64:87;;4106:2:165;4556:64:87::1;::::0;::::1;4088:21:165::0;4145:2;4125:18;;;4118:30;4184:33;4164:18;;;4157:61;4235:18;;4556:64:87::1;3904:355:165::0;4556:64:87::1;4630:22;:7;4645:6:::0;4630:14:::1;:22::i;:::-;4667:20;::::0;-1:-1:-1;;;;;4667:20:87;::::1;::::0;::::1;::::0;;;::::1;4492:202:::0;:::o;6589:182:24:-;6695:10;;6657:4;;-1:-1:-1;;;;;6677:29:24;;;6695:10;;6677:29;6673:71;;-1:-1:-1;6728:5:24;;6589:182;-1:-1:-1;6589:182:24:o;4664:124:32:-;1531:13:141;:11;:13::i;:::-;4730:10:32::1;:17:::0;;;4762:19:::1;::::0;1060:25:165;;;4762:19:32::1;::::0;1048:2:165;1033:18;4762:19:32::1;914:177:165::0;5239:266:24;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;5334:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;5326:76;;;::::0;-1:-1:-1;;;5326:76:24;;4466:2:165;5326:76:24::1;::::0;::::1;4448:21:165::0;;;4485:18;;;4478:30;4544:34;4524:18;;;4517:62;4596:18;;5326:76:24::1;4264:356:165::0;5326:76:24::1;-1:-1:-1::0;;;;;5412:31:24;::::1;5446:5;5412:31:::0;;;:16:::1;:31;::::0;;;;;;;;:39;;-1:-1:-1;;5412:39:24::1;::::0;;5466:32;;1703:51:165;;;5466:32:24::1;::::0;1676:18:165;5466:32:24::1;1557:203:165::0;4602:239:39;4699:4;4720:47;4748:5;4755:3;4760:6;4720:27;:47::i;:::-;4715:99;;-1:-1:-1;4798:5:39;4791:12;;4715:99;-1:-1:-1;4830:4:39;4602:239;;;;;:::o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;1703:51:165::0;1676:18;;2672:31:141::1;1557:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;4913:261:24:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;5006:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;5005:32;4997:77;;;::::0;-1:-1:-1;;;4997:77:24;;4827:2:165;4997:77:24::1;::::0;::::1;4809:21:165::0;;;4846:18;;;4839:30;4905:34;4885:18;;;4878:62;4957:18;;4997:77:24::1;4625:356:165::0;4997:77:24::1;-1:-1:-1::0;;;;;5084:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;;;;:38;;-1:-1:-1;;5084:38:24::1;5118:4;5084:38;::::0;;5137:30;;1703:51:165;;;5137:30:24::1;::::0;1676:18:165;5137:30:24::1;1557:203:165::0;4596:200:89;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;5188:2:165;4684:68:89;;;5170:21:165;5227:2;5207:18;;;5200:30;5266:34;5246:18;;;5239:62;-1:-1:-1;;;5317:18:165;;;5310:32;5359:19;;4684:68:89;4986:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;6897:97:24:-;6940:4;6963:24;6976:10;6963:12;:24::i;:::-;6956:31;;6897:97;:::o;6967:244:32:-;7052:13;7068:17;7081:3;7068:12;:17::i;:::-;-1:-1:-1;;;;;7095:16:32;;;;;;:9;:16;;;;;:26;;7052:33;;-1:-1:-1;7115:6:32;;7095:16;;;:26;;7115:6;;7095:26;:::i;:::-;;;;-1:-1:-1;;7160:10:32;;-1:-1:-1;;;;;7140:16:32;;;;;;:9;:16;;;;;;:30;;7131:73;;;;-1:-1:-1;;;7131:73:32;;5591:2:165;7131:73:32;;;5573:21:165;5630:2;5610:18;;;5603:30;5669:31;5649:18;;;5642:59;5718:18;;7131:73:32;5389:353:165;1796:162:141;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;1703:51:165;1676:18;;1901:40:141;1557:203:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;7226:161:24:-;7327:10;;:29;;;-1:-1:-1;;;7327:29:24;;;;7293:7;;-1:-1:-1;;;;;7327:10:24;;:27;;:29;;;;;;;;;;;;;;:10;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;;-1:-1:-1;;;7327:52:24;;-1:-1:-1;;;;;1721:32:165;;;7327:52:24;;;1703:51:165;7327:38:24;;;;;;;1676:18:165;;7327:52:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4077:175:89:-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;6507:2:165;4145:63:89;;;6489:21:165;6546:2;6526:18;;;6519:30;6585:33;6565:18;;;6558:61;6636:18;;4145:63:89;6305:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;6178:345:32:-;6278:15;6296:19;6309:5;6296:12;:19::i;:::-;6278:37;;6325:13;6341:17;6354:3;6341:12;:17::i;:::-;-1:-1:-1;;;;;6368:16:32;;;;;;:9;:16;;;;;:26;;6325:33;;-1:-1:-1;6388:6:32;;6368:16;;;:26;;6388:6;;6368:26;:::i;:::-;;;;-1:-1:-1;;;;;;;6404:18:32;;;;;;:9;:18;;;;;:28;;6426:6;;6404:18;:28;;6426:6;;6404:28;:::i;:::-;;;;-1:-1:-1;;6471:10:32;;-1:-1:-1;;;;;6451:16:32;;;;;;:9;:16;;;;;;:30;;6442:74;;;;-1:-1:-1;;;6442:74:32;;7000:2:165;6442:74:32;;;6982:21:165;7039:2;7019:18;;;7012:30;7078:32;7058:18;;;7051:60;7128:18;;6442:74:32;6798:354:165;6442:74:32;6268:255;;6178:345;;;:::o;7590:172::-;7680:15;7698:19;7711:5;7698:12;:19::i;:::-;-1:-1:-1;;;;;7727:18:32;;;;;;:9;:18;;;;;:28;;7680:37;;-1:-1:-1;7749:6:32;;7727:18;;;:28;;7749:6;;7727:28;:::i;:::-;;;;-1:-1:-1;;;;;7590:172:32:o;4327:180:89:-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;7359:2:165;4398:64:89;;;7341:21:165;7398:2;7378:18;;;7371:30;7437:34;7417:18;;;7410:62;-1:-1:-1;;;7488:18:165;;;7481:31;7529:19;;4398:64:89;7157:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;150:247;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;594:315::-;662:6;670;723:2;711:9;702:7;698:23;694:32;691:52;;;739:1;736;729:12;691:52;778:9;765:23;797:31;822:5;797:31;:::i;:::-;847:5;899:2;884:18;;;;871:32;;-1:-1:-1;;;594:315:165:o;1096:456::-;1173:6;1181;1189;1242:2;1230:9;1221:7;1217:23;1213:32;1210:52;;;1258:1;1255;1248:12;1210:52;1297:9;1284:23;1316:31;1341:5;1316:31;:::i;:::-;1366:5;-1:-1:-1;1423:2:165;1408:18;;1395:32;1436:33;1395:32;1436:33;:::i;:::-;1096:456;;1488:7;;-1:-1:-1;;;1542:2:165;1527:18;;;;1514:32;;1096:456::o;1989:180::-;2048:6;2101:2;2089:9;2080:7;2076:23;2072:32;2069:52;;;2117:1;2114;2107:12;2069:52;-1:-1:-1;2140:23:165;;1989:180;-1:-1:-1;1989:180:165:o;2174:277::-;2241:6;2294:2;2282:9;2273:7;2269:23;2265:32;2262:52;;;2310:1;2307;2300:12;2262:52;2342:9;2336:16;2395:5;2388:13;2381:21;2374:5;2371:32;2361:60;;2417:1;2414;2407:12;3165:472;3367:2;3349:21;;;3406:2;3386:18;;;3379:30;3445:34;3440:2;3425:18;;3418:62;3516:34;3511:2;3496:18;;3489:62;-1:-1:-1;;;3582:3:165;3567:19;;3560:35;3627:3;3612:19;;3165:472::o;3642:127::-;3703:10;3698:3;3694:20;3691:1;3684:31;3734:4;3731:1;3724:15;3758:4;3755:1;3748:15;3774:125;3839:9;;;3860:10;;;3857:36;;;3873:18;;:::i;5747:278::-;5844:6;5897:2;5885:9;5876:7;5872:23;5868:32;5865:52;;;5913:1;5910;5903:12;5865:52;5945:9;5939:16;5964:31;5989:5;5964:31;:::i;6665:128::-;6732:9;;;6753:11;;;6750:37;;;6767:18;;:::i","linkReferences":{}},"methodIdentifiers":{"IDBalance(address)":"ff548267","addAgent(address)":"84e79842","addTokenAgent(address)":"ff3e6954","bindToken(address)":"3ff5aa02","canTransfer(address,address,uint256)":"e46638e6","complianceCheckOnMaxBalance(address,address,uint256)":"84d1fc40","created(address,uint256)":"5f8dead3","destroyed(address,uint256)":"8d2ea772","isAgent(address)":"1ffbb064","isTokenAgent(address)":"346531fa","isTokenBound(address)":"993e8b95","maxBalance()":"73ad468a","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","removeTokenAgent(address)":"cdde2932","renounceOwnership()":"715018a6","setMaxBalance(uint256)":"9d51d9b7","tokenBound()":"93e62f07","transferOwnership(address)":"f2fde38b","transferred(address,address,uint256)":"8baf29b4","unbindToken(address)":"40db3b50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_maxBalance\",\"type\":\"uint256\"}],\"name\":\"MaxBalanceSet\",\"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\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"IDBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"addTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"complianceCheckOnMaxBalance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"isTokenAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"removeTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_max\",\"type\":\"uint256\"}],\"name\":\"setMaxBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenBound\",\"outputs\":[{\"internalType\":\"contract IToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addTokenAgent(address)\":{\"details\":\"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces\"},\"bindToken(address)\":{\"details\":\"See {ICompliance-bindToken}.\"},\"canTransfer(address,address,uint256)\":{\"details\":\"See {ICompliance-canTransfer}.\"},\"complianceCheckOnMaxBalance(address,address,uint256)\":{\"details\":\"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the transfer doesn't push the ONCHAINID-based balance of `_to` above the authorized threshold fixed by maxBalance\",\"params\":{\"_to\":\"the address of the transfer receiver\",\"_value\":\"the amount of tokens that `_from` would send to `_to`\"}},\"created(address,uint256)\":{\"details\":\"See {ICompliance-created}.\"},\"destroyed(address,uint256)\":{\"details\":\"See {ICompliance-destroyed}.\"},\"isTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"isTokenBound(address)\":{\"details\":\"See {ICompliance-isTokenBound}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"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.\"},\"setMaxBalance(uint256)\":{\"details\":\"sets max balance limit\",\"params\":{\"_max\":\"max amount of tokens owned by an individual Only the owner of the Compliance smart contract can call this function emits an `MaxBalanceSet` event\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferred(address,address,uint256)\":{\"details\":\"See {ICompliance-transferred}.\"},\"unbindToken(address)\":{\"details\":\"See {ICompliance-unbindToken}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"MaxBalanceSet(uint256)\":{\"notice\":\"this event is emitted when the max balance has been set. `_maxBalance` is the max amount of tokens that a user can hold .\"},\"TokenAgentAdded(address)\":{\"notice\":\"this event is emitted when the Agent has been added on the allowedList of this Compliance. the event is emitted by the Compliance constructor and by the addTokenAgent function `_agentAddress` is the address of the Agent to add\"},\"TokenAgentRemoved(address)\":{\"notice\":\"this event is emitted when the Agent has been removed from the agent list of this Compliance. the event is emitted by the Compliance constructor and by the removeTokenAgent function `_agentAddress` is the address of the Agent to remove\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"}},\"kind\":\"user\",\"methods\":{\"IDBalance(address)\":{\"notice\":\"mapping of balances per ONCHAINID\"},\"maxBalance()\":{\"notice\":\"maximum balance per investor ONCHAINID\"},\"tokenBound()\":{\"notice\":\"Mapping of tokens linked to the compliance contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/legacy/test/MaxBalanceTest.sol\":\"MaxBalanceTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/legacy/BasicCompliance.sol\":{\"keccak256\":\"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d\",\"dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4\"]},\"contracts/erc3643/compliance/legacy/ICompliance.sol\":{\"keccak256\":\"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e\",\"dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV\"]},\"contracts/erc3643/compliance/legacy/features/MaxBalance.sol\":{\"keccak256\":\"0x950c489570bb2160b53ba7ab66f5fc62ff7f9588f1f853bb238d1db8b26da751\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://afa80afc9b838fe7bb04804952d96f6212c4ba0006e786112aa16745b1b1e847\",\"dweb:/ipfs/QmZUz9rKRMvXp2pyNrjRefszCjqa6vmBrVWrJ4cBekgEoP\"]},\"contracts/erc3643/compliance/legacy/test/MaxBalanceTest.sol\":{\"keccak256\":\"0x6613a9e3ed95f64a3c2b30568dd9089de9ebd0a767d5fa831df8bdb19a1d57a0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a0c3d5d726ac31032cc35a2f8f1045af12845a7bf7ff922b5b21af6c462eca92\",\"dweb:/ipfs/QmRqbiHXELw9G9ujgBXfVCYcpWPk5NNfAPNi87oMnHa8ZQ\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_maxBalance","type":"uint256","indexed":false}],"type":"event","name":"MaxBalanceSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"IDBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenAgent"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"view","type":"function","name":"complianceCheckOnMaxBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"_max","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxBalance"},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenBound","outputs":[{"internalType":"contract IToken","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"}],"devdoc":{"kind":"dev","methods":{"addTokenAgent(address)":{"details":"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces"},"bindToken(address)":{"details":"See {ICompliance-bindToken}."},"canTransfer(address,address,uint256)":{"details":"See {ICompliance-canTransfer}."},"complianceCheckOnMaxBalance(address,address,uint256)":{"details":"check on the compliance status of a transaction. If the check returns TRUE, the transfer is allowed to be executed, if the check returns FALSE, the compliance feature will block the transfer execution The check will verify if the transfer doesn't push the ONCHAINID-based balance of `_to` above the authorized threshold fixed by maxBalance","params":{"_to":"the address of the transfer receiver","_value":"the amount of tokens that `_from` would send to `_to`"}},"created(address,uint256)":{"details":"See {ICompliance-created}."},"destroyed(address,uint256)":{"details":"See {ICompliance-destroyed}."},"isTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"isTokenBound(address)":{"details":"See {ICompliance-isTokenBound}."},"owner()":{"details":"Returns the address of the current owner."},"removeTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"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."},"setMaxBalance(uint256)":{"details":"sets max balance limit","params":{"_max":"max amount of tokens owned by an individual Only the owner of the Compliance smart contract can call this function emits an `MaxBalanceSet` event"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"transferred(address,address,uint256)":{"details":"See {ICompliance-transferred}."},"unbindToken(address)":{"details":"See {ICompliance-unbindToken}."}},"version":1},"userdoc":{"kind":"user","methods":{"IDBalance(address)":{"notice":"mapping of balances per ONCHAINID"},"maxBalance()":{"notice":"maximum balance per investor ONCHAINID"},"tokenBound()":{"notice":"Mapping of tokens linked to the compliance contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/legacy/test/MaxBalanceTest.sol":"MaxBalanceTest"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/legacy/BasicCompliance.sol":{"keccak256":"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305","urls":["bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d","dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/ICompliance.sol":{"keccak256":"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7","urls":["bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e","dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/features/MaxBalance.sol":{"keccak256":"0x950c489570bb2160b53ba7ab66f5fc62ff7f9588f1f853bb238d1db8b26da751","urls":["bzz-raw://afa80afc9b838fe7bb04804952d96f6212c4ba0006e786112aa16745b1b1e847","dweb:/ipfs/QmZUz9rKRMvXp2pyNrjRefszCjqa6vmBrVWrJ4cBekgEoP"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/test/MaxBalanceTest.sol":{"keccak256":"0x6613a9e3ed95f64a3c2b30568dd9089de9ebd0a767d5fa831df8bdb19a1d57a0","urls":["bzz-raw://a0c3d5d726ac31032cc35a2f8f1045af12845a7bf7ff922b5b21af6c462eca92","dweb:/ipfs/QmRqbiHXELw9G9ujgBXfVCYcpWPk5NNfAPNi87oMnHa8ZQ"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":39} \ No newline at end of file diff --git a/out/MaxOwnershipByCountryModule.sol/MaxOwnershipByCountryModule.json b/out/MaxOwnershipByCountryModule.sol/MaxOwnershipByCountryModule.json new file mode 100644 index 0000000..e5c31cf --- /dev/null +++ b/out/MaxOwnershipByCountryModule.sol/MaxOwnershipByCountryModule.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"batchPreSetModuleState","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_id","type":"address[]","internalType":"address[]"},{"name":"_balance","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canComplianceBind","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getIDBalance","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_identity","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isComplianceBound","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPlugAndPlay","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"moduleBurnAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleCheck","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleMintAction","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleTransferAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"preSetModuleState","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_id","type":"address","internalType":"address"},{"name":"_balance","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"presetCompleted","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxPercentage","inputs":[{"name":"_country","type":"uint16","internalType":"uint16"},{"name":"_maxLocal","type":"uint16","internalType":"uint16"},{"name":"_maxNonlocal","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComplianceBound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ComplianceUnbound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"IDBalancePreSet","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"},{"name":"_id","type":"address","indexed":true,"internalType":"address"},{"name":"_balance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MaxPercentageSet","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"},{"name":"_maxPercetageLocal","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"_maxPercetageNonlocal","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"InvalidPresetValues","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_id","type":"address[]","internalType":"address[]"},{"name":"_balance","type":"uint256[]","internalType":"uint256[]"}]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MaxOwnershipExceeded","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyComplianceOwnerCanCall","inputs":[{"name":"_compliance","type":"address","internalType":"address"}]},{"type":"error","name":"TokenAlreadyBound","inputs":[{"name":"_compliance","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061195f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638f27c0eb11610097578063dd50b74c11610066578063dd50b74c14610235578063e6f5e80714610248578063f104a8c91461024f578063f7c4722c1461026257600080fd5b80638f27c0eb146101db578063bcc21053146101ee578063cc203f7514610201578063d5be92ad1461022257600080fd5b80632cb7e1ec116100d35780632cb7e1ec14610176578063372491a2146101895780634a9325441461019c5780634cf4d295146101af57600080fd5b8063013b7ce4146100fa5780630694a5fb1461012257806306fdde0314610137575b600080fd5b61010d610108366004611493565b610275565b60405190151581526020015b60405180910390f35b6101356101303660046114e6565b61035b565b005b604080518082018252601b81527f4d61784f776e6572736869704279436f756e7472794d6f64756c650000000000602082015290516101199190611503565b610135610184366004611552565b61045a565b610135610197366004611593565b6105a4565b6101356101aa3660046114e6565b610621565b61010d6101bd3660046114e6565b6001600160a01b031660009081526020819052604090205460ff1690565b6101356101e936600461160b565b610754565b61010d6101fc3660046114e6565b610944565b61021461020f36600461168e565b610a55565b604051908152602001610119565b6101356102303660046116d7565b610a82565b6101356102433660046114e6565b610b37565b600061010d565b61013561025d366004611593565b610bfc565b610135610270366004611552565b610cfe565b6000806102828386610e3d565b905060006102908487610fc3565b6001600160a01b0385166000908152600360209081526040808320841515845290915290205490915061ffff166102c78587611191565b61ffff1611156102dc57600092505050610353565b6001600160a01b0380851660008181526003602090815260408083208615158452825280832054938352600482528083209487168352939052919091205461ffff90911690610337908690610332908990611738565b611191565b61ffff16111561034c57600092505050610353565b6001925050505b949350505050565b3360009081526020819052604090205460ff166103935760405162461bcd60e51b815260040161038a9061174b565b60405180910390fd5b6001600160a01b0381166103e95760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161038a565b336001600160a01b038216146104115760405162461bcd60e51b815260040161038a90611782565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166104895760405162461bcd60e51b815260040161038a9061174b565b60006104953385610e3d565b905060006104a33385610e3d565b905060006104b13386610fc3565b3360009081526004602090815260408083206001600160a01b03871684529091528120805492935086929091906104e9908490611738565b90915550503360009081526004602090815260408083206001600160a01b0387168452909152812080548692906105219084906117c3565b90915550503360008181526003602090815260408083208515158452825280832054848452600483528184206001600160a01b03881685529092529091205461ffff9091169161057091611191565b61ffff16111561059c5760405163bc37982360e01b81523360048201526024810185905260440161038a565b505050505050565b3360009081526020819052604090205460ff166105d35760405162461bcd60e51b815260040161038a9061174b565b60006105df3384610e3d565b3360009081526004602090815260408083206001600160a01b03851684529091528120805492935084929091906106179084906117c3565b9091555050505050565b6001600160a01b0381166106775760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161038a565b6001600160a01b03811660009081526020819052604090205460ff16156106e05760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e640000000000000000604482015260640161038a565b336001600160a01b038216146107085760405162461bcd60e51b815260040161038a90611782565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b828015806107625750808214155b1561078a57858585858560405163355c2bfd60e11b815260040161038a9594939291906117d6565b336001600160a01b0316866001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f69190611865565b6001600160a01b0316146108285760405163e8649dab60e01b81526001600160a01b038716600482015260240161038a565b60405163a446d49f60e01b81523060048201526001600160a01b0387169063a446d49f90602401602060405180830381865afa15801561086c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108909190611882565b156108b95760405163346a0c0160e21b81526001600160a01b038716600482015260240161038a565b60005b818110156109155761090d878787848181106108da576108da6118a4565b90506020020160208101906108ef91906114e6565b868685818110610901576109016118a4565b90506020020135611356565b6001016108bc565b5050506001600160a01b039093166000908152600160208190526040909120805460ff19169091179055505050565b6001600160a01b03811660009081526001602052604081205460ff161561096d57506001919050565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d19190611865565b90506000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3791906118ba565b905080600003610a4b575060019392505050565b5060009392505050565b6001600160a01b038083166000908152600460209081526040808320938516835292905220545b92915050565b3360009081526020819052604090205460ff16610ab15760405162461bcd60e51b815260040161038a9061174b565b336000818152600260209081526040808320805461ffff808a1661ffff1992831617909255600384528285206001865280855283862080548a851690841681179091558680529452828520805492881692909116821790559051909391927f28cb11a33332bc47c32fb9d625d79476808e022f515e43da3916a3c8b6b5557691a4505050565b336001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba39190611865565b6001600160a01b031614610bd55760405163e8649dab60e01b81526001600160a01b038216600482015260240161038a565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b3360009081526020819052604090205460ff16610c2b5760405162461bcd60e51b815260040161038a9061174b565b6000610c373384610e3d565b90506000610c453385610fc3565b3360009081526004602090815260408083206001600160a01b0387168452909152812080549293508592909190610c7d908490611738565b90915550503360008181526003602090815260408083208515158452825280832054848452600483528184206001600160a01b03881685529092529091205461ffff90911691610ccc91611191565b61ffff161115610cf85760405163bc37982360e01b81523360048201526024810184905260440161038a565b50505050565b336001600160a01b0316836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6a9190611865565b6001600160a01b031614610d9c5760405163e8649dab60e01b81526001600160a01b038416600482015260240161038a565b60405163a446d49f60e01b81523060048201526001600160a01b0384169063a446d49f90602401602060405180830381865afa158015610de0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e049190611882565b15610e2d5760405163346a0c0160e21b81526001600160a01b038416600482015260240161038a565b610e38838383611356565b505050565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea29190611865565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610edf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f039190611865565b604051633c3ad79560e21b81526001600160a01b038581166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610f4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6f9190611865565b90506001600160a01b038116610fbc5760405162461bcd60e51b81526020600482015260126024820152711a59195b9d1a5d1e481b9bdd08199bdd5b9960721b604482015260640161038a565b9392505050565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015611004573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110289190611865565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611065573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110899190611865565b604051637e42683b60e01b81526001600160a01b0385811660048301529190911690637e42683b90602401602060405180830381865afa1580156110d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f591906118d3565b90508061ffff166000036111675760405162461bcd60e51b815260206004820152603360248201527f4d61784f776e6572736869704279436f756e7472794d6f64756c653a207573656044820152721c8818dbdd5b9d1c9e481b9bdd08199bdd5b99606a1b606482015260840161038a565b6001600160a01b03841660009081526002602052604090205461ffff918216911614905092915050565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f69190611865565b90506000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125c91906118ba565b9050600081116112d45760405162461bcd60e51b815260206004820152603760248201527f4d61784f776e6572736869704279436f756e7472794d6f64756c653a20746f6b60448201527f656e20746f74616c20737570706c79206973207a65726f000000000000000000606482015260840161038a565b6000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611314573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133891906118f0565b60ff16905061271061134b8682856113b7565b979650505050505050565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f0a777417e1c0a4b24c5f556b0c3dd522c37b99b2c3ca4bf9fea2fa1293c660c9910160405180910390a3505050565b60008383028160001985870982811083820303915050806000036113ee578382816113e4576113e4611913565b0492505050610fbc565b80841161140e5760405163227bc15360e01b815260040160405180910390fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6001600160a01b038116811461149057600080fd5b50565b600080600080608085870312156114a957600080fd5b84356114b48161147b565b935060208501356114c48161147b565b92506040850135915060608501356114db8161147b565b939692955090935050565b6000602082840312156114f857600080fd5b8135610fbc8161147b565b60006020808352835180602085015260005b8181101561153157858101830151858201604001528201611515565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060006060848603121561156757600080fd5b83356115728161147b565b925060208401356115828161147b565b929592945050506040919091013590565b600080604083850312156115a657600080fd5b82356115b18161147b565b946020939093013593505050565b60008083601f8401126115d157600080fd5b50813567ffffffffffffffff8111156115e957600080fd5b6020830191508360208260051b850101111561160457600080fd5b9250929050565b60008060008060006060868803121561162357600080fd5b853561162e8161147b565b9450602086013567ffffffffffffffff8082111561164b57600080fd5b61165789838a016115bf565b9096509450604088013591508082111561167057600080fd5b5061167d888289016115bf565b969995985093965092949392505050565b600080604083850312156116a157600080fd5b82356116ac8161147b565b915060208301356116bc8161147b565b809150509250929050565b61ffff8116811461149057600080fd5b6000806000606084860312156116ec57600080fd5b83356116f7816116c7565b92506020840135611707816116c7565b91506040840135611717816116c7565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7c57610a7c611722565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b81810381811115610a7c57610a7c611722565b6001600160a01b03868116825260606020808401829052908301869052600091879160808501845b898110156118255784356118118161147b565b8416825293820193908201906001016117fe565b5085810360408701528681526001600160fb1b0387111561184557600080fd5b8660051b9350838860208301379092016020019998505050505050505050565b60006020828403121561187757600080fd5b8151610fbc8161147b565b60006020828403121561189457600080fd5b81518015158114610fbc57600080fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156118cc57600080fd5b5051919050565b6000602082840312156118e557600080fd5b8151610fbc816116c7565b60006020828403121561190257600080fd5b815160ff81168114610fbc57600080fd5b634e487b7160e01b600052601260045260246000fdfea2646970667358221220417995a87816bee4dc825528a17851c767ac0ef3d5cda46ab8cc654b9e19fcb764736f6c63430008180033","sourceMap":"447:11408:51:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80638f27c0eb11610097578063dd50b74c11610066578063dd50b74c14610235578063e6f5e80714610248578063f104a8c91461024f578063f7c4722c1461026257600080fd5b80638f27c0eb146101db578063bcc21053146101ee578063cc203f7514610201578063d5be92ad1461022257600080fd5b80632cb7e1ec116100d35780632cb7e1ec14610176578063372491a2146101895780634a9325441461019c5780634cf4d295146101af57600080fd5b8063013b7ce4146100fa5780630694a5fb1461012257806306fdde0314610137575b600080fd5b61010d610108366004611493565b610275565b60405190151581526020015b60405180910390f35b6101356101303660046114e6565b61035b565b005b604080518082018252601b81527f4d61784f776e6572736869704279436f756e7472794d6f64756c650000000000602082015290516101199190611503565b610135610184366004611552565b61045a565b610135610197366004611593565b6105a4565b6101356101aa3660046114e6565b610621565b61010d6101bd3660046114e6565b6001600160a01b031660009081526020819052604090205460ff1690565b6101356101e936600461160b565b610754565b61010d6101fc3660046114e6565b610944565b61021461020f36600461168e565b610a55565b604051908152602001610119565b6101356102303660046116d7565b610a82565b6101356102433660046114e6565b610b37565b600061010d565b61013561025d366004611593565b610bfc565b610135610270366004611552565b610cfe565b6000806102828386610e3d565b905060006102908487610fc3565b6001600160a01b0385166000908152600360209081526040808320841515845290915290205490915061ffff166102c78587611191565b61ffff1611156102dc57600092505050610353565b6001600160a01b0380851660008181526003602090815260408083208615158452825280832054938352600482528083209487168352939052919091205461ffff90911690610337908690610332908990611738565b611191565b61ffff16111561034c57600092505050610353565b6001925050505b949350505050565b3360009081526020819052604090205460ff166103935760405162461bcd60e51b815260040161038a9061174b565b60405180910390fd5b6001600160a01b0381166103e95760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161038a565b336001600160a01b038216146104115760405162461bcd60e51b815260040161038a90611782565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166104895760405162461bcd60e51b815260040161038a9061174b565b60006104953385610e3d565b905060006104a33385610e3d565b905060006104b13386610fc3565b3360009081526004602090815260408083206001600160a01b03871684529091528120805492935086929091906104e9908490611738565b90915550503360009081526004602090815260408083206001600160a01b0387168452909152812080548692906105219084906117c3565b90915550503360008181526003602090815260408083208515158452825280832054848452600483528184206001600160a01b03881685529092529091205461ffff9091169161057091611191565b61ffff16111561059c5760405163bc37982360e01b81523360048201526024810185905260440161038a565b505050505050565b3360009081526020819052604090205460ff166105d35760405162461bcd60e51b815260040161038a9061174b565b60006105df3384610e3d565b3360009081526004602090815260408083206001600160a01b03851684529091528120805492935084929091906106179084906117c3565b9091555050505050565b6001600160a01b0381166106775760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161038a565b6001600160a01b03811660009081526020819052604090205460ff16156106e05760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e640000000000000000604482015260640161038a565b336001600160a01b038216146107085760405162461bcd60e51b815260040161038a90611782565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b828015806107625750808214155b1561078a57858585858560405163355c2bfd60e11b815260040161038a9594939291906117d6565b336001600160a01b0316866001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f69190611865565b6001600160a01b0316146108285760405163e8649dab60e01b81526001600160a01b038716600482015260240161038a565b60405163a446d49f60e01b81523060048201526001600160a01b0387169063a446d49f90602401602060405180830381865afa15801561086c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108909190611882565b156108b95760405163346a0c0160e21b81526001600160a01b038716600482015260240161038a565b60005b818110156109155761090d878787848181106108da576108da6118a4565b90506020020160208101906108ef91906114e6565b868685818110610901576109016118a4565b90506020020135611356565b6001016108bc565b5050506001600160a01b039093166000908152600160208190526040909120805460ff19169091179055505050565b6001600160a01b03811660009081526001602052604081205460ff161561096d57506001919050565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d19190611865565b90506000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3791906118ba565b905080600003610a4b575060019392505050565b5060009392505050565b6001600160a01b038083166000908152600460209081526040808320938516835292905220545b92915050565b3360009081526020819052604090205460ff16610ab15760405162461bcd60e51b815260040161038a9061174b565b336000818152600260209081526040808320805461ffff808a1661ffff1992831617909255600384528285206001865280855283862080548a851690841681179091558680529452828520805492881692909116821790559051909391927f28cb11a33332bc47c32fb9d625d79476808e022f515e43da3916a3c8b6b5557691a4505050565b336001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba39190611865565b6001600160a01b031614610bd55760405163e8649dab60e01b81526001600160a01b038216600482015260240161038a565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b3360009081526020819052604090205460ff16610c2b5760405162461bcd60e51b815260040161038a9061174b565b6000610c373384610e3d565b90506000610c453385610fc3565b3360009081526004602090815260408083206001600160a01b0387168452909152812080549293508592909190610c7d908490611738565b90915550503360008181526003602090815260408083208515158452825280832054848452600483528184206001600160a01b03881685529092529091205461ffff90911691610ccc91611191565b61ffff161115610cf85760405163bc37982360e01b81523360048201526024810184905260440161038a565b50505050565b336001600160a01b0316836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6a9190611865565b6001600160a01b031614610d9c5760405163e8649dab60e01b81526001600160a01b038416600482015260240161038a565b60405163a446d49f60e01b81523060048201526001600160a01b0384169063a446d49f90602401602060405180830381865afa158015610de0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e049190611882565b15610e2d5760405163346a0c0160e21b81526001600160a01b038416600482015260240161038a565b610e38838383611356565b505050565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea29190611865565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610edf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f039190611865565b604051633c3ad79560e21b81526001600160a01b038581166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610f4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6f9190611865565b90506001600160a01b038116610fbc5760405162461bcd60e51b81526020600482015260126024820152711a59195b9d1a5d1e481b9bdd08199bdd5b9960721b604482015260640161038a565b9392505050565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015611004573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110289190611865565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611065573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110899190611865565b604051637e42683b60e01b81526001600160a01b0385811660048301529190911690637e42683b90602401602060405180830381865afa1580156110d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f591906118d3565b90508061ffff166000036111675760405162461bcd60e51b815260206004820152603360248201527f4d61784f776e6572736869704279436f756e7472794d6f64756c653a207573656044820152721c8818dbdd5b9d1c9e481b9bdd08199bdd5b99606a1b606482015260840161038a565b6001600160a01b03841660009081526002602052604090205461ffff918216911614905092915050565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f69190611865565b90506000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125c91906118ba565b9050600081116112d45760405162461bcd60e51b815260206004820152603760248201527f4d61784f776e6572736869704279436f756e7472794d6f64756c653a20746f6b60448201527f656e20746f74616c20737570706c79206973207a65726f000000000000000000606482015260840161038a565b6000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611314573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133891906118f0565b60ff16905061271061134b8682856113b7565b979650505050505050565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f0a777417e1c0a4b24c5f556b0c3dd522c37b99b2c3ca4bf9fea2fa1293c660c9910160405180910390a3505050565b60008383028160001985870982811083820303915050806000036113ee578382816113e4576113e4611913565b0492505050610fbc565b80841161140e5760405163227bc15360e01b815260040160405180910390fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6001600160a01b038116811461149057600080fd5b50565b600080600080608085870312156114a957600080fd5b84356114b48161147b565b935060208501356114c48161147b565b92506040850135915060608501356114db8161147b565b939692955090935050565b6000602082840312156114f857600080fd5b8135610fbc8161147b565b60006020808352835180602085015260005b8181101561153157858101830151858201604001528201611515565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060006060848603121561156757600080fd5b83356115728161147b565b925060208401356115828161147b565b929592945050506040919091013590565b600080604083850312156115a657600080fd5b82356115b18161147b565b946020939093013593505050565b60008083601f8401126115d157600080fd5b50813567ffffffffffffffff8111156115e957600080fd5b6020830191508360208260051b850101111561160457600080fd5b9250929050565b60008060008060006060868803121561162357600080fd5b853561162e8161147b565b9450602086013567ffffffffffffffff8082111561164b57600080fd5b61165789838a016115bf565b9096509450604088013591508082111561167057600080fd5b5061167d888289016115bf565b969995985093965092949392505050565b600080604083850312156116a157600080fd5b82356116ac8161147b565b915060208301356116bc8161147b565b809150509250929050565b61ffff8116811461149057600080fd5b6000806000606084860312156116ec57600080fd5b83356116f7816116c7565b92506020840135611707816116c7565b91506040840135611717816116c7565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7c57610a7c611722565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b81810381811115610a7c57610a7c611722565b6001600160a01b03868116825260606020808401829052908301869052600091879160808501845b898110156118255784356118118161147b565b8416825293820193908201906001016117fe565b5085810360408701528681526001600160fb1b0387111561184557600080fd5b8660051b9350838860208301379092016020019998505050505050505050565b60006020828403121561187757600080fd5b8151610fbc8161147b565b60006020828403121561189457600080fd5b81518015158114610fbc57600080fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156118cc57600080fd5b5051919050565b6000602082840312156118e557600080fd5b8151610fbc816116c7565b60006020828403121561190257600080fd5b815160ff81168114610fbc57600080fd5b634e487b7160e01b600052601260045260246000fdfea2646970667358221220417995a87816bee4dc825528a17851c767ac0ef3d5cda46ab8cc654b9e19fcb764736f6c63430008180033","sourceMap":"447:11408:51:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7216:594;;;;;;:::i;:::-;;:::i;:::-;;;918:14:165;;911:22;893:41;;881:2;866:18;7216:594:51;;;;;;;;5018:343:44;;;;;;:::i;:::-;;:::i;:::-;;8803:111:51;8871:36;;;;;;;;;;;;;;;;8803:111;;;;8871:36;8803:111;:::i;5610:548::-;;;;;;:::i;:::-;;:::i;6711:211::-;;;;;;:::i;:::-;;:::i;4555:396:44:-;;;;;;:::i;:::-;;:::i;5429:139::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5532:29:44;5509:4;5532:29;;;;;;;;;;;;;;5429:139;4275:780:51;;;;;;:::i;:::-;;:::i;8209:393::-;;;;;;:::i;:::-;;:::i;7989:152::-;;;;;;:::i;:::-;;:::i;:::-;;;4355:25:165;;;4343:2;4328:18;7989:152:51;4209:177:165;2649:343:51;;;;;;:::i;:::-;;:::i;5284:255::-;;;;;;:::i;:::-;;:::i;8665:83::-;8713:4;8665:83;;6225:419;;;;;;:::i;:::-;;:::i;3407:429::-;;;;;;:::i;:::-;;:::i;7216:594::-;7376:4;7392:11;7406:30;7419:11;7432:3;7406:12;:30::i;:::-;7392:44;;7446:14;7463:30;7476:11;7489:3;7463:12;:30::i;:::-;-1:-1:-1;;;;;7546:27:51;;;;;;:14;:27;;;;;;;;:38;;;;;;;;;;;7446:47;;-1:-1:-1;7546:38:51;;7508:35;7561:11;7536:6;7508:14;:35::i;:::-;:76;;;7504:119;;;7607:5;7600:12;;;;;;7504:119;-1:-1:-1;;;;;7706:27:51;;;;;;;:14;:27;;;;;;;;:38;;;;;;;;;;;7665:23;;;:10;:23;;;;;:28;;;;;;;;;;;;;7706:38;;;;;7637:66;;7721:11;;7665:37;;7696:6;;7665:37;:::i;:::-;7637:14;:66::i;:::-;:107;;;7633:150;;;7767:5;7760:12;;;;;;7633:150;7799:4;7792:11;;;;7216:594;;;;;;;:::o;5018:343:44:-;4426:10;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5120:25:44;::::1;5112:69;;;::::0;-1:-1:-1;;;5112:69:44;;5864:2:165;5112:69:44::1;::::0;::::1;5846:21:165::0;5903:2;5883:18;;;5876:30;5942:33;5922:18;;;5915:61;5993:18;;5112:69:44::1;5662:355:165::0;5112:69:44::1;5199:10;-1:-1:-1::0;;;;;5199:25:44;::::1;;5191:71;;;;-1:-1:-1::0;;;5191:71:44::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5272:29:44;::::1;5304:5;5272:29:::0;;;::::1;::::0;;;;;;;:37;;-1:-1:-1;;5272:37:44::1;::::0;;5324:30;::::1;::::0;5304:5;5324:30:::1;5018:343:::0;:::o;5610:548:51:-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;5731:15:51::1;5749:31;5762:10;5774:5;5749:12;:31::i;:::-;5731:49;;5790:13;5806:29;5819:10;5831:3;5806:12;:29::i;:::-;5790:45;;5845:14;5862:29;5875:10;5887:3;5862:12;:29::i;:::-;5912:10;5901:22;::::0;;;:10:::1;:22;::::0;;;;;;;-1:-1:-1;;;;;5901:29:51;::::1;::::0;;;;;;;:39;;5845:46;;-1:-1:-1;5934:6:51;;5901:29;;:22;:39:::1;::::0;5934:6;;5901:39:::1;:::i;:::-;::::0;;;-1:-1:-1;;5961:10:51::1;5950:22;::::0;;;:10:::1;:22;::::0;;;;;;;-1:-1:-1;;;;;5950:31:51;::::1;::::0;;;;;;;:41;;5985:6;;5950:22;:41:::1;::::0;5985:6;;5950:41:::1;:::i;:::-;::::0;;;-1:-1:-1;;6080:10:51::1;6065:26;::::0;;;:14:::1;:26;::::0;;;;;;;:37;::::1;;::::0;;;;;;;;6032:22;;;:10:::1;:22:::0;;;;;-1:-1:-1;;;;;6032:29:51;::::1;::::0;;;;;;;;;6065:37:::1;::::0;;::::1;::::0;6005:57:::1;::::0;:14:::1;:57::i;:::-;:97;;;6001:150;;;6111:40;::::0;-1:-1:-1;;;6111:40:51;;6132:10:::1;6111:40;::::0;::::1;6731:51:165::0;6798:18;;;6791:34;;;6704:18;;6111:40:51::1;6557:274:165::0;6001:150:51::1;5721:437;;;5610:548:::0;;;:::o;6711:211::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;6815:15:51::1;6833:31;6846:10;6858:5;6833:12;:31::i;:::-;6885:10;6874:22;::::0;;;:10:::1;:22;::::0;;;;;;;-1:-1:-1;;;;;6874:31:51;::::1;::::0;;;;;;;:41;;6815:49;;-1:-1:-1;6909:6:51;;6874:31;;:22;:41:::1;::::0;6909:6;;6874:41:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;6711:211:51:o;4555:396:44:-;-1:-1:-1;;;;;4636:25:44;;4628:69;;;;-1:-1:-1;;;4628:69:44;;5864:2:165;4628:69:44;;;5846:21:165;5903:2;5883:18;;;5876:30;5942:33;5922:18;;;5915:61;5993:18;;4628:69:44;5662:355:165;4628:69:44;-1:-1:-1;;;;;4716:29:44;;:16;:29;;;;;;;;;;;;;4715:30;4707:67;;;;-1:-1:-1;;;4707:67:44;;7038:2:165;4707:67:44;;;7020:21:165;7077:2;7057:18;;;7050:30;7116:26;7096:18;;;7089:54;7160:18;;4707:67:44;6836:348:165;4707:67:44;4792:10;-1:-1:-1;;;;;4792:25:44;;;4784:71;;;;-1:-1:-1;;;4784:71:44;;;;;;;:::i;:::-;-1:-1:-1;;;;;4865:29:44;;:16;:29;;;;;;;;;;;:36;;-1:-1:-1;;4865:36:44;4897:4;4865:36;;;4916:28;;;4865:16;4916:28;4555:396;:::o;4275:780:51:-;4445:3;4469:13;;;:44;;-1:-1:-1;4486:27:51;;;;4469:44;4466:128;;;4556:11;4569:3;;4574:8;;4536:47;;-1:-1:-1;;;4536:47:51;;;;;;;;;;;;:::i;4466:128::-;4651:10;-1:-1:-1;;;;;4608:53:51;4627:11;-1:-1:-1;;;;;4608:37:51;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4608:53:51;;4604:130;;4684:39;;-1:-1:-1;;;4684:39:51;;-1:-1:-1;;;;;8763:32:165;;4684:39:51;;;8745:51:165;8718:18;;4684:39:51;8599:203:165;4604:130:51;4748:60;;-1:-1:-1;;;4748:60:51;;4802:4;4748:60;;;8745:51:165;-1:-1:-1;;;;;4748:45:51;;;;;8718:18:165;;4748:60:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4744:128;;;4831:30;;-1:-1:-1;;;4831:30:51;;-1:-1:-1;;;;;8763:32:165;;4831:30:51;;;8745:51:165;8718:18;;4831:30:51;8599:203:165;4744:128:51;4887:6;4882:113;4903:8;4899:1;:12;4882:113;;;4932:52;4951:11;4964:3;;4968:1;4964:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;4972:8;;4981:1;4972:11;;;;;;;:::i;:::-;;;;;;;4932:18;:52::i;:::-;4913:3;;4882:113;;;-1:-1:-1;;;;;;;;5005:36:51;;;;;;;5044:4;5005:36;;;;;;;;:43;;-1:-1:-1;;5005:43:51;;;;;;-1:-1:-1;;;4275:780:51:o;8209:393::-;-1:-1:-1;;;;;8300:36:51;;8280:4;8300:36;;;:23;:36;;;;;;;;8296:78;;;-1:-1:-1;8359:4:51;;8209:393;-1:-1:-1;8209:393:51:o;8296:78::-;8384:12;8425:11;-1:-1:-1;;;;;8406:45:51;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8384:70;;8464:19;8486:5;-1:-1:-1;;;;;8486:17:51;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8464:41;;8519:11;8534:1;8519:16;8515:58;;-1:-1:-1;8558:4:51;;8209:393;-1:-1:-1;;;8209:393:51:o;8515:58::-;-1:-1:-1;8590:5:51;;8209:393;-1:-1:-1;;;8209:393:51:o;7989:152::-;-1:-1:-1;;;;;8100:23:51;;;8074:7;8100:23;;;:10;:23;;;;;;;;:34;;;;;;;;;;7989:152;;;;;:::o;2649:343::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;2783:10:51::1;2769:25;::::0;;;:13:::1;:25;::::0;;;;;;;:36;;::::1;::::0;;::::1;-1:-1:-1::0;;2769:36:51;;::::1;;::::0;;;2815:14:::1;:26:::0;;;;;2769:36;2815:32;;;;;;;;:44;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;2869:33;;;;;;;;:48;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;2932:53;;2869:48;;2815:44;;2932:53:::1;::::0;::::1;2649:343:::0;;;:::o;5284:255::-;5396:10;-1:-1:-1;;;;;5353:53:51;5372:11;-1:-1:-1;;;;;5353:37:51;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5353:53:51;;5349:130;;5429:39;;-1:-1:-1;;;5429:39:51;;-1:-1:-1;;;;;8763:32:165;;5429:39:51;;;8745:51:165;8718:18;;5429:39:51;8599:203:165;5349:130:51;-1:-1:-1;;;;;5489:36:51;;;;;5528:4;5489:36;;;;;;;;:43;;-1:-1:-1;;5489:43:51;;;;;;5284:255::o;6225:419::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;6327:13:51::1;6343:29;6356:10;6368:3;6343:12;:29::i;:::-;6327:45;;6382:14;6399:29;6412:10;6424:3;6399:12;:29::i;:::-;6449:10;6438:22;::::0;;;:10:::1;:22;::::0;;;;;;;-1:-1:-1;;;;;6438:29:51;::::1;::::0;;;;;;;:39;;6382:46;;-1:-1:-1;6471:6:51;;6438:29;;:22;:39:::1;::::0;6471:6;;6438:39:::1;:::i;:::-;::::0;;;-1:-1:-1;;6566:10:51::1;6551:26;::::0;;;:14:::1;:26;::::0;;;;;;;:37;::::1;;::::0;;;;;;;;6518:22;;;:10:::1;:22:::0;;;;;-1:-1:-1;;;;;6518:29:51;::::1;::::0;;;;;;;;;6551:37:::1;::::0;;::::1;::::0;6491:57:::1;::::0;:14:::1;:57::i;:::-;:97;;;6487:150;;;6597:40;::::0;-1:-1:-1;;;6597:40:51;;6618:10:::1;6597:40;::::0;::::1;6731:51:165::0;6798:18;;;6791:34;;;6704:18;;6597:40:51::1;6557:274:165::0;6487:150:51::1;6317:327;;6225:419:::0;;:::o;3407:429::-;3552:10;-1:-1:-1;;;;;3509:53:51;3528:11;-1:-1:-1;;;;;3509:37:51;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3509:53:51;;3505:130;;3585:39;;-1:-1:-1;;;3585:39:51;;-1:-1:-1;;;;;8763:32:165;;3585:39:51;;;8745:51:165;8718:18;;3585:39:51;8599:203:165;3505:130:51;3649:60;;-1:-1:-1;;;3649:60:51;;3703:4;3649:60;;;8745:51:165;-1:-1:-1;;;;;3649:45:51;;;;;8718:18:165;;3649:60:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3645:128;;;3732:30;;-1:-1:-1;;;3732:30:51;;-1:-1:-1;;;;;8763:32:165;;3732:30:51;;;8745:51:165;8718:18;;3732:30:51;8599:203:165;3645:128:51;3783:46;3802:11;3815:3;3820:8;3783:18;:46::i;:::-;3407:429;;;:::o;9874:340::-;9962:7;9981:16;10034:11;-1:-1:-1;;;;;10015:45:51;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10008:85:51;;:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:110;;-1:-1:-1;;;10008:110:51;;-1:-1:-1;;;;;8763:32:165;;;10008:110:51;;;8745:51:165;10008:96:51;;;;;;;8718:18:165;;10008:110:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9981:138;-1:-1:-1;;;;;;10137:22:51;;10129:53;;;;-1:-1:-1;;;10129:53:51;;10170:2:165;10129:53:51;;;10152:21:165;10209:2;10189:18;;;10182:30;-1:-1:-1;;;10228:18:165;;;10221:48;10286:18;;10129:53:51;9968:342:165;10129:53:51;10199:8;9874:340;-1:-1:-1;;;9874:340:51:o;11446:407::-;11534:4;11550:18;11597:11;-1:-1:-1;;;;;11578:58:51;;:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11571:85:51;;:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:117;;-1:-1:-1;;;11571:117:51;;-1:-1:-1;;;;;8763:32:165;;;11571:117:51;;;8745:51:165;11571:103:51;;;;;;;8718:18:165;;11571:117:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11550:138;;11707:11;:16;;11722:1;11707:16;11699:80;;;;-1:-1:-1;;;11699:80:51;;10771:2:165;11699:80:51;;;10753:21:165;10810:2;10790:18;;;10783:30;10849:34;10829:18;;;10822:62;-1:-1:-1;;;10900:18:165;;;10893:49;10959:19;;11699:80:51;10569:415:165;11699:80:51;-1:-1:-1;;;;;11820:26:51;;;;;;:13;:26;;;;;;;11805:41;;;11820:26;;11805:41;;-1:-1:-1;11446:407:51;;;;:::o;10418:563::-;10503:6;10521:12;10562:11;-1:-1:-1;;;;;10543:45:51;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10521:70;;10601:19;10623:5;-1:-1:-1;;;;;10623:17:51;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:41;;10675:1;10661:11;:15;10653:83;;;;-1:-1:-1;;;10653:83:51;;11191:2:165;10653:83:51;;;11173:21:165;11230:2;11210:18;;;11203:30;11269:34;11249:18;;;11242:62;11340:25;11320:18;;;11313:53;11383:19;;10653:83:51;10989:419:165;10653:83:51;10747:16;10766:5;-1:-1:-1;;;;;10766:14:51;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10747:35;;;-1:-1:-1;10874:13:51;10925:39;:7;10874:13;10952:11;10925:14;:39::i;:::-;10898:76;10418:563;-1:-1:-1;;;;;;;10418:563:51:o;9242:203::-;-1:-1:-1;;;;;9341:23:51;;;;;;;:10;:23;;;;;;;;:28;;;;;;;;;;;;;:39;;;9395:43;;4355:25:165;;;9395:43:51;;4328:18:165;9395:43:51;;;;;;;9242:203;;;:::o;3803:4116:160:-;3885:14;4248:5;;;3885:14;-1:-1:-1;;4252:1:160;4248;4420:20;4493:5;4489:2;4486:13;4478:5;4474:2;4470:14;4466:34;4457:43;;;4595:5;4604:1;4595:10;4591:368;;4933:11;4925:5;:19;;;;;:::i;:::-;;4918:26;;;;;;4591:368;5080:5;5065:11;:20;5061:88;;5112:22;;-1:-1:-1;;;5112:22:160;;;;;;;;;;;5061:88;5404:17;5539:11;5536:1;5533;5526:25;5939:12;5969:15;;;5954:31;;6088:22;;;;;6813:1;6794;:15;;6793:21;;7046;;;7042:25;;7031:36;7115:21;;;7111:25;;7100:36;7185:21;;;7181:25;;7170:36;7255:21;;;7251:25;;7240:36;7325:21;;;7321:25;;7310:36;7396:21;;;7392:25;;;7381:36;6333:12;;;;6329:23;;;6354:1;6325:31;5653:20;;;5642:32;;;6445:12;;;;5700:21;;;;6186:16;;;;6436:21;;;;7860:15;;;;;-1:-1:-1;;3803:4116:160;;;;;:::o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:598::-;236:6;244;252;260;313:3;301:9;292:7;288:23;284:33;281:53;;;330:1;327;320:12;281:53;369:9;356:23;388:31;413:5;388:31;:::i;:::-;438:5;-1:-1:-1;495:2:165;480:18;;467:32;508:33;467:32;508:33;:::i;:::-;560:7;-1:-1:-1;614:2:165;599:18;;586:32;;-1:-1:-1;670:2:165;655:18;;642:32;683:33;642:32;683:33;:::i;:::-;150:598;;;;-1:-1:-1;150:598:165;;-1:-1:-1;;150:598:165:o;945:247::-;1004:6;1057:2;1045:9;1036:7;1032:23;1028:32;1025:52;;;1073:1;1070;1063:12;1025:52;1112:9;1099:23;1131:31;1156:5;1131:31;:::i;1197:548::-;1309:4;1338:2;1367;1356:9;1349:21;1399:6;1393:13;1442:6;1437:2;1426:9;1422:18;1415:34;1467:1;1477:140;1491:6;1488:1;1485:13;1477:140;;;1586:14;;;1582:23;;1576:30;1552:17;;;1571:2;1548:26;1541:66;1506:10;;1477:140;;;1481:3;1666:1;1661:2;1652:6;1641:9;1637:22;1633:31;1626:42;1736:2;1729;1725:7;1720:2;1712:6;1708:15;1704:29;1693:9;1689:45;1685:54;1677:62;;;;1197:548;;;;:::o;1750:456::-;1827:6;1835;1843;1896:2;1884:9;1875:7;1871:23;1867:32;1864:52;;;1912:1;1909;1902:12;1864:52;1951:9;1938:23;1970:31;1995:5;1970:31;:::i;:::-;2020:5;-1:-1:-1;2077:2:165;2062:18;;2049:32;2090:33;2049:32;2090:33;:::i;:::-;1750:456;;2142:7;;-1:-1:-1;;;2196:2:165;2181:18;;;;2168:32;;1750:456::o;2211:315::-;2279:6;2287;2340:2;2328:9;2319:7;2315:23;2311:32;2308:52;;;2356:1;2353;2346:12;2308:52;2395:9;2382:23;2414:31;2439:5;2414:31;:::i;:::-;2464:5;2516:2;2501:18;;;;2488:32;;-1:-1:-1;;;2211:315:165:o;2531:367::-;2594:8;2604:6;2658:3;2651:4;2643:6;2639:17;2635:27;2625:55;;2676:1;2673;2666:12;2625:55;-1:-1:-1;2699:20:165;;2742:18;2731:30;;2728:50;;;2774:1;2771;2764:12;2728:50;2811:4;2803:6;2799:17;2787:29;;2871:3;2864:4;2854:6;2851:1;2847:14;2839:6;2835:27;2831:38;2828:47;2825:67;;;2888:1;2885;2878:12;2825:67;2531:367;;;;;:::o;2903:908::-;3034:6;3042;3050;3058;3066;3119:2;3107:9;3098:7;3094:23;3090:32;3087:52;;;3135:1;3132;3125:12;3087:52;3174:9;3161:23;3193:31;3218:5;3193:31;:::i;:::-;3243:5;-1:-1:-1;3299:2:165;3284:18;;3271:32;3322:18;3352:14;;;3349:34;;;3379:1;3376;3369:12;3349:34;3418:70;3480:7;3471:6;3460:9;3456:22;3418:70;:::i;:::-;3507:8;;-1:-1:-1;3392:96:165;-1:-1:-1;3595:2:165;3580:18;;3567:32;;-1:-1:-1;3611:16:165;;;3608:36;;;3640:1;3637;3630:12;3608:36;;3679:72;3743:7;3732:8;3721:9;3717:24;3679:72;:::i;:::-;2903:908;;;;-1:-1:-1;2903:908:165;;-1:-1:-1;3770:8:165;;3653:98;2903:908;-1:-1:-1;;;2903:908:165:o;3816:388::-;3884:6;3892;3945:2;3933:9;3924:7;3920:23;3916:32;3913:52;;;3961:1;3958;3951:12;3913:52;4000:9;3987:23;4019:31;4044:5;4019:31;:::i;:::-;4069:5;-1:-1:-1;4126:2:165;4111:18;;4098:32;4139:33;4098:32;4139:33;:::i;:::-;4191:7;4181:17;;;3816:388;;;;;:::o;4391:117::-;4476:6;4469:5;4465:18;4458:5;4455:29;4445:57;;4498:1;4495;4488:12;4513:523;4587:6;4595;4603;4656:2;4644:9;4635:7;4631:23;4627:32;4624:52;;;4672:1;4669;4662:12;4624:52;4711:9;4698:23;4730:30;4754:5;4730:30;:::i;:::-;4779:5;-1:-1:-1;4836:2:165;4821:18;;4808:32;4849;4808;4849;:::i;:::-;4900:7;-1:-1:-1;4959:2:165;4944:18;;4931:32;4972;4931;4972;:::i;:::-;5023:7;5013:17;;;4513:523;;;;;:::o;5041:127::-;5102:10;5097:3;5093:20;5090:1;5083:31;5133:4;5130:1;5123:15;5157:4;5154:1;5147:15;5173:125;5238:9;;;5259:10;;;5256:36;;;5272:18;;:::i;5303:354::-;5505:2;5487:21;;;5544:2;5524:18;;;5517:30;5583:32;5578:2;5563:18;;5556:60;5648:2;5633:18;;5303:354::o;6022:397::-;6224:2;6206:21;;;6263:2;6243:18;;;6236:30;6302:34;6297:2;6282:18;;6275:62;-1:-1:-1;;;6368:2:165;6353:18;;6346:31;6409:3;6394:19;;6022:397::o;6424:128::-;6491:9;;;6512:11;;;6509:37;;;6526:18;;:::i;7189:1149::-;-1:-1:-1;;;;;7573:15:165;;;7555:34;;7505:2;7608;7626:18;;;7619:30;;;7490:18;;;7684:22;;;7457:4;;7764:6;;7737:3;7722:19;;7457:4;7798:260;7812:6;7809:1;7806:13;7798:260;;;7887:6;7874:20;7907:31;7932:5;7907:31;:::i;:::-;7963:14;;7951:27;;8033:15;;;;7998:12;;;;7834:1;7827:9;7798:260;;;-1:-1:-1;8094:19:165;;;8089:2;8074:18;;8067:47;8123:19;;;-1:-1:-1;;;;;8154:31:165;;8151:51;;;8198:1;8195;8188:12;8151:51;8232:6;8229:1;8225:14;8211:28;;8283:6;8275;8270:2;8265:3;8261:12;8248:42;8311:16;;;8329:2;8307:25;;7189:1149;-1:-1:-1;;;;;;;;;7189:1149:165:o;8343:251::-;8413:6;8466:2;8454:9;8445:7;8441:23;8437:32;8434:52;;;8482:1;8479;8472:12;8434:52;8514:9;8508:16;8533:31;8558:5;8533:31;:::i;8807:277::-;8874:6;8927:2;8915:9;8906:7;8902:23;8898:32;8895:52;;;8943:1;8940;8933:12;8895:52;8975:9;8969:16;9028:5;9021:13;9014:21;9007:5;9004:32;8994:60;;9050:1;9047;9040:12;9089:127;9150:10;9145:3;9141:20;9138:1;9131:31;9181:4;9178:1;9171:15;9205:4;9202:1;9195:15;9221:184;9291:6;9344:2;9332:9;9323:7;9319:23;9315:32;9312:52;;;9360:1;9357;9350:12;9312:52;-1:-1:-1;9383:16:165;;9221:184;-1:-1:-1;9221:184:165:o;10315:249::-;10384:6;10437:2;10425:9;10416:7;10412:23;10408:32;10405:52;;;10453:1;10450;10443:12;10405:52;10485:9;10479:16;10504:30;10528:5;10504:30;:::i;11413:273::-;11481:6;11534:2;11522:9;11513:7;11509:23;11505:32;11502:52;;;11550:1;11547;11540:12;11502:52;11582:9;11576:16;11632:4;11625:5;11621:16;11614:5;11611:27;11601:55;;11652:1;11649;11642:12;11691:127;11752:10;11747:3;11743:20;11740:1;11733:31;11783:4;11780:1;11773:15;11807:4;11804:1;11797:15","linkReferences":{}},"methodIdentifiers":{"batchPreSetModuleState(address,address[],uint256[])":"8f27c0eb","bindCompliance(address)":"4a932544","canComplianceBind(address)":"bcc21053","getIDBalance(address,address)":"cc203f75","isComplianceBound(address)":"4cf4d295","isPlugAndPlay()":"e6f5e807","moduleBurnAction(address,uint256)":"372491a2","moduleCheck(address,address,uint256,address)":"013b7ce4","moduleMintAction(address,uint256)":"f104a8c9","moduleTransferAction(address,address,uint256)":"2cb7e1ec","name()":"06fdde03","preSetModuleState(address,address,uint256)":"f7c4722c","presetCompleted(address)":"dd50b74c","setMaxPercentage(uint16,uint16,uint16)":"d5be92ad","unbindCompliance(address)":"0694a5fb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_id\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_balance\",\"type\":\"uint256[]\"}],\"name\":\"InvalidPresetValues\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"MaxOwnershipExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"OnlyComplianceOwnerCanCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"TokenAlreadyBound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_id\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_balance\",\"type\":\"uint256\"}],\"name\":\"IDBalancePreSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_maxPercetageLocal\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_maxPercetageNonlocal\",\"type\":\"uint256\"}],\"name\":\"MaxPercentageSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_id\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_balance\",\"type\":\"uint256[]\"}],\"name\":\"batchPreSetModuleState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"bindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"canComplianceBind\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_identity\",\"type\":\"address\"}],\"name\":\"getIDBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"isComplianceBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPlugAndPlay\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleBurnAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"moduleCheck\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleMintAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleTransferAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_id\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_balance\",\"type\":\"uint256\"}],\"name\":\"preSetModuleState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"presetCompleted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_country\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_maxLocal\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_maxNonlocal\",\"type\":\"uint16\"}],\"name\":\"setMaxPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"unbindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{\"batchPreSetModuleState(address,address[],uint256[])\":{\"details\":\"make a batch transaction calling preSetModuleState multiple times\",\"params\":{\"_balance\":\"the current balance of the token holder\",\"_compliance\":\"the address of the compliance contract to preset\",\"_id\":\"the ONCHAINID address of the token holder\"}},\"bindCompliance(address)\":{\"details\":\"See {IModule-bindCompliance}.\"},\"canComplianceBind(address)\":{\"details\":\"See {IModule-canComplianceBind}.\"},\"getIDBalance(address,address)\":{\"details\":\"getter for compliance identity balance\",\"params\":{\"_compliance\":\"address of the compliance contract\",\"_identity\":\"ONCHAINID address\"}},\"isComplianceBound(address)\":{\"details\":\"See {IModule-isComplianceBound}.\"},\"isPlugAndPlay()\":{\"details\":\"See {IModule-isPlugAndPlay}.\"},\"moduleBurnAction(address,uint256)\":{\"details\":\"See {IModule-moduleBurnAction}.\"},\"moduleCheck(address,address,uint256,address)\":{\"details\":\"See {IModule-moduleCheck}. checks if the country of address _to is allowed for this _compliance returns TRUE if the country of _to is allowed for this _compliance returns FALSE if the country of _to is not allowed for this _compliance\"},\"moduleMintAction(address,uint256)\":{\"details\":\"See {IModule-moduleMintAction}.\"},\"moduleTransferAction(address,address,uint256)\":{\"details\":\"See {IModule-moduleTransferAction}.\"},\"name()\":{\"details\":\"See {IModule-name}.\"},\"preSetModuleState(address,address,uint256)\":{\"details\":\"pre-set the balance of a token holder per ONCHAINID\",\"params\":{\"_balance\":\"the current balance of the token holder\",\"_compliance\":\"the address of the compliance contract to preset\",\"_id\":\"the ONCHAINID address of the token holder\"}},\"presetCompleted(address)\":{\"details\":\"updates compliance preset status as true\",\"params\":{\"_compliance\":\"the address of the compliance contract\"}},\"setMaxPercentage(uint16,uint16,uint16)\":{\"details\":\"sets max percentage ownership limit for a bound compliance contract\",\"params\":{\"_maxLocal\":\"max percentage of tokens (in basis points (185 = 1.85%)) owned by an local individual\",\"_maxNonlocal\":\"max percentage of tokens (in basis points (185 = 1.85%)) owned by an non-local individual\"}},\"unbindCompliance(address)\":{\"details\":\"See {IModule-unbindCompliance}.\"}},\"title\":\"MaxOwnershipByCountryModule This module manage the token percentage (relative to the token supply) each ONCHAINID is allowed to own\",\"version\":1},\"userdoc\":{\"errors\":{\"MaxOwnershipExceeded(address,uint256)\":[{\"notice\":\"errors\"}]},\"events\":{\"ComplianceBound(address)\":{\"notice\":\"this event is emitted when the compliance contract is bound to the module. the event is emitted by the bindCompliance function `_compliance` is the address of the compliance contract being bound\"},\"ComplianceUnbound(address)\":{\"notice\":\"this event is emitted when the compliance contract is unbound from the module. the event is emitted by the unbindCompliance function `_compliance` is the address of the compliance contract being unbound\"},\"IDBalancePreSet(address,address,uint256)\":{\"notice\":\"this event is emitted when the state of user balances is pre setted. `_compliance` is the address of modular compliance concerned `_id` user ONCHAINID address `_balance` balance setted for the user\"},\"MaxPercentageSet(address,uint256,uint256)\":{\"notice\":\"this event is emitted when the max balance has been set for a compliance bound. `_compliance` is the address of modular compliance concerned `_maxPercetage` is the max amount of tokens that a user can hold .\"}},\"kind\":\"user\",\"methods\":{\"batchPreSetModuleState(address,address[],uint256[])\":{\"notice\":\"Only the owner of the Compliance smart contract can call this function emits _id.length `IDBalancePreSet` events\"},\"preSetModuleState(address,address,uint256)\":{\"notice\":\"Only the owner of the Compliance smart contract can call this function emits a `IDBalancePreSet` event\"},\"presetCompleted(address)\":{\"notice\":\"Only the owner of the Compliance smart contract can call this function\"},\"setMaxPercentage(uint16,uint16,uint16)\":{\"notice\":\"Only the owner of the Compliance smart contract can call this function emits an `MaxPercentageSet` event\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/modular/modules/MaxOwnershipByCountryModule.sol\":\"MaxOwnershipByCountryModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/compliance/modular/modules/AbstractModule.sol\":{\"keccak256\":\"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8\",\"dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu\"]},\"contracts/erc3643/compliance/modular/modules/IModule.sol\":{\"keccak256\":\"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c\",\"dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk\"]},\"contracts/erc3643/compliance/modular/modules/MaxOwnershipByCountryModule.sol\":{\"keccak256\":\"0xbd543c2440dff689a817fddcdfeb8f2872648c2e6b00508e80fc4703475501b6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://547a175418c2e11a1b115a78356b9886fbfc865a06c1830fdd14401611cb9905\",\"dweb:/ipfs/QmetZBZDw8zxKnJ6DaDttU6RBfk9H3rRmBZp1Hcv57Y1u4\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"address[]","name":"_id","type":"address[]"},{"internalType":"uint256[]","name":"_balance","type":"uint256[]"}],"type":"error","name":"InvalidPresetValues"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"type":"error","name":"MaxOwnershipExceeded"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"type":"error","name":"OnlyComplianceOwnerCanCall"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"type":"error","name":"TokenAlreadyBound"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true},{"internalType":"address","name":"_id","type":"address","indexed":true},{"internalType":"uint256","name":"_balance","type":"uint256","indexed":false}],"type":"event","name":"IDBalancePreSet","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true},{"internalType":"uint256","name":"_maxPercetageLocal","type":"uint256","indexed":true},{"internalType":"uint256","name":"_maxPercetageNonlocal","type":"uint256","indexed":true}],"type":"event","name":"MaxPercentageSet","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"address[]","name":"_id","type":"address[]"},{"internalType":"uint256[]","name":"_balance","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchPreSetModuleState"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindCompliance"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"canComplianceBind","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"address","name":"_identity","type":"address"}],"stateMutability":"view","type":"function","name":"getIDBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPlugAndPlay","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleBurnAction"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"moduleCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleMintAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleTransferAction"},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"address","name":"_id","type":"address"},{"internalType":"uint256","name":"_balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"preSetModuleState"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"presetCompleted"},{"inputs":[{"internalType":"uint16","name":"_country","type":"uint16"},{"internalType":"uint16","name":"_maxLocal","type":"uint16"},{"internalType":"uint16","name":"_maxNonlocal","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setMaxPercentage"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindCompliance"}],"devdoc":{"kind":"dev","methods":{"batchPreSetModuleState(address,address[],uint256[])":{"details":"make a batch transaction calling preSetModuleState multiple times","params":{"_balance":"the current balance of the token holder","_compliance":"the address of the compliance contract to preset","_id":"the ONCHAINID address of the token holder"}},"bindCompliance(address)":{"details":"See {IModule-bindCompliance}."},"canComplianceBind(address)":{"details":"See {IModule-canComplianceBind}."},"getIDBalance(address,address)":{"details":"getter for compliance identity balance","params":{"_compliance":"address of the compliance contract","_identity":"ONCHAINID address"}},"isComplianceBound(address)":{"details":"See {IModule-isComplianceBound}."},"isPlugAndPlay()":{"details":"See {IModule-isPlugAndPlay}."},"moduleBurnAction(address,uint256)":{"details":"See {IModule-moduleBurnAction}."},"moduleCheck(address,address,uint256,address)":{"details":"See {IModule-moduleCheck}. checks if the country of address _to is allowed for this _compliance returns TRUE if the country of _to is allowed for this _compliance returns FALSE if the country of _to is not allowed for this _compliance"},"moduleMintAction(address,uint256)":{"details":"See {IModule-moduleMintAction}."},"moduleTransferAction(address,address,uint256)":{"details":"See {IModule-moduleTransferAction}."},"name()":{"details":"See {IModule-name}."},"preSetModuleState(address,address,uint256)":{"details":"pre-set the balance of a token holder per ONCHAINID","params":{"_balance":"the current balance of the token holder","_compliance":"the address of the compliance contract to preset","_id":"the ONCHAINID address of the token holder"}},"presetCompleted(address)":{"details":"updates compliance preset status as true","params":{"_compliance":"the address of the compliance contract"}},"setMaxPercentage(uint16,uint16,uint16)":{"details":"sets max percentage ownership limit for a bound compliance contract","params":{"_maxLocal":"max percentage of tokens (in basis points (185 = 1.85%)) owned by an local individual","_maxNonlocal":"max percentage of tokens (in basis points (185 = 1.85%)) owned by an non-local individual"}},"unbindCompliance(address)":{"details":"See {IModule-unbindCompliance}."}},"version":1},"userdoc":{"kind":"user","methods":{"batchPreSetModuleState(address,address[],uint256[])":{"notice":"Only the owner of the Compliance smart contract can call this function emits _id.length `IDBalancePreSet` events"},"preSetModuleState(address,address,uint256)":{"notice":"Only the owner of the Compliance smart contract can call this function emits a `IDBalancePreSet` event"},"presetCompleted(address)":{"notice":"Only the owner of the Compliance smart contract can call this function"},"setMaxPercentage(uint16,uint16,uint16)":{"notice":"Only the owner of the Compliance smart contract can call this function emits an `MaxPercentageSet` event"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/modular/modules/MaxOwnershipByCountryModule.sol":"MaxOwnershipByCountryModule"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/AbstractModule.sol":{"keccak256":"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3","urls":["bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8","dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/IModule.sol":{"keccak256":"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02","urls":["bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c","dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/MaxOwnershipByCountryModule.sol":{"keccak256":"0xbd543c2440dff689a817fddcdfeb8f2872648c2e6b00508e80fc4703475501b6","urls":["bzz-raw://547a175418c2e11a1b115a78356b9886fbfc865a06c1830fdd14401611cb9905","dweb:/ipfs/QmetZBZDw8zxKnJ6DaDttU6RBfk9H3rRmBZp1Hcv57Y1u4"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"}},"version":1},"id":51} \ No newline at end of file diff --git a/out/MaxOwnershipModule.sol/MaxOwnershipModule.json b/out/MaxOwnershipModule.sol/MaxOwnershipModule.json new file mode 100644 index 0000000..cdc8159 --- /dev/null +++ b/out/MaxOwnershipModule.sol/MaxOwnershipModule.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"batchPreSetModuleState","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_id","type":"address[]","internalType":"address[]"},{"name":"_balance","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canComplianceBind","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getIDBalance","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_identity","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isComplianceBound","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPlugAndPlay","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"moduleBurnAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleCheck","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleMintAction","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleTransferAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"preSetModuleState","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_id","type":"address","internalType":"address"},{"name":"_balance","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"presetCompleted","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxPercentage","inputs":[{"name":"_max","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComplianceBound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ComplianceUnbound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"IDBalancePreSet","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"},{"name":"_id","type":"address","indexed":true,"internalType":"address"},{"name":"_balance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MaxPercentageSet","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"},{"name":"_maxPercetage","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"InvalidPresetValues","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_id","type":"address[]","internalType":"address[]"},{"name":"_balance","type":"uint256[]","internalType":"uint256[]"}]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MaxOwnershipExceeded","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyComplianceOwnerCanCall","inputs":[{"name":"_compliance","type":"address","internalType":"address"}]},{"type":"error","name":"TokenAlreadyBound","inputs":[{"name":"_compliance","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061175d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638f27c0eb11610097578063dd50b74c11610066578063dd50b74c1461022a578063e6f5e8071461023d578063f104a8c914610244578063f7c4722c1461025757600080fd5b80638f27c0eb146101d057806394ab5382146101e3578063bcc21053146101f6578063cc203f751461020957600080fd5b80632cb7e1ec116100d35780632cb7e1ec1461016b578063372491a21461017e5780634a932544146101915780634cf4d295146101a457600080fd5b8063013b7ce4146100fa5780630694a5fb1461012257806306fdde0314610137575b600080fd5b61010d6101083660046111e9565b61026a565b60405190151581526020015b60405180910390f35b61013561013036600461123c565b61030f565b005b60408051808201825260128152714d61784f776e6572736869704d6f64756c6560701b602082015290516101199190611259565b6101356101793660046112a8565b61040e565b61013561018c3660046112e9565b610533565b61013561019f36600461123c565b6105b0565b61010d6101b236600461123c565b6001600160a01b031660009081526020819052604090205460ff1690565b6101356101de366004611361565b6106e3565b6101356101f13660046113e4565b6108d3565b61010d61020436600461123c565b61093f565b61021c6102173660046113fd565b610a50565b604051908152602001610119565b61013561023836600461123c565b610a7d565b600061010d565b6101356102523660046112e9565b610b42565b6101356102653660046112a8565b610c1f565b6001600160a01b03811660009081526002602052604081205461028d8385610d59565b111561029b57506000610307565b60006102a78386610f26565b6001600160a01b0380851660009081526002602090815260408083205460038352818420948616845293909152902054919250906102f19085906102ec90889061144c565b610d59565b1115610301576000915050610307565b60019150505b949350505050565b3360009081526020819052604090205460ff166103475760405162461bcd60e51b815260040161033e9061145f565b60405180910390fd5b6001600160a01b03811661039d5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161033e565b336001600160a01b038216146103c55760405162461bcd60e51b815260040161033e90611496565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff1661043d5760405162461bcd60e51b815260040161033e9061145f565b60006104493385610f26565b905060006104573385610f26565b3360009081526003602090815260408083206001600160a01b038516845290915281208054929350859290919061048f90849061144c565b90915550503360009081526003602090815260408083206001600160a01b0386168452909152812080548592906104c79084906114d7565b909155505033600081815260026020908152604080832054600383528184206001600160a01b038716855290925290912054909161050491610d59565b111561052c5760405163bc37982360e01b81523360048201526024810184905260440161033e565b5050505050565b3360009081526020819052604090205460ff166105625760405162461bcd60e51b815260040161033e9061145f565b600061056e3384610f26565b3360009081526003602090815260408083206001600160a01b03851684529091528120805492935084929091906105a69084906114d7565b9091555050505050565b6001600160a01b0381166106065760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161033e565b6001600160a01b03811660009081526020819052604090205460ff161561066f5760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e640000000000000000604482015260640161033e565b336001600160a01b038216146106975760405162461bcd60e51b815260040161033e90611496565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b828015806106f15750808214155b1561071957858585858560405163355c2bfd60e11b815260040161033e9594939291906114ea565b336001600160a01b0316866001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610761573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107859190611579565b6001600160a01b0316146107b75760405163e8649dab60e01b81526001600160a01b038716600482015260240161033e565b60405163a446d49f60e01b81523060048201526001600160a01b0387169063a446d49f90602401602060405180830381865afa1580156107fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081f9190611596565b156108485760405163346a0c0160e21b81526001600160a01b038716600482015260240161033e565b60005b818110156108a45761089c87878784818110610869576108696115b8565b905060200201602081019061087e919061123c565b868685818110610890576108906115b8565b905060200201356110ac565b60010161084b565b5050506001600160a01b039093166000908152600160208190526040909120805460ff19169091179055505050565b3360009081526020819052604090205460ff166109025760405162461bcd60e51b815260040161033e9061145f565b33600081815260026020526040808220849055518392917f69d3f17a4d359a9ec124095039a7a29ced624e1c6cd5d4f6cbe7ddc0dc434beb91a350565b6001600160a01b03811660009081526001602052604081205460ff161561096857506001919050565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cc9190611579565b90506000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3291906115ce565b905080600003610a46575060019392505050565b5060009392505050565b6001600160a01b038083166000908152600360209081526040808320938516835292905220545b92915050565b336001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae99190611579565b6001600160a01b031614610b1b5760405163e8649dab60e01b81526001600160a01b038216600482015260240161033e565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b3360009081526020819052604090205460ff16610b715760405162461bcd60e51b815260040161033e9061145f565b6000610b7d3384610f26565b3360009081526003602090815260408083206001600160a01b0385168452909152812080549293508492909190610bb590849061144c565b909155505033600081815260026020908152604080832054600383528184206001600160a01b0387168552909252909120549091610bf291610d59565b1115610c1a5760405163bc37982360e01b81523360048201526024810183905260440161033e565b505050565b336001600160a01b0316836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b9190611579565b6001600160a01b031614610cbd5760405163e8649dab60e01b81526001600160a01b038416600482015260240161033e565b60405163a446d49f60e01b81523060048201526001600160a01b0384169063a446d49f90602401602060405180830381865afa158015610d01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d259190611596565b15610d4e5760405163346a0c0160e21b81526001600160a01b038416600482015260240161033e565b610c1a8383836110ac565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbe9190611579565b90506000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2491906115ce565b905060008111610e8d5760405162461bcd60e51b815260206004820152602e60248201527f4d61784f776e6572736869704d6f64756c653a20746f6b656e20746f74616c2060448201526d737570706c79206973207a65726f60901b606482015260840161033e565b6000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef191906115e7565b60ff1690506000610f0382600a6116ee565b610f0e9060646116fa565b9050610f1b86828561110d565b979650505050505050565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8b9190611579565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fec9190611579565b604051633c3ad79560e21b81526001600160a01b038581166004830152919091169063f0eb5e5490602401602060405180830381865afa158015611034573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110589190611579565b90506001600160a01b0381166110a55760405162461bcd60e51b81526020600482015260126024820152711a59195b9d1a5d1e481b9bdd08199bdd5b9960721b604482015260640161033e565b9392505050565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f0a777417e1c0a4b24c5f556b0c3dd522c37b99b2c3ca4bf9fea2fa1293c660c9910160405180910390a3505050565b60008383028160001985870982811083820303915050806000036111445783828161113a5761113a611711565b04925050506110a5565b8084116111645760405163227bc15360e01b815260040160405180910390fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6001600160a01b03811681146111e657600080fd5b50565b600080600080608085870312156111ff57600080fd5b843561120a816111d1565b9350602085013561121a816111d1565b9250604085013591506060850135611231816111d1565b939692955090935050565b60006020828403121561124e57600080fd5b81356110a5816111d1565b60006020808352835180602085015260005b818110156112875785810183015185820160400152820161126b565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806000606084860312156112bd57600080fd5b83356112c8816111d1565b925060208401356112d8816111d1565b929592945050506040919091013590565b600080604083850312156112fc57600080fd5b8235611307816111d1565b946020939093013593505050565b60008083601f84011261132757600080fd5b50813567ffffffffffffffff81111561133f57600080fd5b6020830191508360208260051b850101111561135a57600080fd5b9250929050565b60008060008060006060868803121561137957600080fd5b8535611384816111d1565b9450602086013567ffffffffffffffff808211156113a157600080fd5b6113ad89838a01611315565b909650945060408801359150808211156113c657600080fd5b506113d388828901611315565b969995985093965092949392505050565b6000602082840312156113f657600080fd5b5035919050565b6000806040838503121561141057600080fd5b823561141b816111d1565b9150602083013561142b816111d1565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a77611436565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b81810381811115610a7757610a77611436565b6001600160a01b03868116825260606020808401829052908301869052600091879160808501845b89811015611539578435611525816111d1565b841682529382019390820190600101611512565b5085810360408701528681526001600160fb1b0387111561155957600080fd5b8660051b9350838860208301379092016020019998505050505050505050565b60006020828403121561158b57600080fd5b81516110a5816111d1565b6000602082840312156115a857600080fd5b815180151581146110a557600080fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156115e057600080fd5b5051919050565b6000602082840312156115f957600080fd5b815160ff811681146110a557600080fd5b600181815b8085111561164557816000190482111561162b5761162b611436565b8085161561163857918102915b93841c939080029061160f565b509250929050565b60008261165c57506001610a77565b8161166957506000610a77565b816001811461167f5760028114611689576116a5565b6001915050610a77565b60ff84111561169a5761169a611436565b50506001821b610a77565b5060208310610133831016604e8410600b84101617156116c8575081810a610a77565b6116d2838361160a565b80600019048211156116e6576116e6611436565b029392505050565b60006110a5838361164d565b8082028115828204841417610a7757610a77611436565b634e487b7160e01b600052601260045260246000fdfea26469706673582212204bea209c548eb03cf63583c6a1ae245681b7971c34a93b6fc040bcb2acdb61d764736f6c63430008180033","sourceMap":"438:9691:52:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80638f27c0eb11610097578063dd50b74c11610066578063dd50b74c1461022a578063e6f5e8071461023d578063f104a8c914610244578063f7c4722c1461025757600080fd5b80638f27c0eb146101d057806394ab5382146101e3578063bcc21053146101f6578063cc203f751461020957600080fd5b80632cb7e1ec116100d35780632cb7e1ec1461016b578063372491a21461017e5780634a932544146101915780634cf4d295146101a457600080fd5b8063013b7ce4146100fa5780630694a5fb1461012257806306fdde0314610137575b600080fd5b61010d6101083660046111e9565b61026a565b60405190151581526020015b60405180910390f35b61013561013036600461123c565b61030f565b005b60408051808201825260128152714d61784f776e6572736869704d6f64756c6560701b602082015290516101199190611259565b6101356101793660046112a8565b61040e565b61013561018c3660046112e9565b610533565b61013561019f36600461123c565b6105b0565b61010d6101b236600461123c565b6001600160a01b031660009081526020819052604090205460ff1690565b6101356101de366004611361565b6106e3565b6101356101f13660046113e4565b6108d3565b61010d61020436600461123c565b61093f565b61021c6102173660046113fd565b610a50565b604051908152602001610119565b61013561023836600461123c565b610a7d565b600061010d565b6101356102523660046112e9565b610b42565b6101356102653660046112a8565b610c1f565b6001600160a01b03811660009081526002602052604081205461028d8385610d59565b111561029b57506000610307565b60006102a78386610f26565b6001600160a01b0380851660009081526002602090815260408083205460038352818420948616845293909152902054919250906102f19085906102ec90889061144c565b610d59565b1115610301576000915050610307565b60019150505b949350505050565b3360009081526020819052604090205460ff166103475760405162461bcd60e51b815260040161033e9061145f565b60405180910390fd5b6001600160a01b03811661039d5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161033e565b336001600160a01b038216146103c55760405162461bcd60e51b815260040161033e90611496565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff1661043d5760405162461bcd60e51b815260040161033e9061145f565b60006104493385610f26565b905060006104573385610f26565b3360009081526003602090815260408083206001600160a01b038516845290915281208054929350859290919061048f90849061144c565b90915550503360009081526003602090815260408083206001600160a01b0386168452909152812080548592906104c79084906114d7565b909155505033600081815260026020908152604080832054600383528184206001600160a01b038716855290925290912054909161050491610d59565b111561052c5760405163bc37982360e01b81523360048201526024810184905260440161033e565b5050505050565b3360009081526020819052604090205460ff166105625760405162461bcd60e51b815260040161033e9061145f565b600061056e3384610f26565b3360009081526003602090815260408083206001600160a01b03851684529091528120805492935084929091906105a69084906114d7565b9091555050505050565b6001600160a01b0381166106065760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161033e565b6001600160a01b03811660009081526020819052604090205460ff161561066f5760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e640000000000000000604482015260640161033e565b336001600160a01b038216146106975760405162461bcd60e51b815260040161033e90611496565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b828015806106f15750808214155b1561071957858585858560405163355c2bfd60e11b815260040161033e9594939291906114ea565b336001600160a01b0316866001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610761573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107859190611579565b6001600160a01b0316146107b75760405163e8649dab60e01b81526001600160a01b038716600482015260240161033e565b60405163a446d49f60e01b81523060048201526001600160a01b0387169063a446d49f90602401602060405180830381865afa1580156107fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081f9190611596565b156108485760405163346a0c0160e21b81526001600160a01b038716600482015260240161033e565b60005b818110156108a45761089c87878784818110610869576108696115b8565b905060200201602081019061087e919061123c565b868685818110610890576108906115b8565b905060200201356110ac565b60010161084b565b5050506001600160a01b039093166000908152600160208190526040909120805460ff19169091179055505050565b3360009081526020819052604090205460ff166109025760405162461bcd60e51b815260040161033e9061145f565b33600081815260026020526040808220849055518392917f69d3f17a4d359a9ec124095039a7a29ced624e1c6cd5d4f6cbe7ddc0dc434beb91a350565b6001600160a01b03811660009081526001602052604081205460ff161561096857506001919050565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cc9190611579565b90506000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3291906115ce565b905080600003610a46575060019392505050565b5060009392505050565b6001600160a01b038083166000908152600360209081526040808320938516835292905220545b92915050565b336001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae99190611579565b6001600160a01b031614610b1b5760405163e8649dab60e01b81526001600160a01b038216600482015260240161033e565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b3360009081526020819052604090205460ff16610b715760405162461bcd60e51b815260040161033e9061145f565b6000610b7d3384610f26565b3360009081526003602090815260408083206001600160a01b0385168452909152812080549293508492909190610bb590849061144c565b909155505033600081815260026020908152604080832054600383528184206001600160a01b0387168552909252909120549091610bf291610d59565b1115610c1a5760405163bc37982360e01b81523360048201526024810183905260440161033e565b505050565b336001600160a01b0316836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b9190611579565b6001600160a01b031614610cbd5760405163e8649dab60e01b81526001600160a01b038416600482015260240161033e565b60405163a446d49f60e01b81523060048201526001600160a01b0384169063a446d49f90602401602060405180830381865afa158015610d01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d259190611596565b15610d4e5760405163346a0c0160e21b81526001600160a01b038416600482015260240161033e565b610c1a8383836110ac565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbe9190611579565b90506000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2491906115ce565b905060008111610e8d5760405162461bcd60e51b815260206004820152602e60248201527f4d61784f776e6572736869704d6f64756c653a20746f6b656e20746f74616c2060448201526d737570706c79206973207a65726f60901b606482015260840161033e565b6000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef191906115e7565b60ff1690506000610f0382600a6116ee565b610f0e9060646116fa565b9050610f1b86828561110d565b979650505050505050565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8b9190611579565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fec9190611579565b604051633c3ad79560e21b81526001600160a01b038581166004830152919091169063f0eb5e5490602401602060405180830381865afa158015611034573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110589190611579565b90506001600160a01b0381166110a55760405162461bcd60e51b81526020600482015260126024820152711a59195b9d1a5d1e481b9bdd08199bdd5b9960721b604482015260640161033e565b9392505050565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f0a777417e1c0a4b24c5f556b0c3dd522c37b99b2c3ca4bf9fea2fa1293c660c9910160405180910390a3505050565b60008383028160001985870982811083820303915050806000036111445783828161113a5761113a611711565b04925050506110a5565b8084116111645760405163227bc15360e01b815260040160405180910390fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6001600160a01b03811681146111e657600080fd5b50565b600080600080608085870312156111ff57600080fd5b843561120a816111d1565b9350602085013561121a816111d1565b9250604085013591506060850135611231816111d1565b939692955090935050565b60006020828403121561124e57600080fd5b81356110a5816111d1565b60006020808352835180602085015260005b818110156112875785810183015185820160400152820161126b565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806000606084860312156112bd57600080fd5b83356112c8816111d1565b925060208401356112d8816111d1565b929592945050506040919091013590565b600080604083850312156112fc57600080fd5b8235611307816111d1565b946020939093013593505050565b60008083601f84011261132757600080fd5b50813567ffffffffffffffff81111561133f57600080fd5b6020830191508360208260051b850101111561135a57600080fd5b9250929050565b60008060008060006060868803121561137957600080fd5b8535611384816111d1565b9450602086013567ffffffffffffffff808211156113a157600080fd5b6113ad89838a01611315565b909650945060408801359150808211156113c657600080fd5b506113d388828901611315565b969995985093965092949392505050565b6000602082840312156113f657600080fd5b5035919050565b6000806040838503121561141057600080fd5b823561141b816111d1565b9150602083013561142b816111d1565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a77611436565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b81810381811115610a7757610a77611436565b6001600160a01b03868116825260606020808401829052908301869052600091879160808501845b89811015611539578435611525816111d1565b841682529382019390820190600101611512565b5085810360408701528681526001600160fb1b0387111561155957600080fd5b8660051b9350838860208301379092016020019998505050505050505050565b60006020828403121561158b57600080fd5b81516110a5816111d1565b6000602082840312156115a857600080fd5b815180151581146110a557600080fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156115e057600080fd5b5051919050565b6000602082840312156115f957600080fd5b815160ff811681146110a557600080fd5b600181815b8085111561164557816000190482111561162b5761162b611436565b8085161561163857918102915b93841c939080029061160f565b509250929050565b60008261165c57506001610a77565b8161166957506000610a77565b816001811461167f5760028114611689576116a5565b6001915050610a77565b60ff84111561169a5761169a611436565b50506001821b610a77565b5060208310610133831016604e8410600b84101617156116c8575081810a610a77565b6116d2838361160a565b80600019048211156116e6576116e6611436565b029392505050565b60006110a5838361164d565b8082028115828204841417610a7757610a77611436565b634e487b7160e01b600052601260045260246000fdfea26469706673582212204bea209c548eb03cf63583c6a1ae245681b7971c34a93b6fc040bcb2acdb61d764736f6c63430008180033","sourceMap":"438:9691:52:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6540:515;;;;;;:::i;:::-;;:::i;:::-;;;918:14:165;;911:22;893:41;;881:2;866:18;6540:515:52;;;;;;;;5018:343:44;;;;;;:::i;:::-;;:::i;:::-;;8050:102:52;8118:27;;;;;;;;;;;-1:-1:-1;;;8118:27:52;;;;8050:102;;;;8118:27;8050:102;:::i;5068:481::-;;;;;;:::i;:::-;;:::i;6035:211::-;;;;;;:::i;:::-;;:::i;4555:396:44:-;;;;;;:::i;:::-;;:::i;5429:139::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5532:29:44;5509:4;5532:29;;;;;;;;;;;;;;5429:139;3733:780:52;;;;;;:::i;:::-;;:::i;2282:167::-;;;;;;:::i;:::-;;:::i;7454:393::-;;;;;;:::i;:::-;;:::i;7233:152::-;;;;;;:::i;:::-;;:::i;:::-;;;4540:25:165;;;4528:2;4513:18;7233:152:52;4394:177:165;4742:255:52;;;;;;:::i;:::-;;:::i;7912:83::-;7960:4;7912:83;;5616:352;;;;;;:::i;:::-;;:::i;2864:429::-;;;;;;:::i;:::-;;:::i;6540:515::-;-1:-1:-1;;;;;6758:27:52;;6700:4;6758:27;;;:14;:27;;;;;;6720:35;6773:11;6748:6;6720:14;:35::i;:::-;:65;6716:108;;;-1:-1:-1;6808:5:52;6801:12;;6716:108;6834:11;6848:30;6861:11;6874:3;6848:12;:30::i;:::-;-1:-1:-1;;;;;6962:27:52;;;;;;;:14;:27;;;;;;;;;6921:10;:23;;;;;:28;;;;;;;;;;;;6834:44;;-1:-1:-1;6962:27:52;6893:66;;6977:11;;6921:37;;6952:6;;6921:37;:::i;:::-;6893:14;:66::i;:::-;:96;6889:139;;;7012:5;7005:12;;;;;6889:139;7044:4;7037:11;;;6540:515;;;;;;;:::o;5018:343:44:-;4426:10;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5120:25:44;::::1;5112:69;;;::::0;-1:-1:-1;;;5112:69:44;;5399:2:165;5112:69:44::1;::::0;::::1;5381:21:165::0;5438:2;5418:18;;;5411:30;5477:33;5457:18;;;5450:61;5528:18;;5112:69:44::1;5197:355:165::0;5112:69:44::1;5199:10;-1:-1:-1::0;;;;;5199:25:44;::::1;;5191:71;;;;-1:-1:-1::0;;;5191:71:44::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5272:29:44;::::1;5304:5;5272:29:::0;;;::::1;::::0;;;;;;;:37;;-1:-1:-1;;5272:37:44::1;::::0;;5324:30;::::1;::::0;5304:5;5324:30:::1;5018:343:::0;:::o;5068:481:52:-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;5189:15:52::1;5207:31;5220:10;5232:5;5207:12;:31::i;:::-;5189:49;;5248:13;5264:29;5277:10;5289:3;5264:12;:29::i;:::-;5314:10;5303:22;::::0;;;:10:::1;:22;::::0;;;;;;;-1:-1:-1;;;;;5303:29:52;::::1;::::0;;;;;;;:39;;5248:45;;-1:-1:-1;5336:6:52;;5303:29;;:22;:39:::1;::::0;5336:6;;5303:39:::1;:::i;:::-;::::0;;;-1:-1:-1;;5363:10:52::1;5352:22;::::0;;;:10:::1;:22;::::0;;;;;;;-1:-1:-1;;;;;5352:31:52;::::1;::::0;;;;;;;:41;;5387:6;;5352:22;:41:::1;::::0;5387:6;;5352:41:::1;:::i;:::-;::::0;;;-1:-1:-1;;5482:10:52::1;5467:26;::::0;;;:14:::1;:26;::::0;;;;;;;;5434:10:::1;:22:::0;;;;;-1:-1:-1;;;;;5434:29:52;::::1;::::0;;;;;;;;;5467:26;;5407:57:::1;::::0;:14:::1;:57::i;:::-;:86;5403:139;;;5502:40;::::0;-1:-1:-1;;;5502:40:52;;5523:10:::1;5502:40;::::0;::::1;6266:51:165::0;6333:18;;;6326:34;;;6239:18;;5502:40:52::1;6092:274:165::0;5403:139:52::1;5179:370;;5068:481:::0;;;:::o;6035:211::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;6139:15:52::1;6157:31;6170:10;6182:5;6157:12;:31::i;:::-;6209:10;6198:22;::::0;;;:10:::1;:22;::::0;;;;;;;-1:-1:-1;;;;;6198:31:52;::::1;::::0;;;;;;;:41;;6139:49;;-1:-1:-1;6233:6:52;;6198:31;;:22;:41:::1;::::0;6233:6;;6198:41:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;6035:211:52:o;4555:396:44:-;-1:-1:-1;;;;;4636:25:44;;4628:69;;;;-1:-1:-1;;;4628:69:44;;5399:2:165;4628:69:44;;;5381:21:165;5438:2;5418:18;;;5411:30;5477:33;5457:18;;;5450:61;5528:18;;4628:69:44;5197:355:165;4628:69:44;-1:-1:-1;;;;;4716:29:44;;:16;:29;;;;;;;;;;;;;4715:30;4707:67;;;;-1:-1:-1;;;4707:67:44;;6573:2:165;4707:67:44;;;6555:21:165;6612:2;6592:18;;;6585:30;6651:26;6631:18;;;6624:54;6695:18;;4707:67:44;6371:348:165;4707:67:44;4792:10;-1:-1:-1;;;;;4792:25:44;;;4784:71;;;;-1:-1:-1;;;4784:71:44;;;;;;;:::i;:::-;-1:-1:-1;;;;;4865:29:44;;:16;:29;;;;;;;;;;;:36;;-1:-1:-1;;4865:36:44;4897:4;4865:36;;;4916:28;;;4865:16;4916:28;4555:396;:::o;3733:780:52:-;3903:3;3927:13;;;:44;;-1:-1:-1;3944:27:52;;;;3927:44;3924:128;;;4014:11;4027:3;;4032:8;;3994:47;;-1:-1:-1;;;3994:47:52;;;;;;;;;;;;:::i;3924:128::-;4109:10;-1:-1:-1;;;;;4066:53:52;4085:11;-1:-1:-1;;;;;4066:37:52;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4066:53:52;;4062:130;;4142:39;;-1:-1:-1;;;4142:39:52;;-1:-1:-1;;;;;8298:32:165;;4142:39:52;;;8280:51:165;8253:18;;4142:39:52;8134:203:165;4062:130:52;4206:60;;-1:-1:-1;;;4206:60:52;;4260:4;4206:60;;;8280:51:165;-1:-1:-1;;;;;4206:45:52;;;;;8253:18:165;;4206:60:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4202:128;;;4289:30;;-1:-1:-1;;;4289:30:52;;-1:-1:-1;;;;;8298:32:165;;4289:30:52;;;8280:51:165;8253:18;;4289:30:52;8134:203:165;4202:128:52;4345:6;4340:113;4361:8;4357:1;:12;4340:113;;;4390:52;4409:11;4422:3;;4426:1;4422:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;4430:8;;4439:1;4430:11;;;;;;;:::i;:::-;;;;;;;4390:18;:52::i;:::-;4371:3;;4340:113;;;-1:-1:-1;;;;;;;;4463:36:52;;;;;;;4502:4;4463:36;;;;;;;;:43;;-1:-1:-1;;4463:43:52;;;;;;-1:-1:-1;;;3733:780:52:o;2282:167::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;2375:10:52::1;2360:26;::::0;;;:14:::1;:26;::::0;;;;;:33;;;2408:34;2389:4;;2375:10;2408:34:::1;::::0;::::1;2282:167:::0;:::o;7454:393::-;-1:-1:-1;;;;;7545:36:52;;7525:4;7545:36;;;:23;:36;;;;;;;;7541:78;;;-1:-1:-1;7604:4:52;;7454:393;-1:-1:-1;7454:393:52:o;7541:78::-;7629:12;7670:11;-1:-1:-1;;;;;7651:45:52;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7629:70;;7709:19;7731:5;-1:-1:-1;;;;;7731:17:52;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7709:41;;7764:11;7779:1;7764:16;7760:58;;-1:-1:-1;7803:4:52;;7454:393;-1:-1:-1;;;7454:393:52:o;7760:58::-;-1:-1:-1;7835:5:52;;7454:393;-1:-1:-1;;;7454:393:52:o;7233:152::-;-1:-1:-1;;;;;7344:23:52;;;7318:7;7344:23;;;:10;:23;;;;;;;;:34;;;;;;;;;;7233:152;;;;;:::o;4742:255::-;4854:10;-1:-1:-1;;;;;4811:53:52;4830:11;-1:-1:-1;;;;;4811:37:52;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4811:53:52;;4807:130;;4887:39;;-1:-1:-1;;;4887:39:52;;-1:-1:-1;;;;;8298:32:165;;4887:39:52;;;8280:51:165;8253:18;;4887:39:52;8134:203:165;4807:130:52;-1:-1:-1;;;;;4947:36:52;;;;;4986:4;4947:36;;;;;;;;:43;;-1:-1:-1;;4947:43:52;;;;;;4742:255::o;5616:352::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;5718:13:52::1;5734:29;5747:10;5759:3;5734:12;:29::i;:::-;5784:10;5773:22;::::0;;;:10:::1;:22;::::0;;;;;;;-1:-1:-1;;;;;5773:29:52;::::1;::::0;;;;;;;:39;;5718:45;;-1:-1:-1;5806:6:52;;5773:29;;:22;:39:::1;::::0;5806:6;;5773:39:::1;:::i;:::-;::::0;;;-1:-1:-1;;5901:10:52::1;5886:26;::::0;;;:14:::1;:26;::::0;;;;;;;;5853:10:::1;:22:::0;;;;;-1:-1:-1;;;;;5853:29:52;::::1;::::0;;;;;;;;;5886:26;;5826:57:::1;::::0;:14:::1;:57::i;:::-;:86;5822:139;;;5921:40;::::0;-1:-1:-1;;;5921:40:52;;5942:10:::1;5921:40;::::0;::::1;6266:51:165::0;6333:18;;;6326:34;;;6239:18;;5921:40:52::1;6092:274:165::0;5822:139:52::1;5708:260;5616:352:::0;;:::o;2864:429::-;3009:10;-1:-1:-1;;;;;2966:53:52;2985:11;-1:-1:-1;;;;;2966:37:52;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2966:53:52;;2962:130;;3042:39;;-1:-1:-1;;;3042:39:52;;-1:-1:-1;;;;;8298:32:165;;3042:39:52;;;8280:51:165;8253:18;;3042:39:52;8134:203:165;2962:130:52;3106:60;;-1:-1:-1;;;3106:60:52;;3160:4;3106:60;;;8280:51:165;-1:-1:-1;;;;;3106:45:52;;;;;8253:18:165;;3106:60:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3102:128;;;3189:30;;-1:-1:-1;;;3189:30:52;;-1:-1:-1;;;;;8298:32:165;;3189:30:52;;;8280:51:165;8253:18;;3189:30:52;8134:203:165;3102:128:52;3240:46;3259:11;3272:3;3277:8;3240:18;:46::i;9656:471::-;9741:7;9760:12;9801:11;-1:-1:-1;;;;;9782:45:52;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9760:70;;9840:19;9862:5;-1:-1:-1;;;;;9862:17:52;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9840:41;;9914:1;9900:11;:15;9892:74;;;;-1:-1:-1;;;9892:74:52;;9147:2:165;9892:74:52;;;9129:21:165;9186:2;9166:18;;;9159:30;9225:34;9205:18;;;9198:62;-1:-1:-1;;;9276:18:165;;;9269:44;9330:19;;9892:74:52;8945:410:165;9892:74:52;9977:16;9996:5;-1:-1:-1;;;;;9996:14:52;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9977:35;;;-1:-1:-1;10022:18:52;10049:14;9977:35;10049:2;:14;:::i;:::-;10043:20;;:3;:20;:::i;:::-;10022:41;-1:-1:-1;10081:39:52;:7;10022:41;10108:11;10081:14;:39::i;:::-;10074:46;9656:471;-1:-1:-1;;;;;;;9656:471:52:o;9112:340::-;9200:7;9219:16;9272:11;-1:-1:-1;;;;;9253:45:52;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9246:85:52;;:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:110;;-1:-1:-1;;;9246:110:52;;-1:-1:-1;;;;;8298:32:165;;;9246:110:52;;;8280:51:165;9246:96:52;;;;;;;8253:18:165;;9246:110:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9219:138;-1:-1:-1;;;;;;9375:22:52;;9367:53;;;;-1:-1:-1;;;9367:53:52;;11939:2:165;9367:53:52;;;11921:21:165;11978:2;11958:18;;;11951:30;-1:-1:-1;;;11997:18:165;;;11990:48;12055:18;;9367:53:52;11737:342:165;9367:53:52;9437:8;9112:340;-1:-1:-1;;;9112:340:52:o;8480:203::-;-1:-1:-1;;;;;8579:23:52;;;;;;;:10;:23;;;;;;;;:28;;;;;;;;;;;;;:39;;;8633:43;;4540:25:165;;;8633:43:52;;4513:18:165;8633:43:52;;;;;;;8480:203;;;:::o;3803:4116:160:-;3885:14;4248:5;;;3885:14;-1:-1:-1;;4252:1:160;4248;4420:20;4493:5;4489:2;4486:13;4478:5;4474:2;4470:14;4466:34;4457:43;;;4595:5;4604:1;4595:10;4591:368;;4933:11;4925:5;:19;;;;;:::i;:::-;;4918:26;;;;;;4591:368;5080:5;5065:11;:20;5061:88;;5112:22;;-1:-1:-1;;;5112:22:160;;;;;;;;;;;5061:88;5404:17;5539:11;5536:1;5533;5526:25;5939:12;5969:15;;;5954:31;;6088:22;;;;;6813:1;6794;:15;;6793:21;;7046;;;7042:25;;7031:36;7115:21;;;7111:25;;7100:36;7185:21;;;7181:25;;7170:36;7255:21;;;7251:25;;7240:36;7325:21;;;7321:25;;7310:36;7396:21;;;7392:25;;;7381:36;6333:12;;;;6329:23;;;6354:1;6325:31;5653:20;;;5642:32;;;6445:12;;;;5700:21;;;;6186:16;;;;6436:21;;;;7860:15;;;;;-1:-1:-1;;3803:4116:160;;;;;:::o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:598::-;236:6;244;252;260;313:3;301:9;292:7;288:23;284:33;281:53;;;330:1;327;320:12;281:53;369:9;356:23;388:31;413:5;388:31;:::i;:::-;438:5;-1:-1:-1;495:2:165;480:18;;467:32;508:33;467:32;508:33;:::i;:::-;560:7;-1:-1:-1;614:2:165;599:18;;586:32;;-1:-1:-1;670:2:165;655:18;;642:32;683:33;642:32;683:33;:::i;:::-;150:598;;;;-1:-1:-1;150:598:165;;-1:-1:-1;;150:598:165:o;945:247::-;1004:6;1057:2;1045:9;1036:7;1032:23;1028:32;1025:52;;;1073:1;1070;1063:12;1025:52;1112:9;1099:23;1131:31;1156:5;1131:31;:::i;1197:548::-;1309:4;1338:2;1367;1356:9;1349:21;1399:6;1393:13;1442:6;1437:2;1426:9;1422:18;1415:34;1467:1;1477:140;1491:6;1488:1;1485:13;1477:140;;;1586:14;;;1582:23;;1576:30;1552:17;;;1571:2;1548:26;1541:66;1506:10;;1477:140;;;1481:3;1666:1;1661:2;1652:6;1641:9;1637:22;1633:31;1626:42;1736:2;1729;1725:7;1720:2;1712:6;1708:15;1704:29;1693:9;1689:45;1685:54;1677:62;;;;1197:548;;;;:::o;1750:456::-;1827:6;1835;1843;1896:2;1884:9;1875:7;1871:23;1867:32;1864:52;;;1912:1;1909;1902:12;1864:52;1951:9;1938:23;1970:31;1995:5;1970:31;:::i;:::-;2020:5;-1:-1:-1;2077:2:165;2062:18;;2049:32;2090:33;2049:32;2090:33;:::i;:::-;1750:456;;2142:7;;-1:-1:-1;;;2196:2:165;2181:18;;;;2168:32;;1750:456::o;2211:315::-;2279:6;2287;2340:2;2328:9;2319:7;2315:23;2311:32;2308:52;;;2356:1;2353;2346:12;2308:52;2395:9;2382:23;2414:31;2439:5;2414:31;:::i;:::-;2464:5;2516:2;2501:18;;;;2488:32;;-1:-1:-1;;;2211:315:165:o;2531:367::-;2594:8;2604:6;2658:3;2651:4;2643:6;2639:17;2635:27;2625:55;;2676:1;2673;2666:12;2625:55;-1:-1:-1;2699:20:165;;2742:18;2731:30;;2728:50;;;2774:1;2771;2764:12;2728:50;2811:4;2803:6;2799:17;2787:29;;2871:3;2864:4;2854:6;2851:1;2847:14;2839:6;2835:27;2831:38;2828:47;2825:67;;;2888:1;2885;2878:12;2825:67;2531:367;;;;;:::o;2903:908::-;3034:6;3042;3050;3058;3066;3119:2;3107:9;3098:7;3094:23;3090:32;3087:52;;;3135:1;3132;3125:12;3087:52;3174:9;3161:23;3193:31;3218:5;3193:31;:::i;:::-;3243:5;-1:-1:-1;3299:2:165;3284:18;;3271:32;3322:18;3352:14;;;3349:34;;;3379:1;3376;3369:12;3349:34;3418:70;3480:7;3471:6;3460:9;3456:22;3418:70;:::i;:::-;3507:8;;-1:-1:-1;3392:96:165;-1:-1:-1;3595:2:165;3580:18;;3567:32;;-1:-1:-1;3611:16:165;;;3608:36;;;3640:1;3637;3630:12;3608:36;;3679:72;3743:7;3732:8;3721:9;3717:24;3679:72;:::i;:::-;2903:908;;;;-1:-1:-1;2903:908:165;;-1:-1:-1;3770:8:165;;3653:98;2903:908;-1:-1:-1;;;2903:908:165:o;3816:180::-;3875:6;3928:2;3916:9;3907:7;3903:23;3899:32;3896:52;;;3944:1;3941;3934:12;3896:52;-1:-1:-1;3967:23:165;;3816:180;-1:-1:-1;3816:180:165:o;4001:388::-;4069:6;4077;4130:2;4118:9;4109:7;4105:23;4101:32;4098:52;;;4146:1;4143;4136:12;4098:52;4185:9;4172:23;4204:31;4229:5;4204:31;:::i;:::-;4254:5;-1:-1:-1;4311:2:165;4296:18;;4283:32;4324:33;4283:32;4324:33;:::i;:::-;4376:7;4366:17;;;4001:388;;;;;:::o;4576:127::-;4637:10;4632:3;4628:20;4625:1;4618:31;4668:4;4665:1;4658:15;4692:4;4689:1;4682:15;4708:125;4773:9;;;4794:10;;;4791:36;;;4807:18;;:::i;4838:354::-;5040:2;5022:21;;;5079:2;5059:18;;;5052:30;5118:32;5113:2;5098:18;;5091:60;5183:2;5168:18;;4838:354::o;5557:397::-;5759:2;5741:21;;;5798:2;5778:18;;;5771:30;5837:34;5832:2;5817:18;;5810:62;-1:-1:-1;;;5903:2:165;5888:18;;5881:31;5944:3;5929:19;;5557:397::o;5959:128::-;6026:9;;;6047:11;;;6044:37;;;6061:18;;:::i;6724:1149::-;-1:-1:-1;;;;;7108:15:165;;;7090:34;;7040:2;7143;7161:18;;;7154:30;;;7025:18;;;7219:22;;;6992:4;;7299:6;;7272:3;7257:19;;6992:4;7333:260;7347:6;7344:1;7341:13;7333:260;;;7422:6;7409:20;7442:31;7467:5;7442:31;:::i;:::-;7498:14;;7486:27;;7568:15;;;;7533:12;;;;7369:1;7362:9;7333:260;;;-1:-1:-1;7629:19:165;;;7624:2;7609:18;;7602:47;7658:19;;;-1:-1:-1;;;;;7689:31:165;;7686:51;;;7733:1;7730;7723:12;7686:51;7767:6;7764:1;7760:14;7746:28;;7818:6;7810;7805:2;7800:3;7796:12;7783:42;7846:16;;;7864:2;7842:25;;6724:1149;-1:-1:-1;;;;;;;;;6724:1149:165:o;7878:251::-;7948:6;8001:2;7989:9;7980:7;7976:23;7972:32;7969:52;;;8017:1;8014;8007:12;7969:52;8049:9;8043:16;8068:31;8093:5;8068:31;:::i;8342:277::-;8409:6;8462:2;8450:9;8441:7;8437:23;8433:32;8430:52;;;8478:1;8475;8468:12;8430:52;8510:9;8504:16;8563:5;8556:13;8549:21;8542:5;8539:32;8529:60;;8585:1;8582;8575:12;8624:127;8685:10;8680:3;8676:20;8673:1;8666:31;8716:4;8713:1;8706:15;8740:4;8737:1;8730:15;8756:184;8826:6;8879:2;8867:9;8858:7;8854:23;8850:32;8847:52;;;8895:1;8892;8885:12;8847:52;-1:-1:-1;8918:16:165;;8756:184;-1:-1:-1;8756:184:165:o;9360:273::-;9428:6;9481:2;9469:9;9460:7;9456:23;9452:32;9449:52;;;9497:1;9494;9487:12;9449:52;9529:9;9523:16;9579:4;9572:5;9568:16;9561:5;9558:27;9548:55;;9599:1;9596;9589:12;9638:416;9727:1;9764:5;9727:1;9778:270;9799:7;9789:8;9786:21;9778:270;;;9858:4;9854:1;9850:6;9846:17;9840:4;9837:27;9834:53;;;9867:18;;:::i;:::-;9917:7;9907:8;9903:22;9900:55;;;9937:16;;;;9900:55;10016:22;;;;9976:15;;;;9778:270;;;9782:3;9638:416;;;;;:::o;10059:806::-;10108:5;10138:8;10128:80;;-1:-1:-1;10179:1:165;10193:5;;10128:80;10227:4;10217:76;;-1:-1:-1;10264:1:165;10278:5;;10217:76;10309:4;10327:1;10322:59;;;;10395:1;10390:130;;;;10302:218;;10322:59;10352:1;10343:10;;10366:5;;;10390:130;10427:3;10417:8;10414:17;10411:43;;;10434:18;;:::i;:::-;-1:-1:-1;;10490:1:165;10476:16;;10505:5;;10302:218;;10604:2;10594:8;10591:16;10585:3;10579:4;10576:13;10572:36;10566:2;10556:8;10553:16;10548:2;10542:4;10539:12;10535:35;10532:77;10529:159;;;-1:-1:-1;10641:19:165;;;10673:5;;10529:159;10720:34;10745:8;10739:4;10720:34;:::i;:::-;10790:6;10786:1;10782:6;10778:19;10769:7;10766:32;10763:58;;;10801:18;;:::i;:::-;10839:20;;10059:806;-1:-1:-1;;;10059:806:165:o;10870:131::-;10930:5;10959:36;10986:8;10980:4;10959:36;:::i;11006:168::-;11079:9;;;11110;;11127:15;;;11121:22;;11107:37;11097:71;;11148:18;;:::i;12084:127::-;12145:10;12140:3;12136:20;12133:1;12126:31;12176:4;12173:1;12166:15;12200:4;12197:1;12190:15","linkReferences":{}},"methodIdentifiers":{"batchPreSetModuleState(address,address[],uint256[])":"8f27c0eb","bindCompliance(address)":"4a932544","canComplianceBind(address)":"bcc21053","getIDBalance(address,address)":"cc203f75","isComplianceBound(address)":"4cf4d295","isPlugAndPlay()":"e6f5e807","moduleBurnAction(address,uint256)":"372491a2","moduleCheck(address,address,uint256,address)":"013b7ce4","moduleMintAction(address,uint256)":"f104a8c9","moduleTransferAction(address,address,uint256)":"2cb7e1ec","name()":"06fdde03","preSetModuleState(address,address,uint256)":"f7c4722c","presetCompleted(address)":"dd50b74c","setMaxPercentage(uint256)":"94ab5382","unbindCompliance(address)":"0694a5fb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_id\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_balance\",\"type\":\"uint256[]\"}],\"name\":\"InvalidPresetValues\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"MaxOwnershipExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"OnlyComplianceOwnerCanCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"TokenAlreadyBound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_id\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_balance\",\"type\":\"uint256\"}],\"name\":\"IDBalancePreSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_maxPercetage\",\"type\":\"uint256\"}],\"name\":\"MaxPercentageSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_id\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_balance\",\"type\":\"uint256[]\"}],\"name\":\"batchPreSetModuleState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"bindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"canComplianceBind\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_identity\",\"type\":\"address\"}],\"name\":\"getIDBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"isComplianceBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPlugAndPlay\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleBurnAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"moduleCheck\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleMintAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleTransferAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_id\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_balance\",\"type\":\"uint256\"}],\"name\":\"preSetModuleState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"presetCompleted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_max\",\"type\":\"uint256\"}],\"name\":\"setMaxPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"unbindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{\"batchPreSetModuleState(address,address[],uint256[])\":{\"details\":\"make a batch transaction calling preSetModuleState multiple times\",\"params\":{\"_balance\":\"the current balance of the token holder\",\"_compliance\":\"the address of the compliance contract to preset\",\"_id\":\"the ONCHAINID address of the token holder\"}},\"bindCompliance(address)\":{\"details\":\"See {IModule-bindCompliance}.\"},\"canComplianceBind(address)\":{\"details\":\"See {IModule-canComplianceBind}.\"},\"getIDBalance(address,address)\":{\"details\":\"getter for compliance identity balance\",\"params\":{\"_compliance\":\"address of the compliance contract\",\"_identity\":\"ONCHAINID address\"}},\"isComplianceBound(address)\":{\"details\":\"See {IModule-isComplianceBound}.\"},\"isPlugAndPlay()\":{\"details\":\"See {IModule-isPlugAndPlay}.\"},\"moduleBurnAction(address,uint256)\":{\"details\":\"See {IModule-moduleBurnAction}.\"},\"moduleCheck(address,address,uint256,address)\":{\"details\":\"See {IModule-moduleCheck}. checks if the country of address _to is allowed for this _compliance returns TRUE if the country of _to is allowed for this _compliance returns FALSE if the country of _to is not allowed for this _compliance\"},\"moduleMintAction(address,uint256)\":{\"details\":\"See {IModule-moduleMintAction}.\"},\"moduleTransferAction(address,address,uint256)\":{\"details\":\"See {IModule-moduleTransferAction}.\"},\"name()\":{\"details\":\"See {IModule-name}.\"},\"preSetModuleState(address,address,uint256)\":{\"details\":\"pre-set the balance of a token holder per ONCHAINID\",\"params\":{\"_balance\":\"the current balance of the token holder\",\"_compliance\":\"the address of the compliance contract to preset\",\"_id\":\"the ONCHAINID address of the token holder\"}},\"presetCompleted(address)\":{\"details\":\"updates compliance preset status as true\",\"params\":{\"_compliance\":\"the address of the compliance contract\"}},\"setMaxPercentage(uint256)\":{\"details\":\"sets max percentage ownership limit for a bound compliance contract\",\"params\":{\"_max\":\"max amount of tokens owned by an individual\"}},\"unbindCompliance(address)\":{\"details\":\"See {IModule-unbindCompliance}.\"}},\"title\":\"MaxOwnershipModule This module manage the token percentage (relative to the token supply) each ONCHAINID is allowed to own\",\"version\":1},\"userdoc\":{\"errors\":{\"MaxOwnershipExceeded(address,uint256)\":[{\"notice\":\"errors\"}]},\"events\":{\"ComplianceBound(address)\":{\"notice\":\"this event is emitted when the compliance contract is bound to the module. the event is emitted by the bindCompliance function `_compliance` is the address of the compliance contract being bound\"},\"ComplianceUnbound(address)\":{\"notice\":\"this event is emitted when the compliance contract is unbound from the module. the event is emitted by the unbindCompliance function `_compliance` is the address of the compliance contract being unbound\"},\"IDBalancePreSet(address,address,uint256)\":{\"notice\":\"this event is emitted when the state of user balances is pre setted. `_compliance` is the address of modular compliance concerned `_id` user ONCHAINID address `_balance` balance setted for the user\"},\"MaxPercentageSet(address,uint256)\":{\"notice\":\"this event is emitted when the max balance has been set for a compliance bound. `_compliance` is the address of modular compliance concerned `_maxPercetage` is the max amount of tokens that a user can hold .\"}},\"kind\":\"user\",\"methods\":{\"batchPreSetModuleState(address,address[],uint256[])\":{\"notice\":\"Only the owner of the Compliance smart contract can call this function emits _id.length `IDBalancePreSet` events\"},\"preSetModuleState(address,address,uint256)\":{\"notice\":\"Only the owner of the Compliance smart contract can call this function emits a `IDBalancePreSet` event\"},\"presetCompleted(address)\":{\"notice\":\"Only the owner of the Compliance smart contract can call this function\"},\"setMaxPercentage(uint256)\":{\"notice\":\"Only the owner of the Compliance smart contract can call this function emits an `MaxPercentageSet` event\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/modular/modules/MaxOwnershipModule.sol\":\"MaxOwnershipModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/compliance/modular/modules/AbstractModule.sol\":{\"keccak256\":\"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8\",\"dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu\"]},\"contracts/erc3643/compliance/modular/modules/IModule.sol\":{\"keccak256\":\"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c\",\"dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk\"]},\"contracts/erc3643/compliance/modular/modules/MaxOwnershipModule.sol\":{\"keccak256\":\"0x34c928c332d47c9c5ef05af03f29cab81c98109f0b75b146fdff6089139c5505\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://afb620e051e8fa5d8581fb5ff763a90c299870b214fe2b174abff11aa56f8911\",\"dweb:/ipfs/QmbEGxbqdPo2eSHL2D8uKXL8jPvnxGxDrhPZc64Cv7qvd1\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"address[]","name":"_id","type":"address[]"},{"internalType":"uint256[]","name":"_balance","type":"uint256[]"}],"type":"error","name":"InvalidPresetValues"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"type":"error","name":"MaxOwnershipExceeded"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"type":"error","name":"OnlyComplianceOwnerCanCall"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"type":"error","name":"TokenAlreadyBound"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true},{"internalType":"address","name":"_id","type":"address","indexed":true},{"internalType":"uint256","name":"_balance","type":"uint256","indexed":false}],"type":"event","name":"IDBalancePreSet","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true},{"internalType":"uint256","name":"_maxPercetage","type":"uint256","indexed":true}],"type":"event","name":"MaxPercentageSet","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"address[]","name":"_id","type":"address[]"},{"internalType":"uint256[]","name":"_balance","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchPreSetModuleState"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindCompliance"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"canComplianceBind","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"address","name":"_identity","type":"address"}],"stateMutability":"view","type":"function","name":"getIDBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPlugAndPlay","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleBurnAction"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"moduleCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleMintAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleTransferAction"},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"address","name":"_id","type":"address"},{"internalType":"uint256","name":"_balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"preSetModuleState"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"presetCompleted"},{"inputs":[{"internalType":"uint256","name":"_max","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxPercentage"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindCompliance"}],"devdoc":{"kind":"dev","methods":{"batchPreSetModuleState(address,address[],uint256[])":{"details":"make a batch transaction calling preSetModuleState multiple times","params":{"_balance":"the current balance of the token holder","_compliance":"the address of the compliance contract to preset","_id":"the ONCHAINID address of the token holder"}},"bindCompliance(address)":{"details":"See {IModule-bindCompliance}."},"canComplianceBind(address)":{"details":"See {IModule-canComplianceBind}."},"getIDBalance(address,address)":{"details":"getter for compliance identity balance","params":{"_compliance":"address of the compliance contract","_identity":"ONCHAINID address"}},"isComplianceBound(address)":{"details":"See {IModule-isComplianceBound}."},"isPlugAndPlay()":{"details":"See {IModule-isPlugAndPlay}."},"moduleBurnAction(address,uint256)":{"details":"See {IModule-moduleBurnAction}."},"moduleCheck(address,address,uint256,address)":{"details":"See {IModule-moduleCheck}. checks if the country of address _to is allowed for this _compliance returns TRUE if the country of _to is allowed for this _compliance returns FALSE if the country of _to is not allowed for this _compliance"},"moduleMintAction(address,uint256)":{"details":"See {IModule-moduleMintAction}."},"moduleTransferAction(address,address,uint256)":{"details":"See {IModule-moduleTransferAction}."},"name()":{"details":"See {IModule-name}."},"preSetModuleState(address,address,uint256)":{"details":"pre-set the balance of a token holder per ONCHAINID","params":{"_balance":"the current balance of the token holder","_compliance":"the address of the compliance contract to preset","_id":"the ONCHAINID address of the token holder"}},"presetCompleted(address)":{"details":"updates compliance preset status as true","params":{"_compliance":"the address of the compliance contract"}},"setMaxPercentage(uint256)":{"details":"sets max percentage ownership limit for a bound compliance contract","params":{"_max":"max amount of tokens owned by an individual"}},"unbindCompliance(address)":{"details":"See {IModule-unbindCompliance}."}},"version":1},"userdoc":{"kind":"user","methods":{"batchPreSetModuleState(address,address[],uint256[])":{"notice":"Only the owner of the Compliance smart contract can call this function emits _id.length `IDBalancePreSet` events"},"preSetModuleState(address,address,uint256)":{"notice":"Only the owner of the Compliance smart contract can call this function emits a `IDBalancePreSet` event"},"presetCompleted(address)":{"notice":"Only the owner of the Compliance smart contract can call this function"},"setMaxPercentage(uint256)":{"notice":"Only the owner of the Compliance smart contract can call this function emits an `MaxPercentageSet` event"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/modular/modules/MaxOwnershipModule.sol":"MaxOwnershipModule"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/AbstractModule.sol":{"keccak256":"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3","urls":["bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8","dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/IModule.sol":{"keccak256":"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02","urls":["bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c","dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/MaxOwnershipModule.sol":{"keccak256":"0x34c928c332d47c9c5ef05af03f29cab81c98109f0b75b146fdff6089139c5505","urls":["bzz-raw://afb620e051e8fa5d8581fb5ff763a90c299870b214fe2b174abff11aa56f8911","dweb:/ipfs/QmbEGxbqdPo2eSHL2D8uKXL8jPvnxGxDrhPZc64Cv7qvd1"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"}},"version":1},"id":52} \ No newline at end of file diff --git a/out/MessageHashUtils.sol/MessageHashUtils.json b/out/MessageHashUtils.sol/MessageHashUtils.json new file mode 100644 index 0000000..45974a7 --- /dev/null +++ b/out/MessageHashUtils.sol/MessageHashUtils.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dcd3027b9862834f531d87894941de6a3d93e8f40e46b8750440ffa7b5ecbac664736f6c63430008180033","sourceMap":"521:3235:157:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;521:3235:157;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dcd3027b9862834f531d87894941de6a3d93e8f40e46b8750440ffa7b5ecbac664736f6c63430008180033","sourceMap":"521:3235:157:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing. The library provides methods for generating a hash of a message that conforms to the https://eips.ethereum.org/EIPS/eip-191[EIP 191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712] specifications.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":\"MessageHashUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol":"MessageHashUtils"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"}},"version":1},"id":157} \ No newline at end of file diff --git a/out/MockContract.sol/MockContract.json b/out/MockContract.sol/MockContract.json new file mode 100644 index 0000000..1f8df84 --- /dev/null +++ b/out/MockContract.sol/MockContract.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"identityRegistry","inputs":[],"outputs":[{"name":"identityRegistry","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"investorCountry","inputs":[{"name":"investor","type":"address","internalType":"address"}],"outputs":[{"name":"country","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"setInvestorCountry","inputs":[{"name":"country","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610181806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063134e18f4146100465780637e42683b1461006b578063d8bdf4601461009e575b600080fd5b61004e6100d0565b6040516001600160a01b0390911681526020015b60405180910390f35b61008b6100793660046100f7565b50600054600160a01b900461ffff1690565b60405161ffff9091168152602001610062565b6100ce6100ac366004610127565b6000805461ffff909216600160a01b0261ffff60a01b19909216919091179055565b005b600080546001600160a01b0316156100f257506000546001600160a01b031690565b503090565b60006020828403121561010957600080fd5b81356001600160a01b038116811461012057600080fd5b9392505050565b60006020828403121561013957600080fd5b813561ffff8116811461012057600080fdfea26469706673582212203938412852f602afd276a76f07c6525dca6772d2d3196cb3ac16f93a65be01c164736f6c63430008180033","sourceMap":"61:527:17:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063134e18f4146100465780637e42683b1461006b578063d8bdf4601461009e575b600080fd5b61004e6100d0565b6040516001600160a01b0390911681526020015b60405180910390f35b61008b6100793660046100f7565b50600054600160a01b900461ffff1690565b60405161ffff9091168152602001610062565b6100ce6100ac366004610127565b6000805461ffff909216600160a01b0261ffff60a01b19909216919091179055565b005b600080546001600160a01b0316156100f257506000546001600160a01b031690565b503090565b60006020828403121561010957600080fd5b81356001600160a01b038116811461012057600080fd5b9392505050565b60006020828403121561013957600080fd5b813561ffff8116811461012057600080fdfea26469706673582212203938412852f602afd276a76f07c6525dca6772d2d3196cb3ac16f93a65be01c164736f6c63430008180033","sourceMap":"61:527:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;144:216;;;:::i;:::-;;;-1:-1:-1;;;;;178:32:165;;;160:51;;148:2;133:18;144:216:17;;;;;;;;366:120;;;;;;:::i;:::-;-1:-1:-1;430:14:17;463:16;-1:-1:-1;;;463:16:17;;;;;366:120;;;;687:6:165;675:19;;;657:38;;645:2;630:18;366:120:17;513:188:165;492:94:17;;;;;;:::i;:::-;553:16;:26;;;;;;-1:-1:-1;;;553:26:17;-1:-1:-1;;;;553:26:17;;;;;;;;;492:94;;;144:216;193:24;233:11;;-1:-1:-1;;;;;233:11:17;:25;229:125;;-1:-1:-1;281:11:17;;-1:-1:-1;;;;;281:11:17;;144:216::o;229:125::-;-1:-1:-1;338:4:17;;144:216::o;222:286:165:-;281:6;334:2;322:9;313:7;309:23;305:32;302:52;;;350:1;347;340:12;302:52;376:23;;-1:-1:-1;;;;;428:31:165;;418:42;;408:70;;474:1;471;464:12;408:70;497:5;222:286;-1:-1:-1;;;222:286:165:o;706:272::-;764:6;817:2;805:9;796:7;792:23;788:32;785:52;;;833:1;830;823:12;785:52;872:9;859:23;922:6;915:5;911:18;904:5;901:29;891:57;;944:1;941;934:12","linkReferences":{}},"methodIdentifiers":{"identityRegistry()":"134e18f4","investorCountry(address)":"7e42683b","setInvestorCountry(uint16)":"d8bdf460"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"identityRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"identityRegistry\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"investor\",\"type\":\"address\"}],\"name\":\"investorCountry\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"country\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"country\",\"type\":\"uint16\"}],\"name\":\"setInvestorCountry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/MockContract.sol\":\"MockContract\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/MockContract.sol\":{\"keccak256\":\"0xc484a52d72cbcfed289194cd9cb5f3e857dfe200fc79cace60dcf528876bc758\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d15b9b5e9b5dd0b1107afc14b9299a1a14c84ee727032cbc592c4d6752ef400c\",\"dweb:/ipfs/QmQNWpANYXfp8E1ooLjdaki1yfuj8u1hrL1SQBFK3r1KEK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"identityRegistry","outputs":[{"internalType":"address","name":"identityRegistry","type":"address"}]},{"inputs":[{"internalType":"address","name":"investor","type":"address"}],"stateMutability":"view","type":"function","name":"investorCountry","outputs":[{"internalType":"uint16","name":"country","type":"uint16"}]},{"inputs":[{"internalType":"uint16","name":"country","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setInvestorCountry"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/MockContract.sol":"MockContract"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/MockContract.sol":{"keccak256":"0xc484a52d72cbcfed289194cd9cb5f3e857dfe200fc79cace60dcf528876bc758","urls":["bzz-raw://d15b9b5e9b5dd0b1107afc14b9299a1a14c84ee727032cbc592c4d6752ef400c","dweb:/ipfs/QmQNWpANYXfp8E1ooLjdaki1yfuj8u1hrL1SQBFK3r1KEK"],"license":"GPL-3.0"}},"version":1},"id":17} \ No newline at end of file diff --git a/out/MockERC20.sol/MockERC20.json b/out/MockERC20.sol/MockERC20.json new file mode 100644 index 0000000..764e763 --- /dev/null +++ b/out/MockERC20.sol/MockERC20.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"decimals_","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610e78806100206000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b41146101b5578063a9059cbb146101bd578063d505accf146101d0578063dd62ed3e146101e357600080fd5b80633644e5151461016457806370a082311461016c5780637ecebe001461019557600080fd5b806306fdde03146100d4578063095ea7b3146100f25780631624f6c61461011557806318160ddd1461012a57806323b872dd1461013c578063313ce5671461014f575b600080fd5b6100dc61021c565b6040516100e9919061097b565b60405180910390f35b6101056101003660046109e6565b6102ae565b60405190151581526020016100e9565b610128610123366004610ac4565b61031b565b005b6003545b6040519081526020016100e9565b61010561014a366004610b38565b6103ba565b60025460405160ff90911681526020016100e9565b61012e6104cf565b61012e61017a366004610b74565b6001600160a01b031660009081526004602052604090205490565b61012e6101a3366004610b74565b60086020526000908152604090205481565b6100dc6104f5565b6101056101cb3660046109e6565b610504565b6101286101de366004610b8f565b61059b565b61012e6101f1366004610bf9565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b60606000805461022b90610c2c565b80601f016020809104026020016040519081016040528092919081815260200182805461025790610c2c565b80156102a45780601f10610279576101008083540402835291602001916102a4565b820191906000526020600020905b81548152906001019060200180831161028757829003601f168201915b5050505050905090565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103099086815260200190565b60405180910390a35060015b92915050565b60095460ff16156103695760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064015b60405180910390fd5b60006103758482610cb7565b5060016103828382610cb7565b506002805460ff191660ff831617905561039a6107f9565b6006556103a5610812565b60075550506009805460ff1916600117905550565b6001600160a01b03831660009081526005602090815260408083203384529091528120546000198114610416576103f181846108b5565b6001600160a01b03861660009081526005602090815260408083203384529091529020555b6001600160a01b03851660009081526004602052604090205461043990846108b5565b6001600160a01b0380871660009081526004602052604080822093909355908616815220546104689084610918565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104bc9087815260200190565b60405180910390a3506001949350505050565b60006006546104dc6107f9565b146104ee576104e9610812565b905090565b5060075490565b60606001805461022b90610c2c565b3360009081526004602052604081205461051e90836108b5565b33600090815260046020526040808220929092556001600160a01b0385168152205461054a9083610918565b6001600160a01b0384166000818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103099086815260200190565b428410156105eb5760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610360565b600060016105f76104cf565b6001600160a01b038a16600090815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061064583610d8d565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016106be92919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa15801561071c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906107525750876001600160a01b0316816001600160a01b0316145b61078f5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610360565b6001600160a01b0381811660009081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b60006109778061080b63ffffffff8216565b9250505090565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516108449190610da6565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108756107f9565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000818310156109075760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152606401610360565b6109118284610e1c565b9392505050565b6000806109258385610e2f565b9050838110156109115760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152606401610360565b4690565b60006020808352835180602085015260005b818110156109a95785810183015185820160400152820161098d565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146109e157600080fd5b919050565b600080604083850312156109f957600080fd5b610a02836109ca565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610a3757600080fd5b813567ffffffffffffffff80821115610a5257610a52610a10565b604051601f8301601f19908116603f01168101908282118183101715610a7a57610a7a610a10565b81604052838152866020858801011115610a9357600080fd5b836020870160208301376000602085830101528094505050505092915050565b803560ff811681146109e157600080fd5b600080600060608486031215610ad957600080fd5b833567ffffffffffffffff80821115610af157600080fd5b610afd87838801610a26565b94506020860135915080821115610b1357600080fd5b50610b2086828701610a26565b925050610b2f60408501610ab3565b90509250925092565b600080600060608486031215610b4d57600080fd5b610b56846109ca565b9250610b64602085016109ca565b9150604084013590509250925092565b600060208284031215610b8657600080fd5b610911826109ca565b600080600080600080600060e0888a031215610baa57600080fd5b610bb3886109ca565b9650610bc1602089016109ca565b95506040880135945060608801359350610bdd60808901610ab3565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215610c0c57600080fd5b610c15836109ca565b9150610c23602084016109ca565b90509250929050565b600181811c90821680610c4057607f821691505b602082108103610c6057634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610cb2576000816000526020600020601f850160051c81016020861015610c8f5750805b601f850160051c820191505b81811015610cae57828155600101610c9b565b5050505b505050565b815167ffffffffffffffff811115610cd157610cd1610a10565b610ce581610cdf8454610c2c565b84610c66565b602080601f831160018114610d1a5760008415610d025750858301515b600019600386901b1c1916600185901b178555610cae565b600085815260208120601f198616915b82811015610d4957888601518255948401946001909101908401610d2a565b5085821015610d675787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600060018201610d9f57610d9f610d77565b5060010190565b6000808354610db481610c2c565b60018281168015610dcc5760018114610de157610e10565b60ff1984168752821515830287019450610e10565b8760005260208060002060005b85811015610e075781548a820152908401908201610dee565b50505082870194505b50929695505050505050565b8181038181111561031557610315610d77565b8082018082111561031557610315610d7756fea26469706673582212207d1099de51f519340b2617bb2cf5a05697c891ed7f60f0bb6779e72ef26a56e164736f6c63430008180033","sourceMap":"369:7950:16:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b41146101b5578063a9059cbb146101bd578063d505accf146101d0578063dd62ed3e146101e357600080fd5b80633644e5151461016457806370a082311461016c5780637ecebe001461019557600080fd5b806306fdde03146100d4578063095ea7b3146100f25780631624f6c61461011557806318160ddd1461012a57806323b872dd1461013c578063313ce5671461014f575b600080fd5b6100dc61021c565b6040516100e9919061097b565b60405180910390f35b6101056101003660046109e6565b6102ae565b60405190151581526020016100e9565b610128610123366004610ac4565b61031b565b005b6003545b6040519081526020016100e9565b61010561014a366004610b38565b6103ba565b60025460405160ff90911681526020016100e9565b61012e6104cf565b61012e61017a366004610b74565b6001600160a01b031660009081526004602052604090205490565b61012e6101a3366004610b74565b60086020526000908152604090205481565b6100dc6104f5565b6101056101cb3660046109e6565b610504565b6101286101de366004610b8f565b61059b565b61012e6101f1366004610bf9565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b60606000805461022b90610c2c565b80601f016020809104026020016040519081016040528092919081815260200182805461025790610c2c565b80156102a45780601f10610279576101008083540402835291602001916102a4565b820191906000526020600020905b81548152906001019060200180831161028757829003601f168201915b5050505050905090565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103099086815260200190565b60405180910390a35060015b92915050565b60095460ff16156103695760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064015b60405180910390fd5b60006103758482610cb7565b5060016103828382610cb7565b506002805460ff191660ff831617905561039a6107f9565b6006556103a5610812565b60075550506009805460ff1916600117905550565b6001600160a01b03831660009081526005602090815260408083203384529091528120546000198114610416576103f181846108b5565b6001600160a01b03861660009081526005602090815260408083203384529091529020555b6001600160a01b03851660009081526004602052604090205461043990846108b5565b6001600160a01b0380871660009081526004602052604080822093909355908616815220546104689084610918565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104bc9087815260200190565b60405180910390a3506001949350505050565b60006006546104dc6107f9565b146104ee576104e9610812565b905090565b5060075490565b60606001805461022b90610c2c565b3360009081526004602052604081205461051e90836108b5565b33600090815260046020526040808220929092556001600160a01b0385168152205461054a9083610918565b6001600160a01b0384166000818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103099086815260200190565b428410156105eb5760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610360565b600060016105f76104cf565b6001600160a01b038a16600090815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061064583610d8d565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016106be92919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa15801561071c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906107525750876001600160a01b0316816001600160a01b0316145b61078f5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610360565b6001600160a01b0381811660009081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b60006109778061080b63ffffffff8216565b9250505090565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516108449190610da6565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108756107f9565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000818310156109075760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152606401610360565b6109118284610e1c565b9392505050565b6000806109258385610e2f565b9050838110156109115760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152606401610360565b4690565b60006020808352835180602085015260005b818110156109a95785810183015185820160400152820161098d565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146109e157600080fd5b919050565b600080604083850312156109f957600080fd5b610a02836109ca565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610a3757600080fd5b813567ffffffffffffffff80821115610a5257610a52610a10565b604051601f8301601f19908116603f01168101908282118183101715610a7a57610a7a610a10565b81604052838152866020858801011115610a9357600080fd5b836020870160208301376000602085830101528094505050505092915050565b803560ff811681146109e157600080fd5b600080600060608486031215610ad957600080fd5b833567ffffffffffffffff80821115610af157600080fd5b610afd87838801610a26565b94506020860135915080821115610b1357600080fd5b50610b2086828701610a26565b925050610b2f60408501610ab3565b90509250925092565b600080600060608486031215610b4d57600080fd5b610b56846109ca565b9250610b64602085016109ca565b9150604084013590509250925092565b600060208284031215610b8657600080fd5b610911826109ca565b600080600080600080600060e0888a031215610baa57600080fd5b610bb3886109ca565b9650610bc1602089016109ca565b95506040880135945060608801359350610bdd60808901610ab3565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215610c0c57600080fd5b610c15836109ca565b9150610c23602084016109ca565b90509250929050565b600181811c90821680610c4057607f821691505b602082108103610c6057634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610cb2576000816000526020600020601f850160051c81016020861015610c8f5750805b601f850160051c820191505b81811015610cae57828155600101610c9b565b5050505b505050565b815167ffffffffffffffff811115610cd157610cd1610a10565b610ce581610cdf8454610c2c565b84610c66565b602080601f831160018114610d1a5760008415610d025750858301515b600019600386901b1c1916600185901b178555610cae565b600085815260208120601f198616915b82811015610d4957888601518255948401946001909101908401610d2a565b5085821015610d675787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600060018201610d9f57610d9f610d77565b5060010190565b6000808354610db481610c2c565b60018281168015610dcc5760018114610de157610e10565b60ff1984168752821515830287019450610e10565b8760005260208060002060005b85811015610e075781548a820152908401908201610dee565b50505082870194505b50929695505050505050565b8181038181111561031557610315610d77565b8082018082111561031557610315610d7756fea26469706673582212207d1099de51f519340b2617bb2cf5a05697c891ed7f60f0bb6779e72ef26a56e164736f6c63430008180033","sourceMap":"369:7950:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;677:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3057:221;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:20;;1162:22;1144:41;;1132:2;1117:18;3057:221:16;1004:187:20;2504:365:16;;;;;;:::i;:::-;;:::i;:::-;;1322:100;1403:12;;1322:100;;;2977:25:20;;;2965:2;2950:18;1322:100:16;2831:177:20;3578:472:16;;;;;;:::i;:::-;;:::i;877:92::-;953:9;;877:92;;953:9;;;;3488:36:20;;3476:2;3461:18;877:92:16;3346:184:20;5427:178:16;;;:::i;1428:116::-;;;;;;:::i;:::-;-1:-1:-1;;;;;1520:17:16;1494:7;1520:17;;;:10;:17;;;;;;;1428:116;1970:41;;;;;;:::i;:::-;;;;;;;;;;;;;;775:96;;;:::i;3284:288::-;;;;;;:::i;:::-;;:::i;4239:1182::-;;;;;;:::i;:::-;;:::i;1550:142::-;;;;;;:::i;:::-;-1:-1:-1;;;;;1659:17:16;;;1633:7;1659:17;;;:10;:17;;;;;;;;:26;;;;;;;;;;;;;1550:142;677:92;725:13;757:5;750:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;677:92;:::o;3057:221::-;3167:10;3140:4;3156:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;3156:31:16;;;;;;;;;;:40;;;3212:37;3140:4;;3156:31;;3212:37;;;;3190:6;2977:25:20;;2965:2;2950:18;;2831:177;3212:37:16;;;;;;;;-1:-1:-1;3267:4:16;3057:221;;;;;:::o;2504:365::-;2611:11;;;;2610:12;2602:44;;;;-1:-1:-1;;;2602:44:16;;5371:2:20;2602:44:16;;;5353:21:20;5410:2;5390:18;;;5383:30;-1:-1:-1;;;5429:18:20;;;5422:49;5488:18;;2602:44:16;;;;;;;;;2657:5;:13;2665:5;2657;:13;:::i;:::-;-1:-1:-1;2680:7:16;:17;2690:7;2680;:17;:::i;:::-;-1:-1:-1;2707:9:16;:21;;-1:-1:-1;;2707:21:16;;;;;;;2758:14;:12;:14::i;:::-;2739:16;:33;2809:24;:22;:24::i;:::-;2782;:51;-1:-1:-1;;2844:11:16;:18;;-1:-1:-1;;2844:18:16;2858:4;2844:18;;;-1:-1:-1;2504:365:16:o;3578:472::-;-1:-1:-1;;;;;3709:16:16;;3675:4;3709:16;;;:10;:16;;;;;;;;3726:10;3709:28;;;;;;;;-1:-1:-1;;3788:22:16;;3784:80;;3843:21;3848:7;3857:6;3843:4;:21::i;:::-;-1:-1:-1;;;;;3812:16:16;;;;;;:10;:16;;;;;;;;3829:10;3812:28;;;;;;;:52;3784:80;-1:-1:-1;;;;;3899:16:16;;;;;;:10;:16;;;;;;3894:30;;3917:6;3894:4;:30::i;:::-;-1:-1:-1;;;;;3875:16:16;;;;;;;:10;:16;;;;;;:49;;;;3956:14;;;;;;;3951:28;;3972:6;3951:4;:28::i;:::-;-1:-1:-1;;;;;3934:14:16;;;;;;;:10;:14;;;;;;;:45;;;;3995:26;;;;;;;;;;4014:6;2977:25:20;;2965:2;2950:18;;2831:177;3995:26:16;;;;;;;;-1:-1:-1;4039:4:16;;3578:472;-1:-1:-1;;;;3578:472:16:o;5427:178::-;5484:7;5528:16;;5510:14;:12;:14::i;:::-;:34;:88;;5574:24;:22;:24::i;:::-;5503:95;;5427:178;:::o;5510:88::-;-1:-1:-1;5547:24:16;;;5427:178::o;775:96::-;825:13;857:7;850:14;;;;;:::i;3284:288::-;3420:10;3363:4;3409:22;;;:10;:22;;;;;;3404:36;;3433:6;3404:4;:36::i;:::-;3390:10;3379:22;;;;:10;:22;;;;;;:61;;;;-1:-1:-1;;;;;3472:14:16;;;;;;3467:28;;3488:6;3467:4;:28::i;:::-;-1:-1:-1;;;;;3450:14:16;;;;;;:10;:14;;;;;;;:45;;;;3511:32;;3520:10;;3511:32;;;;3536:6;2977:25:20;;2965:2;2950:18;;2831:177;4239:1182:16;4416:15;4404:8;:27;;4396:63;;;;-1:-1:-1;;;4396:63:16;;7914:2:20;4396:63:16;;;7896:21:20;7953:2;7933:18;;;7926:30;7992:25;7972:18;;;7965:53;8035:18;;4396:63:16;7712:347:20;4396:63:16;4470:24;4497:717;4617:18;:16;:18::i;:::-;-1:-1:-1;;;;;5026:13:16;;;;;;:6;:13;;;;;:15;;4732:157;;4919:5;;4954:7;;4991:5;;5026:15;;:13;:15;;;:::i;:::-;;;;-1:-1:-1;4692:413:16;;;;;;8623:25:20;;;;-1:-1:-1;;;;;8722:15:20;;;8702:18;;;8695:43;8774:15;;;;8754:18;;;8747:43;8806:18;;;8799:34;8849:19;;;8842:35;8893:19;;;8886:35;;;8595:19;;4692:413:16;;;;;;;;;;;;4657:470;;;;;;4547:598;;;;;;;;-1:-1:-1;;;9190:27:20;;9242:1;9233:11;;9226:27;;;;9278:2;9269:12;;9262:28;9315:2;9306:12;;8932:392;4547:598:16;;;;-1:-1:-1;;4547:598:16;;;;;;;;;4520:639;;4547:598;4520:639;;;;4497:717;;;;;;;;;9556:25:20;9629:4;9617:17;;9597:18;;;9590:45;9651:18;;;9644:34;;;9694:18;;;9687:34;;;9528:19;;4497:717:16;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4497:717:16;;-1:-1:-1;;4497:717:16;;;-1:-1:-1;;;;;;;5233:30:16;;;;;;:59;;;5287:5;-1:-1:-1;;;;;5267:25:16;:16;-1:-1:-1;;;;;5267:25:16;;5233:59;5225:86;;;;-1:-1:-1;;;5225:86:16;;9934:2:20;5225:86:16;;;9916:21:20;9973:2;9953:18;;;9946:30;-1:-1:-1;;;9992:18:20;;;9985:44;10046:18;;5225:86:16;9732:338:20;5225:86:16;-1:-1:-1;;;;;5322:28:16;;;;;;;:10;:28;;;;;;;;:37;;;;;;;;;;;;;:45;;;5383:31;2977:25:20;;;5322:37:16;;5383:31;;;;;2950:18:20;5383:31:16;;;;;;;4386:1035;4239:1182;;;;;;;:::o;8017:300::-;8063:15;8140:12;;8297:13;;;;:::i;:::-;8287:23;;8080:237;;8017:300;:::o;5611:404::-;5676:7;5753:95;5882:5;5866:23;;;;;;:::i;:::-;;;;;;;;5907:14;5939;:12;:14::i;:::-;5725:273;;;;;;11184:25:20;;;;11225:18;;11218:34;;;;11268:18;;;11261:34;11311:18;;;11304:34;5979:4:16;11354:19:20;;;11347:61;11156:19;;5725:273:16;;;;;;;;;;;;5702:306;;;;;;5695:313;;5611:404;:::o;7038:154::-;7097:7;7129:1;7124;:6;;7116:47;;;;-1:-1:-1;;;7116:47:16;;11621:2:20;7116:47:16;;;11603:21:20;11660:2;11640:18;;;11633:30;11699;11679:18;;;11672:58;11747:18;;7116:47:16;11419:352:20;7116:47:16;7180:5;7184:1;7180;:5;:::i;:::-;7173:12;7038:154;-1:-1:-1;;;7038:154:16:o;6859:173::-;6918:7;;6949:5;6953:1;6949;:5;:::i;:::-;6937:17;;6977:1;6972;:6;;6964:43;;;;-1:-1:-1;;;6964:43:16;;12241:2:20;6964:43:16;;;12223:21:20;12280:2;12260:18;;;12253:30;12319:26;12299:18;;;12292:54;12363:18;;6964:43:16;12039:348:20;7735:276:16;7918:9;;7735:276::o;14:548:20:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:20;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:20:o;1196:127::-;1257:10;1252:3;1248:20;1245:1;1238:31;1288:4;1285:1;1278:15;1312:4;1309:1;1302:15;1328:719;1371:5;1424:3;1417:4;1409:6;1405:17;1401:27;1391:55;;1442:1;1439;1432:12;1391:55;1478:6;1465:20;1504:18;1541:2;1537;1534:10;1531:36;;;1547:18;;:::i;:::-;1622:2;1616:9;1590:2;1676:13;;-1:-1:-1;;1672:22:20;;;1696:2;1668:31;1664:40;1652:53;;;1720:18;;;1740:22;;;1717:46;1714:72;;;1766:18;;:::i;:::-;1806:10;1802:2;1795:22;1841:2;1833:6;1826:18;1887:3;1880:4;1875:2;1867:6;1863:15;1859:26;1856:35;1853:55;;;1904:1;1901;1894:12;1853:55;1968:2;1961:4;1953:6;1949:17;1942:4;1934:6;1930:17;1917:54;2015:1;2008:4;2003:2;1995:6;1991:15;1987:26;1980:37;2035:6;2026:15;;;;;;1328:719;;;;:::o;2052:156::-;2118:20;;2178:4;2167:16;;2157:27;;2147:55;;2198:1;2195;2188:12;2213:613;2308:6;2316;2324;2377:2;2365:9;2356:7;2352:23;2348:32;2345:52;;;2393:1;2390;2383:12;2345:52;2433:9;2420:23;2462:18;2503:2;2495:6;2492:14;2489:34;;;2519:1;2516;2509:12;2489:34;2542:50;2584:7;2575:6;2564:9;2560:22;2542:50;:::i;:::-;2532:60;;2645:2;2634:9;2630:18;2617:32;2601:48;;2674:2;2664:8;2661:16;2658:36;;;2690:1;2687;2680:12;2658:36;;2713:52;2757:7;2746:8;2735:9;2731:24;2713:52;:::i;:::-;2703:62;;;2784:36;2816:2;2805:9;2801:18;2784:36;:::i;:::-;2774:46;;2213:613;;;;;:::o;3013:328::-;3090:6;3098;3106;3159:2;3147:9;3138:7;3134:23;3130:32;3127:52;;;3175:1;3172;3165:12;3127:52;3198:29;3217:9;3198:29;:::i;:::-;3188:39;;3246:38;3280:2;3269:9;3265:18;3246:38;:::i;:::-;3236:48;;3331:2;3320:9;3316:18;3303:32;3293:42;;3013:328;;;;;:::o;3717:186::-;3776:6;3829:2;3817:9;3808:7;3804:23;3800:32;3797:52;;;3845:1;3842;3835:12;3797:52;3868:29;3887:9;3868:29;:::i;3908:606::-;4019:6;4027;4035;4043;4051;4059;4067;4120:3;4108:9;4099:7;4095:23;4091:33;4088:53;;;4137:1;4134;4127:12;4088:53;4160:29;4179:9;4160:29;:::i;:::-;4150:39;;4208:38;4242:2;4231:9;4227:18;4208:38;:::i;:::-;4198:48;;4293:2;4282:9;4278:18;4265:32;4255:42;;4344:2;4333:9;4329:18;4316:32;4306:42;;4367:37;4399:3;4388:9;4384:19;4367:37;:::i;:::-;4357:47;;4451:3;4440:9;4436:19;4423:33;4413:43;;4503:3;4492:9;4488:19;4475:33;4465:43;;3908:606;;;;;;;;;;:::o;4519:260::-;4587:6;4595;4648:2;4636:9;4627:7;4623:23;4619:32;4616:52;;;4664:1;4661;4654:12;4616:52;4687:29;4706:9;4687:29;:::i;:::-;4677:39;;4735:38;4769:2;4758:9;4754:18;4735:38;:::i;:::-;4725:48;;4519:260;;;;;:::o;4784:380::-;4863:1;4859:12;;;;4906;;;4927:61;;4981:4;4973:6;4969:17;4959:27;;4927:61;5034:2;5026:6;5023:14;5003:18;5000:38;4997:161;;5080:10;5075:3;5071:20;5068:1;5061:31;5115:4;5112:1;5105:15;5143:4;5140:1;5133:15;4997:161;;4784:380;;;:::o;5643:543::-;5745:2;5740:3;5737:11;5734:446;;;5781:1;5805:5;5802:1;5795:16;5849:4;5846:1;5836:18;5919:2;5907:10;5903:19;5900:1;5896:27;5890:4;5886:38;5955:4;5943:10;5940:20;5937:47;;;-1:-1:-1;5978:4:20;5937:47;6033:2;6028:3;6024:12;6021:1;6017:20;6011:4;6007:31;5997:41;;6088:82;6106:2;6099:5;6096:13;6088:82;;;6151:17;;;6132:1;6121:13;6088:82;;;6092:3;;;5734:446;5643:543;;;:::o;6362:1345::-;6488:3;6482:10;6515:18;6507:6;6504:30;6501:56;;;6537:18;;:::i;:::-;6566:97;6656:6;6616:38;6648:4;6642:11;6616:38;:::i;:::-;6610:4;6566:97;:::i;:::-;6718:4;;6775:2;6764:14;;6792:1;6787:663;;;;7494:1;7511:6;7508:89;;;-1:-1:-1;7563:19:20;;;7557:26;7508:89;-1:-1:-1;;6319:1:20;6315:11;;;6311:24;6307:29;6297:40;6343:1;6339:11;;;6294:57;7610:81;;6757:944;;6787:663;5590:1;5583:14;;;5627:4;5614:18;;-1:-1:-1;;6823:20:20;;;6941:236;6955:7;6952:1;6949:14;6941:236;;;7044:19;;;7038:26;7023:42;;7136:27;;;;7104:1;7092:14;;;;6971:19;;6941:236;;;6945:3;7205:6;7196:7;7193:19;7190:201;;;7266:19;;;7260:26;-1:-1:-1;;7349:1:20;7345:14;;;7361:3;7341:24;7337:37;7333:42;7318:58;7303:74;;7190:201;-1:-1:-1;;;;;7437:1:20;7421:14;;;7417:22;7404:36;;-1:-1:-1;6362:1345:20:o;8064:127::-;8125:10;8120:3;8116:20;8113:1;8106:31;8156:4;8153:1;8146:15;8180:4;8177:1;8170:15;8196:135;8235:3;8256:17;;;8253:43;;8276:18;;:::i;:::-;-1:-1:-1;8323:1:20;8312:13;;8196:135::o;10075:845::-;10205:3;10234:1;10267:6;10261:13;10297:36;10323:9;10297:36;:::i;:::-;10352:1;10369:17;;;10395:133;;;;10542:1;10537:358;;;;10362:533;;10395:133;-1:-1:-1;;10428:24:20;;10416:37;;10501:14;;10494:22;10482:35;;10473:45;;;-1:-1:-1;10395:133:20;;10537:358;10568:6;10565:1;10558:17;10598:4;10643;10640:1;10630:18;10670:1;10684:165;10698:6;10695:1;10692:13;10684:165;;;10776:14;;10763:11;;;10756:35;10819:16;;;;10713:10;;10684:165;;;10688:3;;;10878:6;10873:3;10869:16;10862:23;;10362:533;-1:-1:-1;10911:3:20;;10075:845;-1:-1:-1;;;;;;10075:845:20:o;11776:128::-;11843:9;;;11864:11;;;11861:37;;;11878:18;;:::i;11909:125::-;11974:9;;;11995:10;;;11992:36;;;12008:18;;:::i","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","initialize(string,string,uint8)":"1624f6c6","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"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\":\"Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC20.sol\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set, where `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\"},\"initialize(string,string,uint8)\":{\"details\":\"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once.\"}},\"stateVariables\":{\"initialized\":{\"details\":\"A bool to track whether the contract has been initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`\"},\"approve(address,uint256)\":{\"notice\":\"Sets `amount` as the allowance of `spender` over the caller's tokens.\"},\"decimals()\":{\"notice\":\"Returns the decimals places of the token.\"},\"name()\":{\"notice\":\"Returns the name of the token.\"},\"symbol()\":{\"notice\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"notice\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"notice\":\"Moves `amount` tokens from the caller's account to `to`.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance.\"}},\"notice\":\"This is a mock contract of the ERC20 standard for testing purposes only, it SHOULD NOT be used in production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/mocks/MockERC20.sol\":\"MockERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729"},"initialize(string,string,uint8)":{"details":"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once."}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`"},"approve(address,uint256)":{"notice":"Sets `amount` as the allowance of `spender` over the caller's tokens."},"decimals()":{"notice":"Returns the decimals places of the token."},"name()":{"notice":"Returns the name of the token."},"symbol()":{"notice":"Returns the symbol of the token."},"totalSupply()":{"notice":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"notice":"Moves `amount` tokens from the caller's account to `to`."},"transferFrom(address,address,uint256)":{"notice":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance."}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/mocks/MockERC20.sol":"MockERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"}},"version":1},"id":16} \ No newline at end of file diff --git a/out/MockERC721.sol/MockERC721.json b/out/MockERC721.sol/MockERC721.json new file mode 100644 index 0000000..11e8896 --- /dev/null +++ b/out/MockERC721.sol/MockERC721.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_operator","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"_from","type":"address","indexed":true,"internalType":"address"},{"name":"_to","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610f7c806100206000396000f3fe6080604052600436106100dd5760003560e01c80636352211e1161007f578063a22cb46511610059578063a22cb46514610245578063b88d4fde14610265578063c87b56dd14610278578063e985e9c51461029957600080fd5b80636352211e146101e257806370a082311461020257806395d89b411461023057600080fd5b8063095ea7b3116100bb578063095ea7b31461018757806323b872dd1461019c57806342842e0e146101af5780634cd88b76146101c257600080fd5b806301ffc9a7146100e257806306fdde0314610117578063081812fc14610139575b600080fd5b3480156100ee57600080fd5b506101026100fd366004610a33565b6102e2565b60405190151581526020015b60405180910390f35b34801561012357600080fd5b5061012c610334565b60405161010e9190610a9d565b34801561014557600080fd5b5061016f610154366004610ab0565b6000908152600460205260409020546001600160a01b031690565b6040516001600160a01b03909116815260200161010e565b61019a610195366004610ae0565b6103c6565b005b61019a6101aa366004610b0a565b6104ad565b61019a6101bd366004610b0a565b6106a6565b3480156101ce57600080fd5b5061019a6101dd366004610bf2565b610795565b3480156101ee57600080fd5b5061016f6101fd366004610ab0565b610809565b34801561020e57600080fd5b5061022261021d366004610c56565b610860565b60405190815260200161010e565b34801561023c57600080fd5b5061012c6108c3565b34801561025157600080fd5b5061019a610260366004610c71565b6108d2565b61019a610273366004610cad565b61093e565b34801561028457600080fd5b5061012c610293366004610ab0565b50606090565b3480156102a557600080fd5b506101026102b4366004610d29565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006301ffc9a760e01b6001600160e01b03198316148061031357506380ac58cd60e01b6001600160e01b03198316145b8061032e5750635b5e139f60e01b6001600160e01b03198316145b92915050565b60606000805461034390610d5c565b80601f016020809104026020016040519081016040528092919081815260200182805461036f90610d5c565b80156103bc5780601f10610391576101008083540402835291602001916103bc565b820191906000526020600020905b81548152906001019060200180831161039f57829003601f168201915b5050505050905090565b6000818152600260205260409020546001600160a01b03163381148061040f57506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6104515760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064015b60405180910390fd5b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000818152600260205260409020546001600160a01b038481169116146105035760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b6044820152606401610448565b6001600160a01b03821661054d5760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b6044820152606401610448565b336001600160a01b038416148061058757506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b806105a857506000818152600460205260409020546001600160a01b031633145b6105e55760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610448565b6001600160a01b038316600090815260036020526040812080549161060983610dac565b90915550506001600160a01b038216600090815260036020526040812080549161063283610dc3565b9091555050600081815260026020908152604080832080546001600160a01b038088166001600160a01b031992831681179093556004909452828520805490911690559051849391928716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6106b18383836104ad565b813b15806107515750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610721573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107459190610ddc565b6001600160e01b031916145b6107905760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610448565b505050565b60065460ff16156107de5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b6044820152606401610448565b60006107ea8382610e49565b5060016107f78282610e49565b50506006805460ff1916600117905550565b6000818152600260205260409020546001600160a01b03168061085b5760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b6044820152606401610448565b919050565b60006001600160a01b0382166108a75760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610448565b506001600160a01b031660009081526003602052604090205490565b60606001805461034390610d5c565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6109498484846104ad565b823b15806109d55750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a0290610986903390899088908890600401610f09565b6020604051808303816000875af11580156109a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c99190610ddc565b6001600160e01b031916145b610a145760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610448565b50505050565b6001600160e01b031981168114610a3057600080fd5b50565b600060208284031215610a4557600080fd5b8135610a5081610a1a565b9392505050565b6000815180845260005b81811015610a7d57602081850181015186830182015201610a61565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610a506020830184610a57565b600060208284031215610ac257600080fd5b5035919050565b80356001600160a01b038116811461085b57600080fd5b60008060408385031215610af357600080fd5b610afc83610ac9565b946020939093013593505050565b600080600060608486031215610b1f57600080fd5b610b2884610ac9565b9250610b3660208501610ac9565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115610b7757610b77610b46565b604051601f8501601f19908116603f01168101908282118183101715610b9f57610b9f610b46565b81604052809350858152868686011115610bb857600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112610be357600080fd5b610a5083833560208501610b5c565b60008060408385031215610c0557600080fd5b823567ffffffffffffffff80821115610c1d57600080fd5b610c2986838701610bd2565b93506020850135915080821115610c3f57600080fd5b50610c4c85828601610bd2565b9150509250929050565b600060208284031215610c6857600080fd5b610a5082610ac9565b60008060408385031215610c8457600080fd5b610c8d83610ac9565b915060208301358015158114610ca257600080fd5b809150509250929050565b60008060008060808587031215610cc357600080fd5b610ccc85610ac9565b9350610cda60208601610ac9565b925060408501359150606085013567ffffffffffffffff811115610cfd57600080fd5b8501601f81018713610d0e57600080fd5b610d1d87823560208401610b5c565b91505092959194509250565b60008060408385031215610d3c57600080fd5b610d4583610ac9565b9150610d5360208401610ac9565b90509250929050565b600181811c90821680610d7057607f821691505b602082108103610d9057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600081610dbb57610dbb610d96565b506000190190565b600060018201610dd557610dd5610d96565b5060010190565b600060208284031215610dee57600080fd5b8151610a5081610a1a565b601f821115610790576000816000526020600020601f850160051c81016020861015610e225750805b601f850160051c820191505b81811015610e4157828155600101610e2e565b505050505050565b815167ffffffffffffffff811115610e6357610e63610b46565b610e7781610e718454610d5c565b84610df9565b602080601f831160018114610eac5760008415610e945750858301515b600019600386901b1c1916600185901b178555610e41565b600085815260208120601f198616915b82811015610edb57888601518255948401946001909101908401610ebc565b5085821015610ef95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610f3c90830184610a57565b969550505050505056fea2646970667358221220aadff2e7859bf2cf1859d7efb18913b4b914b4d7f5dacda8572e883f7cece2bb64736f6c63430008180033","sourceMap":"403:7498:17:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100dd5760003560e01c80636352211e1161007f578063a22cb46511610059578063a22cb46514610245578063b88d4fde14610265578063c87b56dd14610278578063e985e9c51461029957600080fd5b80636352211e146101e257806370a082311461020257806395d89b411461023057600080fd5b8063095ea7b3116100bb578063095ea7b31461018757806323b872dd1461019c57806342842e0e146101af5780634cd88b76146101c257600080fd5b806301ffc9a7146100e257806306fdde0314610117578063081812fc14610139575b600080fd5b3480156100ee57600080fd5b506101026100fd366004610a33565b6102e2565b60405190151581526020015b60405180910390f35b34801561012357600080fd5b5061012c610334565b60405161010e9190610a9d565b34801561014557600080fd5b5061016f610154366004610ab0565b6000908152600460205260409020546001600160a01b031690565b6040516001600160a01b03909116815260200161010e565b61019a610195366004610ae0565b6103c6565b005b61019a6101aa366004610b0a565b6104ad565b61019a6101bd366004610b0a565b6106a6565b3480156101ce57600080fd5b5061019a6101dd366004610bf2565b610795565b3480156101ee57600080fd5b5061016f6101fd366004610ab0565b610809565b34801561020e57600080fd5b5061022261021d366004610c56565b610860565b60405190815260200161010e565b34801561023c57600080fd5b5061012c6108c3565b34801561025157600080fd5b5061019a610260366004610c71565b6108d2565b61019a610273366004610cad565b61093e565b34801561028457600080fd5b5061012c610293366004610ab0565b50606090565b3480156102a557600080fd5b506101026102b4366004610d29565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006301ffc9a760e01b6001600160e01b03198316148061031357506380ac58cd60e01b6001600160e01b03198316145b8061032e5750635b5e139f60e01b6001600160e01b03198316145b92915050565b60606000805461034390610d5c565b80601f016020809104026020016040519081016040528092919081815260200182805461036f90610d5c565b80156103bc5780601f10610391576101008083540402835291602001916103bc565b820191906000526020600020905b81548152906001019060200180831161039f57829003601f168201915b5050505050905090565b6000818152600260205260409020546001600160a01b03163381148061040f57506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6104515760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064015b60405180910390fd5b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000818152600260205260409020546001600160a01b038481169116146105035760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b6044820152606401610448565b6001600160a01b03821661054d5760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b6044820152606401610448565b336001600160a01b038416148061058757506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b806105a857506000818152600460205260409020546001600160a01b031633145b6105e55760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610448565b6001600160a01b038316600090815260036020526040812080549161060983610dac565b90915550506001600160a01b038216600090815260036020526040812080549161063283610dc3565b9091555050600081815260026020908152604080832080546001600160a01b038088166001600160a01b031992831681179093556004909452828520805490911690559051849391928716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6106b18383836104ad565b813b15806107515750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610721573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107459190610ddc565b6001600160e01b031916145b6107905760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610448565b505050565b60065460ff16156107de5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b6044820152606401610448565b60006107ea8382610e49565b5060016107f78282610e49565b50506006805460ff1916600117905550565b6000818152600260205260409020546001600160a01b03168061085b5760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b6044820152606401610448565b919050565b60006001600160a01b0382166108a75760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610448565b506001600160a01b031660009081526003602052604090205490565b60606001805461034390610d5c565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6109498484846104ad565b823b15806109d55750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a0290610986903390899088908890600401610f09565b6020604051808303816000875af11580156109a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c99190610ddc565b6001600160e01b031916145b610a145760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610448565b50505050565b6001600160e01b031981168114610a3057600080fd5b50565b600060208284031215610a4557600080fd5b8135610a5081610a1a565b9392505050565b6000815180845260005b81811015610a7d57602081850181015186830182015201610a61565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610a506020830184610a57565b600060208284031215610ac257600080fd5b5035919050565b80356001600160a01b038116811461085b57600080fd5b60008060408385031215610af357600080fd5b610afc83610ac9565b946020939093013593505050565b600080600060608486031215610b1f57600080fd5b610b2884610ac9565b9250610b3660208501610ac9565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115610b7757610b77610b46565b604051601f8501601f19908116603f01168101908282118183101715610b9f57610b9f610b46565b81604052809350858152868686011115610bb857600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112610be357600080fd5b610a5083833560208501610b5c565b60008060408385031215610c0557600080fd5b823567ffffffffffffffff80821115610c1d57600080fd5b610c2986838701610bd2565b93506020850135915080821115610c3f57600080fd5b50610c4c85828601610bd2565b9150509250929050565b600060208284031215610c6857600080fd5b610a5082610ac9565b60008060408385031215610c8457600080fd5b610c8d83610ac9565b915060208301358015158114610ca257600080fd5b809150509250929050565b60008060008060808587031215610cc357600080fd5b610ccc85610ac9565b9350610cda60208601610ac9565b925060408501359150606085013567ffffffffffffffff811115610cfd57600080fd5b8501601f81018713610d0e57600080fd5b610d1d87823560208401610b5c565b91505092959194509250565b60008060408385031215610d3c57600080fd5b610d4583610ac9565b9150610d5360208401610ac9565b90509250929050565b600181811c90821680610d7057607f821691505b602082108103610d9057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600081610dbb57610dbb610d96565b506000190190565b600060018201610dd557610dd5610d96565b5060010190565b600060208284031215610dee57600080fd5b8151610a5081610a1a565b601f821115610790576000816000526020600020601f850160051c81016020861015610e225750805b601f850160051c820191505b81811015610e4157828155600101610e2e565b505050505050565b815167ffffffffffffffff811115610e6357610e63610b46565b610e7781610e718454610d5c565b84610df9565b602080601f831160018114610eac5760008415610e945750858301515b600019600386901b1c1916600185901b178555610e41565b600085815260208120601f198616915b82811015610edb57888601518255948401946001909101908401610ebc565b5085821015610ef95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610f3c90830184610a57565b969550505050505056fea2646970667358221220aadff2e7859bf2cf1859d7efb18913b4b914b4d7f5dacda8572e883f7cece2bb64736f6c63430008180033","sourceMap":"403:7498:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5376:332;;;;;;;;;;-1:-1:-1;5376:332:17;;;;;:::i;:::-;;:::i;:::-;;;565:14:20;;558:22;540:41;;528:2;513:18;5376:332:17;;;;;;;;693:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1949:120::-;;;;;;;;;;-1:-1:-1;1949:120:17;;;;;:::i;:::-;2020:7;2046:16;;;:12;:16;;;;;;-1:-1:-1;;;;;2046:16:17;;1949:120;;;;-1:-1:-1;;;;;1594:32:20;;;1576:51;;1564:2;1549:18;1949:120:17;1430:203:20;3128:301:17;;;;;;:::i;:::-;;:::i;:::-;;3654:693;;;;;;:::i;:::-;;:::i;4353:386::-;;;;;;:::i;:::-;;:::i;2728:212::-;;;;;;;;;;-1:-1:-1;2728:212:17;;;;;:::i;:::-;;:::i;1280:158::-;;;;;;;;;;-1:-1:-1;1280:158:17;;;;;:::i;:::-;;:::i;1444:177::-;;;;;;;;;;-1:-1:-1;1444:177:17;;;;;:::i;:::-;;:::i;:::-;;;4289:25:20;;;4277:2;4262:18;1444:177:17;4143::20;791:96:17;;;;;;;;;;;;;:::i;3435:213::-;;;;;;;;;;-1:-1:-1;3435:213:17;;;;;:::i;:::-;;:::i;4745:443::-;;;;;;:::i;:::-;;:::i;893:85::-;;;;;;;;;;-1:-1:-1;893:85:17;;;;;:::i;:::-;-1:-1:-1;961:13:17;;893:85;2075:161;;;;;;;;;;-1:-1:-1;2075:161:17;;;;;:::i;:::-;-1:-1:-1;;;;;2195:24:17;;;2172:4;2195:24;;;:17;:24;;;;;;;;:34;;;;;;;;;;;;;;;2075:161;5376:332;5461:4;-1:-1:-1;;;;;;;;;5484:25:17;;;;:100;;-1:-1:-1;;;;;;;;;;5559:25:17;;;5484:100;:175;;;-1:-1:-1;;;;;;;;;;5634:25:17;;;5484:175;5477:182;5376:332;-1:-1:-1;;5376:332:17:o;693:92::-;741:13;773:5;766:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;693:92;:::o;3128:301::-;3216:13;3232:12;;;:8;:12;;;;;;-1:-1:-1;;;;;3232:12:17;3263:10;:19;;;:59;;-1:-1:-1;;;;;;3286:24:17;;;;;;:17;:24;;;;;;;;3311:10;3286:36;;;;;;;;;;3263:59;3255:86;;;;-1:-1:-1;;;3255:86:17;;6201:2:20;3255:86:17;;;6183:21:20;6240:2;6220:18;;;6213:30;-1:-1:-1;;;6259:18:20;;;6252:44;6313:18;;3255:86:17;;;;;;;;;3352:16;;;;:12;:16;;;;;;:26;;-1:-1:-1;;;;;;3352:26:17;-1:-1:-1;;;;;3352:26:17;;;;;;;;;3394:28;;3352:16;;3394:28;;;;;;;3206:223;3128:301;;:::o;3654:693::-;3772:12;;;;:8;:12;;;;;;-1:-1:-1;;;;;3764:20:17;;;3772:12;;3764:20;3756:43;;;;-1:-1:-1;;;3756:43:17;;6544:2:20;3756:43:17;;;6526:21:20;6583:2;6563:18;;;6556:30;-1:-1:-1;;;6602:18:20;;;6595:40;6652:18;;3756:43:17;6342:334:20;3756:43:17;-1:-1:-1;;;;;3818:16:17;;3810:46;;;;-1:-1:-1;;;3810:46:17;;6883:2:20;3810:46:17;;;6865:21:20;6922:2;6902:18;;;6895:30;-1:-1:-1;;;6941:18:20;;;6934:47;6998:18;;3810:46:17;6681:341:20;3810:46:17;3888:10;-1:-1:-1;;;;;3888:18:17;;;;:57;;-1:-1:-1;;;;;;3910:23:17;;;;;;:17;:23;;;;;;;;3934:10;3910:35;;;;;;;;;;3888:57;:91;;;-1:-1:-1;3963:16:17;;;;:12;:16;;;;;;-1:-1:-1;;;;;3963:16:17;3949:10;:30;3888:91;3867:152;;;;-1:-1:-1;;;3867:152:17;;6201:2:20;3867:152:17;;;6183:21:20;6240:2;6220:18;;;6213:30;-1:-1:-1;;;6259:18:20;;;6252:44;6313:18;;3867:152:17;5999:338:20;3867:152:17;-1:-1:-1;;;;;4195:16:17;;;;;;:10;:16;;;;;:18;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;4224:14:17;;;;;;:10;:14;;;;;:16;;;;;;:::i;:::-;;;;-1:-1:-1;;4251:12:17;;;;:8;:12;;;;;;;;:17;;-1:-1:-1;;;;;4251:17:17;;;-1:-1:-1;;;;;;4251:17:17;;;;;;;;4286:12;:16;;;;;;4279:23;;;;;;;4318:22;;4260:2;;4251:17;;4318:22;;;;;;3654:693;;;:::o;4353:386::-;4459:26;4472:4;4478:2;4482;4459:12;:26::i;:::-;7833:18;;7878:14;;4517:173;;-1:-1:-1;4553:67:17;;-1:-1:-1;;;4553:67:17;;;4595:10;4553:67;;;7745:34:20;-1:-1:-1;;;;;7815:15:20;;;7795:18;;;7788:43;7847:18;;;7840:34;;;7910:3;7890:18;;;7883:31;-1:-1:-1;7930:19:20;;;7923:30;4644:46:17;;4553:41;;;;4644:46;;7970:19:20;;4553:67:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;4553:137:17;;4517:173;4496:236;;;;-1:-1:-1;;;4496:236:17;;8456:2:20;4496:236:17;;;8438:21:20;8495:2;8475:18;;;8468:30;-1:-1:-1;;;8514:18:20;;;8507:46;8570:18;;4496:236:17;8254:340:20;4496:236:17;4353:386;;;:::o;2728:212::-;2818:11;;;;2817:12;2809:44;;;;-1:-1:-1;;;2809:44:17;;8801:2:20;2809:44:17;;;8783:21:20;8840:2;8820:18;;;8813:30;-1:-1:-1;;;8859:18:20;;;8852:49;8918:18;;2809:44:17;8599:343:20;2809:44:17;2864:5;:13;2872:5;2864;:13;:::i;:::-;-1:-1:-1;2887:7:17;:17;2897:7;2887;:17;:::i;:::-;-1:-1:-1;;2915:11:17;:18;;-1:-1:-1;;2915:18:17;2929:4;2915:18;;;-1:-1:-1;2728:212:17:o;1280:158::-;1347:13;1389:12;;;:8;:12;;;;;;-1:-1:-1;;;;;1389:12:17;;1372:59;;;;-1:-1:-1;;;1372:59:17;;11344:2:20;1372:59:17;;;11326:21:20;11383:2;11363:18;;;11356:30;-1:-1:-1;;;11402:18:20;;;11395:40;11452:18;;1372:59:17;11142:334:20;1372:59:17;1280:158;;;:::o;1444:177::-;1516:7;-1:-1:-1;;;;;1543:19:17;;1535:44;;;;-1:-1:-1;;;1535:44:17;;11683:2:20;1535:44:17;;;11665:21:20;11722:2;11702:18;;;11695:30;-1:-1:-1;;;11741:18:20;;;11734:42;11793:18;;1535:44:17;11481:336:20;1535:44:17;-1:-1:-1;;;;;;1597:17:17;;;;;:10;:17;;;;;;;1444:177::o;791:96::-;841:13;873:7;866:14;;;;;:::i;3435:213::-;3547:10;3529:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;3529:39:17;;;;;;;;;;;;:50;;-1:-1:-1;;3529:50:17;;;;;;;;;;3595:46;;540:41:20;;;3529:39:17;;3547:10;3595:46;;513:18:20;3595:46:17;;;;;;;3435:213;;:::o;4745:443::-;4906:26;4919:4;4925:2;4929;4906:12;:26::i;:::-;7833:18;;7878:14;;4964:175;;-1:-1:-1;5000:69:17;;-1:-1:-1;;;5000:69:17;;;5093:46;-1:-1:-1;;;;;5000:41:17;;;5093:46;;5000:69;;5042:10;;5054:4;;5060:2;;5064:4;;5000:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;5000:139:17;;4964:175;4943:238;;;;-1:-1:-1;;;4943:238:17;;8456:2:20;4943:238:17;;;8438:21:20;8495:2;8475:18;;;8468:30;-1:-1:-1;;;8514:18:20;;;8507:46;8570:18;;4943:238:17;8254:340:20;4943:238:17;4745:443;;;;:::o;14:131:20:-;-1:-1:-1;;;;;;88:32:20;;78:43;;68:71;;135:1;132;125:12;68:71;14:131;:::o;150:245::-;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;:::-;384:5;150:245;-1:-1:-1;;;150:245:20:o;592:423::-;634:3;672:5;666:12;699:6;694:3;687:19;724:1;734:162;748:6;745:1;742:13;734:162;;;810:4;866:13;;;862:22;;856:29;838:11;;;834:20;;827:59;763:12;734:162;;;738:3;941:1;934:4;925:6;920:3;916:16;912:27;905:38;1004:4;997:2;993:7;988:2;980:6;976:15;972:29;967:3;963:39;959:50;952:57;;;592:423;;;;:::o;1020:220::-;1169:2;1158:9;1151:21;1132:4;1189:45;1230:2;1219:9;1215:18;1207:6;1189:45;:::i;1245:180::-;1304:6;1357:2;1345:9;1336:7;1332:23;1328:32;1325:52;;;1373:1;1370;1363:12;1325:52;-1:-1:-1;1396:23:20;;1245:180;-1:-1:-1;1245:180:20:o;1638:173::-;1706:20;;-1:-1:-1;;;;;1755:31:20;;1745:42;;1735:70;;1801:1;1798;1791:12;1816:254;1884:6;1892;1945:2;1933:9;1924:7;1920:23;1916:32;1913:52;;;1961:1;1958;1951:12;1913:52;1984:29;2003:9;1984:29;:::i;:::-;1974:39;2060:2;2045:18;;;;2032:32;;-1:-1:-1;;;1816:254:20:o;2075:328::-;2152:6;2160;2168;2221:2;2209:9;2200:7;2196:23;2192:32;2189:52;;;2237:1;2234;2227:12;2189:52;2260:29;2279:9;2260:29;:::i;:::-;2250:39;;2308:38;2342:2;2331:9;2327:18;2308:38;:::i;:::-;2298:48;;2393:2;2382:9;2378:18;2365:32;2355:42;;2075:328;;;;;:::o;2408:127::-;2469:10;2464:3;2460:20;2457:1;2450:31;2500:4;2497:1;2490:15;2524:4;2521:1;2514:15;2540:632;2605:5;2635:18;2676:2;2668:6;2665:14;2662:40;;;2682:18;;:::i;:::-;2757:2;2751:9;2725:2;2811:15;;-1:-1:-1;;2807:24:20;;;2833:2;2803:33;2799:42;2787:55;;;2857:18;;;2877:22;;;2854:46;2851:72;;;2903:18;;:::i;:::-;2943:10;2939:2;2932:22;2972:6;2963:15;;3002:6;2994;2987:22;3042:3;3033:6;3028:3;3024:16;3021:25;3018:45;;;3059:1;3056;3049:12;3018:45;3109:6;3104:3;3097:4;3089:6;3085:17;3072:44;3164:1;3157:4;3148:6;3140;3136:19;3132:30;3125:41;;;;2540:632;;;;;:::o;3177:222::-;3220:5;3273:3;3266:4;3258:6;3254:17;3250:27;3240:55;;3291:1;3288;3281:12;3240:55;3313:80;3389:3;3380:6;3367:20;3360:4;3352:6;3348:17;3313:80;:::i;3404:543::-;3492:6;3500;3553:2;3541:9;3532:7;3528:23;3524:32;3521:52;;;3569:1;3566;3559:12;3521:52;3609:9;3596:23;3638:18;3679:2;3671:6;3668:14;3665:34;;;3695:1;3692;3685:12;3665:34;3718:50;3760:7;3751:6;3740:9;3736:22;3718:50;:::i;:::-;3708:60;;3821:2;3810:9;3806:18;3793:32;3777:48;;3850:2;3840:8;3837:16;3834:36;;;3866:1;3863;3856:12;3834:36;;3889:52;3933:7;3922:8;3911:9;3907:24;3889:52;:::i;:::-;3879:62;;;3404:543;;;;;:::o;3952:186::-;4011:6;4064:2;4052:9;4043:7;4039:23;4035:32;4032:52;;;4080:1;4077;4070:12;4032:52;4103:29;4122:9;4103:29;:::i;4325:347::-;4390:6;4398;4451:2;4439:9;4430:7;4426:23;4422:32;4419:52;;;4467:1;4464;4457:12;4419:52;4490:29;4509:9;4490:29;:::i;:::-;4480:39;;4569:2;4558:9;4554:18;4541:32;4616:5;4609:13;4602:21;4595:5;4592:32;4582:60;;4638:1;4635;4628:12;4582:60;4661:5;4651:15;;;4325:347;;;;;:::o;4677:667::-;4772:6;4780;4788;4796;4849:3;4837:9;4828:7;4824:23;4820:33;4817:53;;;4866:1;4863;4856:12;4817:53;4889:29;4908:9;4889:29;:::i;:::-;4879:39;;4937:38;4971:2;4960:9;4956:18;4937:38;:::i;:::-;4927:48;;5022:2;5011:9;5007:18;4994:32;4984:42;;5077:2;5066:9;5062:18;5049:32;5104:18;5096:6;5093:30;5090:50;;;5136:1;5133;5126:12;5090:50;5159:22;;5212:4;5204:13;;5200:27;-1:-1:-1;5190:55:20;;5241:1;5238;5231:12;5190:55;5264:74;5330:7;5325:2;5312:16;5307:2;5303;5299:11;5264:74;:::i;:::-;5254:84;;;4677:667;;;;;;;:::o;5349:260::-;5417:6;5425;5478:2;5466:9;5457:7;5453:23;5449:32;5446:52;;;5494:1;5491;5484:12;5446:52;5517:29;5536:9;5517:29;:::i;:::-;5507:39;;5565:38;5599:2;5588:9;5584:18;5565:38;:::i;:::-;5555:48;;5349:260;;;;;:::o;5614:380::-;5693:1;5689:12;;;;5736;;;5757:61;;5811:4;5803:6;5799:17;5789:27;;5757:61;5864:2;5856:6;5853:14;5833:18;5830:38;5827:161;;5910:10;5905:3;5901:20;5898:1;5891:31;5945:4;5942:1;5935:15;5973:4;5970:1;5963:15;5827:161;;5614:380;;;:::o;7027:127::-;7088:10;7083:3;7079:20;7076:1;7069:31;7119:4;7116:1;7109:15;7143:4;7140:1;7133:15;7159:136;7198:3;7226:5;7216:39;;7235:18;;:::i;:::-;-1:-1:-1;;;7271:18:20;;7159:136::o;7300:135::-;7339:3;7360:17;;;7357:43;;7380:18;;:::i;:::-;-1:-1:-1;7427:1:20;7416:13;;7300:135::o;8000:249::-;8069:6;8122:2;8110:9;8101:7;8097:23;8093:32;8090:52;;;8138:1;8135;8128:12;8090:52;8170:9;8164:16;8189:30;8213:5;8189:30;:::i;9073:543::-;9175:2;9170:3;9167:11;9164:446;;;9211:1;9235:5;9232:1;9225:16;9279:4;9276:1;9266:18;9349:2;9337:10;9333:19;9330:1;9326:27;9320:4;9316:38;9385:4;9373:10;9370:20;9367:47;;;-1:-1:-1;9408:4:20;9367:47;9463:2;9458:3;9454:12;9451:1;9447:20;9441:4;9437:31;9427:41;;9518:82;9536:2;9529:5;9526:13;9518:82;;;9581:17;;;9562:1;9551:13;9518:82;;;9522:3;;;9073:543;;;:::o;9792:1345::-;9918:3;9912:10;9945:18;9937:6;9934:30;9931:56;;;9967:18;;:::i;:::-;9996:97;10086:6;10046:38;10078:4;10072:11;10046:38;:::i;:::-;10040:4;9996:97;:::i;:::-;10148:4;;10205:2;10194:14;;10222:1;10217:663;;;;10924:1;10941:6;10938:89;;;-1:-1:-1;10993:19:20;;;10987:26;10938:89;-1:-1:-1;;9749:1:20;9745:11;;;9741:24;9737:29;9727:40;9773:1;9769:11;;;9724:57;11040:81;;10187:944;;10217:663;9020:1;9013:14;;;9057:4;9044:18;;-1:-1:-1;;10253:20:20;;;10371:236;10385:7;10382:1;10379:14;10371:236;;;10474:19;;;10468:26;10453:42;;10566:27;;;;10534:1;10522:14;;;;10401:19;;10371:236;;;10375:3;10635:6;10626:7;10623:19;10620:201;;;10696:19;;;10690:26;-1:-1:-1;;10779:1:20;10775:14;;;10791:3;10771:24;10767:37;10763:42;10748:58;10733:74;;10620:201;-1:-1:-1;;;;;10867:1:20;10851:14;;;10847:22;10834:36;;-1:-1:-1;9792:1345:20:o;11822:489::-;-1:-1:-1;;;;;12091:15:20;;;12073:34;;12143:15;;12138:2;12123:18;;12116:43;12190:2;12175:18;;12168:34;;;12238:3;12233:2;12218:18;;12211:31;;;12016:4;;12259:46;;12285:19;;12277:6;12259:46;:::i;:::-;12251:54;11822:489;-1:-1:-1;;;;;;11822:489:20:o","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","initialize(string,string)":"4cd88b76","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC721.sol\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"This emits when the approved address for an NFT is changed or reaffirmed. The zero address indicates there is no approved address. When a Transfer event emits, this also indicates that the approved address for that NFT (if any) is reset to none.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"This emits when an operator is enabled or disabled for an owner. The operator can manage all NFTs of the owner.\"},\"Transfer(address,address,uint256)\":{\"details\":\"This emits when ownership of any NFT changes by any mechanism. This event emits when NFTs are created (`from` == 0) and destroyed (`to` == 0). Exception: during contract creation, any number of NFTs may be created and assigned without emitting Transfer. At the time of any transfer, the approved address for that NFT (if any) is reset to none.\"}},\"kind\":\"dev\",\"methods\":{\"initialize(string,string)\":{\"details\":\"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once.\"}},\"stateVariables\":{\"initialized\":{\"details\":\"A bool to track whether the contract has been initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"name()\":{\"notice\":\"A descriptive name for a collection of NFTs in this contract\"},\"symbol()\":{\"notice\":\"An abbreviated name for NFTs in this contract\"}},\"notice\":\"This is a mock contract of the ERC721 standard for testing purposes only, it SHOULD NOT be used in production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/mocks/MockERC721.sol\":\"MockERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87\",\"dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_approved","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_operator","type":"address","indexed":true},{"internalType":"bool","name":"_approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":true},{"internalType":"address","name":"_to","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"initialize(string,string)":{"details":"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once."}},"version":1},"userdoc":{"kind":"user","methods":{"name()":{"notice":"A descriptive name for a collection of NFTs in this contract"},"symbol()":{"notice":"An abbreviated name for NFTs in this contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/mocks/MockERC721.sol":"MockERC721"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9","urls":["bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87","dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv"],"license":"MIT"}},"version":1},"id":17} \ No newline at end of file diff --git a/out/MockOracle.sol/MockPyth.json b/out/MockOracle.sol/MockPyth.json new file mode 100644 index 0000000..b96ea5b --- /dev/null +++ b/out/MockOracle.sol/MockPyth.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"getEmaPrice","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"price","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getEmaPriceNoOlderThan","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"age","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"price","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getEmaPriceUnsafe","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"price","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getPrice","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"price","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getPriceNoOlderThan","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"age","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"price","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getPriceUnsafe","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"price","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getUpdateFee","inputs":[{"name":"updateData","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"feeAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getValidTimePeriod","inputs":[],"outputs":[{"name":"validTimePeriod","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parsePriceFeedUpdates","inputs":[{"name":"updateData","type":"bytes[]","internalType":"bytes[]"},{"name":"priceIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"minPublishTime","type":"uint64","internalType":"uint64"},{"name":"maxPublishTime","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"priceFeeds","type":"tuple[]","internalType":"struct PythStructs.PriceFeed[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"price","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]},{"name":"emaPrice","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"parsePriceFeedUpdatesUnique","inputs":[{"name":"updateData","type":"bytes[]","internalType":"bytes[]"},{"name":"priceIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"minPublishTime","type":"uint64","internalType":"uint64"},{"name":"maxPublishTime","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"priceFeeds","type":"tuple[]","internalType":"struct PythStructs.PriceFeed[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"price","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]},{"name":"emaPrice","type":"tuple","internalType":"struct PythStructs.Price","components":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"prices","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setPrice","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"price","type":"int64","internalType":"int64"},{"name":"conf","type":"uint64","internalType":"uint64"},{"name":"expo","type":"int32","internalType":"int32"},{"name":"publishTime","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePriceFeeds","inputs":[{"name":"updateData","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"updatePriceFeedsIfNecessary","inputs":[{"name":"updateData","type":"bytes[]","internalType":"bytes[]"},{"name":"priceIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"publishTimes","type":"uint64[]","internalType":"uint64[]"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"PriceFeedUpdate","inputs":[{"name":"id","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"publishTime","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"price","type":"int64","indexed":false,"internalType":"int64"},{"name":"conf","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506107e8806100206000396000f3fe6080604052600436106100dd5760003560e01c8063accca7f91161007f578063d47eed4511610059578063d47eed4514610280578063e18910a3146102b1578063ef9e5e28146102c6578063fe02dfd6146102d857600080fd5b8063accca7f914610191578063b5dcc911146100e2578063b9256d281461026857600080fd5b8063711a2e28116100bb578063711a2e28146102485780639474f45b146100e257806396834ad3146100e2578063a4ae35e01461024857600080fd5b806331d98b3f146100e25780634716e9c51461019157806360846bc6146101b8575b600080fd5b3480156100ee57600080fd5b5061017b6100fd36600461046a565b604080516080810182526000808252602082018190529181018290526060810191909152506000908152602081815260409182902082516080810184528154600781900b825267ffffffffffffffff600160401b82041693820193909352600160801b90920460030b92820192909252600190910154606082015290565b60405161018891906104b9565b60405180910390f35b6101ab61019f366004610530565b60609695505050505050565b60405161018891906105c0565b3480156101c457600080fd5b506102106101d336600461046a565b60006020819052908152604090208054600190910154600782900b9167ffffffffffffffff600160401b82041691600160801b90910460030b9084565b604051610188949392919060079490940b845267ffffffffffffffff92909216602084015260030b6040830152606082015260800190565b34801561025457600080fd5b5061017b61026336600461062e565b610389565b61027e610276366004610650565b505050505050565b005b34801561028c57600080fd5b506102a361029b3660046106ea565b600092915050565b604051908152602001610188565b3480156102bd57600080fd5b50610e106102a3565b61027e6102d43660046106ea565b5050565b3480156102e457600080fd5b5061027e6102f336600461072c565b6040805160808101825260079590950b855267ffffffffffffffff938416602080870191825260039490940b868301908152606087019384526000978852938790529520935184549551925163ffffffff16600160801b0263ffffffff60801b19938516600160401b026fffffffffffffffffffffffffffffffff19909716919094161794909417161781559051600190910155565b604080516080810182526000808252602080830182905282840182905260608301829052858252819052919091206001015482906103c79042610791565b111561040c5760405162461bcd60e51b815260206004820152601060248201526f141c9a58d9481a5cc81d1bdbc81bdb1960821b604482015260640160405180910390fd5b506000828152602081815260409182902082516080810184528154600781900b825267ffffffffffffffff600160401b82041693820193909352600160801b90920460030b9282019290925260019091015460608201525b92915050565b60006020828403121561047c57600080fd5b5035919050565b805160070b825267ffffffffffffffff6020820151166020830152604081015160030b6040830152606081015160608301525050565b608081016104648284610483565b60008083601f8401126104d957600080fd5b50813567ffffffffffffffff8111156104f157600080fd5b6020830191508360208260051b850101111561050c57600080fd5b9250929050565b803567ffffffffffffffff8116811461052b57600080fd5b919050565b6000806000806000806080878903121561054957600080fd5b863567ffffffffffffffff8082111561056157600080fd5b61056d8a838b016104c7565b9098509650602089013591508082111561058657600080fd5b5061059389828a016104c7565b90955093506105a6905060408801610513565b91506105b460608801610513565b90509295509295509295565b602080825282518282018190526000919060409081850190868401855b8281101561062157815180518552868101516105fb88870182610483565b5085015161060c60a0860182610483565b506101209390930192908501906001016105dd565b5091979650505050505050565b6000806040838503121561064157600080fd5b50508035926020909101359150565b6000806000806000806060878903121561066957600080fd5b863567ffffffffffffffff8082111561068157600080fd5b61068d8a838b016104c7565b909850965060208901359150808211156106a657600080fd5b6106b28a838b016104c7565b909650945060408901359150808211156106cb57600080fd5b506106d889828a016104c7565b979a9699509497509295939492505050565b600080602083850312156106fd57600080fd5b823567ffffffffffffffff81111561071457600080fd5b610720858286016104c7565b90969095509350505050565b600080600080600060a0868803121561074457600080fd5b8535945060208601358060070b811461075c57600080fd5b935061076a60408701610513565b925060608601358060030b811461078057600080fd5b949793965091946080013592915050565b8181038181111561046457634e487b7160e01b600052601160045260246000fdfea264697066735822122071c498c47e5609b0957637dec2e1dc609e5ab531c2827b10d07ea7f029cfd24864736f6c63430008180033","sourceMap":"205:2680:111:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100dd5760003560e01c8063accca7f91161007f578063d47eed4511610059578063d47eed4514610280578063e18910a3146102b1578063ef9e5e28146102c6578063fe02dfd6146102d857600080fd5b8063accca7f914610191578063b5dcc911146100e2578063b9256d281461026857600080fd5b8063711a2e28116100bb578063711a2e28146102485780639474f45b146100e257806396834ad3146100e2578063a4ae35e01461024857600080fd5b806331d98b3f146100e25780634716e9c51461019157806360846bc6146101b8575b600080fd5b3480156100ee57600080fd5b5061017b6100fd36600461046a565b604080516080810182526000808252602082018190529181018290526060810191909152506000908152602081815260409182902082516080810184528154600781900b825267ffffffffffffffff600160401b82041693820193909352600160801b90920460030b92820192909252600190910154606082015290565b60405161018891906104b9565b60405180910390f35b6101ab61019f366004610530565b60609695505050505050565b60405161018891906105c0565b3480156101c457600080fd5b506102106101d336600461046a565b60006020819052908152604090208054600190910154600782900b9167ffffffffffffffff600160401b82041691600160801b90910460030b9084565b604051610188949392919060079490940b845267ffffffffffffffff92909216602084015260030b6040830152606082015260800190565b34801561025457600080fd5b5061017b61026336600461062e565b610389565b61027e610276366004610650565b505050505050565b005b34801561028c57600080fd5b506102a361029b3660046106ea565b600092915050565b604051908152602001610188565b3480156102bd57600080fd5b50610e106102a3565b61027e6102d43660046106ea565b5050565b3480156102e457600080fd5b5061027e6102f336600461072c565b6040805160808101825260079590950b855267ffffffffffffffff938416602080870191825260039490940b868301908152606087019384526000978852938790529520935184549551925163ffffffff16600160801b0263ffffffff60801b19938516600160401b026fffffffffffffffffffffffffffffffff19909716919094161794909417161781559051600190910155565b604080516080810182526000808252602080830182905282840182905260608301829052858252819052919091206001015482906103c79042610791565b111561040c5760405162461bcd60e51b815260206004820152601060248201526f141c9a58d9481a5cc81d1bdbc81bdb1960821b604482015260640160405180910390fd5b506000828152602081815260409182902082516080810184528154600781900b825267ffffffffffffffff600160401b82041693820193909352600160801b90920460030b9282019290925260019091015460608201525b92915050565b60006020828403121561047c57600080fd5b5035919050565b805160070b825267ffffffffffffffff6020820151166020830152604081015160030b6040830152606081015160608301525050565b608081016104648284610483565b60008083601f8401126104d957600080fd5b50813567ffffffffffffffff8111156104f157600080fd5b6020830191508360208260051b850101111561050c57600080fd5b9250929050565b803567ffffffffffffffff8116811461052b57600080fd5b919050565b6000806000806000806080878903121561054957600080fd5b863567ffffffffffffffff8082111561056157600080fd5b61056d8a838b016104c7565b9098509650602089013591508082111561058657600080fd5b5061059389828a016104c7565b90955093506105a6905060408801610513565b91506105b460608801610513565b90509295509295509295565b602080825282518282018190526000919060409081850190868401855b8281101561062157815180518552868101516105fb88870182610483565b5085015161060c60a0860182610483565b506101209390930192908501906001016105dd565b5091979650505050505050565b6000806040838503121561064157600080fd5b50508035926020909101359150565b6000806000806000806060878903121561066957600080fd5b863567ffffffffffffffff8082111561068157600080fd5b61068d8a838b016104c7565b909850965060208901359150808211156106a657600080fd5b6106b28a838b016104c7565b909650945060408901359150808211156106cb57600080fd5b506106d889828a016104c7565b979a9699509497509295939492505050565b600080602083850312156106fd57600080fd5b823567ffffffffffffffff81111561071457600080fd5b610720858286016104c7565b90969095509350505050565b600080600080600060a0868803121561074457600080fd5b8535945060208601358060070b811461075c57600080fd5b935061076a60408701610513565b925060608601358060030b811461078057600080fd5b949793965091946080013592915050565b8181038181111561046457634e487b7160e01b600052601160045260246000fdfea264697066735822122071c498c47e5609b0957637dec2e1dc609e5ab531c2827b10d07ea7f029cfd24864736f6c63430008180033","sourceMap":"205:2680:111:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;683:128;;;;;;;;;;-1:-1:-1;683:128:111;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;794:6:111;:10;;;;;;;;;;;;787:17;;;;;;;;;;;;;;;;-1:-1:-1;;;787:17:111;;;;;;;;;;-1:-1:-1;;;787:17:111;;;;;;;;;;;;;;;;;;;;;;683:128;;;;;;;;:::i;:::-;;;;;;;;2293:289;;;;;;:::i;:::-;2501:41;2293:289;;;;;;;;;;;;;;;;:::i;238:51::-;;;;;;;;;;-1:-1:-1;238:51:111;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;238:51:111;;;;-1:-1:-1;;;238:51:111;;;;;;;;;;;;;;;;;3504:1:165;3493:21;;;;3475:40;;3563:18;3551:31;;;;3546:2;3531:18;;3524:59;3630:1;3619:21;3614:2;3599:18;;3592:49;3672:2;3657:18;;3650:34;3462:3;3447:19;;3254:436;1526:260:111;;;;;;;;;;-1:-1:-1;1526:260:111;;;;;:::i;:::-;;:::i;1917:221::-;;;;;;:::i;:::-;;;;;;;;;;2144:143;;;;;;;;;;-1:-1:-1;2144:143:111;;;;;:::i;:::-;2227:14;2144:143;;;;;;;;5678:25:165;;;5666:2;5651:18;2144:143:111;5532:177:165;543:134:111;;;;;;;;;;-1:-1:-1;644:4:111;543:134;;1792:119;;;;;;:::i;:::-;;;;331:206;;;;;;;;;;-1:-1:-1;331:206:111;;;;;:::i;:::-;447:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;434:10:111;;;;;;;;;:96;;;;;;;;;;-1:-1:-1;;;434:96:111;-1:-1:-1;;;;434:96:111;;;-1:-1:-1;;;434:96:111;-1:-1:-1;;434:96:111;;;;;;;;;;;;;;;;;;;;;;;331:206;1526:260;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1702:10:111;;;;;;;;;;:22;;;1728:3;;1684:40;;:15;:40;:::i;:::-;:47;;1676:76;;;;-1:-1:-1;;;1676:76:111;;6803:2:165;1676:76:111;;;6785:21:165;6842:2;6822:18;;;6815:30;-1:-1:-1;;;6861:18:165;;;6854:46;6917:18;;1676:76:111;;;;;;;;-1:-1:-1;1769:6:111;:10;;;;;;;;;;;;1762:17;;;;;;;;;;;;;;;;-1:-1:-1;;;1762:17:111;;;;;;;;;;-1:-1:-1;;;1762:17:111;;;;;;;;;;;;;;;;;;;;;1526:260;;;;;:::o;14:180:165:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:165;;14:180;-1:-1:-1;14:180:165:o;199:313::-;290:5;284:12;281:1;270:27;265:3;258:40;359:18;351:4;344:5;340:16;334:23;330:48;323:4;318:3;314:14;307:72;442:4;435:5;431:16;425:23;422:1;411:38;404:4;399:3;395:14;388:62;499:4;492:5;488:16;482:23;475:4;470:3;466:14;459:47;;;199:313::o;517:243::-;699:3;684:19;;712:42;688:9;736:6;712:42;:::i;765:374::-;835:8;845:6;899:3;892:4;884:6;880:17;876:27;866:55;;917:1;914;907:12;866:55;-1:-1:-1;940:20:165;;983:18;972:30;;969:50;;;1015:1;1012;1005:12;969:50;1052:4;1044:6;1040:17;1028:29;;1112:3;1105:4;1095:6;1092:1;1088:14;1080:6;1076:27;1072:38;1069:47;1066:67;;;1129:1;1126;1119:12;1066:67;765:374;;;;;:::o;1144:171::-;1211:20;;1271:18;1260:30;;1250:41;;1240:69;;1305:1;1302;1295:12;1240:69;1144:171;;;:::o;1320:943::-;1469:6;1477;1485;1493;1501;1509;1562:3;1550:9;1541:7;1537:23;1533:33;1530:53;;;1579:1;1576;1569:12;1530:53;1619:9;1606:23;1648:18;1689:2;1681:6;1678:14;1675:34;;;1705:1;1702;1695:12;1675:34;1744:77;1813:7;1804:6;1793:9;1789:22;1744:77;:::i;:::-;1840:8;;-1:-1:-1;1718:103:165;-1:-1:-1;1928:2:165;1913:18;;1900:32;;-1:-1:-1;1944:16:165;;;1941:36;;;1973:1;1970;1963:12;1941:36;;2012:79;2083:7;2072:8;2061:9;2057:24;2012:79;:::i;:::-;2110:8;;-1:-1:-1;1986:105:165;-1:-1:-1;2164:37:165;;-1:-1:-1;2197:2:165;2182:18;;2164:37;:::i;:::-;2154:47;;2220:37;2253:2;2242:9;2238:18;2220:37;:::i;:::-;2210:47;;1320:943;;;;;;;;:::o;2268:981::-;2495:2;2547:21;;;2617:13;;2520:18;;;2639:22;;;2466:4;;2495:2;2680;;2698:18;;;;2739:15;;;2466:4;2782:441;2796:6;2793:1;2790:13;2782:441;;;2861:6;2855:13;2899:2;2893:9;2888:3;2881:22;2950:2;2946;2942:11;2936:18;2967:51;3014:2;3009:3;3005:12;2991;2967:51;:::i;:::-;-1:-1:-1;3059:11:165;;3053:18;3084:55;3133:4;3124:14;;3053:18;3084:55;:::i;:::-;-1:-1:-1;3168:6:165;3159:16;;;;;3198:15;;;;2818:1;2811:9;2782:441;;;-1:-1:-1;3240:3:165;;2268:981;-1:-1:-1;;;;;;;2268:981:165:o;3695:248::-;3763:6;3771;3824:2;3812:9;3803:7;3799:23;3795:32;3792:52;;;3840:1;3837;3830:12;3792:52;-1:-1:-1;;3863:23:165;;;3933:2;3918:18;;;3905:32;;-1:-1:-1;3695:248:165:o;3948:1119::-;4116:6;4124;4132;4140;4148;4156;4209:2;4197:9;4188:7;4184:23;4180:32;4177:52;;;4225:1;4222;4215:12;4177:52;4265:9;4252:23;4294:18;4335:2;4327:6;4324:14;4321:34;;;4351:1;4348;4341:12;4321:34;4390:77;4459:7;4450:6;4439:9;4435:22;4390:77;:::i;:::-;4486:8;;-1:-1:-1;4364:103:165;-1:-1:-1;4574:2:165;4559:18;;4546:32;;-1:-1:-1;4590:16:165;;;4587:36;;;4619:1;4616;4609:12;4587:36;4658:79;4729:7;4718:8;4707:9;4703:24;4658:79;:::i;:::-;4756:8;;-1:-1:-1;4632:105:165;-1:-1:-1;4844:2:165;4829:18;;4816:32;;-1:-1:-1;4860:16:165;;;4857:36;;;4889:1;4886;4879:12;4857:36;;4928:79;4999:7;4988:8;4977:9;4973:24;4928:79;:::i;:::-;3948:1119;;;;-1:-1:-1;3948:1119:165;;-1:-1:-1;3948:1119:165;;5026:8;;3948:1119;-1:-1:-1;;;3948:1119:165:o;5072:455::-;5169:6;5177;5230:2;5218:9;5209:7;5205:23;5201:32;5198:52;;;5246:1;5243;5236:12;5198:52;5286:9;5273:23;5319:18;5311:6;5308:30;5305:50;;;5351:1;5348;5341:12;5305:50;5390:77;5459:7;5450:6;5439:9;5435:22;5390:77;:::i;:::-;5486:8;;5364:103;;-1:-1:-1;5072:455:165;-1:-1:-1;;;;5072:455:165:o;5714:652::-;5804:6;5812;5820;5828;5836;5889:3;5877:9;5868:7;5864:23;5860:33;5857:53;;;5906:1;5903;5896:12;5857:53;5942:9;5929:23;5919:33;;6002:2;5991:9;5987:18;5974:32;6049:5;6046:1;6035:20;6028:5;6025:31;6015:59;;6070:1;6067;6060:12;6015:59;6093:5;-1:-1:-1;6117:37:165;6150:2;6135:18;;6117:37;:::i;:::-;6107:47;;6206:2;6195:9;6191:18;6178:32;6255:7;6252:1;6241:22;6232:7;6229:35;6219:63;;6278:1;6275;6268:12;6219:63;5714:652;;;;-1:-1:-1;5714:652:165;;6355:3;6340:19;6327:33;;5714:652;-1:-1:-1;;5714:652:165:o;6371:225::-;6438:9;;;6459:11;;;6456:134;;;6512:10;6507:3;6503:20;6500:1;6493:31;6547:4;6544:1;6537:15;6575:4;6572:1;6565:15","linkReferences":{}},"methodIdentifiers":{"getEmaPrice(bytes32)":"b5dcc911","getEmaPriceNoOlderThan(bytes32,uint256)":"711a2e28","getEmaPriceUnsafe(bytes32)":"9474f45b","getPrice(bytes32)":"31d98b3f","getPriceNoOlderThan(bytes32,uint256)":"a4ae35e0","getPriceUnsafe(bytes32)":"96834ad3","getUpdateFee(bytes[])":"d47eed45","getValidTimePeriod()":"e18910a3","parsePriceFeedUpdates(bytes[],bytes32[],uint64,uint64)":"4716e9c5","parsePriceFeedUpdatesUnique(bytes[],bytes32[],uint64,uint64)":"accca7f9","prices(bytes32)":"60846bc6","setPrice(bytes32,int64,uint64,int32,uint256)":"fe02dfd6","updatePriceFeeds(bytes[])":"ef9e5e28","updatePriceFeedsIfNecessary(bytes[],bytes32[],uint64[])":"b9256d28"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"publishTime\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"}],\"name\":\"PriceFeedUpdate\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getEmaPrice\",\"outputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"price\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"name\":\"getEmaPriceNoOlderThan\",\"outputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"price\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getEmaPriceUnsafe\",\"outputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"price\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getPrice\",\"outputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"price\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"name\":\"getPriceNoOlderThan\",\"outputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"price\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getPriceUnsafe\",\"outputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"price\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"updateData\",\"type\":\"bytes[]\"}],\"name\":\"getUpdateFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValidTimePeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validTimePeriod\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"updateData\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"priceIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint64\",\"name\":\"minPublishTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxPublishTime\",\"type\":\"uint64\"}],\"name\":\"parsePriceFeedUpdates\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"price\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"emaPrice\",\"type\":\"tuple\"}],\"internalType\":\"struct PythStructs.PriceFeed[]\",\"name\":\"priceFeeds\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"updateData\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"priceIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint64\",\"name\":\"minPublishTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxPublishTime\",\"type\":\"uint64\"}],\"name\":\"parsePriceFeedUpdatesUnique\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"price\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct PythStructs.Price\",\"name\":\"emaPrice\",\"type\":\"tuple\"}],\"internalType\":\"struct PythStructs.PriceFeed[]\",\"name\":\"priceFeeds\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"prices\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"name\":\"setPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"updateData\",\"type\":\"bytes[]\"}],\"name\":\"updatePriceFeeds\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"updateData\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"priceIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint64[]\",\"name\":\"publishTimes\",\"type\":\"uint64[]\"}],\"name\":\"updatePriceFeedsIfNecessary\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"PriceFeedUpdate(bytes32,uint64,int64,uint64)\":{\"details\":\"Emitted when the price feed with `id` has received a fresh update.\",\"params\":{\"conf\":\"Confidence interval of the given price update.\",\"id\":\"The Pyth Price Feed ID.\",\"price\":\"Price of the given price update.\",\"publishTime\":\"Publish time of the given price update.\"}}},\"kind\":\"dev\",\"methods\":{\"getEmaPrice(bytes32)\":{\"details\":\"Reverts if the EMA price is not available.\",\"params\":{\"id\":\"The Pyth Price Feed ID of which to fetch the EMA price and confidence interval.\"},\"returns\":{\"price\":\"- please read the documentation of PythStructs.Price to understand how to use this safely.\"}},\"getEmaPriceNoOlderThan(bytes32,uint256)\":{\"details\":\"This function is a sanity-checked version of `getEmaPriceUnsafe` which is useful in applications that require a sufficiently-recent price. Reverts if the price wasn't updated sufficiently recently.\",\"returns\":{\"price\":\"- please read the documentation of PythStructs.Price to understand how to use this safely.\"}},\"getEmaPriceUnsafe(bytes32)\":{\"details\":\"This function returns the same price as `getEmaPrice` in the case where the price is available. However, if the price is not recent this function returns the latest available price. The returned price can be from arbitrarily far in the past; this function makes no guarantees that the returned price is recent or useful for any particular application. Users of this function should check the `publishTime` in the price to ensure that the returned price is sufficiently recent for their application. If you are considering using this function, it may be safer / easier to use either `getEmaPrice` or `getEmaPriceNoOlderThan`.\",\"returns\":{\"price\":\"- please read the documentation of PythStructs.Price to understand how to use this safely.\"}},\"getPrice(bytes32)\":{\"details\":\"Reverts if the price has not been updated within the last `getValidTimePeriod()` seconds.\",\"params\":{\"id\":\"The Pyth Price Feed ID of which to fetch the price and confidence interval.\"},\"returns\":{\"price\":\"- please read the documentation of PythStructs.Price to understand how to use this safely.\"}},\"getPriceNoOlderThan(bytes32,uint256)\":{\"details\":\"This function is a sanity-checked version of `getPriceUnsafe` which is useful in applications that require a sufficiently-recent price. Reverts if the price wasn't updated sufficiently recently.\",\"returns\":{\"price\":\"- please read the documentation of PythStructs.Price to understand how to use this safely.\"}},\"getPriceUnsafe(bytes32)\":{\"details\":\"This function returns the most recent price update in this contract without any recency checks. This function is unsafe as the returned price update may be arbitrarily far in the past. Users of this function should check the `publishTime` in the price to ensure that the returned price is sufficiently recent for their application. If you are considering using this function, it may be safer / easier to use either `getPrice` or `getPriceNoOlderThan`.\",\"returns\":{\"price\":\"- please read the documentation of PythStructs.Price to understand how to use this safely.\"}},\"getUpdateFee(bytes[])\":{\"params\":{\"updateData\":\"Array of price update data.\"},\"returns\":{\"feeAmount\":\"The required fee in Wei.\"}},\"parsePriceFeedUpdates(bytes[],bytes32[],uint64,uint64)\":{\"details\":\"Reverts if the transferred fee is not sufficient or the updateData is invalid or there is no update for any of the given `priceIds` within the given time range.\",\"params\":{\"maxPublishTime\":\"maximum acceptable publishTime for the given `priceIds`.\",\"minPublishTime\":\"minimum acceptable publishTime for the given `priceIds`.\",\"priceIds\":\"Array of price ids.\",\"updateData\":\"Array of price update data.\"},\"returns\":{\"priceFeeds\":\"Array of the price feeds corresponding to the given `priceIds` (with the same order).\"}},\"parsePriceFeedUpdatesUnique(bytes[],bytes32[],uint64,uint64)\":{\"details\":\"Reverts if the transferred fee is not sufficient or the updateData is invalid or there is no update for any of the given `priceIds` within the given time range and uniqueness condition.\",\"params\":{\"maxPublishTime\":\"maximum acceptable publishTime for the given `priceIds`.\",\"minPublishTime\":\"minimum acceptable publishTime for the given `priceIds`.\",\"priceIds\":\"Array of price ids.\",\"updateData\":\"Array of price update data.\"},\"returns\":{\"priceFeeds\":\"Array of the price feeds corresponding to the given `priceIds` (with the same order).\"}},\"updatePriceFeeds(bytes[])\":{\"details\":\"Reverts if the transferred fee is not sufficient or the updateData is invalid.\",\"params\":{\"updateData\":\"Array of price update data.\"}},\"updatePriceFeedsIfNecessary(bytes[],bytes32[],uint64[])\":{\"details\":\"Reverts if update is not needed or the transferred fee is not sufficient or the updateData is invalid.\",\"params\":{\"priceIds\":\"Array of price ids.\",\"publishTimes\":\"Array of publishTimes. `publishTimes[i]` corresponds to known `publishTime` of `priceIds[i]`\",\"updateData\":\"Array of price update data.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getEmaPrice(bytes32)\":{\"notice\":\"Returns the exponentially-weighted moving average price and confidence interval.\"},\"getEmaPriceNoOlderThan(bytes32,uint256)\":{\"notice\":\"Returns the exponentially-weighted moving average price that is no older than `age` seconds of the current time.\"},\"getEmaPriceUnsafe(bytes32)\":{\"notice\":\"Returns the exponentially-weighted moving average price of a price feed without any sanity checks.\"},\"getPrice(bytes32)\":{\"notice\":\"Returns the price and confidence interval.\"},\"getPriceNoOlderThan(bytes32,uint256)\":{\"notice\":\"Returns the price that is no older than `age` seconds of the current time.\"},\"getPriceUnsafe(bytes32)\":{\"notice\":\"Returns the price of a price feed without any sanity checks.\"},\"getUpdateFee(bytes[])\":{\"notice\":\"Returns the required fee to update an array of price updates.\"},\"getValidTimePeriod()\":{\"notice\":\"Returns the period (in seconds) that a price feed is considered valid since its publish time\"},\"parsePriceFeedUpdates(bytes[],bytes32[],uint64,uint64)\":{\"notice\":\"Parse `updateData` and return price feeds of the given `priceIds` if they are all published within `minPublishTime` and `maxPublishTime`. You can use this method if you want to use a Pyth price at a fixed time and not the most recent price; otherwise, please consider using `updatePriceFeeds`. This method may store the price updates on-chain, if they are more recent than the current stored prices. This method requires the caller to pay a fee in wei; the required fee can be computed by calling `getUpdateFee` with the length of the `updateData` array.\"},\"parsePriceFeedUpdatesUnique(bytes[],bytes32[],uint64,uint64)\":{\"notice\":\"Similar to `parsePriceFeedUpdates` but ensures the updates returned are the first updates published in minPublishTime. That is, if there are multiple updates for a given timestamp, this method will return the first update. This method may store the price updates on-chain, if they are more recent than the current stored prices.\"},\"updatePriceFeeds(bytes[])\":{\"notice\":\"Update price feeds with given update messages. This method requires the caller to pay a fee in wei; the required fee can be computed by calling `getUpdateFee` with the length of the `updateData` array. Prices will be updated if they are more recent than the current stored prices. The call will succeed even if the update is not the most recent.\"},\"updatePriceFeedsIfNecessary(bytes[],bytes32[],uint64[])\":{\"notice\":\"Wrapper around updatePriceFeeds that rejects fast if a price update is not necessary. A price update is necessary if the current on-chain publishTime is older than the given publishTime. It relies solely on the given `publishTimes` for the price feeds and does not read the actual price update publish time within `updateData`. This method requires the caller to pay a fee in wei; the required fee can be computed by calling `getUpdateFee` with the length of the `updateData` array. `priceIds` and `publishTimes` are two arrays with the same size that correspond to senders known publishTime of each priceId when calling this method. If all of price feeds within `priceIds` have updated and have a newer or equal publish time than the given publish time, it will reject the transaction to save gas. Otherwise, it calls updatePriceFeeds method to update the prices.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc4626/mocks/MockOracle.sol\":\"MockPyth\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc4626/mocks/MockOracle.sol\":{\"keccak256\":\"0x583d4f99e08a51c36c86e9e63d99f9ebddb85dddcc85533d7f6daa8f337030ec\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://50cb3ce5554174bac60c7173b52b8a83d75949f6b633428fe62734f714dc6246\",\"dweb:/ipfs/QmeUjTTwnWvoANTANnMfjFiq6hs1BN3K7w6cEfFoebNJrU\"]},\"node_modules/@pythnetwork/pyth-sdk-solidity/IPyth.sol\":{\"keccak256\":\"0xe06dbd61ccf409fffc0a2449eb8bb6c2d245609698c3c6eddad7cd0f3822d215\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://62867dd9f8a439d091da28c4d6cbd6f4d4ec0606291cdea7b70841e37c43e0da\",\"dweb:/ipfs/Qme4kF7yC3k2zxC87k9b6rhEbSjPNWZ5kLZCBdKqk43FbE\"]},\"node_modules/@pythnetwork/pyth-sdk-solidity/IPythEvents.sol\":{\"keccak256\":\"0x7ca8e03315d4516d6833c425a52c43e8cacf2077492074d2d36ae5c17899c9c8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ad1c69d157eccb09ce248e1ec021f2e58b61dd36160f5be3973a7bea4a899f64\",\"dweb:/ipfs/QmW1yXsDrMsuQKxtZanSZXpyUW2QwnCKVoCjS5fC3NoSVY\"]},\"node_modules/@pythnetwork/pyth-sdk-solidity/PythStructs.sol\":{\"keccak256\":\"0xade221177dda98ebd194c363f264ceea125bde0e6a7a72f7b54da3ac60316894\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a404dbbc64183995326c345cae27601d37c783b3d9030c8dc0ab4943fa2bf1da\",\"dweb:/ipfs/QmfNFesQffYisafmJFbKHxVFSD8fY49X1z9f8N7qtfW8AX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":true},{"internalType":"uint64","name":"publishTime","type":"uint64","indexed":false},{"internalType":"int64","name":"price","type":"int64","indexed":false},{"internalType":"uint64","name":"conf","type":"uint64","indexed":false}],"type":"event","name":"PriceFeedUpdate","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getEmaPrice","outputs":[{"internalType":"struct PythStructs.Price","name":"price","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"age","type":"uint256"}],"stateMutability":"view","type":"function","name":"getEmaPriceNoOlderThan","outputs":[{"internalType":"struct PythStructs.Price","name":"price","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getEmaPriceUnsafe","outputs":[{"internalType":"struct PythStructs.Price","name":"price","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getPrice","outputs":[{"internalType":"struct PythStructs.Price","name":"price","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"age","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPriceNoOlderThan","outputs":[{"internalType":"struct PythStructs.Price","name":"price","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getPriceUnsafe","outputs":[{"internalType":"struct PythStructs.Price","name":"price","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes[]","name":"updateData","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"getUpdateFee","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"getValidTimePeriod","outputs":[{"internalType":"uint256","name":"validTimePeriod","type":"uint256"}]},{"inputs":[{"internalType":"bytes[]","name":"updateData","type":"bytes[]"},{"internalType":"bytes32[]","name":"priceIds","type":"bytes32[]"},{"internalType":"uint64","name":"minPublishTime","type":"uint64"},{"internalType":"uint64","name":"maxPublishTime","type":"uint64"}],"stateMutability":"payable","type":"function","name":"parsePriceFeedUpdates","outputs":[{"internalType":"struct PythStructs.PriceFeed[]","name":"priceFeeds","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct PythStructs.Price","name":"price","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]},{"internalType":"struct PythStructs.Price","name":"emaPrice","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]}]}]},{"inputs":[{"internalType":"bytes[]","name":"updateData","type":"bytes[]"},{"internalType":"bytes32[]","name":"priceIds","type":"bytes32[]"},{"internalType":"uint64","name":"minPublishTime","type":"uint64"},{"internalType":"uint64","name":"maxPublishTime","type":"uint64"}],"stateMutability":"payable","type":"function","name":"parsePriceFeedUpdatesUnique","outputs":[{"internalType":"struct PythStructs.PriceFeed[]","name":"priceFeeds","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct PythStructs.Price","name":"price","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]},{"internalType":"struct PythStructs.Price","name":"emaPrice","type":"tuple","components":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]}]}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"prices","outputs":[{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"int64","name":"price","type":"int64"},{"internalType":"uint64","name":"conf","type":"uint64"},{"internalType":"int32","name":"expo","type":"int32"},{"internalType":"uint256","name":"publishTime","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setPrice"},{"inputs":[{"internalType":"bytes[]","name":"updateData","type":"bytes[]"}],"stateMutability":"payable","type":"function","name":"updatePriceFeeds"},{"inputs":[{"internalType":"bytes[]","name":"updateData","type":"bytes[]"},{"internalType":"bytes32[]","name":"priceIds","type":"bytes32[]"},{"internalType":"uint64[]","name":"publishTimes","type":"uint64[]"}],"stateMutability":"payable","type":"function","name":"updatePriceFeedsIfNecessary"}],"devdoc":{"kind":"dev","methods":{"getEmaPrice(bytes32)":{"details":"Reverts if the EMA price is not available.","params":{"id":"The Pyth Price Feed ID of which to fetch the EMA price and confidence interval."},"returns":{"price":"- please read the documentation of PythStructs.Price to understand how to use this safely."}},"getEmaPriceNoOlderThan(bytes32,uint256)":{"details":"This function is a sanity-checked version of `getEmaPriceUnsafe` which is useful in applications that require a sufficiently-recent price. Reverts if the price wasn't updated sufficiently recently.","returns":{"price":"- please read the documentation of PythStructs.Price to understand how to use this safely."}},"getEmaPriceUnsafe(bytes32)":{"details":"This function returns the same price as `getEmaPrice` in the case where the price is available. However, if the price is not recent this function returns the latest available price. The returned price can be from arbitrarily far in the past; this function makes no guarantees that the returned price is recent or useful for any particular application. Users of this function should check the `publishTime` in the price to ensure that the returned price is sufficiently recent for their application. If you are considering using this function, it may be safer / easier to use either `getEmaPrice` or `getEmaPriceNoOlderThan`.","returns":{"price":"- please read the documentation of PythStructs.Price to understand how to use this safely."}},"getPrice(bytes32)":{"details":"Reverts if the price has not been updated within the last `getValidTimePeriod()` seconds.","params":{"id":"The Pyth Price Feed ID of which to fetch the price and confidence interval."},"returns":{"price":"- please read the documentation of PythStructs.Price to understand how to use this safely."}},"getPriceNoOlderThan(bytes32,uint256)":{"details":"This function is a sanity-checked version of `getPriceUnsafe` which is useful in applications that require a sufficiently-recent price. Reverts if the price wasn't updated sufficiently recently.","returns":{"price":"- please read the documentation of PythStructs.Price to understand how to use this safely."}},"getPriceUnsafe(bytes32)":{"details":"This function returns the most recent price update in this contract without any recency checks. This function is unsafe as the returned price update may be arbitrarily far in the past. Users of this function should check the `publishTime` in the price to ensure that the returned price is sufficiently recent for their application. If you are considering using this function, it may be safer / easier to use either `getPrice` or `getPriceNoOlderThan`.","returns":{"price":"- please read the documentation of PythStructs.Price to understand how to use this safely."}},"getUpdateFee(bytes[])":{"params":{"updateData":"Array of price update data."},"returns":{"feeAmount":"The required fee in Wei."}},"parsePriceFeedUpdates(bytes[],bytes32[],uint64,uint64)":{"details":"Reverts if the transferred fee is not sufficient or the updateData is invalid or there is no update for any of the given `priceIds` within the given time range.","params":{"maxPublishTime":"maximum acceptable publishTime for the given `priceIds`.","minPublishTime":"minimum acceptable publishTime for the given `priceIds`.","priceIds":"Array of price ids.","updateData":"Array of price update data."},"returns":{"priceFeeds":"Array of the price feeds corresponding to the given `priceIds` (with the same order)."}},"parsePriceFeedUpdatesUnique(bytes[],bytes32[],uint64,uint64)":{"details":"Reverts if the transferred fee is not sufficient or the updateData is invalid or there is no update for any of the given `priceIds` within the given time range and uniqueness condition.","params":{"maxPublishTime":"maximum acceptable publishTime for the given `priceIds`.","minPublishTime":"minimum acceptable publishTime for the given `priceIds`.","priceIds":"Array of price ids.","updateData":"Array of price update data."},"returns":{"priceFeeds":"Array of the price feeds corresponding to the given `priceIds` (with the same order)."}},"updatePriceFeeds(bytes[])":{"details":"Reverts if the transferred fee is not sufficient or the updateData is invalid.","params":{"updateData":"Array of price update data."}},"updatePriceFeedsIfNecessary(bytes[],bytes32[],uint64[])":{"details":"Reverts if update is not needed or the transferred fee is not sufficient or the updateData is invalid.","params":{"priceIds":"Array of price ids.","publishTimes":"Array of publishTimes. `publishTimes[i]` corresponds to known `publishTime` of `priceIds[i]`","updateData":"Array of price update data."}}},"version":1},"userdoc":{"kind":"user","methods":{"getEmaPrice(bytes32)":{"notice":"Returns the exponentially-weighted moving average price and confidence interval."},"getEmaPriceNoOlderThan(bytes32,uint256)":{"notice":"Returns the exponentially-weighted moving average price that is no older than `age` seconds of the current time."},"getEmaPriceUnsafe(bytes32)":{"notice":"Returns the exponentially-weighted moving average price of a price feed without any sanity checks."},"getPrice(bytes32)":{"notice":"Returns the price and confidence interval."},"getPriceNoOlderThan(bytes32,uint256)":{"notice":"Returns the price that is no older than `age` seconds of the current time."},"getPriceUnsafe(bytes32)":{"notice":"Returns the price of a price feed without any sanity checks."},"getUpdateFee(bytes[])":{"notice":"Returns the required fee to update an array of price updates."},"getValidTimePeriod()":{"notice":"Returns the period (in seconds) that a price feed is considered valid since its publish time"},"parsePriceFeedUpdates(bytes[],bytes32[],uint64,uint64)":{"notice":"Parse `updateData` and return price feeds of the given `priceIds` if they are all published within `minPublishTime` and `maxPublishTime`. You can use this method if you want to use a Pyth price at a fixed time and not the most recent price; otherwise, please consider using `updatePriceFeeds`. This method may store the price updates on-chain, if they are more recent than the current stored prices. This method requires the caller to pay a fee in wei; the required fee can be computed by calling `getUpdateFee` with the length of the `updateData` array."},"parsePriceFeedUpdatesUnique(bytes[],bytes32[],uint64,uint64)":{"notice":"Similar to `parsePriceFeedUpdates` but ensures the updates returned are the first updates published in minPublishTime. That is, if there are multiple updates for a given timestamp, this method will return the first update. This method may store the price updates on-chain, if they are more recent than the current stored prices."},"updatePriceFeeds(bytes[])":{"notice":"Update price feeds with given update messages. This method requires the caller to pay a fee in wei; the required fee can be computed by calling `getUpdateFee` with the length of the `updateData` array. Prices will be updated if they are more recent than the current stored prices. The call will succeed even if the update is not the most recent."},"updatePriceFeedsIfNecessary(bytes[],bytes32[],uint64[])":{"notice":"Wrapper around updatePriceFeeds that rejects fast if a price update is not necessary. A price update is necessary if the current on-chain publishTime is older than the given publishTime. It relies solely on the given `publishTimes` for the price feeds and does not read the actual price update publish time within `updateData`. This method requires the caller to pay a fee in wei; the required fee can be computed by calling `getUpdateFee` with the length of the `updateData` array. `priceIds` and `publishTimes` are two arrays with the same size that correspond to senders known publishTime of each priceId when calling this method. If all of price feeds within `priceIds` have updated and have a newer or equal publish time than the given publish time, it will reject the transaction to save gas. Otherwise, it calls updatePriceFeeds method to update the prices."}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc4626/mocks/MockOracle.sol":"MockPyth"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc4626/mocks/MockOracle.sol":{"keccak256":"0x583d4f99e08a51c36c86e9e63d99f9ebddb85dddcc85533d7f6daa8f337030ec","urls":["bzz-raw://50cb3ce5554174bac60c7173b52b8a83d75949f6b633428fe62734f714dc6246","dweb:/ipfs/QmeUjTTwnWvoANTANnMfjFiq6hs1BN3K7w6cEfFoebNJrU"],"license":"Apache-2.0"},"node_modules/@pythnetwork/pyth-sdk-solidity/IPyth.sol":{"keccak256":"0xe06dbd61ccf409fffc0a2449eb8bb6c2d245609698c3c6eddad7cd0f3822d215","urls":["bzz-raw://62867dd9f8a439d091da28c4d6cbd6f4d4ec0606291cdea7b70841e37c43e0da","dweb:/ipfs/Qme4kF7yC3k2zxC87k9b6rhEbSjPNWZ5kLZCBdKqk43FbE"],"license":"Apache-2.0"},"node_modules/@pythnetwork/pyth-sdk-solidity/IPythEvents.sol":{"keccak256":"0x7ca8e03315d4516d6833c425a52c43e8cacf2077492074d2d36ae5c17899c9c8","urls":["bzz-raw://ad1c69d157eccb09ce248e1ec021f2e58b61dd36160f5be3973a7bea4a899f64","dweb:/ipfs/QmW1yXsDrMsuQKxtZanSZXpyUW2QwnCKVoCjS5fC3NoSVY"],"license":"Apache-2.0"},"node_modules/@pythnetwork/pyth-sdk-solidity/PythStructs.sol":{"keccak256":"0xade221177dda98ebd194c363f264ceea125bde0e6a7a72f7b54da3ac60316894","urls":["bzz-raw://a404dbbc64183995326c345cae27601d37c783b3d9030c8dc0ab4943fa2bf1da","dweb:/ipfs/QmfNFesQffYisafmJFbKHxVFSD8fY49X1z9f8N7qtfW8AX"],"license":"Apache-2.0"}},"version":1},"id":111} \ No newline at end of file diff --git a/out/ModularCompliance.sol/ModularCompliance.json b/out/ModularCompliance.sol/ModularCompliance.json new file mode 100644 index 0000000..c63d86e --- /dev/null +++ b/out/ModularCompliance.sol/ModularCompliance.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addModule","inputs":[{"name":"_module","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callModuleFunction","inputs":[{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"_module","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getModules","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getTokenBound","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"init","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isModuleBound","inputs":[{"name":"_module","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeModule","inputs":[{"name":"_module","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"ModuleAdded","inputs":[{"name":"_module","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ModuleInteraction","inputs":[{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"selector","type":"bytes4","indexed":false,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"ModuleRemoved","inputs":[{"name":"_module","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061152e806100206000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80638da5cb5b11610097578063e1c7392a11610066578063e1c7392a14610217578063e46638e61461021f578063efb22d3314610232578063f2fde38b1461024557600080fd5b80638da5cb5b146101ab578063a0632461146101b3578063a446d49f146101c6578063b2494df31461020257600080fd5b80636a3edf28116100d35780636a3edf2814610153578063715018a61461017d5780638baf29b4146101855780638d2ea7721461019857600080fd5b80631ed86f19146101055780633ff5aa021461011a57806340db3b501461012d5780635f8dead314610140575b600080fd5b610118610113366004611299565b610258565b005b610118610128366004611299565b610564565b61011861013b366004611299565b610665565b61011861014e3660046112b4565b6107a3565b6000546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b6101186108e5565b6101186101933660046112de565b6108f9565b6101186101a63660046112b4565b610a66565b610160610ba2565b6101186101c1366004611299565b610bd0565b6101f26101d4366004611299565b6001600160a01b031660009081526002602052604090205460ff1690565b6040519015158152602001610174565b61020a610dfd565b604051610174919061131a565b610118610e5f565b6101f261022d3660046112de565b610f6d565b610118610240366004611367565b611040565b610118610253366004611299565b611126565b610260611164565b6001600160a01b03811661028f5760405162461bcd60e51b8152600401610286906113e8565b60405180910390fd5b6001600160a01b03811660009081526002602052604090205460ff16156102ef5760405162461bcd60e51b81526020600482015260146024820152731b5bd91d5b1948185b1c9958591e48189bdd5b9960621b6044820152606401610286565b600154601810156103425760405162461bcd60e51b815260206004820152601f60248201527f63616e6e6f7420616464206d6f7265207468616e203235206d6f64756c6573006044820152606401610286565b6000819050806001600160a01b031663e6f5e8076040518163ffffffff1660e01b8152600401602060405180830381865afa158015610385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a9919061141f565b61047e5760405163bcc2105360e01b81523060048201526001600160a01b0382169063bcc2105390602401602060405180830381865afa1580156103f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610415919061141f565b61047e5760405162461bcd60e51b815260206004820152603460248201527f636f6d706c69616e6365206973206e6f74207375697461626c6520666f722062604482015273696e64696e6720746f20746865206d6f64756c6560601b6064820152608401610286565b6040516312a4c95160e21b81523060048201526001600160a01b03821690634a93254490602401600060405180830381600087803b1580156104bf57600080fd5b505af11580156104d3573d6000803e3d6000fd5b50506001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b038716908117909155600081815260026020526040808220805460ff191690941790935591519093507fead6a006345da1073a106d5f32372d2d2204f46cb0b4bca8f5ebafcbbed12b8a9250a25050565b3361056d610ba2565b6001600160a01b0316148061059e57506000546001600160a01b031615801561059e5750336001600160a01b038216145b6105ea5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c000000006044820152606401610286565b6001600160a01b0381166106105760405162461bcd60e51b8152600401610286906113e8565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b906020015b60405180910390a150565b3361066e610ba2565b6001600160a01b0316148061068b5750336001600160a01b038216145b6106d75760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c000000006044820152606401610286565b6000546001600160a01b038281169116146107345760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e640000000000000000006044820152606401610286565b6001600160a01b03811661075a5760405162461bcd60e51b8152600401610286906113e8565b600080546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a9060200161065a565b6000546001600160a01b031633146107cd5760405162461bcd60e51b815260040161028690611441565b6001600160a01b0382166107f35760405162461bcd60e51b8152600401610286906113e8565b600081116108435760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420617267756d656e74202d206e6f2076616c7565206d696e746044820152606401610286565b60015460005b818110156108df5760018181548110610864576108646114ab565b60009182526020909120015460405163f104a8c960e01b81526001600160a01b038681166004830152602482018690529091169063f104a8c990604401600060405180830381600087803b1580156108bb57600080fd5b505af11580156108cf573d6000803e3d6000fd5b5050600190920191506108499050565b50505050565b6108ed611164565b6108f76000611196565b565b6000546001600160a01b031633146109235760405162461bcd60e51b815260040161028690611441565b6001600160a01b0383161580159061094357506001600160a01b03821615155b61095f5760405162461bcd60e51b8152600401610286906113e8565b600081116109bb5760405162461bcd60e51b8152602060048201526024808201527f696e76616c696420617267756d656e74202d206e6f2076616c7565207472616e60448201526339b332b960e11b6064820152608401610286565b60015460005b81811015610a5f57600181815481106109dc576109dc6114ab565b600091825260209091200154604051630b2df87b60e21b81526001600160a01b03878116600483015286811660248301526044820186905290911690632cb7e1ec90606401600060405180830381600087803b158015610a3b57600080fd5b505af1158015610a4f573d6000803e3d6000fd5b5050600190920191506109c19050565b5050505050565b6000546001600160a01b03163314610a905760405162461bcd60e51b815260040161028690611441565b6001600160a01b038216610ab65760405162461bcd60e51b8152600401610286906113e8565b60008111610b065760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420617267756d656e74202d206e6f2076616c7565206275726e6044820152606401610286565b60015460005b818110156108df5760018181548110610b2757610b276114ab565b600091825260209091200154604051631b9248d160e11b81526001600160a01b038681166004830152602482018690529091169063372491a290604401600060405180830381600087803b158015610b7e57600080fd5b505af1158015610b92573d6000803e3d6000fd5b505060019092019150610b0c9050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b610bd8611164565b6001600160a01b038116610bfe5760405162461bcd60e51b8152600401610286906113e8565b6001600160a01b03811660009081526002602052604090205460ff16610c595760405162461bcd60e51b815260206004820152601060248201526f1b5bd91d5b19481b9bdd08189bdd5b9960821b6044820152606401610286565b60015460005b81811015610df857826001600160a01b031660018281548110610c8457610c846114ab565b6000918252602090912001546001600160a01b031603610df057604051630694a5fb60e01b81523060048201526001600160a01b03841690630694a5fb90602401600060405180830381600087803b158015610cdf57600080fd5b505af1158015610cf3573d6000803e3d6000fd5b5050505060018083610d0591906114c1565b81548110610d1557610d156114ab565b600091825260209091200154600180546001600160a01b039092169183908110610d4157610d416114ab565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480610d8057610d806114e2565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03851680835260029091526040808320805460ff191690555190917f0a1ee69f55c33d8467c69ca59ce2007a737a88603d75392972520bf67cb513b891a2505050565b600101610c5f565b505050565b60606001805480602002602001604051908101604052809291908181526020018280548015610e5557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e37575b5050505050905090565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff16600081158015610ea55750825b905060008267ffffffffffffffff166001148015610ec25750303b155b905081158015610ed0575080155b15610eee5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f1857845460ff60401b1916600160401b1785555b610f2133611207565b8315610a5f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050565b600154600090815b818110156110325760018181548110610f9057610f906114ab565b600091825260209091200154604051624edf3960e21b81526001600160a01b0388811660048301528781166024830152604482018790523060648301529091169063013b7ce490608401602060405180830381865afa158015610ff7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101b919061141f565b61102a57600092505050611039565b600101610f75565b5060019150505b9392505050565b611048611164565b6001600160a01b03811660009081526002602052604090205460ff166110b05760405162461bcd60e51b815260206004820152601960248201527f63616c6c206f6e6c79206f6e20626f756e64206d6f64756c65000000000000006044820152606401610286565b6040518284823760008084836000865af16110cf573d6000803e3d6000fd5b50806001600160a01b03167f20d79de70adcc6e9353d8a9a5646b46dc352710d0a310b1ad1f67faeca7ef8916111058585611218565b6040516001600160e01b0319909116815260200160405180910390a2505050565b61112e611164565b6001600160a01b03811661115857604051631e4fbdf760e01b815260006004820152602401610286565b61116181611196565b50565b3361116d610ba2565b6001600160a01b0316146108f75760405163118cdaa760e01b8152336004820152602401610286565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61120f61122c565b61116181611275565b600060048210611226575081355b92915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166108f757604051631afcd79f60e31b815260040160405180910390fd5b61112e61122c565b80356001600160a01b038116811461129457600080fd5b919050565b6000602082840312156112ab57600080fd5b6110398261127d565b600080604083850312156112c757600080fd5b6112d08361127d565b946020939093013593505050565b6000806000606084860312156112f357600080fd5b6112fc8461127d565b925061130a6020850161127d565b9150604084013590509250925092565b6020808252825182820181905260009190848201906040850190845b8181101561135b5783516001600160a01b031683529284019291840191600101611336565b50909695505050505050565b60008060006040848603121561137c57600080fd5b833567ffffffffffffffff8082111561139457600080fd5b818601915086601f8301126113a857600080fd5b8135818111156113b757600080fd5b8760208285010111156113c957600080fd5b6020928301955093506113df918601905061127d565b90509250925092565b6020808252601f908201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604082015260600190565b60006020828403121561143157600080fd5b8151801515811461103957600080fd5b60208082526044908201527f6572726f72203a20746869732061646472657373206973206e6f74206120746f60408201527f6b656e20626f756e6420746f2074686520636f6d706c69616e636520636f6e746060820152631c9858dd60e21b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b8181038181111561122657634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fdfea264697066735822122043b49d9ecfdfbe6ccba49ac2960073d06f28dcb8bb44dbfd3a6754b75d951d6364736f6c63430008180033","sourceMap":"4046:7417:43:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101005760003560e01c80638da5cb5b11610097578063e1c7392a11610066578063e1c7392a14610217578063e46638e61461021f578063efb22d3314610232578063f2fde38b1461024557600080fd5b80638da5cb5b146101ab578063a0632461146101b3578063a446d49f146101c6578063b2494df31461020257600080fd5b80636a3edf28116100d35780636a3edf2814610153578063715018a61461017d5780638baf29b4146101855780638d2ea7721461019857600080fd5b80631ed86f19146101055780633ff5aa021461011a57806340db3b501461012d5780635f8dead314610140575b600080fd5b610118610113366004611299565b610258565b005b610118610128366004611299565b610564565b61011861013b366004611299565b610665565b61011861014e3660046112b4565b6107a3565b6000546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b6101186108e5565b6101186101933660046112de565b6108f9565b6101186101a63660046112b4565b610a66565b610160610ba2565b6101186101c1366004611299565b610bd0565b6101f26101d4366004611299565b6001600160a01b031660009081526002602052604090205460ff1690565b6040519015158152602001610174565b61020a610dfd565b604051610174919061131a565b610118610e5f565b6101f261022d3660046112de565b610f6d565b610118610240366004611367565b611040565b610118610253366004611299565b611126565b610260611164565b6001600160a01b03811661028f5760405162461bcd60e51b8152600401610286906113e8565b60405180910390fd5b6001600160a01b03811660009081526002602052604090205460ff16156102ef5760405162461bcd60e51b81526020600482015260146024820152731b5bd91d5b1948185b1c9958591e48189bdd5b9960621b6044820152606401610286565b600154601810156103425760405162461bcd60e51b815260206004820152601f60248201527f63616e6e6f7420616464206d6f7265207468616e203235206d6f64756c6573006044820152606401610286565b6000819050806001600160a01b031663e6f5e8076040518163ffffffff1660e01b8152600401602060405180830381865afa158015610385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a9919061141f565b61047e5760405163bcc2105360e01b81523060048201526001600160a01b0382169063bcc2105390602401602060405180830381865afa1580156103f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610415919061141f565b61047e5760405162461bcd60e51b815260206004820152603460248201527f636f6d706c69616e6365206973206e6f74207375697461626c6520666f722062604482015273696e64696e6720746f20746865206d6f64756c6560601b6064820152608401610286565b6040516312a4c95160e21b81523060048201526001600160a01b03821690634a93254490602401600060405180830381600087803b1580156104bf57600080fd5b505af11580156104d3573d6000803e3d6000fd5b50506001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b038716908117909155600081815260026020526040808220805460ff191690941790935591519093507fead6a006345da1073a106d5f32372d2d2204f46cb0b4bca8f5ebafcbbed12b8a9250a25050565b3361056d610ba2565b6001600160a01b0316148061059e57506000546001600160a01b031615801561059e5750336001600160a01b038216145b6105ea5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c000000006044820152606401610286565b6001600160a01b0381166106105760405162461bcd60e51b8152600401610286906113e8565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b906020015b60405180910390a150565b3361066e610ba2565b6001600160a01b0316148061068b5750336001600160a01b038216145b6106d75760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c000000006044820152606401610286565b6000546001600160a01b038281169116146107345760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e640000000000000000006044820152606401610286565b6001600160a01b03811661075a5760405162461bcd60e51b8152600401610286906113e8565b600080546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a9060200161065a565b6000546001600160a01b031633146107cd5760405162461bcd60e51b815260040161028690611441565b6001600160a01b0382166107f35760405162461bcd60e51b8152600401610286906113e8565b600081116108435760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420617267756d656e74202d206e6f2076616c7565206d696e746044820152606401610286565b60015460005b818110156108df5760018181548110610864576108646114ab565b60009182526020909120015460405163f104a8c960e01b81526001600160a01b038681166004830152602482018690529091169063f104a8c990604401600060405180830381600087803b1580156108bb57600080fd5b505af11580156108cf573d6000803e3d6000fd5b5050600190920191506108499050565b50505050565b6108ed611164565b6108f76000611196565b565b6000546001600160a01b031633146109235760405162461bcd60e51b815260040161028690611441565b6001600160a01b0383161580159061094357506001600160a01b03821615155b61095f5760405162461bcd60e51b8152600401610286906113e8565b600081116109bb5760405162461bcd60e51b8152602060048201526024808201527f696e76616c696420617267756d656e74202d206e6f2076616c7565207472616e60448201526339b332b960e11b6064820152608401610286565b60015460005b81811015610a5f57600181815481106109dc576109dc6114ab565b600091825260209091200154604051630b2df87b60e21b81526001600160a01b03878116600483015286811660248301526044820186905290911690632cb7e1ec90606401600060405180830381600087803b158015610a3b57600080fd5b505af1158015610a4f573d6000803e3d6000fd5b5050600190920191506109c19050565b5050505050565b6000546001600160a01b03163314610a905760405162461bcd60e51b815260040161028690611441565b6001600160a01b038216610ab65760405162461bcd60e51b8152600401610286906113e8565b60008111610b065760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420617267756d656e74202d206e6f2076616c7565206275726e6044820152606401610286565b60015460005b818110156108df5760018181548110610b2757610b276114ab565b600091825260209091200154604051631b9248d160e11b81526001600160a01b038681166004830152602482018690529091169063372491a290604401600060405180830381600087803b158015610b7e57600080fd5b505af1158015610b92573d6000803e3d6000fd5b505060019092019150610b0c9050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b610bd8611164565b6001600160a01b038116610bfe5760405162461bcd60e51b8152600401610286906113e8565b6001600160a01b03811660009081526002602052604090205460ff16610c595760405162461bcd60e51b815260206004820152601060248201526f1b5bd91d5b19481b9bdd08189bdd5b9960821b6044820152606401610286565b60015460005b81811015610df857826001600160a01b031660018281548110610c8457610c846114ab565b6000918252602090912001546001600160a01b031603610df057604051630694a5fb60e01b81523060048201526001600160a01b03841690630694a5fb90602401600060405180830381600087803b158015610cdf57600080fd5b505af1158015610cf3573d6000803e3d6000fd5b5050505060018083610d0591906114c1565b81548110610d1557610d156114ab565b600091825260209091200154600180546001600160a01b039092169183908110610d4157610d416114ab565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480610d8057610d806114e2565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03851680835260029091526040808320805460ff191690555190917f0a1ee69f55c33d8467c69ca59ce2007a737a88603d75392972520bf67cb513b891a2505050565b600101610c5f565b505050565b60606001805480602002602001604051908101604052809291908181526020018280548015610e5557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e37575b5050505050905090565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff16600081158015610ea55750825b905060008267ffffffffffffffff166001148015610ec25750303b155b905081158015610ed0575080155b15610eee5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f1857845460ff60401b1916600160401b1785555b610f2133611207565b8315610a5f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050565b600154600090815b818110156110325760018181548110610f9057610f906114ab565b600091825260209091200154604051624edf3960e21b81526001600160a01b0388811660048301528781166024830152604482018790523060648301529091169063013b7ce490608401602060405180830381865afa158015610ff7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101b919061141f565b61102a57600092505050611039565b600101610f75565b5060019150505b9392505050565b611048611164565b6001600160a01b03811660009081526002602052604090205460ff166110b05760405162461bcd60e51b815260206004820152601960248201527f63616c6c206f6e6c79206f6e20626f756e64206d6f64756c65000000000000006044820152606401610286565b6040518284823760008084836000865af16110cf573d6000803e3d6000fd5b50806001600160a01b03167f20d79de70adcc6e9353d8a9a5646b46dc352710d0a310b1ad1f67faeca7ef8916111058585611218565b6040516001600160e01b0319909116815260200160405180910390a2505050565b61112e611164565b6001600160a01b03811661115857604051631e4fbdf760e01b815260006004820152602401610286565b61116181611196565b50565b3361116d610ba2565b6001600160a01b0316146108f75760405163118cdaa760e01b8152336004820152602401610286565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61120f61122c565b61116181611275565b600060048210611226575081355b92915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166108f757604051631afcd79f60e31b815260040160405180910390fd5b61112e61122c565b80356001600160a01b038116811461129457600080fd5b919050565b6000602082840312156112ab57600080fd5b6110398261127d565b600080604083850312156112c757600080fd5b6112d08361127d565b946020939093013593505050565b6000806000606084860312156112f357600080fd5b6112fc8461127d565b925061130a6020850161127d565b9150604084013590509250925092565b6020808252825182820181905260009190848201906040850190845b8181101561135b5783516001600160a01b031683529284019291840191600101611336565b50909695505050505050565b60008060006040848603121561137c57600080fd5b833567ffffffffffffffff8082111561139457600080fd5b818601915086601f8301126113a857600080fd5b8135818111156113b757600080fd5b8760208285010111156113c957600080fd5b6020928301955093506113df918601905061127d565b90509250925092565b6020808252601f908201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604082015260600190565b60006020828403121561143157600080fd5b8151801515811461103957600080fd5b60208082526044908201527f6572726f72203a20746869732061646472657373206973206e6f74206120746f60408201527f6b656e20626f756e6420746f2074686520636f6d706c69616e636520636f6e746060820152631c9858dd60e21b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b8181038181111561122657634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fdfea264697066735822122043b49d9ecfdfbe6ccba49ac2960073d06f28dcb8bb44dbfd3a6754b75d951d6364736f6c63430008180033","sourceMap":"4046:7417:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5406:648;;;;;;:::i;:::-;;:::i;:::-;;4569:332;;;;;;:::i;:::-;;:::i;4972:363::-;;;;;;:::i;:::-;;:::i;7368:380::-;;;;;;:::i;:::-;;:::i;9877:101::-;9934:7;9960:11;-1:-1:-1;;;;;9960:11:43;9877:101;;;-1:-1:-1;;;;;806:32:165;;;788:51;;776:2;761:18;9877:101:43;;;;;;;;3155::136;;;:::i;6828:471:43:-;;;;;;:::i;:::-;;:::i;7819:388::-;;;;;;:::i;:::-;;:::i;2441:144:136:-;;;:::i;6128:629:43:-;;;;;;:::i;:::-;;:::i;9503:123::-;;;;;;:::i;:::-;-1:-1:-1;;;;;9598:21:43;9575:4;9598:21;;;:12;:21;;;;;;;;;9503:123;;;;1348:14:165;;1341:22;1323:41;;1311:2;1296:18;9503:123:43;1183:187:165;9698:104:43;;;:::i;:::-;;;;;;;:::i;4418:80::-;;;:::i;10051:362::-;;;;;;:::i;:::-;;:::i;8287:1141::-;;;;;;:::i;:::-;;:::i;3405:215:136:-;;;;;;:::i;:::-;;:::i;5406:648:43:-;2334:13:136;:11;:13::i;:::-;-1:-1:-1;;;;;5488:21:43;::::1;5480:65;;;;-1:-1:-1::0;;;5480:65:43::1;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1::0;;;;;5564:21:43;::::1;;::::0;;;:12:::1;:21;::::0;;;;;::::1;;5563:22;5555:55;;;::::0;-1:-1:-1;;;5555:55:43;;3276:2:165;5555:55:43::1;::::0;::::1;3258:21:165::0;3315:2;3295:18;;;3288:30;-1:-1:-1;;;3334:18:165;;;3327:50;3394:18;;5555:55:43::1;3074:344:165::0;5555:55:43::1;5628:8;:15:::0;5647:2:::1;-1:-1:-1::0;5628:21:43::1;5620:65;;;::::0;-1:-1:-1;;;5620:65:43;;3625:2:165;5620:65:43::1;::::0;::::1;3607:21:165::0;3664:2;3644:18;;;3637:30;3703:33;3683:18;;;3676:61;3754:18;;5620:65:43::1;3423:355:165::0;5620:65:43::1;5695:14;5720:7;5695:33;;5743:6;-1:-1:-1::0;;;;;5743:20:43::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5738:158;;5789:39;::::0;-1:-1:-1;;;5789:39:43;;5822:4:::1;5789:39;::::0;::::1;788:51:165::0;-1:-1:-1;;;;;5789:24:43;::::1;::::0;::::1;::::0;761:18:165;;5789:39:43::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5781:104;;;::::0;-1:-1:-1;;;5781:104:43;;4267:2:165;5781:104:43::1;::::0;::::1;4249:21:165::0;4306:2;4286:18;;;4279:30;4345:34;4325:18;;;4318:62;-1:-1:-1;;;4396:18:165;;;4389:50;4456:19;;5781:104:43::1;4065:416:165::0;5781:104:43::1;5906:36;::::0;-1:-1:-1;;;5906:36:43;;5936:4:::1;5906:36;::::0;::::1;788:51:165::0;-1:-1:-1;;;;;5906:21:43;::::1;::::0;::::1;::::0;761:18:165;;5906:36:43::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5952:8:43::1;:22:::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;;;5952:22:43::1;-1:-1:-1::0;;;;;5952:22:43;::::1;::::0;;::::1;::::0;;;-1:-1:-1;5984:21:43;;;:12:::1;5952:22;5984:21:::0;;;;;:28;;-1:-1:-1;;5984:28:43::1;::::0;;::::1;::::0;;;6027:20;;5952:22;;-1:-1:-1;6027:20:43::1;::::0;-1:-1:-1;6027:20:43::1;5470:584;5406:648:::0;:::o;4569:332::-;4651:10;4640:7;:5;:7::i;:::-;-1:-1:-1;;;;;4640:21:43;;:76;;;-1:-1:-1;4689:1:43;4666:11;-1:-1:-1;;;;;4666:11:43;:25;:49;;;;-1:-1:-1;4695:10:43;-1:-1:-1;;;;;4695:20:43;;;4666:49;4632:125;;;;-1:-1:-1;;;4632:125:43;;4688:2:165;4632:125:43;;;4670:21:165;4727:2;4707:18;;;4700:30;4766;4746:18;;;4739:58;4814:18;;4632:125:43;4486:352:165;4632:125:43;-1:-1:-1;;;;;4775:20:43;;4767:64;;;;-1:-1:-1;;;4767:64:43;;;;;;;:::i;:::-;4841:11;:20;;-1:-1:-1;;;;;;4841:20:43;-1:-1:-1;;;;;4841:20:43;;;;;;;;4876:18;;788:51:165;;;4876:18:43;;776:2:165;761:18;4876::43;;;;;;;;4569:332;:::o;4972:363::-;5056:10;5045:7;:5;:7::i;:::-;-1:-1:-1;;;;;5045:21:43;;:45;;;-1:-1:-1;5070:10:43;-1:-1:-1;;;;;5070:20:43;;;5045:45;5037:87;;;;-1:-1:-1;;;5037:87:43;;4688:2:165;5037:87:43;;;4670:21:165;4727:2;4707:18;;;4700:30;4766;4746:18;;;4739:58;4814:18;;5037:87:43;4486:352:165;5037:87:43;5152:11;;-1:-1:-1;;;;;5142:21:43;;;5152:11;;5142:21;5134:57;;;;-1:-1:-1;;;5134:57:43;;5045:2:165;5134:57:43;;;5027:21:165;5084:2;5064:18;;;5057:30;5123:25;5103:18;;;5096:53;5166:18;;5134:57:43;4843:347:165;5134:57:43;-1:-1:-1;;;;;5209:20:43;;5201:64;;;;-1:-1:-1;;;5201:64:43;;;;;;;:::i;:::-;5282:11;5275:18;;-1:-1:-1;;;;;;5275:18:43;;;5308:20;;-1:-1:-1;;;;;806:32:165;;788:51;;5308:20:43;;776:2:165;761:18;5308:20:43;642:203:165;7368:380:43;4310:11;;-1:-1:-1;;;;;4310:11:43;4296:10;:25;4288:106;;;;-1:-1:-1;;;4288:106:43;;;;;;;:::i;:::-;-1:-1:-1;;;;;7460:17:43;::::1;7452:61;;;;-1:-1:-1::0;;;7452:61:43::1;;;;;;;:::i;:::-;7540:1;7531:6;:10;7523:55;;;::::0;-1:-1:-1;;;7523:55:43;;5874:2:165;7523:55:43::1;::::0;::::1;5856:21:165::0;;;5893:18;;;5886:30;5952:34;5932:18;;;5925:62;6004:18;;7523:55:43::1;5672:356:165::0;7523:55:43::1;7605:8;:15:::0;7588:14:::1;7630:112;7654:6;7650:1;:10;7630:112;;;7689:8;7698:1;7689:11;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;7681:50:::1;::::0;-1:-1:-1;;;7681:50:43;;-1:-1:-1;;;;;6357:32:165;;;7681:50:43::1;::::0;::::1;6339:51:165::0;6406:18;;;6399:34;;;7689:11:43;;::::1;::::0;7681:37:::1;::::0;6312:18:165;;7681:50:43::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7662:3:43::1;::::0;;::::1;::::0;-1:-1:-1;7630:112:43::1;::::0;-1:-1:-1;7630:112:43::1;;;7442:306;7368:380:::0;;:::o;3155:101:136:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;6828:471:43:-;4310:11;;-1:-1:-1;;;;;4310:11:43;4296:10;:25;4288:106;;;;-1:-1:-1;;;4288:106:43;;;;;;;:::i;:::-;-1:-1:-1;;;;;6952:19:43;::::1;::::0;;::::1;::::0;:52:::1;;-1:-1:-1::0;;;;;;6987:17:43;::::1;::::0;::::1;6952:52;6931:118;;;;-1:-1:-1::0;;;6931:118:43::1;;;;;;;:::i;:::-;7076:1;7067:6;:10;7059:59;;;::::0;-1:-1:-1;;;7059:59:43;;6646:2:165;7059:59:43::1;::::0;::::1;6628:21:165::0;6685:2;6665:18;;;6658:30;6724:34;6704:18;;;6697:62;-1:-1:-1;;;6775:18:165;;;6768:34;6819:19;;7059:59:43::1;6444:400:165::0;7059:59:43::1;7145:8;:15:::0;7128:14:::1;7170:123;7194:6;7190:1;:10;7170:123;;;7229:8;7238:1;7229:11;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;7221:61:::1;::::0;-1:-1:-1;;;7221:61:43;;-1:-1:-1;;;;;7107:15:165;;;7221:61:43::1;::::0;::::1;7089:34:165::0;7159:15;;;7139:18;;;7132:43;7191:18;;;7184:34;;;7229:11:43;;::::1;::::0;7221:41:::1;::::0;7024:18:165;;7221:61:43::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7202:3:43::1;::::0;;::::1;::::0;-1:-1:-1;7170:123:43::1;::::0;-1:-1:-1;7170:123:43::1;;;6921:378;6828:471:::0;;;:::o;7819:388::-;4310:11;;-1:-1:-1;;;;;4310:11:43;4296:10;:25;4288:106;;;;-1:-1:-1;;;4288:106:43;;;;;;;:::i;:::-;-1:-1:-1;;;;;7915:19:43;::::1;7907:63;;;;-1:-1:-1::0;;;7907:63:43::1;;;;;;;:::i;:::-;7997:1;7988:6;:10;7980:55;;;::::0;-1:-1:-1;;;7980:55:43;;7431:2:165;7980:55:43::1;::::0;::::1;7413:21:165::0;;;7450:18;;;7443:30;7509:34;7489:18;;;7482:62;7561:18;;7980:55:43::1;7229:356:165::0;7980:55:43::1;8062:8;:15:::0;8045:14:::1;8087:114;8111:6;8107:1;:10;8087:114;;;8146:8;8155:1;8146:11;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;8138:52:::1;::::0;-1:-1:-1;;;8138:52:43;;-1:-1:-1;;;;;6357:32:165;;;8138:52:43::1;::::0;::::1;6339:51:165::0;6406:18;;;6399:34;;;8146:11:43;;::::1;::::0;8138:37:::1;::::0;6312:18:165;;8138:52:43::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8119:3:43::1;::::0;;::::1;::::0;-1:-1:-1;8087:114:43::1;::::0;-1:-1:-1;8087:114:43::1;2441:144:136::0;1313:22;2570:8;-1:-1:-1;;;;;2570:8:136;;2441:144::o;6128:629:43:-;2334:13:136;:11;:13::i;:::-;-1:-1:-1;;;;;6213:21:43;::::1;6205:65;;;;-1:-1:-1::0;;;6205:65:43::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6288:21:43;::::1;;::::0;;;:12:::1;:21;::::0;;;;;::::1;;6280:50;;;::::0;-1:-1:-1;;;6280:50:43;;7792:2:165;6280:50:43::1;::::0;::::1;7774:21:165::0;7831:2;7811:18;;;7804:30;-1:-1:-1;;;7850:18:165;;;7843:46;7906:18;;6280:50:43::1;7590:340:165::0;6280:50:43::1;6357:8;:15:::0;6340:14:::1;6382:369;6406:6;6402:1;:10;6382:369;;;6452:7;-1:-1:-1::0;;;;;6437:22:43::1;:8;6446:1;6437:11;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;6437:11:43::1;:22:::0;6433:308:::1;;6479:48;::::0;-1:-1:-1;;;6479:48:43;;6521:4:::1;6479:48;::::0;::::1;788:51:165::0;-1:-1:-1;;;;;6479:33:43;::::1;::::0;::::1;::::0;761:18:165;;6479:48:43::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6559:8;6577:1:::0;6568:6:::1;:10;;;;:::i;:::-;6559:20;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;;6545:11;;-1:-1:-1;;;;;6559:20:43;;::::1;::::0;6554:1;;6545:11;::::1;;;;;:::i;:::-;;;;;;;;;:34;;;;;-1:-1:-1::0;;;;;6545:34:43::1;;;;;-1:-1:-1::0;;;;;6545:34:43::1;;;;;;6597:8;:14;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;-1:-1:-1;;6597:14:43;;;;;-1:-1:-1;;;;;;6597:14:43::1;::::0;;;;;;;;-1:-1:-1;;;;;6629:21:43;::::1;::::0;;;:12:::1;:21:::0;;;;;;;:29;;-1:-1:-1;;6629:29:43::1;::::0;;6681:22;6629:21;;6681:22:::1;::::0;::::1;6382:369;6195:562;6128:629:::0;:::o;6433:308::-:1;6414:3;;6382:369;;;;6195:562;6128:629:::0;:::o;9698:104::-;9752:16;9787:8;9780:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9780:15:43;;;;;;;;;;;;;;;;;;;;;;;9698:104;:::o;4418:80::-;8870:21:137;4302:15;;-1:-1:-1;;;4302:15:137;;;;4301:16;;4348:14;;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;:16;;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:137;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:137;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:137;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:137;-1:-1:-1;;;5013:22:137;;;4979:67;4465:26:43::1;4480:10;4465:14;:26::i;:::-;5070:14:137::0;5066:101;;;5100:23;;-1:-1:-1;;;;5100:23:137;;;5142:14;;-1:-1:-1;8450:50:165;;5142:14:137;;8438:2:165;8423:18;5142:14:137;;;;;;;4092:1081;;;;;4418:80:43:o;10051:362::-;10181:8;:15;10148:4;;;10206:180;10230:6;10226:1;:10;10206:180;;;10270:8;10279:1;10270:11;;;;;;;;:::i;:::-;;;;;;;;;;;10262:67;;-1:-1:-1;;;10262:67:43;;-1:-1:-1;;;;;8798:15:165;;;10262:67:43;;;8780:34:165;8850:15;;;8830:18;;;8823:43;8882:18;;;8875:34;;;10323:4:43;8925:18:165;;;8918:43;10270:11:43;;;;10262:32;;8714:19:165;;10262:67:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10257:119;;10356:5;10349:12;;;;;;10257:119;10238:3;;10206:180;;;;10402:4;10395:11;;;10051:362;;;;;;:::o;8287:1141::-;2334:13:136;:11;:13::i;:::-;-1:-1:-1;;;;;8403:21:43;::::1;;::::0;;;:12:::1;:21;::::0;;;;;::::1;;8395:59;;;::::0;-1:-1:-1;;;8395:59:43;;9174:2:165;8395:59:43::1;::::0;::::1;9156:21:165::0;9213:2;9193:18;;;9186:30;9252:27;9232:18;;;9225:55;9297:18;;8395:59:43::1;8972:349:165::0;8395:59:43::1;8938:4;8932:11;9005:15;8988;8969:17;8956:65;9205:1;9190::::0;9161:15:::1;9130:17;9115:1;9094:7;9075:5;9057:163;9034:314;;9273:16;9270:1;9267::::0;9252:38:::1;9317:16;9314:1;9307:27;9034:314;;9391:7;-1:-1:-1::0;;;;;9373:47:43::1;;9400:19;9410:8;;9400:9;:19::i;:::-;9373:47;::::0;-1:-1:-1;;;;;;9488:33:165;;;9470:52;;9458:2;9443:18;9373:47:43::1;;;;;;;8287:1141:::0;;;:::o;3405:215:136:-;2334:13;:11;:13::i;:::-;-1:-1:-1;;;;;3489:22:136;::::1;3485:91;;3534:31;::::0;-1:-1:-1;;;3534:31:136;;3562:1:::1;3534:31;::::0;::::1;788:51:165::0;761:18;;3534:31:136::1;642:203:165::0;3485:91:136::1;3585:28;3604:8;3585:18;:28::i;:::-;3405:215:::0;:::o;2658:162::-;966:10:138;2717:7:136;:5;:7::i;:::-;-1:-1:-1;;;;;2717:23:136;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:136;;966:10:138;2763:40:136;;;788:51:165;761:18;;2763:40:136;642:203:165;3774:248:136;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:136;;-1:-1:-1;;;;;3941:19:136;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;1847:127::-;6931:20:137;:18;:20::i;:::-;1929:38:136::1;1954:12;1929:24;:38::i;10641:820:43:-:0;10708:13;10756:1;10737:20;;10733:722;;-1:-1:-1;11402:29:43;;10733:722;10641:820;;;;:::o;7084:141:137:-;8870:21;8560:40;-1:-1:-1;;;8560:40:137;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:137;;;;;;;;;;;1980:235:136;6931:20:137;:18;:20::i;14:173:165:-;82:20;;-1:-1:-1;;;;;131:31:165;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;383:254::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:52;;;528:1;525;518:12;480:52;551:29;570:9;551:29;:::i;:::-;541:39;627:2;612:18;;;;599:32;;-1:-1:-1;;;383:254:165:o;850:328::-;927:6;935;943;996:2;984:9;975:7;971:23;967:32;964:52;;;1012:1;1009;1002:12;964:52;1035:29;1054:9;1035:29;:::i;:::-;1025:39;;1083:38;1117:2;1106:9;1102:18;1083:38;:::i;:::-;1073:48;;1168:2;1157:9;1153:18;1140:32;1130:42;;850:328;;;;;:::o;1375:658::-;1546:2;1598:21;;;1668:13;;1571:18;;;1690:22;;;1517:4;;1546:2;1769:15;;;;1743:2;1728:18;;;1517:4;1812:195;1826:6;1823:1;1820:13;1812:195;;;1891:13;;-1:-1:-1;;;;;1887:39:165;1875:52;;1982:15;;;;1947:12;;;;1923:1;1841:9;1812:195;;;-1:-1:-1;2024:3:165;;1375:658;-1:-1:-1;;;;;;1375:658:165:o;2038:671::-;2117:6;2125;2133;2186:2;2174:9;2165:7;2161:23;2157:32;2154:52;;;2202:1;2199;2192:12;2154:52;2242:9;2229:23;2271:18;2312:2;2304:6;2301:14;2298:34;;;2328:1;2325;2318:12;2298:34;2366:6;2355:9;2351:22;2341:32;;2411:7;2404:4;2400:2;2396:13;2392:27;2382:55;;2433:1;2430;2423:12;2382:55;2473:2;2460:16;2499:2;2491:6;2488:14;2485:34;;;2515:1;2512;2505:12;2485:34;2562:7;2555:4;2546:6;2542:2;2538:15;2534:26;2531:39;2528:59;;;2583:1;2580;2573:12;2528:59;2614:4;2606:13;;;;-1:-1:-1;2638:6:165;-1:-1:-1;2663:40:165;;2682:20;;;-1:-1:-1;2663:40:165;:::i;:::-;2653:50;;2038:671;;;;;:::o;2714:355::-;2916:2;2898:21;;;2955:2;2935:18;;;2928:30;2994:33;2989:2;2974:18;;2967:61;3060:2;3045:18;;2714:355::o;3783:277::-;3850:6;3903:2;3891:9;3882:7;3878:23;3874:32;3871:52;;;3919:1;3916;3909:12;3871:52;3951:9;3945:16;4004:5;3997:13;3990:21;3983:5;3980:32;3970:60;;4026:1;4023;4016:12;5195:472;5397:2;5379:21;;;5436:2;5416:18;;;5409:30;5475:34;5470:2;5455:18;;5448:62;5546:34;5541:2;5526:18;;5519:62;-1:-1:-1;;;5612:3:165;5597:19;;5590:35;5657:3;5642:19;;5195:472::o;6033:127::-;6094:10;6089:3;6085:20;6082:1;6075:31;6125:4;6122:1;6115:15;6149:4;6146:1;6139:15;7935:225;8002:9;;;8023:11;;;8020:134;;;8076:10;8071:3;8067:20;8064:1;8057:31;8111:4;8108:1;8101:15;8139:4;8136:1;8129:15;8165:127;8226:10;8221:3;8217:20;8214:1;8207:31;8257:4;8254:1;8247:15;8281:4;8278:1;8271:15","linkReferences":{}},"methodIdentifiers":{"addModule(address)":"1ed86f19","bindToken(address)":"3ff5aa02","callModuleFunction(bytes,address)":"efb22d33","canTransfer(address,address,uint256)":"e46638e6","created(address,uint256)":"5f8dead3","destroyed(address,uint256)":"8d2ea772","getModules()":"b2494df3","getTokenBound()":"6a3edf28","init()":"e1c7392a","isModuleBound(address)":"a446d49f","owner()":"8da5cb5b","removeModule(address)":"a0632461","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","transferred(address,address,uint256)":"8baf29b4","unbindToken(address)":"40db3b50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_module\",\"type\":\"address\"}],\"name\":\"ModuleAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"ModuleInteraction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_module\",\"type\":\"address\"}],\"name\":\"ModuleRemoved\",\"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\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_module\",\"type\":\"address\"}],\"name\":\"addModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_module\",\"type\":\"address\"}],\"name\":\"callModuleFunction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getModules\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenBound\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_module\",\"type\":\"address\"}],\"name\":\"isModuleBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_module\",\"type\":\"address\"}],\"name\":\"removeModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"ModuleInteraction(address,bytes4)\":{\"details\":\"Event emitted for each executed interaction with a module contract. For gas efficiency, only the interaction calldata selector (first 4 bytes) is included in the event. For interactions without calldata or whose calldata is shorter than 4 bytes, the selector will be `0`.\"}},\"kind\":\"dev\",\"methods\":{\"addModule(address)\":{\"details\":\"See {IModularCompliance-addModule}.\"},\"bindToken(address)\":{\"details\":\"See {IModularCompliance-bindToken}.\"},\"callModuleFunction(bytes,address)\":{\"details\":\"see {IModularCompliance-callModuleFunction}.\"},\"canTransfer(address,address,uint256)\":{\"details\":\"See {IModularCompliance-canTransfer}.\"},\"created(address,uint256)\":{\"details\":\"See {IModularCompliance-created}.\"},\"destroyed(address,uint256)\":{\"details\":\"See {IModularCompliance-destroyed}.\"},\"getModules()\":{\"details\":\"See {IModularCompliance-getModules}.\"},\"getTokenBound()\":{\"details\":\"See {IModularCompliance-getTokenBound}.\"},\"isModuleBound(address)\":{\"details\":\"See {IModularCompliance-isModuleBound}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeModule(address)\":{\"details\":\"See {IModularCompliance-removeModule}.\"},\"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.\"},\"transferred(address,address,uint256)\":{\"details\":\"See {IModularCompliance-transferred}.\"},\"unbindToken(address)\":{\"details\":\"See {IModularCompliance-unbindToken}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ModuleAdded(address)\":{\"notice\":\"this event is emitted when a module has been added to the list of modules bound to the compliance contract the event is emitted by the addModule function `_module` is the address of the compliance module\"},\"ModuleRemoved(address)\":{\"notice\":\"this event is emitted when a module has been removed from the list of modules bound to the compliance contract the event is emitted by the removeModule function `_module` is the address of the compliance module\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/modular/ModularCompliance.sol\":\"ModularCompliance\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/compliance/modular/MCStorage.sol\":{\"keccak256\":\"0xf27c8a5fe6cdbd58f335bca9773a831a475f91fc63af0b3fba84b3e529e97209\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7bc26e7ff7bcba486c82b56f9eb968314dd0f290a053ee02771c8fb94cf79ad7\",\"dweb:/ipfs/QmX1nmCLJjy6LPQNYfyXZYvLiJYhVY2c4zboWiaZ3XKZgj\"]},\"contracts/erc3643/compliance/modular/ModularCompliance.sol\":{\"keccak256\":\"0xe50a09a3cebf2c045e602a0c2e93636aafbecab4d63c90c05f458c56aeaddbed\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://85303860d6aba1804e202bc479340aaec53e92455d48371ffc21aa28927c9485\",\"dweb:/ipfs/Qme7BZBuVfeQ4ZssjDBqX7WzGkrfRxwujZKnyT44BuDPh6\"]},\"contracts/erc3643/compliance/modular/modules/IModule.sol\":{\"keccak256\":\"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c\",\"dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"_module","type":"address","indexed":true}],"type":"event","name":"ModuleAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"bytes4","name":"selector","type":"bytes4","indexed":false}],"type":"event","name":"ModuleInteraction","anonymous":false},{"inputs":[{"internalType":"address","name":"_module","type":"address","indexed":true}],"type":"event","name":"ModuleRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_module","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addModule"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"address","name":"_module","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callModuleFunction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[],"stateMutability":"view","type":"function","name":"getModules","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTokenBound","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"init"},{"inputs":[{"internalType":"address","name":"_module","type":"address"}],"stateMutability":"view","type":"function","name":"isModuleBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_module","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeModule"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"}],"devdoc":{"kind":"dev","methods":{"addModule(address)":{"details":"See {IModularCompliance-addModule}."},"bindToken(address)":{"details":"See {IModularCompliance-bindToken}."},"callModuleFunction(bytes,address)":{"details":"see {IModularCompliance-callModuleFunction}."},"canTransfer(address,address,uint256)":{"details":"See {IModularCompliance-canTransfer}."},"created(address,uint256)":{"details":"See {IModularCompliance-created}."},"destroyed(address,uint256)":{"details":"See {IModularCompliance-destroyed}."},"getModules()":{"details":"See {IModularCompliance-getModules}."},"getTokenBound()":{"details":"See {IModularCompliance-getTokenBound}."},"isModuleBound(address)":{"details":"See {IModularCompliance-isModuleBound}."},"owner()":{"details":"Returns the address of the current owner."},"removeModule(address)":{"details":"See {IModularCompliance-removeModule}."},"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."},"transferred(address,address,uint256)":{"details":"See {IModularCompliance-transferred}."},"unbindToken(address)":{"details":"See {IModularCompliance-unbindToken}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/modular/ModularCompliance.sol":"ModularCompliance"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/MCStorage.sol":{"keccak256":"0xf27c8a5fe6cdbd58f335bca9773a831a475f91fc63af0b3fba84b3e529e97209","urls":["bzz-raw://7bc26e7ff7bcba486c82b56f9eb968314dd0f290a053ee02771c8fb94cf79ad7","dweb:/ipfs/QmX1nmCLJjy6LPQNYfyXZYvLiJYhVY2c4zboWiaZ3XKZgj"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/ModularCompliance.sol":{"keccak256":"0xe50a09a3cebf2c045e602a0c2e93636aafbecab4d63c90c05f458c56aeaddbed","urls":["bzz-raw://85303860d6aba1804e202bc479340aaec53e92455d48371ffc21aa28927c9485","dweb:/ipfs/Qme7BZBuVfeQ4ZssjDBqX7WzGkrfRxwujZKnyT44BuDPh6"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/IModule.sol":{"keccak256":"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02","urls":["bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c","dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"}},"version":1},"id":43} \ No newline at end of file diff --git a/out/ModularComplianceProxy.sol/ModularComplianceProxy.json b/out/ModularComplianceProxy.sol/ModularComplianceProxy.json new file mode 100644 index 0000000..6550109 --- /dev/null +++ b/out/ModularComplianceProxy.sol/ModularComplianceProxy.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"implementationAuthority","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"getImplementationAuthority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setImplementationAuthority","inputs":[{"name":"_newImplementationAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ImplementationAuthoritySet","inputs":[{"name":"_implementationAuthority","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516108fc3803806108fc83398101604081905261002f9161022a565b6001600160a01b03811661008a5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6100a0816000805160206108dc83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a260006100ec6000805160206108dc8339815191525490565b6001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014d919061022a565b60408051600481526024810182526020810180516001600160e01b03166370e39c9560e11b17905290519192506000916001600160a01b038416916101919161025a565b600060405180830381855af49150503d80600081146101cc576040519150601f19603f3d011682016040523d82523d6000602084013e6101d1565b606091505b50509050806102225760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e000000000000000000006044820152606401610081565b505050610289565b60006020828403121561023c57600080fd5b81516001600160a01b038116811461025357600080fd5b9392505050565b6000825160005b8181101561027b5760208186018101518583015201610261565b506000920191825250919050565b610644806102986000396000f3fe6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca2646970667358221220c6dc8eb95ea71b8562be58b345e202616a697695c4d857dc39d6d92f361fda5064736f6c63430008180033821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc","sourceMap":"3873:1312:67:-:0;;;3929:576;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3992:37:67;;3984:81;;;;-1:-1:-1;;;3984:81:67;;511:2:165;3984:81:67;;;493:21:165;550:2;530:18;;;523:30;589:33;569:18;;;562:61;640:18;;3984:81:67;;;;;;;;;4075:54;4105:23;-1:-1:-1;;;;;;;;;;;6099:99:63;5929:285;4075:54:67;4144:51;;-1:-1:-1;;;;;4144:51:67;;;;;;;;4206:13;4252:28;-1:-1:-1;;;;;;;;;;;5598:73:63;;5391:323;4252:28:67;-1:-1:-1;;;;;4222:80:67;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4412:33;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4412:33:67;-1:-1:-1;;;4412:33:67;;;4393:53;;4206:98;;-1:-1:-1;4375:12:67;;-1:-1:-1;;;;;4393:18:67;;;:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4374:72;;;4464:7;4456:42;;;;-1:-1:-1;;;4456:42:67;;1288:2:165;4456:42:67;;;1270:21:165;1327:2;1307:18;;;1300:30;1366:24;1346:18;;;1339:52;1408:18;;4456:42:67;1086:346:165;4456:42:67;3974:531;;3929:576;3873:1312;;14:290:165;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:165;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:165:o;669:412::-;798:3;836:6;830:13;861:1;871:129;885:6;882:1;879:13;871:129;;;983:4;967:14;;;963:25;;957:32;944:11;;;937:53;900:12;871:129;;;-1:-1:-1;1055:1:165;1019:16;;1044:13;;;-1:-1:-1;1019:16:165;669:412;-1:-1:-1;669:412:165:o;1086:346::-;3873:1312:67;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca2646970667358221220c6dc8eb95ea71b8562be58b345e202616a697695c4d857dc39d6d92f361fda5064736f6c63430008180033","sourceMap":"3873:1312:67:-:0;;;;;;;;;;;;;;;;;;;;;;;4602:13;4648:28;-1:-1:-1;;;;;;;;;;;5598:73:63;;5391:323;4648:28:67;-1:-1:-1;;;;;4618:80:67;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4602:98;;4813:14;4808:3;4803;4790:38;4919:1;4916;4900:14;4895:3;4888:5;4880;4873;4869:17;4856:65;4947:16;4997:5;4994:1;4991;4976:27;5023:7;5043:55;;;;5147:5;5144:1;5137:16;5043:55;5078:5;5075:1;5068:16;5016:151;;5391:323:63;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;5598:73:63;5391:323;;-1:-1:-1;;;;;570:32:165;;;552:51;;540:2;525:18;5391:323:63;;;;;;;4141:1174;;;;;;;;;;-1:-1:-1;4141:1174:63;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;5598:73:63;-1:-1:-1;;;;;4250:42:63;:10;-1:-1:-1;;;;;4250:42:63;;4242:100;;;;-1:-1:-1;;;4242:100:63;;1068:2:165;4242:100:63;;;1050:21:165;1107:2;1087:18;;;1080:30;1146:34;1126:18;;;1119:62;-1:-1:-1;;;1197:18:165;;;1190:43;1250:19;;4242:100:63;;;;;;;;;-1:-1:-1;;;;;4360:41:63;;4352:85;;;;-1:-1:-1;;;4352:85:63;;1482:2:165;4352:85:63;;;1464:21:165;1521:2;1501:18;;;1494:30;1560:33;1540:18;;;1533:61;1611:18;;4352:85:63;1280:355:165;4352:85:63;4564:1;-1:-1:-1;;;;;4468:98:63;4498:27;-1:-1:-1;;;;;4468:82:63;;:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4468:98:63;;;:210;;;;;4676:1;-1:-1:-1;;;;;4582:96:63;4612:27;-1:-1:-1;;;;;4582:80:63;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4582:96:63;;;4468:210;:321;;;;;4787:1;-1:-1:-1;;;;;4694:95:63;4724:27;-1:-1:-1;;;;;4694:79:63;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4694:95:63;;;4468:321;:433;;;;;4899:1;-1:-1:-1;;;;;4805:96:63;4835:27;-1:-1:-1;;;;;4805:80:63;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4805:96:63;;;4468:433;:544;;;;;5010:1;-1:-1:-1;;;;;4917:95:63;4947:27;-1:-1:-1;;;;;4917:79:63;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4917:95:63;;;4468:544;:656;;;;;5122:1;-1:-1:-1;;;;;5028:96:63;5058:27;-1:-1:-1;;;;;5028:80:63;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5028:96:63;;;4468:656;4447:723;;;;-1:-1:-1;;;4447:723:63;;1842:2:165;4447:723:63;;;1824:21:165;;;1861:18;;;1854:30;1920:34;1900:18;;;1893:62;1972:18;;4447:723:63;1640:356:165;4447:723:63;5180:58;5210:27;-1:-1:-1;;;;;;;;;;;6099:99:63;5929:285;5180:58;5253:55;;-1:-1:-1;;;;;5253:55:63;;;;;;;;4141:1174;:::o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:251::-;220:6;273:2;261:9;252:7;248:23;244:32;241:52;;;289:1;286;279:12;241:52;321:9;315:16;340:31;365:5;340:31;:::i;:::-;390:5;150:251;-1:-1:-1;;;150:251:165:o;614:247::-;673:6;726:2;714:9;705:7;701:23;697:32;694:52;;;742:1;739;732:12;694:52;781:9;768:23;800:31;825:5;800:31;:::i","linkReferences":{}},"methodIdentifiers":{"getImplementationAuthority()":"2d5f1187","setImplementationAuthority(address)":"92dd9d65"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementationAuthority\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_implementationAuthority\",\"type\":\"address\"}],\"name\":\"ImplementationAuthoritySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"getImplementationAuthority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newImplementationAuthority\",\"type\":\"address\"}],\"name\":\"setImplementationAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"getImplementationAuthority()\":{\"details\":\"See {IProxy-getImplementationAuthority}.\"},\"setImplementationAuthority(address)\":{\"details\":\"See {IProxy-setImplementationAuthority}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ImplementationAuthoritySet(address)\":{\"notice\":\"events\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/proxy/ModularComplianceProxy.sol\":\"ModularComplianceProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/proxy/AbstractProxy.sol\":{\"keccak256\":\"0x25dca1861c6dd72695b0b509da29cfb0fcce7c1ac1df0a0266f444596affc3f4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://221fb9fd02e0db96ff0ce584de79edefeb3b66a820c4dfab788147c0d32743fc\",\"dweb:/ipfs/QmcTatYqxSryAPkrqpvy3A9eFNoa13WjE48jitjBYwB7wq\"]},\"contracts/erc3643/proxy/ModularComplianceProxy.sol\":{\"keccak256\":\"0x644ba0ef8b8258bb3c2aea17bf797e2a3d05d2c9676c1328a1d970e37c9269db\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cf81cc6b827fa7c2e0f9cc5484323a09651accab58e2d6298a080c99ce49d727\",\"dweb:/ipfs/QmPBbzy1TLfPiEW3dE4tRbinNr2f6ZxA7eT2an2ZHgq3j4\"]},\"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol\":{\"keccak256\":\"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa\",\"dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc\"]},\"contracts/erc3643/proxy/interface/IProxy.sol\":{\"keccak256\":\"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65\",\"dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"implementationAuthority","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"_implementationAuthority","type":"address","indexed":true}],"type":"event","name":"ImplementationAuthoritySet","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"getImplementationAuthority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_newImplementationAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setImplementationAuthority"}],"devdoc":{"kind":"dev","methods":{"getImplementationAuthority()":{"details":"See {IProxy-getImplementationAuthority}."},"setImplementationAuthority(address)":{"details":"See {IProxy-setImplementationAuthority}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/proxy/ModularComplianceProxy.sol":"ModularComplianceProxy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/proxy/AbstractProxy.sol":{"keccak256":"0x25dca1861c6dd72695b0b509da29cfb0fcce7c1ac1df0a0266f444596affc3f4","urls":["bzz-raw://221fb9fd02e0db96ff0ce584de79edefeb3b66a820c4dfab788147c0d32743fc","dweb:/ipfs/QmcTatYqxSryAPkrqpvy3A9eFNoa13WjE48jitjBYwB7wq"],"license":"GPL-3.0"},"contracts/erc3643/proxy/ModularComplianceProxy.sol":{"keccak256":"0x644ba0ef8b8258bb3c2aea17bf797e2a3d05d2c9676c1328a1d970e37c9269db","urls":["bzz-raw://cf81cc6b827fa7c2e0f9cc5484323a09651accab58e2d6298a080c99ce49d727","dweb:/ipfs/QmPBbzy1TLfPiEW3dE4tRbinNr2f6ZxA7eT2an2ZHgq3j4"],"license":"GPL-3.0"},"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol":{"keccak256":"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5","urls":["bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa","dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc"],"license":"GPL-3.0"},"contracts/erc3643/proxy/interface/IProxy.sol":{"keccak256":"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536","urls":["bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65","dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"}},"version":1},"id":67} \ No newline at end of file diff --git a/out/OIDImports.sol/OIDImports.json b/out/OIDImports.sol/OIDImports.json new file mode 100644 index 0000000..d2b81f3 --- /dev/null +++ b/out/OIDImports.sol/OIDImports.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220b049d396c3a90132795e166f48204584d4c783da0fcd9c463e9f298ac795ddd364736f6c63430008180033","sourceMap":"206:24:19:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea2646970667358221220b049d396c3a90132795e166f48204584d4c783da0fcd9c463e9f298ac795ddd364736f6c63430008180033","sourceMap":"206:24:19:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/OIDImports.sol\":\"OIDImports\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/OIDImports.sol\":{\"keccak256\":\"0x8d6ef2a1584c2ff064e918f54d3a4b843065dab6b3e22a9621f7588e20df4e5e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a810e9dc0eba874ea8dbbd24c69f43e535d8daf2bc1ee4ab3e4c192b84fd3739\",\"dweb:/ipfs/QmS2jWfAVjLC5m1a35pgX7fTrcVZvkUVotUFnGcGP749Kv\"]},\"contracts/onchainid/ClaimIssuer.sol\":{\"keccak256\":\"0x43d6ec93222df4a0e969a31e178d8a1819586aa179eb6f6ffe8baa0d38a90aec\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b42c3a3590d92cb413e47b0d279fe2f559678ffc17db227defe1c68a64d85196\",\"dweb:/ipfs/QmTvvnggbxCrkvLdZN3fmivuq3on5U8H2HdbokP9RpHJ2C\"]},\"contracts/onchainid/Identity.sol\":{\"keccak256\":\"0x461b8b4a8532737ebad153922938b35d9e9559dbc140250b80a1ba84165069b9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6dc4a9e89fb9cbbc7b8700fa53451ecba2886a06fe3f8300057613656b85ae49\",\"dweb:/ipfs/QmXYUvgjy4wH4udF2JxDJiSrf94ooVPptR5TNFTF3igDXL\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"contracts/onchainid/interface/IImplementationAuthority.sol\":{\"keccak256\":\"0xa46065896246e1a610410ae59828978d8cd6d04527b636e1e7399217941bcf09\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f8c493c0291774cf2da1f84e928c8999c36f7640e6fef82621cd990564a7dd80\",\"dweb:/ipfs/QmPxDk18X86b8FKG91ABkrrkX6fJa2Z8S4jjXDniQ2jvwa\"]},\"contracts/onchainid/proxy/ImplementationAuthority.sol\":{\"keccak256\":\"0xa1199977380dcd3a36481a5e9b7eb6fa694549f17b85911e5ad1b4b4866a69c8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6532b0fbaa7803c7aff3831c5902396013a87e677d5e2c8b3f015504d173be1e\",\"dweb:/ipfs/QmXuJmpzapw9UxV8qifJvKu2cjo2iHCKAF1qRpFXtycj17\"]},\"contracts/onchainid/storage/Storage.sol\":{\"keccak256\":\"0x4d625d363da1a06accde20e3cddc4e7846c5010faaa846e29adfe3c3301fe92c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e08cb6e44df21c75e0796a11531de13843b13168554bb26e3904ce5120f61582\",\"dweb:/ipfs/Qmd2sp9x86Q9iLUSvZkx3Hy4ProDfRNgn2qf9irZKeTDHC\"]},\"contracts/onchainid/storage/Structs.sol\":{\"keccak256\":\"0x42270db48adff6628fac14178eece647909bd6890bcfba1742fdff8f2d371a57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c04a62167213c8960fdb8a4d5ad12730d9a00cd4d4062b45b61249e3f15e4dc8\",\"dweb:/ipfs/QmQGoMtYcJqQZUjQ3gYgzEwMDLSScXBPphTHh4T6jHCJdV\"]},\"contracts/onchainid/version/Version.sol\":{\"keccak256\":\"0x400b5649726c17f41dbb8882928d020616684f26dbdacf1acd37d2019f47d716\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c4db1bcaec955efa7e3ba4e20c8b81434241743a91ee357fbe980b4d3b43bb64\",\"dweb:/ipfs/QmaP5BaXD2aahn5QV7EvY6Jm4vfT61MHkrmjAqFmb3jmqv\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/OIDImports.sol":"OIDImports"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/OIDImports.sol":{"keccak256":"0x8d6ef2a1584c2ff064e918f54d3a4b843065dab6b3e22a9621f7588e20df4e5e","urls":["bzz-raw://a810e9dc0eba874ea8dbbd24c69f43e535d8daf2bc1ee4ab3e4c192b84fd3739","dweb:/ipfs/QmS2jWfAVjLC5m1a35pgX7fTrcVZvkUVotUFnGcGP749Kv"],"license":"UNLICENSED"},"contracts/onchainid/ClaimIssuer.sol":{"keccak256":"0x43d6ec93222df4a0e969a31e178d8a1819586aa179eb6f6ffe8baa0d38a90aec","urls":["bzz-raw://b42c3a3590d92cb413e47b0d279fe2f559678ffc17db227defe1c68a64d85196","dweb:/ipfs/QmTvvnggbxCrkvLdZN3fmivuq3on5U8H2HdbokP9RpHJ2C"],"license":"GPL-3.0"},"contracts/onchainid/Identity.sol":{"keccak256":"0x461b8b4a8532737ebad153922938b35d9e9559dbc140250b80a1ba84165069b9","urls":["bzz-raw://6dc4a9e89fb9cbbc7b8700fa53451ecba2886a06fe3f8300057613656b85ae49","dweb:/ipfs/QmXYUvgjy4wH4udF2JxDJiSrf94ooVPptR5TNFTF3igDXL"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"contracts/onchainid/interface/IImplementationAuthority.sol":{"keccak256":"0xa46065896246e1a610410ae59828978d8cd6d04527b636e1e7399217941bcf09","urls":["bzz-raw://f8c493c0291774cf2da1f84e928c8999c36f7640e6fef82621cd990564a7dd80","dweb:/ipfs/QmPxDk18X86b8FKG91ABkrrkX6fJa2Z8S4jjXDniQ2jvwa"],"license":"GPL-3.0"},"contracts/onchainid/proxy/ImplementationAuthority.sol":{"keccak256":"0xa1199977380dcd3a36481a5e9b7eb6fa694549f17b85911e5ad1b4b4866a69c8","urls":["bzz-raw://6532b0fbaa7803c7aff3831c5902396013a87e677d5e2c8b3f015504d173be1e","dweb:/ipfs/QmXuJmpzapw9UxV8qifJvKu2cjo2iHCKAF1qRpFXtycj17"],"license":"GPL-3.0"},"contracts/onchainid/storage/Storage.sol":{"keccak256":"0x4d625d363da1a06accde20e3cddc4e7846c5010faaa846e29adfe3c3301fe92c","urls":["bzz-raw://e08cb6e44df21c75e0796a11531de13843b13168554bb26e3904ce5120f61582","dweb:/ipfs/Qmd2sp9x86Q9iLUSvZkx3Hy4ProDfRNgn2qf9irZKeTDHC"],"license":"GPL-3.0"},"contracts/onchainid/storage/Structs.sol":{"keccak256":"0x42270db48adff6628fac14178eece647909bd6890bcfba1742fdff8f2d371a57","urls":["bzz-raw://c04a62167213c8960fdb8a4d5ad12730d9a00cd4d4062b45b61249e3f15e4dc8","dweb:/ipfs/QmQGoMtYcJqQZUjQ3gYgzEwMDLSScXBPphTHh4T6jHCJdV"],"license":"GPL-3.0"},"contracts/onchainid/version/Version.sol":{"keccak256":"0x400b5649726c17f41dbb8882928d020616684f26dbdacf1acd37d2019f47d716","urls":["bzz-raw://c4db1bcaec955efa7e3ba4e20c8b81434241743a91ee357fbe980b4d3b43bb64","dweb:/ipfs/QmaP5BaXD2aahn5QV7EvY6Jm4vfT61MHkrmjAqFmb3jmqv"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":19} \ No newline at end of file diff --git a/out/OrderBookHTS.sol/OrderBookHTS.json b/out/OrderBookHTS.sol/OrderBookHTS.json new file mode 100644 index 0000000..008c385 --- /dev/null +++ b/out/OrderBookHTS.sol/OrderBookHTS.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"int64","internalType":"int64"}],"stateMutability":"view"},{"type":"function","name":"buyOrders","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"price","type":"int64","internalType":"int64"},{"name":"volume","type":"int64","internalType":"int64"},{"name":"trader","type":"address","internalType":"address"},{"name":"next","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentOrderId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"firstBuyOrderId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"firstSellOrderId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"sellOrders","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"price","type":"int64","internalType":"int64"},{"name":"volume","type":"int64","internalType":"int64"},{"name":"trader","type":"address","internalType":"address"},{"name":"next","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokenA","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"tokenB","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Deposit","inputs":[{"name":"trader","type":"address","indexed":false,"internalType":"address"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"int64","indexed":false,"internalType":"int64"}],"anonymous":false},{"type":"event","name":"NewOrder","inputs":[{"name":"isBuy","type":"bool","indexed":false,"internalType":"bool"},{"name":"orderId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"trader","type":"address","indexed":false,"internalType":"address"},{"name":"price","type":"int64","indexed":false,"internalType":"int64"},{"name":"volume","type":"int64","indexed":false,"internalType":"int64"}],"anonymous":false},{"type":"event","name":"OrderCanceled","inputs":[{"name":"isBuy","type":"bool","indexed":false,"internalType":"bool"},{"name":"orderId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"trader","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Trade","inputs":[{"name":"tradedVolume","type":"int64","indexed":false,"internalType":"int64"},{"name":"price","type":"int64","indexed":false,"internalType":"int64"},{"name":"buyer","type":"address","indexed":false,"internalType":"address"},{"name":"seller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"trader","type":"address","indexed":false,"internalType":"address"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"int64","indexed":false,"internalType":"int64"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balanceOf(address,address)":"f7888aec","buyOrders(uint256)":"35cea288","currentOrderId()":"925931fc","firstBuyOrderId()":"bb110bf9","firstSellOrderId()":"72fb0777","sellOrders(uint256)":"4a8393f3","tokenA()":"0fc63d10","tokenB()":"5f64b55b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"orderId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"volume\",\"type\":\"int64\"}],\"name\":\"NewOrder\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"orderId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"}],\"name\":\"OrderCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"tradedVolume\",\"type\":\"int64\"},{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"}],\"name\":\"Trade\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"\",\"type\":\"int64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"buyOrders\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"volume\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"next\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentOrderId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"firstBuyOrderId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"firstSellOrderId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"sellOrders\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"volume\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"next\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenA\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenB\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/orderbook/hts/OrderBookHTS.sol\":\"OrderBookHTS\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/safe-HTS/HederaResponseCodes.sol\":{\"keccak256\":\"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca\",\"dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G\"]},\"contracts/common/safe-HTS/IHederaTokenService.sol\":{\"keccak256\":\"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786\",\"dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W\"]},\"contracts/common/safe-HTS/SafeHTS.sol\":{\"keccak256\":\"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe\",\"dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7\"]},\"contracts/orderbook/hts/OrderBookHTS.sol\":{\"keccak256\":\"0xb7220a63df346af26eebd25ea536249e9568777a6294f3410b90f98221c3aeaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de3561a635d0de9e3c1b9ac225a5491f9bd415295501ee5367ad3ac07a5eeb97\",\"dweb:/ipfs/QmNV7EE8BgHVQv9cnPLzEUa1w1dAtSm2stKNdndny23Ahb\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"trader","type":"address","indexed":false},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"int64","name":"amount","type":"int64","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"bool","name":"isBuy","type":"bool","indexed":false},{"internalType":"uint256","name":"orderId","type":"uint256","indexed":false},{"internalType":"address","name":"trader","type":"address","indexed":false},{"internalType":"int64","name":"price","type":"int64","indexed":false},{"internalType":"int64","name":"volume","type":"int64","indexed":false}],"type":"event","name":"NewOrder","anonymous":false},{"inputs":[{"internalType":"bool","name":"isBuy","type":"bool","indexed":false},{"internalType":"uint256","name":"orderId","type":"uint256","indexed":false},{"internalType":"address","name":"trader","type":"address","indexed":false}],"type":"event","name":"OrderCanceled","anonymous":false},{"inputs":[{"internalType":"int64","name":"tradedVolume","type":"int64","indexed":false},{"internalType":"int64","name":"price","type":"int64","indexed":false},{"internalType":"address","name":"buyer","type":"address","indexed":false},{"internalType":"address","name":"seller","type":"address","indexed":false}],"type":"event","name":"Trade","anonymous":false},{"inputs":[{"internalType":"address","name":"trader","type":"address","indexed":false},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"int64","name":"amount","type":"int64","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"int64","name":"","type":"int64"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"buyOrders","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"int64","name":"price","type":"int64"},{"internalType":"int64","name":"volume","type":"int64"},{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"next","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentOrderId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"firstBuyOrderId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"firstSellOrderId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"sellOrders","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"int64","name":"price","type":"int64"},{"internalType":"int64","name":"volume","type":"int64"},{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"next","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenA","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenB","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/orderbook/hts/OrderBookHTS.sol":"OrderBookHTS"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/safe-HTS/HederaResponseCodes.sol":{"keccak256":"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324","urls":["bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca","dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G"],"license":"Apache-2.0"},"contracts/common/safe-HTS/IHederaTokenService.sol":{"keccak256":"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735","urls":["bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786","dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W"],"license":"Apache-2.0"},"contracts/common/safe-HTS/SafeHTS.sol":{"keccak256":"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10","urls":["bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe","dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7"],"license":"Apache-2.0"},"contracts/orderbook/hts/OrderBookHTS.sol":{"keccak256":"0xb7220a63df346af26eebd25ea536249e9568777a6294f3410b90f98221c3aeaf","urls":["bzz-raw://de3561a635d0de9e3c1b9ac225a5491f9bd415295501ee5367ad3ac07a5eeb97","dweb:/ipfs/QmNV7EE8BgHVQv9cnPLzEUa1w1dAtSm2stKNdndny23Ahb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80","urls":["bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229","dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"}},"version":1},"id":135} \ No newline at end of file diff --git a/out/Orderbook.sol/OrderBook.json b/out/Orderbook.sol/OrderBook.json new file mode 100644 index 0000000..6aad4e4 --- /dev/null +++ b/out/Orderbook.sol/OrderBook.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"buyOrders","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"price","type":"uint256","internalType":"uint256"},{"name":"volume","type":"uint256","internalType":"uint256"},{"name":"trader","type":"address","internalType":"address"},{"name":"next","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentOrderId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"firstBuyOrderId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"firstSellOrderId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"sellOrders","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"price","type":"uint256","internalType":"uint256"},{"name":"volume","type":"uint256","internalType":"uint256"},{"name":"trader","type":"address","internalType":"address"},{"name":"next","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokenA","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"tokenB","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Deposit","inputs":[{"name":"trader","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NewOrder","inputs":[{"name":"isBuy","type":"bool","indexed":false,"internalType":"bool"},{"name":"orderId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"trader","type":"address","indexed":false,"internalType":"address"},{"name":"price","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"volume","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OrderCanceled","inputs":[{"name":"isBuy","type":"bool","indexed":false,"internalType":"bool"},{"name":"orderId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"trader","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Trade","inputs":[{"name":"tradedVolume","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"price","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"buyer","type":"address","indexed":true,"internalType":"address"},{"name":"seller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"trader","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balanceOf(address,address)":"f7888aec","buyOrders(uint256)":"35cea288","currentOrderId()":"925931fc","firstBuyOrderId()":"bb110bf9","firstSellOrderId()":"72fb0777","sellOrders(uint256)":"4a8393f3","tokenA()":"0fc63d10","tokenB()":"5f64b55b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"orderId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"}],\"name\":\"NewOrder\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"orderId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"}],\"name\":\"OrderCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tradedVolume\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"}],\"name\":\"Trade\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"buyOrders\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"next\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentOrderId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"firstBuyOrderId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"firstSellOrderId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"sellOrders\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"next\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenA\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenB\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/orderbook/Orderbook.sol\":\"OrderBook\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/orderbook/Orderbook.sol\":{\"keccak256\":\"0x079c6e675b95a97f53531ca0572a84e56d9c6b44056a4d3f5c598ad0004ffc19\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4279c5300585b3d7ca28f87ee881deecf312c7fe766de09996871fe36523bdbe\",\"dweb:/ipfs/QmaJ1kH8L9K6MgvkfAa1SK1L2ztYxSimQaF17pbFKz4Egk\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"trader","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"bool","name":"isBuy","type":"bool","indexed":false},{"internalType":"uint256","name":"orderId","type":"uint256","indexed":false},{"internalType":"address","name":"trader","type":"address","indexed":false},{"internalType":"uint256","name":"price","type":"uint256","indexed":false},{"internalType":"uint256","name":"volume","type":"uint256","indexed":false}],"type":"event","name":"NewOrder","anonymous":false},{"inputs":[{"internalType":"bool","name":"isBuy","type":"bool","indexed":false},{"internalType":"uint256","name":"orderId","type":"uint256","indexed":true},{"internalType":"address","name":"trader","type":"address","indexed":true}],"type":"event","name":"OrderCanceled","anonymous":false},{"inputs":[{"internalType":"uint256","name":"tradedVolume","type":"uint256","indexed":false},{"internalType":"uint256","name":"price","type":"uint256","indexed":false},{"internalType":"address","name":"buyer","type":"address","indexed":true},{"internalType":"address","name":"seller","type":"address","indexed":false}],"type":"event","name":"Trade","anonymous":false},{"inputs":[{"internalType":"address","name":"trader","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"buyOrders","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"volume","type":"uint256"},{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"next","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentOrderId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"firstBuyOrderId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"firstSellOrderId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"sellOrders","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"volume","type":"uint256"},{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"next","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenA","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenB","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/orderbook/Orderbook.sol":"OrderBook"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/orderbook/Orderbook.sol":{"keccak256":"0x079c6e675b95a97f53531ca0572a84e56d9c6b44056a4d3f5c598ad0004ffc19","urls":["bzz-raw://4279c5300585b3d7ca28f87ee881deecf312c7fe766de09996871fe36523bdbe","dweb:/ipfs/QmaJ1kH8L9K6MgvkfAa1SK1L2ztYxSimQaF17pbFKz4Egk"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80","urls":["bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229","dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"}},"version":1},"id":132} \ No newline at end of file diff --git a/out/Ownable.sol/Ownable.json b/out/Ownable.sol/Ownable.json new file mode 100644 index 0000000..a771862 --- /dev/null +++ b/out/Ownable.sol/Ownable.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"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. The initial owner is set to the address provided by the deployer. 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.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the address provided by the deployer as the initial owner."},"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."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/access/Ownable.sol":"Ownable"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":141} \ No newline at end of file diff --git a/out/OwnableUpgradeable.sol/OwnableUpgradeable.json b/out/OwnableUpgradeable.sol/OwnableUpgradeable.json new file mode 100644 index 0000000..23db1f2 --- /dev/null +++ b/out/OwnableUpgradeable.sol/OwnableUpgradeable.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"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. The initial owner is set to the address provided by the deployer. 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.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":\"OwnableUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"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."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":"OwnableUpgradeable"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"}},"version":1},"id":136} \ No newline at end of file diff --git a/out/OwnerManager.sol/OwnerManager.json b/out/OwnerManager.sol/OwnerManager.json new file mode 100644 index 0000000..ce78827 --- /dev/null +++ b/out/OwnerManager.sol/OwnerManager.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_token","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"addClaimRegistryManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addComplianceManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addComplianceSetter","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addIssuersRegistryManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addOwnerAdmin","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addRegistryAddressSetter","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenInfoManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callAddAgentOnIdentityRegistryContract","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callAddAgentOnTokenContract","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callAddClaimTopic","inputs":[{"name":"_claimTopic","type":"uint256","internalType":"uint256"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callAddTrustedIssuer","inputs":[{"name":"_trustedIssuer","type":"address","internalType":"contract IClaimIssuer"},{"name":"_claimTopics","type":"uint256[]","internalType":"uint256[]"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callComplianceFunction","inputs":[{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callRemoveAgentOnIdentityRegistryContract","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callRemoveAgentOnTokenContract","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callRemoveClaimTopic","inputs":[{"name":"_claimTopic","type":"uint256","internalType":"uint256"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callRemoveTrustedIssuer","inputs":[{"name":"_trustedIssuer","type":"address","internalType":"contract IClaimIssuer"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callSetClaimTopicsRegistry","inputs":[{"name":"_claimTopicsRegistry","type":"address","internalType":"address"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callSetCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callSetIdentityRegistry","inputs":[{"name":"_identityRegistry","type":"address","internalType":"address"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callSetTokenName","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callSetTokenOnchainID","inputs":[{"name":"_tokenOnchainID","type":"address","internalType":"address"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callSetTokenSymbol","inputs":[{"name":"_symbol","type":"string","internalType":"string"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callSetTrustedIssuersRegistry","inputs":[{"name":"_trustedIssuersRegistry","type":"address","internalType":"address"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callTransferOwnershipOnClaimTopicsRegistryContract","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callTransferOwnershipOnComplianceContract","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callTransferOwnershipOnIdentityRegistryContract","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callTransferOwnershipOnIssuersRegistryContract","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callTransferOwnershipOnTokenContract","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callUpdateIssuerClaimTopics","inputs":[{"name":"_trustedIssuer","type":"address","internalType":"contract IClaimIssuer"},{"name":"_claimTopics","type":"uint256[]","internalType":"uint256[]"},{"name":"_onchainID","type":"address","internalType":"contract IIdentity"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isClaimRegistryManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComplianceManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComplianceSetter","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isIssuersRegistryManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOwnerAdmin","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isRegistryAddressSetter","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenInfoManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeClaimRegistryManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeComplianceManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeComplianceSetter","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeIssuersRegistryManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeOwnerAdmin","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeRegistryAddressSetter","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenInfoManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IToken"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComplianceInteraction","inputs":[{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"selector","type":"bytes4","indexed":false,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdded","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_role","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"RoleRemoved","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_role","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162003206380380620032068339810160408190526200003491620000dd565b33806200005b57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b62000066816200008d565b50600880546001600160a01b0319166001600160a01b03929092169190911790556200010f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215620000f057600080fd5b81516001600160a01b03811681146200010857600080fd5b9392505050565b6130e7806200011f6000396000f3fe608060405234801561001057600080fd5b50600436106102955760003560e01c806387cc060c11610167578063ae5aaa3b116100ce578063f087249c11610087578063f087249c146105c3578063f2fde38b146105d6578063faed696a146105e9578063fc0c546a146105fc578063fc6de4b51461060f578063ff8063111461062257600080fd5b8063ae5aaa3b14610551578063ce4bdac714610564578063dd39042b14610577578063e110255b1461058a578063e38123181461059d578063eeac6fe6146105b057600080fd5b806399884aab1161012057806399884aab146104df5780639ce2d88e146104f25780639d6de3bc14610505578063a66bcc1c14610518578063aa1cef561461052b578063ac95fc911461053e57600080fd5b806387cc060c1461045b578063882fc6ca1461046e5780638da5cb5b14610481578063934b2da4146104a657806394e69f1b146104b9578063951af88d146104cc57600080fd5b8063405225541161020b5780636ff7bff7116101c45780636ff7bff7146103f4578063715018a614610407578063757d467f1461040f578063818ab8bd14610422578063828709371461043557806385cef6081461044857600080fd5b8063405225541461038257806346b686f8146103955780634837b797146103a857806354b9797f146103bb5780635c5f2047146103ce57806362cdd482146103e157600080fd5b806328d7be341161025d57806328d7be34146103105780632af70c30146103235780632f56d91b14610336578063309ff3d1146103495780633ba7c75e1461035c5780633c734ce81461036f57600080fd5b8063039ec2cd1461029a57806303ff5014146102af5780631096a7ec146102d75780632447e50b146102ea578063256ccc07146102fd575b600080fd5b6102ad6102a8366004612c4c565b610635565b005b6102c26102bd366004612c4c565b6106f0565b60405190151581526020015b60405180910390f35b6102ad6102e5366004612c4c565b610703565b6102c26102f8366004612c4c565b610823565b6102ad61030b366004612c4c565b610830565b6102ad61031e366004612c4c565b6108aa565b6102ad610331366004612cb9565b610924565b6102ad610344366004612d10565b610a4f565b6102ad610357366004612cb9565b610c4c565b6102c261036a366004612c4c565b610d40565b6102c261037d366004612c4c565b610d4d565b6102ad610390366004612c4c565b610d5a565b6102ad6103a3366004612c4c565b610dfb565b6102ad6103b6366004612d40565b610e9d565b6102ad6103c9366004612c4c565b61109e565b6102ad6103dc366004612cb9565b611139565b6102c26103ef366004612c4c565b611321565b6102ad610402366004612c4c565b61132e565b6102ad6113d5565b6102ad61041d366004612c4c565b6113e9565b6102ad610430366004612c4c565b6114d8565b6102c2610443366004612c4c565b6115d4565b6102ad610456366004612c4c565b6115e1565b6102ad610469366004612ddb565b6116d0565b6102ad61047c366004612c4c565b6117c4565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016102ce565b6102ad6104b4366004612c4c565b611865565b6102ad6104c7366004612c4c565b611900565b6102ad6104da366004612ddb565b6119a1565b6102ad6104ed366004612c4c565b611ad3565b6102ad610500366004612ddb565b611bcf565b6102ad610513366004612ddb565b611d99565b6102ad610526366004612c4c565b611e8d565b6102ad610539366004612c4c565b611f2f565b6102ad61054c366004612c4c565b611fa9565b6102ad61055f366004612c4c565b612050565b6102ad610572366004612c4c565b6120f6565b6102ad610585366004612d10565b612197565b6102ad610598366004612c4c565b61235e565b6102ad6105ab366004612c4c565b612403565b6102ad6105be366004612ddb565b61249e565b6102ad6105d1366004612ddb565b612607565b6102ad6105e4366004612c4c565b612770565b6102ad6105f7366004612c4c565b6127ae565b60085461048e906001600160a01b031681565b6102ad61061d366004612d40565b612853565b6102c2610630366004612c4c565b612a1c565b336106486000546001600160a01b031690565b6001600160a01b03161480610661575061066133611321565b6106865760405162461bcd60e51b815260040161067d90612e09565b60405180910390fd5b610691600282612a29565b60408051808201825260158152742932b3b4b9ba393ca0b2323932b9b9a9b2ba3a32b960591b602082015290516001600160a01b03831690600080516020613072833981519152906106e4908490612e40565b60405180910390a25050565b60006106fd600483612aab565b92915050565b336107166000546001600160a01b031690565b6001600160a01b0316148061072f575061072f33611321565b61074b5760405162461bcd60e51b815260040161067d90612e09565b600860009054906101000a90046001600160a01b03166001600160a01b0316636290865d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561079e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c29190612e8f565b60405163f2fde38b60e01b81526001600160a01b038381166004830152919091169063f2fde38b906024015b600060405180830381600087803b15801561080857600080fd5b505af115801561081c573d6000803e3d6000fd5b5050505050565b60006106fd600783612aab565b336108436000546001600160a01b031690565b6001600160a01b0316148061085c575061085c33611321565b6108785760405162461bcd60e51b815260040161067d90612e09565b600854604051634273cc2160e11b81526001600160a01b038381166004830152909116906384e79842906024016107ee565b336108bd6000546001600160a01b031690565b6001600160a01b031614806108d657506108d633611321565b6108f25760405162461bcd60e51b815260040161067d90612e09565b600854604051634bd313c760e11b81526001600160a01b038381166004830152909116906397a6278e906024016107ee565b61092d81610823565b80156109ca5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa1580156109a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ca9190612eac565b6109e65760405162461bcd60e51b815260040161067d90612ece565b600854604051635c26412360e11b81526001600160a01b039091169063b84c824690610a189086908690600401612f1b565b600060405180830381600087803b158015610a3257600080fd5b505af1158015610a46573d6000803e3d6000fd5b50505050505050565b610a5881610d4d565b8015610af55750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015610ad1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af59190612eac565b610b115760405162461bcd60e51b815260040161067d90612f4a565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b889190612e8f565b6001600160a01b0316633b3e12f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be99190612e8f565b6001600160a01b03166308297846836040518263ffffffff1660e01b8152600401610c1691815260200190565b600060405180830381600087803b158015610c3057600080fd5b505af1158015610c44573d6000803e3d6000fd5b505050505050565b610c5581610823565b8015610cf25750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015610cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf29190612eac565b610d0e5760405162461bcd60e51b815260040161067d90612ece565b60085460405163c47f002760e01b81526001600160a01b039091169063c47f002790610a189086908690600401612f1b565b60006106fd600383612aab565b60006106fd600583612aab565b33610d6d6000546001600160a01b031690565b6001600160a01b03161480610d865750610d8633611321565b610da25760405162461bcd60e51b815260040161067d90612e09565b610dad600382612a29565b604080518082018252601081526f21b7b6b83634b0b731b2a9b2ba3a32b960811b602082015290516001600160a01b03831690600080516020613072833981519152906106e4908490612e40565b33610e0e6000546001600160a01b031690565b6001600160a01b03161480610e275750610e2733611321565b610e435760405162461bcd60e51b815260040161067d90612e09565b610e4e600482612a29565b604080518082018252601181527021b7b6b83634b0b731b2a6b0b730b3b2b960791b602082015290516001600160a01b03831690600080516020613072833981519152906106e4908490612e40565b610ea681612a1c565b8015610f435750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015610f1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f439190612eac565b610f5f5760405162461bcd60e51b815260040161067d90612f92565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd69190612e8f565b6001600160a01b031663b4f3fcb76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611013573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110379190612e8f565b6001600160a01b03166304bc7e848585856040518463ffffffff1660e01b815260040161106693929190612fdc565b600060405180830381600087803b15801561108057600080fd5b505af1158015611094573d6000803e3d6000fd5b5050505050505050565b336110b16000546001600160a01b031690565b6001600160a01b031614806110ca57506110ca33611321565b6110e65760405162461bcd60e51b815260040161067d90612e09565b6110f1600182612a29565b604080518082018252600a81526927bbb732b920b236b4b760b11b602082015290516001600160a01b03831690600080516020613072833981519152906106e4908490612e40565b611142816106f0565b80156111df5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa1580156111bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111df9190612eac565b61123a5760405162461bcd60e51b815260206004820152602660248201527f526f6c653a2053656e646572206973204e4f5420436f6d706c69616e6365204d60448201526530b730b3b2b960d11b606482015260840161067d565b60085460408051636290865d60e01b815290516000926001600160a01b031691636290865d9160048083019260209291908290030181865afa158015611284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a89190612e8f565b90506040518385823760008085836000865af16112c9573d6000803e3d6000fd5b50806001600160a01b03167f5779a24d18a4639b1d59461e68c00fb0cd02533a4c5a6ff3ca6363e23e2fff566112ff8686612b2e565b6040516001600160e01b0319909116815260200160405180910390a250505050565b60006106fd600183612aab565b336113416000546001600160a01b031690565b6001600160a01b0316148061135a575061135a33611321565b6113765760405162461bcd60e51b815260040161067d90612e09565b611381600682612a29565b604080518082018252601681527524b9b9bab2b939a932b3b4b9ba393ca6b0b730b3b2b960511b602082015290516001600160a01b03831690600080516020613072833981519152906106e4908490612e40565b6113dd612b3e565b6113e76000612b6b565b565b336113fc6000546001600160a01b031690565b6001600160a01b03161480611415575061141533611321565b6114315760405162461bcd60e51b815260040161067d90612e09565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611484573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a89190612e8f565b604051634bd313c760e11b81526001600160a01b03838116600483015291909116906397a6278e906024016107ee565b336114eb6000546001600160a01b031690565b6001600160a01b03161480611504575061150433611321565b6115205760405162461bcd60e51b815260040161067d90612e09565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115979190612e8f565b6001600160a01b0316633b3e12f46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561079e573d6000803e3d6000fd5b60006106fd600283612aab565b336115f46000546001600160a01b031690565b6001600160a01b0316148061160d575061160d33611321565b6116295760405162461bcd60e51b815260040161067d90612e09565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561167c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a09190612e8f565b604051634273cc2160e11b81526001600160a01b03838116600483015291909116906384e79842906024016107ee565b6116d981610823565b80156117765750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117769190612eac565b6117925760405162461bcd60e51b815260040161067d90612ece565b600854604051633d1ddc5b60e01b81526001600160a01b03848116600483015290911690633d1ddc5b90602401610c16565b336117d76000546001600160a01b031690565b6001600160a01b031614806117f057506117f033611321565b61180c5760405162461bcd60e51b815260040161067d90612e09565b611817600782612a29565b604080518082018252601081526f2a37b5b2b724b73337a6b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020613072833981519152906106e4908490612e40565b336118786000546001600160a01b031690565b6001600160a01b03161480611891575061189133611321565b6118ad5760405162461bcd60e51b815260040161067d90612e09565b6118b8600182612bbb565b604080518082018252600a81526927bbb732b920b236b4b760b11b602082015290516001600160a01b03831690600080516020613092833981519152906106e4908490612e40565b336119136000546001600160a01b031690565b6001600160a01b0316148061192c575061192c33611321565b6119485760405162461bcd60e51b815260040161067d90612e09565b611953600782612bbb565b604080518082018252601081526f2a37b5b2b724b73337a6b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020613092833981519152906106e4908490612e40565b6119aa81610d40565b8015611a475750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611a23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a479190612eac565b611aa15760405162461bcd60e51b815260206004820152602560248201527f526f6c653a2053656e646572206973204e4f5420436f6d706c69616e6365205360448201526432ba3a32b960d91b606482015260840161067d565b60085460405163f898178960e01b81526001600160a01b0384811660048301529091169063f898178990602401610c16565b33611ae66000546001600160a01b031690565b6001600160a01b03161480611aff5750611aff33611321565b611b1b5760405162461bcd60e51b815260040161067d90612e09565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b929190612e8f565b6001600160a01b031663b4f3fcb76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561079e573d6000803e3d6000fd5b611bd881612a1c565b8015611c755750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611c51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c759190612eac565b611c915760405162461bcd60e51b815260040161067d90612f92565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ce4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d089190612e8f565b6001600160a01b031663b4f3fcb76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d699190612e8f565b60405163b93d28eb60e01b81526001600160a01b038481166004830152919091169063b93d28eb90602401610c16565b611da2816115d4565b8015611e3f5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3f9190612eac565b611e5b5760405162461bcd60e51b815260040161067d90613026565b60085460405163cbf3f86160e01b81526001600160a01b0384811660048301529091169063cbf3f86190602401610c16565b33611ea06000546001600160a01b031690565b6001600160a01b03161480611eb95750611eb933611321565b611ed55760405162461bcd60e51b815260040161067d90612e09565b611ee0600482612bbb565b604080518082018252601181527021b7b6b83634b0b731b2a6b0b730b3b2b960791b602082015290516001600160a01b03831690600080516020613092833981519152906106e4908490612e40565b33611f426000546001600160a01b031690565b6001600160a01b03161480611f5b5750611f5b33611321565b611f775760405162461bcd60e51b815260040161067d90612e09565b60085460405163f2fde38b60e01b81526001600160a01b0383811660048301529091169063f2fde38b906024016107ee565b33611fbc6000546001600160a01b031690565b6001600160a01b03161480611fd55750611fd533611321565b611ff15760405162461bcd60e51b815260040161067d90612e09565b611ffc600682612bbb565b604080518082018252601681527524b9b9bab2b939a932b3b4b9ba393ca6b0b730b3b2b960511b602082015290516001600160a01b03831690600080516020613092833981519152906106e4908490612e40565b336120636000546001600160a01b031690565b6001600160a01b0316148061207c575061207c33611321565b6120985760405162461bcd60e51b815260040161067d90612e09565b6120a3600282612bbb565b60408051808201825260158152742932b3b4b9ba393ca0b2323932b9b9a9b2ba3a32b960591b602082015290516001600160a01b03831690600080516020613092833981519152906106e4908490612e40565b336121096000546001600160a01b031690565b6001600160a01b03161480612122575061212233611321565b61213e5760405162461bcd60e51b815260040161067d90612e09565b612149600382612bbb565b604080518082018252601081526f21b7b6b83634b0b731b2a9b2ba3a32b960811b602082015290516001600160a01b03831690600080516020613092833981519152906106e4908490612e40565b6121a081610d4d565b801561223d5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015612219573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223d9190612eac565b6122595760405162461bcd60e51b815260040161067d90612f4a565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d09190612e8f565b6001600160a01b0316633b3e12f46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561230d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123319190612e8f565b6001600160a01b031663c7b22551836040518263ffffffff1660e01b8152600401610c1691815260200190565b336123716000546001600160a01b031690565b6001600160a01b0316148061238a575061238a33611321565b6123a65760405162461bcd60e51b815260040161067d90612e09565b6123b1600582612a29565b604080518082018252601481527321b630b4b6a932b3b4b9ba393ca6b0b730b3b2b960611b602082015290516001600160a01b03831690600080516020613072833981519152906106e4908490612e40565b336124166000546001600160a01b031690565b6001600160a01b0316148061242f575061242f33611321565b61244b5760405162461bcd60e51b815260040161067d90612e09565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561079e573d6000803e3d6000fd5b6124a7816115d4565b80156125445750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015612520573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125449190612eac565b6125605760405162461bcd60e51b815260040161067d90613026565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125d79190612e8f565b60405163670af6a960e01b81526001600160a01b038481166004830152919091169063670af6a990602401610c16565b612610816115d4565b80156126ad5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015612689573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ad9190612eac565b6126c95760405162461bcd60e51b815260040161067d90613026565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561271c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127409190612e8f565b60405163e744d78960e01b81526001600160a01b038481166004830152919091169063e744d78990602401610c16565b612778612b3e565b6001600160a01b0381166127a257604051631e4fbdf760e01b81526000600482015260240161067d565b6127ab81612b6b565b50565b336127c16000546001600160a01b031690565b6001600160a01b031614806127da57506127da33611321565b6127f65760405162461bcd60e51b815260040161067d90612e09565b612801600582612bbb565b604080518082018252601481527321b630b4b6a932b3b4b9ba393ca6b0b730b3b2b960611b602082015290516001600160a01b03831690600080516020613092833981519152906106e4908490612e40565b61285c81612a1c565b80156128f95750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa1580156128d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f99190612eac565b6129155760405162461bcd60e51b815260040161067d90612f92565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612968573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061298c9190612e8f565b6001600160a01b031663b4f3fcb76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ed9190612e8f565b6001600160a01b0316639f63ea988585856040518463ffffffff1660e01b815260040161106693929190612fdc565b60006106fd600683612aab565b612a338282612aab565b612a895760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b606482015260840161067d565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60006001600160a01b038216612b0e5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840161067d565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000600482106106fd5750503590565b6000546001600160a01b031633146113e75760405163118cdaa760e01b815233600482015260240161067d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b612bc58282612aab565b15612c125760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640161067d565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001600160a01b03811681146127ab57600080fd5b600060208284031215612c5e57600080fd5b8135612c6981612c37565b9392505050565b60008083601f840112612c8257600080fd5b50813567ffffffffffffffff811115612c9a57600080fd5b602083019150836020828501011115612cb257600080fd5b9250929050565b600080600060408486031215612cce57600080fd5b833567ffffffffffffffff811115612ce557600080fd5b612cf186828701612c70565b9094509250506020840135612d0581612c37565b809150509250925092565b60008060408385031215612d2357600080fd5b823591506020830135612d3581612c37565b809150509250929050565b60008060008060608587031215612d5657600080fd5b8435612d6181612c37565b9350602085013567ffffffffffffffff80821115612d7e57600080fd5b818701915087601f830112612d9257600080fd5b813581811115612da157600080fd5b8860208260051b8501011115612db657600080fd5b6020830195508094505050506040850135612dd081612c37565b939692955090935050565b60008060408385031215612dee57600080fd5b8235612df981612c37565b91506020830135612d3581612c37565b60208082526019908201527f526f6c653a2053656e646572206973204e4f542041646d696e00000000000000604082015260600190565b60006020808352835180602085015260005b81811015612e6e57858101830151858201604001528201612e52565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215612ea157600080fd5b8151612c6981612c37565b600060208284031215612ebe57600080fd5b81518015158114612c6957600080fd5b6020808252602d908201527f526f6c653a2053656e646572206973204e4f5420546f6b656e20496e666f726d60408201526c30ba34b7b71026b0b730b3b2b960991b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60208082526028908201527f526f6c653a2053656e646572206973204e4f5420436c61696d526567697374726040820152673ca6b0b730b3b2b960c11b606082015260800190565b6020808252602a908201527f526f6c653a2053656e646572206973204e4f54204973737565727352656769736040820152693a393ca6b0b730b3b2b960b11b606082015260800190565b6001600160a01b0384168152604060208201819052810182905260006001600160fb1b0383111561300c57600080fd5b8260051b8085606085013791909101606001949350505050565b6020808252602b908201527f526f6c653a2053656e646572206973204e4f542052656769737472792041646460408201526a3932b9b99029b2ba3a32b960a91b60608201526080019056fed211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803abfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489a2646970667358221220817185abb468628be88b5a5bbe675b5d3be49e4752e2852b6c197d22a3fbeeda64736f6c63430008180033","sourceMap":"4294:19442:93:-:0;;;5033:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4640:10:94;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;455:51:165;428:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;5071:5:93;:22;;-1:-1:-1;;;;;;5071:22:93;-1:-1:-1;;;;;5071:22:93;;;;;;;;;;4294:19442;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:290:165:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:165;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:165:o;309:203::-;4294:19442:93;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106102955760003560e01c806387cc060c11610167578063ae5aaa3b116100ce578063f087249c11610087578063f087249c146105c3578063f2fde38b146105d6578063faed696a146105e9578063fc0c546a146105fc578063fc6de4b51461060f578063ff8063111461062257600080fd5b8063ae5aaa3b14610551578063ce4bdac714610564578063dd39042b14610577578063e110255b1461058a578063e38123181461059d578063eeac6fe6146105b057600080fd5b806399884aab1161012057806399884aab146104df5780639ce2d88e146104f25780639d6de3bc14610505578063a66bcc1c14610518578063aa1cef561461052b578063ac95fc911461053e57600080fd5b806387cc060c1461045b578063882fc6ca1461046e5780638da5cb5b14610481578063934b2da4146104a657806394e69f1b146104b9578063951af88d146104cc57600080fd5b8063405225541161020b5780636ff7bff7116101c45780636ff7bff7146103f4578063715018a614610407578063757d467f1461040f578063818ab8bd14610422578063828709371461043557806385cef6081461044857600080fd5b8063405225541461038257806346b686f8146103955780634837b797146103a857806354b9797f146103bb5780635c5f2047146103ce57806362cdd482146103e157600080fd5b806328d7be341161025d57806328d7be34146103105780632af70c30146103235780632f56d91b14610336578063309ff3d1146103495780633ba7c75e1461035c5780633c734ce81461036f57600080fd5b8063039ec2cd1461029a57806303ff5014146102af5780631096a7ec146102d75780632447e50b146102ea578063256ccc07146102fd575b600080fd5b6102ad6102a8366004612c4c565b610635565b005b6102c26102bd366004612c4c565b6106f0565b60405190151581526020015b60405180910390f35b6102ad6102e5366004612c4c565b610703565b6102c26102f8366004612c4c565b610823565b6102ad61030b366004612c4c565b610830565b6102ad61031e366004612c4c565b6108aa565b6102ad610331366004612cb9565b610924565b6102ad610344366004612d10565b610a4f565b6102ad610357366004612cb9565b610c4c565b6102c261036a366004612c4c565b610d40565b6102c261037d366004612c4c565b610d4d565b6102ad610390366004612c4c565b610d5a565b6102ad6103a3366004612c4c565b610dfb565b6102ad6103b6366004612d40565b610e9d565b6102ad6103c9366004612c4c565b61109e565b6102ad6103dc366004612cb9565b611139565b6102c26103ef366004612c4c565b611321565b6102ad610402366004612c4c565b61132e565b6102ad6113d5565b6102ad61041d366004612c4c565b6113e9565b6102ad610430366004612c4c565b6114d8565b6102c2610443366004612c4c565b6115d4565b6102ad610456366004612c4c565b6115e1565b6102ad610469366004612ddb565b6116d0565b6102ad61047c366004612c4c565b6117c4565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016102ce565b6102ad6104b4366004612c4c565b611865565b6102ad6104c7366004612c4c565b611900565b6102ad6104da366004612ddb565b6119a1565b6102ad6104ed366004612c4c565b611ad3565b6102ad610500366004612ddb565b611bcf565b6102ad610513366004612ddb565b611d99565b6102ad610526366004612c4c565b611e8d565b6102ad610539366004612c4c565b611f2f565b6102ad61054c366004612c4c565b611fa9565b6102ad61055f366004612c4c565b612050565b6102ad610572366004612c4c565b6120f6565b6102ad610585366004612d10565b612197565b6102ad610598366004612c4c565b61235e565b6102ad6105ab366004612c4c565b612403565b6102ad6105be366004612ddb565b61249e565b6102ad6105d1366004612ddb565b612607565b6102ad6105e4366004612c4c565b612770565b6102ad6105f7366004612c4c565b6127ae565b60085461048e906001600160a01b031681565b6102ad61061d366004612d40565b612853565b6102c2610630366004612c4c565b612a1c565b336106486000546001600160a01b031690565b6001600160a01b03161480610661575061066133611321565b6106865760405162461bcd60e51b815260040161067d90612e09565b60405180910390fd5b610691600282612a29565b60408051808201825260158152742932b3b4b9ba393ca0b2323932b9b9a9b2ba3a32b960591b602082015290516001600160a01b03831690600080516020613072833981519152906106e4908490612e40565b60405180910390a25050565b60006106fd600483612aab565b92915050565b336107166000546001600160a01b031690565b6001600160a01b0316148061072f575061072f33611321565b61074b5760405162461bcd60e51b815260040161067d90612e09565b600860009054906101000a90046001600160a01b03166001600160a01b0316636290865d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561079e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c29190612e8f565b60405163f2fde38b60e01b81526001600160a01b038381166004830152919091169063f2fde38b906024015b600060405180830381600087803b15801561080857600080fd5b505af115801561081c573d6000803e3d6000fd5b5050505050565b60006106fd600783612aab565b336108436000546001600160a01b031690565b6001600160a01b0316148061085c575061085c33611321565b6108785760405162461bcd60e51b815260040161067d90612e09565b600854604051634273cc2160e11b81526001600160a01b038381166004830152909116906384e79842906024016107ee565b336108bd6000546001600160a01b031690565b6001600160a01b031614806108d657506108d633611321565b6108f25760405162461bcd60e51b815260040161067d90612e09565b600854604051634bd313c760e11b81526001600160a01b038381166004830152909116906397a6278e906024016107ee565b61092d81610823565b80156109ca5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa1580156109a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ca9190612eac565b6109e65760405162461bcd60e51b815260040161067d90612ece565b600854604051635c26412360e11b81526001600160a01b039091169063b84c824690610a189086908690600401612f1b565b600060405180830381600087803b158015610a3257600080fd5b505af1158015610a46573d6000803e3d6000fd5b50505050505050565b610a5881610d4d565b8015610af55750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015610ad1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af59190612eac565b610b115760405162461bcd60e51b815260040161067d90612f4a565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b889190612e8f565b6001600160a01b0316633b3e12f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be99190612e8f565b6001600160a01b03166308297846836040518263ffffffff1660e01b8152600401610c1691815260200190565b600060405180830381600087803b158015610c3057600080fd5b505af1158015610c44573d6000803e3d6000fd5b505050505050565b610c5581610823565b8015610cf25750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015610cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf29190612eac565b610d0e5760405162461bcd60e51b815260040161067d90612ece565b60085460405163c47f002760e01b81526001600160a01b039091169063c47f002790610a189086908690600401612f1b565b60006106fd600383612aab565b60006106fd600583612aab565b33610d6d6000546001600160a01b031690565b6001600160a01b03161480610d865750610d8633611321565b610da25760405162461bcd60e51b815260040161067d90612e09565b610dad600382612a29565b604080518082018252601081526f21b7b6b83634b0b731b2a9b2ba3a32b960811b602082015290516001600160a01b03831690600080516020613072833981519152906106e4908490612e40565b33610e0e6000546001600160a01b031690565b6001600160a01b03161480610e275750610e2733611321565b610e435760405162461bcd60e51b815260040161067d90612e09565b610e4e600482612a29565b604080518082018252601181527021b7b6b83634b0b731b2a6b0b730b3b2b960791b602082015290516001600160a01b03831690600080516020613072833981519152906106e4908490612e40565b610ea681612a1c565b8015610f435750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015610f1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f439190612eac565b610f5f5760405162461bcd60e51b815260040161067d90612f92565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd69190612e8f565b6001600160a01b031663b4f3fcb76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611013573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110379190612e8f565b6001600160a01b03166304bc7e848585856040518463ffffffff1660e01b815260040161106693929190612fdc565b600060405180830381600087803b15801561108057600080fd5b505af1158015611094573d6000803e3d6000fd5b5050505050505050565b336110b16000546001600160a01b031690565b6001600160a01b031614806110ca57506110ca33611321565b6110e65760405162461bcd60e51b815260040161067d90612e09565b6110f1600182612a29565b604080518082018252600a81526927bbb732b920b236b4b760b11b602082015290516001600160a01b03831690600080516020613072833981519152906106e4908490612e40565b611142816106f0565b80156111df5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa1580156111bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111df9190612eac565b61123a5760405162461bcd60e51b815260206004820152602660248201527f526f6c653a2053656e646572206973204e4f5420436f6d706c69616e6365204d60448201526530b730b3b2b960d11b606482015260840161067d565b60085460408051636290865d60e01b815290516000926001600160a01b031691636290865d9160048083019260209291908290030181865afa158015611284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a89190612e8f565b90506040518385823760008085836000865af16112c9573d6000803e3d6000fd5b50806001600160a01b03167f5779a24d18a4639b1d59461e68c00fb0cd02533a4c5a6ff3ca6363e23e2fff566112ff8686612b2e565b6040516001600160e01b0319909116815260200160405180910390a250505050565b60006106fd600183612aab565b336113416000546001600160a01b031690565b6001600160a01b0316148061135a575061135a33611321565b6113765760405162461bcd60e51b815260040161067d90612e09565b611381600682612a29565b604080518082018252601681527524b9b9bab2b939a932b3b4b9ba393ca6b0b730b3b2b960511b602082015290516001600160a01b03831690600080516020613072833981519152906106e4908490612e40565b6113dd612b3e565b6113e76000612b6b565b565b336113fc6000546001600160a01b031690565b6001600160a01b03161480611415575061141533611321565b6114315760405162461bcd60e51b815260040161067d90612e09565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611484573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a89190612e8f565b604051634bd313c760e11b81526001600160a01b03838116600483015291909116906397a6278e906024016107ee565b336114eb6000546001600160a01b031690565b6001600160a01b03161480611504575061150433611321565b6115205760405162461bcd60e51b815260040161067d90612e09565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115979190612e8f565b6001600160a01b0316633b3e12f46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561079e573d6000803e3d6000fd5b60006106fd600283612aab565b336115f46000546001600160a01b031690565b6001600160a01b0316148061160d575061160d33611321565b6116295760405162461bcd60e51b815260040161067d90612e09565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561167c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a09190612e8f565b604051634273cc2160e11b81526001600160a01b03838116600483015291909116906384e79842906024016107ee565b6116d981610823565b80156117765750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117769190612eac565b6117925760405162461bcd60e51b815260040161067d90612ece565b600854604051633d1ddc5b60e01b81526001600160a01b03848116600483015290911690633d1ddc5b90602401610c16565b336117d76000546001600160a01b031690565b6001600160a01b031614806117f057506117f033611321565b61180c5760405162461bcd60e51b815260040161067d90612e09565b611817600782612a29565b604080518082018252601081526f2a37b5b2b724b73337a6b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020613072833981519152906106e4908490612e40565b336118786000546001600160a01b031690565b6001600160a01b03161480611891575061189133611321565b6118ad5760405162461bcd60e51b815260040161067d90612e09565b6118b8600182612bbb565b604080518082018252600a81526927bbb732b920b236b4b760b11b602082015290516001600160a01b03831690600080516020613092833981519152906106e4908490612e40565b336119136000546001600160a01b031690565b6001600160a01b0316148061192c575061192c33611321565b6119485760405162461bcd60e51b815260040161067d90612e09565b611953600782612bbb565b604080518082018252601081526f2a37b5b2b724b73337a6b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020613092833981519152906106e4908490612e40565b6119aa81610d40565b8015611a475750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611a23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a479190612eac565b611aa15760405162461bcd60e51b815260206004820152602560248201527f526f6c653a2053656e646572206973204e4f5420436f6d706c69616e6365205360448201526432ba3a32b960d91b606482015260840161067d565b60085460405163f898178960e01b81526001600160a01b0384811660048301529091169063f898178990602401610c16565b33611ae66000546001600160a01b031690565b6001600160a01b03161480611aff5750611aff33611321565b611b1b5760405162461bcd60e51b815260040161067d90612e09565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b929190612e8f565b6001600160a01b031663b4f3fcb76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561079e573d6000803e3d6000fd5b611bd881612a1c565b8015611c755750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611c51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c759190612eac565b611c915760405162461bcd60e51b815260040161067d90612f92565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ce4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d089190612e8f565b6001600160a01b031663b4f3fcb76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d699190612e8f565b60405163b93d28eb60e01b81526001600160a01b038481166004830152919091169063b93d28eb90602401610c16565b611da2816115d4565b8015611e3f5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015611e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3f9190612eac565b611e5b5760405162461bcd60e51b815260040161067d90613026565b60085460405163cbf3f86160e01b81526001600160a01b0384811660048301529091169063cbf3f86190602401610c16565b33611ea06000546001600160a01b031690565b6001600160a01b03161480611eb95750611eb933611321565b611ed55760405162461bcd60e51b815260040161067d90612e09565b611ee0600482612bbb565b604080518082018252601181527021b7b6b83634b0b731b2a6b0b730b3b2b960791b602082015290516001600160a01b03831690600080516020613092833981519152906106e4908490612e40565b33611f426000546001600160a01b031690565b6001600160a01b03161480611f5b5750611f5b33611321565b611f775760405162461bcd60e51b815260040161067d90612e09565b60085460405163f2fde38b60e01b81526001600160a01b0383811660048301529091169063f2fde38b906024016107ee565b33611fbc6000546001600160a01b031690565b6001600160a01b03161480611fd55750611fd533611321565b611ff15760405162461bcd60e51b815260040161067d90612e09565b611ffc600682612bbb565b604080518082018252601681527524b9b9bab2b939a932b3b4b9ba393ca6b0b730b3b2b960511b602082015290516001600160a01b03831690600080516020613092833981519152906106e4908490612e40565b336120636000546001600160a01b031690565b6001600160a01b0316148061207c575061207c33611321565b6120985760405162461bcd60e51b815260040161067d90612e09565b6120a3600282612bbb565b60408051808201825260158152742932b3b4b9ba393ca0b2323932b9b9a9b2ba3a32b960591b602082015290516001600160a01b03831690600080516020613092833981519152906106e4908490612e40565b336121096000546001600160a01b031690565b6001600160a01b03161480612122575061212233611321565b61213e5760405162461bcd60e51b815260040161067d90612e09565b612149600382612bbb565b604080518082018252601081526f21b7b6b83634b0b731b2a9b2ba3a32b960811b602082015290516001600160a01b03831690600080516020613092833981519152906106e4908490612e40565b6121a081610d4d565b801561223d5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015612219573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223d9190612eac565b6122595760405162461bcd60e51b815260040161067d90612f4a565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d09190612e8f565b6001600160a01b0316633b3e12f46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561230d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123319190612e8f565b6001600160a01b031663c7b22551836040518263ffffffff1660e01b8152600401610c1691815260200190565b336123716000546001600160a01b031690565b6001600160a01b0316148061238a575061238a33611321565b6123a65760405162461bcd60e51b815260040161067d90612e09565b6123b1600582612a29565b604080518082018252601481527321b630b4b6a932b3b4b9ba393ca6b0b730b3b2b960611b602082015290516001600160a01b03831690600080516020613072833981519152906106e4908490612e40565b336124166000546001600160a01b031690565b6001600160a01b0316148061242f575061242f33611321565b61244b5760405162461bcd60e51b815260040161067d90612e09565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561079e573d6000803e3d6000fd5b6124a7816115d4565b80156125445750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015612520573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125449190612eac565b6125605760405162461bcd60e51b815260040161067d90613026565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125d79190612e8f565b60405163670af6a960e01b81526001600160a01b038481166004830152919091169063670af6a990602401610c16565b612610816115d4565b80156126ad5750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa158015612689573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ad9190612eac565b6126c95760405162461bcd60e51b815260040161067d90613026565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561271c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127409190612e8f565b60405163e744d78960e01b81526001600160a01b038481166004830152919091169063e744d78990602401610c16565b612778612b3e565b6001600160a01b0381166127a257604051631e4fbdf760e01b81526000600482015260240161067d565b6127ab81612b6b565b50565b336127c16000546001600160a01b031690565b6001600160a01b031614806127da57506127da33611321565b6127f65760405162461bcd60e51b815260040161067d90612e09565b612801600582612bbb565b604080518082018252601481527321b630b4b6a932b3b4b9ba393ca6b0b730b3b2b960611b602082015290516001600160a01b03831690600080516020613092833981519152906106e4908490612e40565b61285c81612a1c565b80156128f95750604080513360208201526001600160a01b0383169163d202158d910160408051601f198184030181529082905280516020909101206001600160e01b031960e084901b168252600482015260026024820152604401602060405180830381865afa1580156128d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f99190612eac565b6129155760405162461bcd60e51b815260040161067d90612f92565b600860009054906101000a90046001600160a01b03166001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612968573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061298c9190612e8f565b6001600160a01b031663b4f3fcb76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ed9190612e8f565b6001600160a01b0316639f63ea988585856040518463ffffffff1660e01b815260040161106693929190612fdc565b60006106fd600683612aab565b612a338282612aab565b612a895760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b606482015260840161067d565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60006001600160a01b038216612b0e5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840161067d565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000600482106106fd5750503590565b6000546001600160a01b031633146113e75760405163118cdaa760e01b815233600482015260240161067d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b612bc58282612aab565b15612c125760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640161067d565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001600160a01b03811681146127ab57600080fd5b600060208284031215612c5e57600080fd5b8135612c6981612c37565b9392505050565b60008083601f840112612c8257600080fd5b50813567ffffffffffffffff811115612c9a57600080fd5b602083019150836020828501011115612cb257600080fd5b9250929050565b600080600060408486031215612cce57600080fd5b833567ffffffffffffffff811115612ce557600080fd5b612cf186828701612c70565b9094509250506020840135612d0581612c37565b809150509250925092565b60008060408385031215612d2357600080fd5b823591506020830135612d3581612c37565b809150509250929050565b60008060008060608587031215612d5657600080fd5b8435612d6181612c37565b9350602085013567ffffffffffffffff80821115612d7e57600080fd5b818701915087601f830112612d9257600080fd5b813581811115612da157600080fd5b8860208260051b8501011115612db657600080fd5b6020830195508094505050506040850135612dd081612c37565b939692955090935050565b60008060408385031215612dee57600080fd5b8235612df981612c37565b91506020830135612d3581612c37565b60208082526019908201527f526f6c653a2053656e646572206973204e4f542041646d696e00000000000000604082015260600190565b60006020808352835180602085015260005b81811015612e6e57858101830151858201604001528201612e52565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215612ea157600080fd5b8151612c6981612c37565b600060208284031215612ebe57600080fd5b81518015158114612c6957600080fd5b6020808252602d908201527f526f6c653a2053656e646572206973204e4f5420546f6b656e20496e666f726d60408201526c30ba34b7b71026b0b730b3b2b960991b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60208082526028908201527f526f6c653a2053656e646572206973204e4f5420436c61696d526567697374726040820152673ca6b0b730b3b2b960c11b606082015260800190565b6020808252602a908201527f526f6c653a2053656e646572206973204e4f54204973737565727352656769736040820152693a393ca6b0b730b3b2b960b11b606082015260800190565b6001600160a01b0384168152604060208201819052810182905260006001600160fb1b0383111561300c57600080fd5b8260051b8085606085013791909101606001949350505050565b6020808252602b908201527f526f6c653a2053656e646572206973204e4f542052656769737472792041646460408201526a3932b9b99029b2ba3a32b960a91b60608201526080019056fed211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803abfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489a2646970667358221220817185abb468628be88b5a5bbe675b5d3be49e4752e2852b6c197d22a3fbeeda64736f6c63430008180033","sourceMap":"4294:19442:93:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5281:222:94;;;;;;:::i;:::-;;:::i;:::-;;8193:126;;;;;;:::i;:::-;;:::i;:::-;;;567:14:165;;560:22;542:41;;530:2;515:18;8193:126:94;;;;;;;;19291:171:93;;;;;;:::i;:::-;;:::i;7783:124:94:-;;;;;;:::i;:::-;;:::i;21007:131:93:-;;;;;;:::i;:::-;;:::i;21463:137::-;;;;;;:::i;:::-;;:::i;9935:332::-;;;;;;:::i;:::-;;:::i;17486:376::-;;;;;;:::i;:::-;;:::i;9131:324::-;;;;;;:::i;:::-;;:::i;8325:124:94:-;;;;;;:::i;:::-;;:::i;8055:132::-;;;;;;:::i;:::-;;:::i;5714:207::-;;;;;;:::i;:::-;;:::i;6135:210::-;;;;;;:::i;:::-;;:::i;15551:483:93:-;;;;;;:::i;:::-;;:::i;4866:189:94:-;;;;;;:::i;:::-;;:::i;7252:1403:93:-;;;;;;:::i;:::-;;:::i;7665:112:94:-;;;;;;:::i;:::-;;:::i;7016:225::-;;;;;;:::i;:::-;;:::i;2293:101:141:-;;;:::i;22519:167:93:-;;;;;;:::i;:::-;;:::i;19873:203::-;;;;;;:::i;:::-;;:::i;8455:134:94:-;;;;;;:::i;:::-;;:::i;21976:161:93:-;;;;;;:::i;:::-;;:::i;10757:346::-;;;;;;:::i;:::-;;:::i;7452:207:94:-;;;;;;:::i;:::-;;:::i;1638:85:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;1638:85;;;-1:-1:-1;;;;;3938:32:165;;;3920:51;;3908:2;3893:18;1638:85:141;3774:203:165;4679:181:94;;;;;;:::i;:::-;;:::i;7247:199::-;;;;;;:::i;:::-;;:::i;6458:327:93:-;;;;;;:::i;:::-;;:::i;20488:200::-;;;;;;:::i;:::-;;:::i;14584:398::-;;;;;;:::i;:::-;;:::i;5605:362::-;;;;;;:::i;:::-;;:::i;5927:202:94:-;;;;;;:::i;:::-;;:::i;18199:153:93:-;;;;;;:::i;:::-;;:::i;6793:217:94:-;;;;;;:::i;:::-;;:::i;5061:214::-;;;;;;:::i;:::-;;:::i;5509:199::-;;;;;;:::i;:::-;;:::i;16572:370:93:-;;;;;;:::i;:::-;;:::i;6568:219:94:-;;;;;;:::i;:::-;;:::i;18746:183:93:-;;;;;;:::i;:::-;;:::i;11649:393::-;;;;;;:::i;:::-;;:::i;12594:405::-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;6351:211:94:-;;;;;;:::i;:::-;;:::i;4405:19:93:-;;;;;-1:-1:-1;;;;;4405:19:93;;;13554:469;;;;;;:::i;:::-;;:::i;7913:136:94:-;;;;;;:::i;:::-;;:::i;5281:222::-;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;;;;;;;;;5363:37:::1;:22;5393:6:::0;5363:29:::1;:37::i;:::-;5410:45;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5410:45:94::1;::::0;::::1;::::0;5470:26;;-1:-1:-1;;;;;5470:26:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;5470:26:94;::::1;::::0;5410:45;;5470:26:::1;:::i;:::-;;;;;;;;5353:150;5281:222:::0;:::o;8193:126::-;8259:4;8282:30;:18;8305:6;8282:22;:30::i;:::-;8275:37;8193:126;-1:-1:-1;;8193:126:94:o;19291:171:93:-;4524:10:94;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;19406:5:93::1;;;;;;;;;-1:-1:-1::0;;;;;19406:5:93::1;-1:-1:-1::0;;;;;19406:16:93::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19390:65;::::0;-1:-1:-1;;;19390:65:93;;-1:-1:-1;;;;;3938:32:165;;;19390:65:93::1;::::0;::::1;3920:51:165::0;19390:54:93;;;::::1;::::0;::::1;::::0;3893:18:165;;19390:65:93::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19291:171:::0;:::o;7783:124:94:-;7848:4;7871:29;:17;7893:6;7871:21;:29::i;21007:131:93:-;4524:10:94;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;21107:5:93::1;::::0;21089:42:::1;::::0;-1:-1:-1;;;21089:42:93;;-1:-1:-1;;;;;3938:32:165;;;21089:42:93::1;::::0;::::1;3920:51:165::0;21107:5:93;;::::1;::::0;21089:34:::1;::::0;3893:18:165;;21089:42:93::1;3774:203:165::0;21463:137:93;4524:10:94;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;21566:5:93::1;::::0;21548:45:::1;::::0;-1:-1:-1;;;21548:45:93;;-1:-1:-1;;;;;3938:32:165;;;21548:45:93::1;::::0;::::1;3920:51:165::0;21566:5:93;;::::1;::::0;21548:37:::1;::::0;3893:18:165;;21548:45:93::1;3774:203:165::0;9935:332:93;10050:39;10077:10;10050:18;:39::i;:::-;:105;;;;-1:-1:-1;10128:22:93;;;10139:10;10128:22;;;3920:51:165;-1:-1:-1;;;;;10093:24:93;;;;;3893:18:165;10128:22:93;;;-1:-1:-1;;10128:22:93;;;;;;;;;;10118:33;;10128:22;10118:33;;;;-1:-1:-1;;;;;;10093:62:93;;;;;;;;;;6013:25:165;10153:1:93;6054:18:165;;;6047:34;5986:18;;10093:62:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10029:197;;;;-1:-1:-1;;;10029:197:93;;;;;;;:::i;:::-;10236:5;;:24;;-1:-1:-1;;;10236:24:93;;-1:-1:-1;;;;;10236:5:93;;;;:15;;:24;;10252:7;;;;10236:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9935:332;;;:::o;17486:376::-;17599:43;17630:10;17599:22;:43::i;:::-;:109;;;;-1:-1:-1;17681:22:93;;;17692:10;17681:22;;;3920:51:165;-1:-1:-1;;;;;17646:24:93;;;;;3893:18:165;17681:22:93;;;-1:-1:-1;;17681:22:93;;;;;;;;;;17671:33;;17681:22;17671:33;;;;-1:-1:-1;;;;;;17646:62:93;;;;;;;;;;6013:25:165;17706:1:93;6054:18:165;;;6047:34;5986:18;;17646:62:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17578:196;;;;-1:-1:-1;;;17578:196:93;;;;;;;:::i;:::-;17784:5;;;;;;;;;-1:-1:-1;;;;;17784:5:93;-1:-1:-1;;;;;17784:22:93;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17784:39:93;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17784:58:93;;17843:11;17784:71;;;;;;;;;;;;;8307:25:165;;8295:2;8280:18;;8161:177;17784:71:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17486:376;;:::o;9131:324::-;9242:39;9269:10;9242:18;:39::i;:::-;:105;;;;-1:-1:-1;9320:22:93;;;9331:10;9320:22;;;3920:51:165;-1:-1:-1;;;;;9285:24:93;;;;;3893:18:165;9320:22:93;;;-1:-1:-1;;9320:22:93;;;;;;;;;;9310:33;;9320:22;9310:33;;;;-1:-1:-1;;;;;;9285:62:93;;;;;;;;;;6013:25:165;9345:1:93;6054:18:165;;;6047:34;5986:18;;9285:62:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9221:197;;;;-1:-1:-1;;;9221:197:93;;;;;;;:::i;:::-;9428:5;;:20;;-1:-1:-1;;;9428:20:93;;-1:-1:-1;;;;;9428:5:93;;;;:13;;:20;;9442:5;;;;9428:20;;;:::i;8325:124:94:-;8390:4;8413:29;:17;8435:6;8413:21;:29::i;8055:132::-;8124:4;8147:33;:21;8173:6;8147:25;:33::i;5714:207::-;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;5791:32:::1;:17;5816:6:::0;5791:24:::1;:32::i;:::-;5833:40;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5833:40:94::1;::::0;::::1;::::0;5888:26;;-1:-1:-1;;;;;5888:26:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;5888:26:94;::::1;::::0;5833:40;;5888:26:::1;:::i;6135:210::-:0;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;6213:33:::1;:18;6239:6:::0;6213:25:::1;:33::i;:::-;6256:41;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6256:41:94::1;::::0;::::1;::::0;6312:26;;-1:-1:-1;;;;;6312:26:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;6312:26:94;::::1;::::0;6256:41;;6312:26:::1;:::i;15551:483:93:-:0;15742:45;15775:10;15742:24;:45::i;:::-;:111;;;;-1:-1:-1;15826:22:93;;;15837:10;15826:22;;;3920:51:165;-1:-1:-1;;;;;15791:24:93;;;;;3893:18:165;15826:22:93;;;-1:-1:-1;;15826:22:93;;;;;;;;;;15816:33;;15826:22;15816:33;;;;-1:-1:-1;;;;;;15791:62:93;;;;;;;;;;6013:25:165;15851:1:93;6054:18:165;;;6047:34;5986:18;;15791:62:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15721:200;;;;-1:-1:-1;;;15721:200:93;;;;;;;:::i;:::-;15931:5;;;;;;;;;-1:-1:-1;;;;;15931:5:93;-1:-1:-1;;;;;15931:22:93;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15931:40:93;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15931:66:93;;15998:14;16014:12;;15931:96;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15551:483;;;;:::o;4866:189:94:-;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;4937:26:::1;:11;4956:6:::0;4937:18:::1;:26::i;:::-;4973:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;4973:34:94::1;::::0;::::1;::::0;5022:26;;-1:-1:-1;;;;;5022:26:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;5022:26:94;::::1;::::0;4973:34;;5022:26:::1;:::i;7252:1403:93:-:0;7371:40;7399:10;7371:19;:40::i;:::-;:106;;;;-1:-1:-1;7450:22:93;;;7461:10;7450:22;;;3920:51:165;-1:-1:-1;;;;;7415:24:93;;;;;3893:18:165;7450:22:93;;;-1:-1:-1;;7450:22:93;;;;;;;;;;7440:33;;7450:22;7440:33;;;;-1:-1:-1;;;;;;7415:62:93;;;;;;;;;;6013:25:165;7475:1:93;6054:18:165;;;6047:34;5986:18;;7415:62:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7350:182;;;;-1:-1:-1;;;7350:182:93;;9812:2:165;7350:182:93;;;9794:21:165;9851:2;9831:18;;;9824:30;9890:34;9870:18;;;9863:62;-1:-1:-1;;;9941:18:165;;;9934:36;9987:19;;7350:182:93;9610:402:165;7350:182:93;7567:5;;:18;;;-1:-1:-1;;;7567:18:93;;;;7542:14;;-1:-1:-1;;;;;7567:5:93;;:16;;:18;;;;;;;;;;;;;;:5;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7542:44;;8071:4;8065:11;8138:15;8121;8102:17;8089:65;8397:1;8374;8337:15;8298:17;8275:1;8247:6;8220:5;8194:226;8167:397;;8481:16;8478:1;8475;8460:38;8529:16;8526:1;8519:27;8167:397;;8615:6;-1:-1:-1;;;;;8593:50:93;;8623:19;8633:8;;8623:9;:19::i;:::-;8593:50;;-1:-1:-1;;;;;;10179:33:165;;;10161:52;;10149:2;10134:18;8593:50:93;;;;;;;7340:1315;7252:1403;;;:::o;7665:112:94:-;7724:4;7747:23;:11;7763:6;7747:15;:23::i;7016:225::-;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;7099:38:::1;:23;7130:6:::0;7099:30:::1;:38::i;:::-;7147:46;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;7147:46:94::1;::::0;::::1;::::0;7208:26;;-1:-1:-1;;;;;7208:26:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;7208:26:94;::::1;::::0;7147:46;;7208:26:::1;:::i;2293:101:141:-:0;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;22519:167:93:-;4524:10:94;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;22633:5:93::1;;;;;;;;;-1:-1:-1::0;;;;;22633:5:93::1;-1:-1:-1::0;;;;;22633:22:93::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22615:64;::::0;-1:-1:-1;;;22615:64:93;;-1:-1:-1;;;;;3938:32:165;;;22615:64:93::1;::::0;::::1;3920:51:165::0;22615:56:93;;;::::1;::::0;::::1;::::0;3893:18:165;;22615:64:93::1;3774:203:165::0;19873::93;4524:10:94;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;19997:5:93::1;;;;;;;;;-1:-1:-1::0;;;;;19997:5:93::1;-1:-1:-1::0;;;;;19997:22:93::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19997:39:93::1;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;8455:134:94::0;8525:4;8548:34;:22;8575:6;8548:26;:34::i;21976:161:93:-;4524:10:94;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;22087:5:93::1;;;;;;;;;-1:-1:-1::0;;;;;22087:5:93::1;-1:-1:-1::0;;;;;22087:22:93::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22069:61;::::0;-1:-1:-1;;;22069:61:93;;-1:-1:-1;;;;;3938:32:165;;;22069:61:93::1;::::0;::::1;3920:51:165::0;22069:53:93;;;::::1;::::0;::::1;::::0;3893:18:165;;22069:61:93::1;3774:203:165::0;10757:346:93;10875:39;10902:10;10875:18;:39::i;:::-;:105;;;;-1:-1:-1;10953:22:93;;;10964:10;10953:22;;;3920:51:165;-1:-1:-1;;;;;10918:24:93;;;;;3893:18:165;10953:22:93;;;-1:-1:-1;;10953:22:93;;;;;;;;;;10943:33;;10953:22;10943:33;;;;-1:-1:-1;;;;;;10918:62:93;;;;;;;;;;6013:25:165;10978:1:93;6054:18:165;;;6047:34;5986:18;;10918:62:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10854:197;;;;-1:-1:-1;;;10854:197:93;;;;;;;:::i;:::-;11061:5;;:35;;-1:-1:-1;;;11061:35:93;;-1:-1:-1;;;;;3938:32:165;;;11061:35:93;;;3920:51:165;11061:5:93;;;;:18;;3893::165;;11061:35:93;3774:203:165;7452:207:94;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;7529:32:::1;:17;7554:6:::0;7529:24:::1;:32::i;:::-;7571:40;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;7571:40:94::1;::::0;::::1;::::0;7626:26;;-1:-1:-1;;;;;7626:26:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;7626:26:94;::::1;::::0;7571:40;;7626:26:::1;:::i;4679:181::-:0;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;4747:23:::1;:11;4763:6:::0;4747:15:::1;:23::i;:::-;4780:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;4780:34:94::1;::::0;::::1;::::0;4829:24;;-1:-1:-1;;;;;4829:24:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;4829:24:94;::::1;::::0;4780:34;;4829:24:::1;:::i;7247:199::-:0;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;7321:29:::1;:17;7343:6:::0;7321:21:::1;:29::i;:::-;7360:40;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;7360:40:94::1;::::0;::::1;::::0;7415:24;;-1:-1:-1;;;;;7415:24:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;7415:24:94;::::1;::::0;7360:40;;7415:24:::1;:::i;6458:327:93:-:0;6568:39;6595:10;6568:18;:39::i;:::-;:105;;;;-1:-1:-1;6646:22:93;;;6657:10;6646:22;;;3920:51:165;-1:-1:-1;;;;;6611:24:93;;;;;3893:18:165;6646:22:93;;;-1:-1:-1;;6646:22:93;;;;;;;;;;6636:33;;6646:22;6636:33;;;;-1:-1:-1;;;;;;6611:62:93;;;;;;;;;;6013:25:165;6671:1:93;6054:18:165;;;6047:34;5986:18;;6611:62:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6547:189;;;;-1:-1:-1;;;6547:189:93;;10426:2:165;6547:189:93;;;10408:21:165;10465:2;10445:18;;;10438:30;10504:34;10484:18;;;10477:62;-1:-1:-1;;;10555:18:165;;;10548:35;10600:19;;6547:189:93;10224:401:165;6547:189:93;6746:5;;:32;;-1:-1:-1;;;6746:32:93;;-1:-1:-1;;;;;3938:32:165;;;6746::93;;;3920:51:165;6746:5:93;;;;:19;;3893:18:165;;6746:32:93;3774:203:165;20488:200:93;4524:10:94;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;20608:5:93::1;;;;;;;;;-1:-1:-1::0;;;;;20608:5:93::1;-1:-1:-1::0;;;;;20608:22:93::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20608:40:93::1;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;14584:398:::0;14708:45;14741:10;14708:24;:45::i;:::-;:111;;;;-1:-1:-1;14792:22:93;;;14803:10;14792:22;;;3920:51:165;-1:-1:-1;;;;;14757:24:93;;;;;3893:18:165;14792:22:93;;;-1:-1:-1;;14792:22:93;;;;;;;;;;14782:33;;14792:22;14782:33;;;;-1:-1:-1;;;;;;14757:62:93;;;;;;;;;;6013:25:165;14817:1:93;6054:18:165;;;6047:34;5986:18;;14757:62:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14687:200;;;;-1:-1:-1;;;14687:200:93;;;;;;;:::i;:::-;14897:5;;;;;;;;;-1:-1:-1;;;;;14897:5:93;-1:-1:-1;;;;;14897:22:93;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14897:40:93;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:78;;-1:-1:-1;;;14897:78:93;;-1:-1:-1;;;;;3938:32:165;;;14897:78:93;;;3920:51:165;14897:62:93;;;;;;;3893:18:165;;14897:78:93;3774:203:165;5605:362:93;5727:44;5759:10;5727:23;:44::i;:::-;:110;;;;-1:-1:-1;5810:22:93;;;5821:10;5810:22;;;3920:51:165;-1:-1:-1;;;;;5775:24:93;;;;;3893:18:165;5810:22:93;;;-1:-1:-1;;5810:22:93;;;;;;;;;;5800:33;;5810:22;5800:33;;;;-1:-1:-1;;;;;;5775:62:93;;;;;;;;;;6013:25:165;5835:1:93;6054:18:165;;;6047:34;5986:18;;5775:62:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5706:200;;;;-1:-1:-1;;;5706:200:93;;;;;;;:::i;:::-;5916:5;;:44;;-1:-1:-1;;;5916:44:93;;-1:-1:-1;;;;;3938:32:165;;;5916:44:93;;;3920:51:165;5916:5:93;;;;:25;;3893:18:165;;5916:44:93;3774:203:165;5927:202:94;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;6002:30:::1;:18;6025:6:::0;6002:22:::1;:30::i;:::-;6042:41;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6042:41:94::1;::::0;::::1;::::0;6098:24;;-1:-1:-1;;;;;6098:24:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;6098:24:94;::::1;::::0;6042:41;;6098:24:::1;:::i;18199:153:93:-:0;4524:10:94;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;18309:5:93::1;::::0;18293:52:::1;::::0;-1:-1:-1;;;18293:52:93;;-1:-1:-1;;;;;3938:32:165;;;18293:52:93::1;::::0;::::1;3920:51:165::0;18309:5:93;;::::1;::::0;18293:41:::1;::::0;3893:18:165;;18293:52:93::1;3774:203:165::0;6793:217:94;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;6873:35:::1;:23;6901:6:::0;6873:27:::1;:35::i;:::-;6918:46;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6918:46:94::1;::::0;::::1;::::0;6979:24;;-1:-1:-1;;;;;6979:24:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;6979:24:94;::::1;::::0;6918:46;;6979:24:::1;:::i;5061:214::-:0;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;5140:34:::1;:22;5167:6:::0;5140:26:::1;:34::i;:::-;5184:45;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5184:45:94::1;::::0;::::1;::::0;5244:24;;-1:-1:-1;;;;;5244:24:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;5244:24:94;::::1;::::0;5184:45;;5244:24:::1;:::i;5509:199::-:0;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;5583:29:::1;:17;5605:6:::0;5583:21:::1;:29::i;:::-;5622:40;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5622:40:94::1;::::0;::::1;::::0;5677:24;;-1:-1:-1;;;;;5677:24:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;5677:24:94;::::1;::::0;5622:40;;5677:24:::1;:::i;16572:370:93:-:0;16682:43;16713:10;16682:22;:43::i;:::-;:109;;;;-1:-1:-1;16764:22:93;;;16775:10;16764:22;;;3920:51:165;-1:-1:-1;;;;;16729:24:93;;;;;3893:18:165;16764:22:93;;;-1:-1:-1;;16764:22:93;;;;;;;;;;16754:33;;16764:22;16754:33;;;;-1:-1:-1;;;;;;16729:62:93;;;;;;;;;;6013:25:165;16789:1:93;6054:18:165;;;6047:34;5986:18;;16729:62:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16661:196;;;;-1:-1:-1;;;16661:196:93;;;;;;;:::i;:::-;16867:5;;;;;;;;;-1:-1:-1;;;;;16867:5:93;-1:-1:-1;;;;;16867:22:93;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16867:39:93;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16867:55:93;;16923:11;16867:68;;;;;;;;;;;;;8307:25:165;;8295:2;8280:18;;8161:177;6568:219:94;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;6649:36:::1;:21;6678:6:::0;6649:28:::1;:36::i;:::-;6695:44;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6695:44:94::1;::::0;::::1;::::0;6754:26;;-1:-1:-1;;;;;6754:26:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;6754:26:94;::::1;::::0;6695:44;;6754:26:::1;:::i;18746:183:93:-:0;4524:10:94;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;18867:5:93::1;;;;;;;;;-1:-1:-1::0;;;;;18867:5:93::1;-1:-1:-1::0;;;;;18867:22:93::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;11649:393:::0;11777:44;11809:10;11777:23;:44::i;:::-;:110;;;;-1:-1:-1;11860:22:93;;;11871:10;11860:22;;;3920:51:165;-1:-1:-1;;;;;11825:24:93;;;;;3893:18:165;11860:22:93;;;-1:-1:-1;;11860:22:93;;;;;;;;;;11850:33;;11860:22;11850:33;;;;-1:-1:-1;;;;;;11825:62:93;;;;;;;;;;6013:25:165;11885:1:93;6054:18:165;;;6047:34;5986:18;;11825:62:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11756:200;;;;-1:-1:-1;;;11756:200:93;;;;;;;:::i;:::-;11966:5;;;;;;;;;-1:-1:-1;;;;;11966:5:93;-1:-1:-1;;;;;11966:22:93;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:69;;-1:-1:-1;;;11966:69:93;;-1:-1:-1;;;;;3938:32:165;;;11966:69:93;;;3920:51:165;11966:47:93;;;;;;;3893:18:165;;11966:69:93;3774:203:165;12594:405:93;12728:44;12760:10;12728:23;:44::i;:::-;:110;;;;-1:-1:-1;12811:22:93;;;12822:10;12811:22;;;3920:51:165;-1:-1:-1;;;;;12776:24:93;;;;;3893:18:165;12811:22:93;;;-1:-1:-1;;12811:22:93;;;;;;;;;;12801:33;;12811:22;12801:33;;;;-1:-1:-1;;;;;;12776:62:93;;;;;;;;;;6013:25:165;12836:1:93;6054:18:165;;;6047:34;5986:18;;12776:62:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12707:200;;;;-1:-1:-1;;;12707:200:93;;;;;;;:::i;:::-;12917:5;;;;;;;;;-1:-1:-1;;;;;12917:5:93;-1:-1:-1;;;;;12917:22:93;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:75;;-1:-1:-1;;;12917:75:93;;-1:-1:-1;;;;;3938:32:165;;;12917:75:93;;;3920:51:165;12917:50:93;;;;;;;3893:18:165;;12917:75:93;3774:203:165;2543:215:141;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;3920:51:165::0;3893:18;;2672:31:141::1;3774:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;6351:211:94:-;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;6429:33:::1;:21;6455:6:::0;6429:25:::1;:33::i;:::-;6472:44;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6472:44:94::1;::::0;::::1;::::0;6531:24;;-1:-1:-1;;;;;6531:24:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;6531:24:94;::::1;::::0;6472:44;;6531:24:::1;:::i;13554:469:93:-:0;13738:45;13771:10;13738:24;:45::i;:::-;:111;;;;-1:-1:-1;13822:22:93;;;13833:10;13822:22;;;3920:51:165;-1:-1:-1;;;;;13787:24:93;;;;;3893:18:165;13822:22:93;;;-1:-1:-1;;13822:22:93;;;;;;;;;;13812:33;;13822:22;13812:33;;;;-1:-1:-1;;;;;;13787:62:93;;;;;;;;;;6013:25:165;13847:1:93;6054:18:165;;;6047:34;5986:18;;13787:62:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13717:200;;;;-1:-1:-1;;;13717:200:93;;;;;;;:::i;:::-;13927:5;;;;;;;;;-1:-1:-1;;;;;13927:5:93;-1:-1:-1;;;;;13927:22:93;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13927:40:93;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13927:59:93;;13987:14;14003:12;;13927:89;;;;;;;;;;;;;;;;;:::i;7913:136:94:-;7984:4;8007:35;:23;8035:6;8007:27;:35::i;4327:180:89:-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;11474:2:165;4398:64:89;;;11456:21:165;11513:2;11493:18;;;11486:30;11552:34;11532:18;;;11525:62;-1:-1:-1;;;11603:18:165;;;11596:31;11644:19;;4398:64:89;11272:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;4596:200::-;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;11876:2:165;4684:68:89;;;11858:21:165;11915:2;11895:18;;;11888:30;11954:34;11934:18;;;11927:62;-1:-1:-1;;;12005:18:165;;;11998:32;12047:19;;4684:68:89;11674:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;22914:820:93:-;22981:13;23029:1;23010:20;;23006:722;;-1:-1:-1;;23675:29:93;;22914:820::o;1796:162:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;3920:51:165;3893:18;;1901:40:141;3774:203:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;4077:175:89:-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;12279:2:165;4145:63:89;;;12261:21:165;12318:2;12298:18;;;12291:30;12357:33;12337:18;;;12330:61;12408:18;;4145:63:89;12077:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;150:247;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;:::-;386:5;150:247;-1:-1:-1;;;150:247:165:o;594:348::-;646:8;656:6;710:3;703:4;695:6;691:17;687:27;677:55;;728:1;725;718:12;677:55;-1:-1:-1;751:20:165;;794:18;783:30;;780:50;;;826:1;823;816:12;780:50;863:4;855:6;851:17;839:29;;915:3;908:4;899:6;891;887:19;883:30;880:39;877:59;;;932:1;929;922:12;877:59;594:348;;;;;:::o;947:565::-;1046:6;1054;1062;1115:2;1103:9;1094:7;1090:23;1086:32;1083:52;;;1131:1;1128;1121:12;1083:52;1171:9;1158:23;1204:18;1196:6;1193:30;1190:50;;;1236:1;1233;1226:12;1190:50;1275:59;1326:7;1317:6;1306:9;1302:22;1275:59;:::i;:::-;1353:8;;-1:-1:-1;1249:85:165;-1:-1:-1;;1438:2:165;1423:18;;1410:32;1451:31;1410:32;1451:31;:::i;:::-;1501:5;1491:15;;;947:565;;;;;:::o;1517:334::-;1604:6;1612;1665:2;1653:9;1644:7;1640:23;1636:32;1633:52;;;1681:1;1678;1671:12;1633:52;1717:9;1704:23;1694:33;;1777:2;1766:9;1762:18;1749:32;1790:31;1815:5;1790:31;:::i;:::-;1840:5;1830:15;;;1517:334;;;;;:::o;1856:932::-;2001:6;2009;2017;2025;2078:2;2066:9;2057:7;2053:23;2049:32;2046:52;;;2094:1;2091;2084:12;2046:52;2133:9;2120:23;2152:31;2177:5;2152:31;:::i;:::-;2202:5;-1:-1:-1;2258:2:165;2243:18;;2230:32;2281:18;2311:14;;;2308:34;;;2338:1;2335;2328:12;2308:34;2376:6;2365:9;2361:22;2351:32;;2421:7;2414:4;2410:2;2406:13;2402:27;2392:55;;2443:1;2440;2433:12;2392:55;2483:2;2470:16;2509:2;2501:6;2498:14;2495:34;;;2525:1;2522;2515:12;2495:34;2578:7;2573:2;2563:6;2560:1;2556:14;2552:2;2548:23;2544:32;2541:45;2538:65;;;2599:1;2596;2589:12;2538:65;2630:2;2626;2622:11;2612:21;;2652:6;2642:16;;;;;2710:2;2699:9;2695:18;2682:32;2723:33;2748:7;2723:33;:::i;:::-;1856:932;;;;-1:-1:-1;1856:932:165;;-1:-1:-1;;1856:932:165:o;3362:407::-;3449:6;3457;3510:2;3498:9;3489:7;3485:23;3481:32;3478:52;;;3526:1;3523;3516:12;3478:52;3565:9;3552:23;3584:31;3609:5;3584:31;:::i;:::-;3634:5;-1:-1:-1;3691:2:165;3676:18;;3663:32;3704:33;3663:32;3704:33;:::i;4640:349::-;4842:2;4824:21;;;4881:2;4861:18;;;4854:30;4920:27;4915:2;4900:18;;4893:55;4980:2;4965:18;;4640:349::o;4994:548::-;5106:4;5135:2;5164;5153:9;5146:21;5196:6;5190:13;5239:6;5234:2;5223:9;5219:18;5212:34;5264:1;5274:140;5288:6;5285:1;5282:13;5274:140;;;5383:14;;;5379:23;;5373:30;5349:17;;;5368:2;5345:26;5338:66;5303:10;;5274:140;;;5278:3;5463:1;5458:2;5449:6;5438:9;5434:22;5430:31;5423:42;5533:2;5526;5522:7;5517:2;5509:6;5505:15;5501:29;5490:9;5486:45;5482:54;5474:62;;;;4994:548;;;;:::o;5547:279::-;5645:6;5698:2;5686:9;5677:7;5673:23;5669:32;5666:52;;;5714:1;5711;5704:12;5666:52;5746:9;5740:16;5765:31;5790:5;5765:31;:::i;6092:277::-;6159:6;6212:2;6200:9;6191:7;6187:23;6183:32;6180:52;;;6228:1;6225;6218:12;6180:52;6260:9;6254:16;6313:5;6306:13;6299:21;6292:5;6289:32;6279:60;;6335:1;6332;6325:12;6374:409;6576:2;6558:21;;;6615:2;6595:18;;;6588:30;6654:34;6649:2;6634:18;;6627:62;-1:-1:-1;;;6720:2:165;6705:18;;6698:43;6773:3;6758:19;;6374:409::o;6788:390::-;6947:2;6936:9;6929:21;6986:6;6981:2;6970:9;6966:18;6959:34;7043:6;7035;7030:2;7019:9;7015:18;7002:48;7099:1;7070:22;;;7094:2;7066:31;;;7059:42;;;;7162:2;7141:15;;;-1:-1:-1;;7137:29:165;7122:45;7118:54;;6788:390;-1:-1:-1;6788:390:165:o;7183:404::-;7385:2;7367:21;;;7424:2;7404:18;;;7397:30;7463:34;7458:2;7443:18;;7436:62;-1:-1:-1;;;7529:2:165;7514:18;;7507:38;7577:3;7562:19;;7183:404::o;8343:406::-;8545:2;8527:21;;;8584:2;8564:18;;;8557:30;8623:34;8618:2;8603:18;;8596:62;-1:-1:-1;;;8689:2:165;8674:18;;8667:40;8739:3;8724:19;;8343:406::o;9043:562::-;-1:-1:-1;;;;;9282:32:165;;9264:51;;9351:2;9346;9331:18;;9324:30;;;9370:18;;9363:34;;;-1:-1:-1;;;;;;9409:31:165;;9406:51;;;9453:1;9450;9443:12;9406:51;9487:6;9484:1;9480:14;9544:6;9536;9531:2;9520:9;9516:18;9503:48;9572:22;;;;9596:2;9568:31;;9043:562;-1:-1:-1;;;;9043:562:165:o;10860:407::-;11062:2;11044:21;;;11101:2;11081:18;;;11074:30;11140:34;11135:2;11120:18;;11113:62;-1:-1:-1;;;11206:2:165;11191:18;;11184:41;11257:3;11242:19;;10860:407::o","linkReferences":{}},"methodIdentifiers":{"addClaimRegistryManager(address)":"faed696a","addComplianceManager(address)":"a66bcc1c","addComplianceSetter(address)":"ce4bdac7","addIssuersRegistryManager(address)":"ac95fc91","addOwnerAdmin(address)":"934b2da4","addRegistryAddressSetter(address)":"ae5aaa3b","addTokenInfoManager(address)":"94e69f1b","callAddAgentOnIdentityRegistryContract(address)":"85cef608","callAddAgentOnTokenContract(address)":"256ccc07","callAddClaimTopic(uint256,address)":"dd39042b","callAddTrustedIssuer(address,uint256[],address)":"fc6de4b5","callComplianceFunction(bytes,address)":"5c5f2047","callRemoveAgentOnIdentityRegistryContract(address)":"757d467f","callRemoveAgentOnTokenContract(address)":"28d7be34","callRemoveClaimTopic(uint256,address)":"2f56d91b","callRemoveTrustedIssuer(address,address)":"9ce2d88e","callSetClaimTopicsRegistry(address,address)":"eeac6fe6","callSetCompliance(address,address)":"951af88d","callSetIdentityRegistry(address,address)":"9d6de3bc","callSetTokenName(string,address)":"309ff3d1","callSetTokenOnchainID(address,address)":"87cc060c","callSetTokenSymbol(string,address)":"2af70c30","callSetTrustedIssuersRegistry(address,address)":"f087249c","callTransferOwnershipOnClaimTopicsRegistryContract(address)":"818ab8bd","callTransferOwnershipOnComplianceContract(address)":"1096a7ec","callTransferOwnershipOnIdentityRegistryContract(address)":"e3812318","callTransferOwnershipOnIssuersRegistryContract(address)":"99884aab","callTransferOwnershipOnTokenContract(address)":"aa1cef56","callUpdateIssuerClaimTopics(address,uint256[],address)":"4837b797","isClaimRegistryManager(address)":"3c734ce8","isComplianceManager(address)":"03ff5014","isComplianceSetter(address)":"3ba7c75e","isIssuersRegistryManager(address)":"ff806311","isOwnerAdmin(address)":"62cdd482","isRegistryAddressSetter(address)":"82870937","isTokenInfoManager(address)":"2447e50b","owner()":"8da5cb5b","removeClaimRegistryManager(address)":"e110255b","removeComplianceManager(address)":"46b686f8","removeComplianceSetter(address)":"40522554","removeIssuersRegistryManager(address)":"6ff7bff7","removeOwnerAdmin(address)":"54b9797f","removeRegistryAddressSetter(address)":"039ec2cd","removeTokenInfoManager(address)":"882fc6ca","renounceOwnership()":"715018a6","token()":"fc0c546a","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"ComplianceInteraction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_role\",\"type\":\"string\"}],\"name\":\"RoleAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_role\",\"type\":\"string\"}],\"name\":\"RoleRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addClaimRegistryManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addComplianceManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addComplianceSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addIssuersRegistryManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addOwnerAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addRegistryAddressSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addTokenInfoManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"callAddAgentOnIdentityRegistryContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"callAddAgentOnTokenContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimTopic\",\"type\":\"uint256\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callAddClaimTopic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"_trustedIssuer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_claimTopics\",\"type\":\"uint256[]\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callAddTrustedIssuer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callComplianceFunction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"callRemoveAgentOnIdentityRegistryContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"callRemoveAgentOnTokenContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimTopic\",\"type\":\"uint256\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callRemoveClaimTopic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"_trustedIssuer\",\"type\":\"address\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callRemoveTrustedIssuer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_claimTopicsRegistry\",\"type\":\"address\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callSetClaimTopicsRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callSetCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identityRegistry\",\"type\":\"address\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callSetIdentityRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callSetTokenName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenOnchainID\",\"type\":\"address\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callSetTokenOnchainID\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callSetTokenSymbol\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_trustedIssuersRegistry\",\"type\":\"address\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callSetTrustedIssuersRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"callTransferOwnershipOnClaimTopicsRegistryContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"callTransferOwnershipOnComplianceContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"callTransferOwnershipOnIdentityRegistryContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"callTransferOwnershipOnIssuersRegistryContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"callTransferOwnershipOnTokenContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"_trustedIssuer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_claimTopics\",\"type\":\"uint256[]\"},{\"internalType\":\"contract IIdentity\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"callUpdateIssuerClaimTopics\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isClaimRegistryManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isComplianceManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isComplianceSetter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isIssuersRegistryManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isOwnerAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isRegistryAddressSetter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isTokenInfoManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeClaimRegistryManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeComplianceManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeComplianceSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeIssuersRegistryManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeOwnerAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeRegistryAddressSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeTokenInfoManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"contract IToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"ComplianceInteraction(address,bytes4)\":{\"details\":\"Event emitted for each executed interaction with the compliance contract. For gas efficiency, only the interaction calldata selector (first 4 bytes) is included in the event. For interactions without calldata or whose calldata is shorter than 4 bytes, the selector will be `0`.\"}},\"kind\":\"dev\",\"methods\":{\"callAddAgentOnIdentityRegistryContract(address)\":{\"details\":\"calls the `addAgentOnIdentityRegistryContract` function on the Identity Registry contract OwnerManager has to be set as owner on the Identity Registry smart contract to process this function See {IIdentityRegistry-addAgentOnIdentityRegistryContract}. Requires that msg.sender is an Admin of the OwnerManager contract\"},\"callAddAgentOnTokenContract(address)\":{\"details\":\"calls the `addAgentOnTokenContract` function on the token contract OwnerManager has to be set as owner on the token smart contract to process this function See {IToken-addAgentOnTokenContract}. Requires that msg.sender is an Admin of the OwnerManager contract\"},\"callAddClaimTopic(uint256,address)\":{\"details\":\"calls the `addClaimTopic` function on the Claim Topics Registry contract OwnerManager has to be set as owner on the Claim Topics Registry smart contract to process this function See {IClaimTopicsRegistry-addClaimTopic}. Requires that `_onchainID` is set as ClaimRegistryManager on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callAddTrustedIssuer(address,uint256[],address)\":{\"details\":\"calls the `addTrustedIssuer` function on the Trusted Issuers Registry contract OwnerManager has to be set as owner on the Trusted Issuers Registry smart contract to process this function See {ITrustedIssuersRegistry-addTrustedIssuer}. Requires that `_onchainID` is set as IssuersRegistryManager on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callComplianceFunction(bytes,address)\":{\"details\":\"calls any onlyOwner function available on the compliance contract OwnerManager has to be set as owner on the compliance smart contract to process this function Requires that `_onchainID` is set as ComplianceManager on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callRemoveAgentOnIdentityRegistryContract(address)\":{\"details\":\"calls the `removeAgentOnIdentityRegistryContract` function on the Identity Registry contract OwnerManager has to be set as owner on the Identity Registry smart contract to process this function See {IIdentityRegistry-removeAgentOnIdentityRegistryContract}. Requires that msg.sender is an Admin of the OwnerManager contract\"},\"callRemoveAgentOnTokenContract(address)\":{\"details\":\"calls the `removeAgentOnTokenContract` function on the token contract OwnerManager has to be set as owner on the token smart contract to process this function See {IToken-removeAgentOnTokenContract}. Requires that msg.sender is an Admin of the OwnerManager contract\"},\"callRemoveClaimTopic(uint256,address)\":{\"details\":\"calls the `removeClaimTopic` function on the Claim Topics Registry contract OwnerManager has to be set as owner on the Claim Topics Registry smart contract to process this function See {IClaimTopicsRegistry-removeClaimTopic}. Requires that `_onchainID` is set as ClaimRegistryManager on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callRemoveTrustedIssuer(address,address)\":{\"details\":\"calls the `removeTrustedIssuer` function on the Trusted Issuers Registry contract OwnerManager has to be set as owner on the Trusted Issuers Registry smart contract to process this function See {ITrustedIssuersRegistry-removeTrustedIssuer}. Requires that `_onchainID` is set as IssuersRegistryManager on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callSetClaimTopicsRegistry(address,address)\":{\"details\":\"calls the `setClaimTopicsRegistry` function on the Identity Registry contract OwnerManager has to be set as owner on the Identity Registry smart contract to process this function See {IIdentityRegistry-setClaimTopicsRegistry}. Requires that `_onchainID` is set as RegistryAddressSetter on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callSetCompliance(address,address)\":{\"details\":\"calls the `setCompliance` function on the token contract OwnerManager has to be set as owner on the token smart contract to process this function See {IToken-setCompliance}. Requires that `_onchainID` is set as ComplianceSetter on the OwnerManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callSetIdentityRegistry(address,address)\":{\"details\":\"calls the `setIdentityRegistry` function on the token contract OwnerManager has to be set as owner on the token smart contract to process this function See {IToken-setIdentityRegistry}. Requires that `_onchainID` is set as RegistryAddressSetter on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callSetTokenName(string,address)\":{\"details\":\"calls the `setName` function on the token contract OwnerManager has to be set as owner on the token smart contract to process this function See {IToken-setName}. Requires that `_onchainID` is set as TokenInfoManager on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callSetTokenOnchainID(address,address)\":{\"details\":\"calls the `setOnchainID` function on the token contract OwnerManager has to be set as owner on the token smart contract to process this function See {IToken-setOnchainID}. Requires that `_tokenOnchainID` is set as TokenInfoManager on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callSetTokenSymbol(string,address)\":{\"details\":\"calls the `setSymbol` function on the token contract OwnerManager has to be set as owner on the token smart contract to process this function See {IToken-setSymbol}. Requires that `_onchainID` is set as TokenInfoManager on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callSetTrustedIssuersRegistry(address,address)\":{\"details\":\"calls the `setTrustedIssuersRegistry` function on the Identity Registry contract OwnerManager has to be set as owner on the Identity Registry smart contract to process this function See {IIdentityRegistry-setTrustedIssuersRegistry}. Requires that `_onchainID` is set as RegistryAddressSetter on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"callTransferOwnershipOnClaimTopicsRegistryContract(address)\":{\"details\":\"calls the `transferOwnershipOnClaimTopicsRegistryContract` function on the Claim Topics Registry contract OwnerManager has to be set as owner on the Claim Topics registry smart contract to process this function See {IClaimTopicsRegistry-transferOwnershipOnClaimTopicsRegistryContract}. Requires that msg.sender is an Admin of the OwnerManager contract\"},\"callTransferOwnershipOnComplianceContract(address)\":{\"details\":\"calls the `transferOwnershipOnComplianceContract` function on the Compliance contract OwnerManager has to be set as owner on the Compliance smart contract to process this function See {ICompliance-transferOwnershipOnComplianceContract}. Requires that msg.sender is an Admin of the OwnerManager contract\"},\"callTransferOwnershipOnIdentityRegistryContract(address)\":{\"details\":\"calls the `transferOwnershipOnIdentityRegistryContract` function on the Identity Registry contract OwnerManager has to be set as owner on the Identity Registry smart contract to process this function See {IIdentityRegistry-transferOwnershipOnIdentityRegistryContract}. Requires that msg.sender is an Admin of the OwnerManager contract\"},\"callTransferOwnershipOnIssuersRegistryContract(address)\":{\"details\":\"calls the `transferOwnershipOnIssuersRegistryContract` function on the Trusted Issuers Registry contract OwnerManager has to be set as owner on the Trusted Issuers registry smart contract to process this function See {ITrustedIssuersRegistry-transferOwnershipOnIssuersRegistryContract}. Requires that msg.sender is an Admin of the OwnerManager contract\"},\"callTransferOwnershipOnTokenContract(address)\":{\"details\":\"calls the `transferOwnershipOnTokenContract` function on the token contract OwnerManager has to be set as owner on the token smart contract to process this function See {IToken-transferOwnershipOnTokenContract}. Requires that msg.sender is an Admin of the OwnerManager contract\"},\"callUpdateIssuerClaimTopics(address,uint256[],address)\":{\"details\":\"calls the `updateIssuerClaimTopics` function on the Trusted Issuers Registry contract OwnerManager has to be set as owner on the Trusted Issuers Registry smart contract to process this function See {ITrustedIssuersRegistry-updateIssuerClaimTopics}. Requires that `_onchainID` is set as IssuersRegistryManager on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`\",\"params\":{\"_onchainID\":\"the _onchainID contract of the caller, e.g. \\\"i call this function and i am Bob\\\"\"}},\"constructor\":{\"details\":\"the constructor initiates the OwnerManager contract and sets msg.sender as owner of the contract\",\"params\":{\"_token\":\"the token managed by this OwnerManager contract\"}},\"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\":{\"token\":{\"details\":\"the token that is managed by this OwnerManager Contract\"}},\"version\":1},\"userdoc\":{\"events\":{\"RoleAdded(address,string)\":{\"notice\":\"events\"}},\"kind\":\"user\",\"methods\":{\"addOwnerAdmin(address)\":{\"notice\":\"functions\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/roles/permissioning/owner/OwnerManager.sol\":\"OwnerManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/legacy/ICompliance.sol\":{\"keccak256\":\"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e\",\"dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/roles/permissioning/owner/OwnerManager.sol\":{\"keccak256\":\"0xca1215419db3a1b3de73f5f07c4cb145a4daf3ad830a65613ddbafb573c6697f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e78f09596f36302082dba1451bcf4637a7a851cf151fcc48d6deb7ef8606cb64\",\"dweb:/ipfs/QmeiPf4YjzsUgXa8wSwtcRghMDjYLMgSQHLHK7Yfu5Wacg\"]},\"contracts/erc3643/roles/permissioning/owner/OwnerRoles.sol\":{\"keccak256\":\"0x6dce8557bbc380a6741985c0bb9c6d7ac459eb645e6a0a7456da7bbacb5a1487\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2f7575a453f0323c443ef0e4a41433507de7bc5d4f888624c21e6808aa53a67f\",\"dweb:/ipfs/QmU4pPkE2X3E5XiyKGoLUq462yi9xhCZeXnj49FJZF7GYo\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"bytes4","name":"selector","type":"bytes4","indexed":false}],"type":"event","name":"ComplianceInteraction","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"string","name":"_role","type":"string","indexed":false}],"type":"event","name":"RoleAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"string","name":"_role","type":"string","indexed":false}],"type":"event","name":"RoleRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addClaimRegistryManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addComplianceManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addComplianceSetter"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addIssuersRegistryManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addOwnerAdmin"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addRegistryAddressSetter"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenInfoManager"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callAddAgentOnIdentityRegistryContract"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callAddAgentOnTokenContract"},{"inputs":[{"internalType":"uint256","name":"_claimTopic","type":"uint256"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callAddClaimTopic"},{"inputs":[{"internalType":"contract IClaimIssuer","name":"_trustedIssuer","type":"address"},{"internalType":"uint256[]","name":"_claimTopics","type":"uint256[]"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callAddTrustedIssuer"},{"inputs":[{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callComplianceFunction"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callRemoveAgentOnIdentityRegistryContract"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callRemoveAgentOnTokenContract"},{"inputs":[{"internalType":"uint256","name":"_claimTopic","type":"uint256"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callRemoveClaimTopic"},{"inputs":[{"internalType":"contract IClaimIssuer","name":"_trustedIssuer","type":"address"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callRemoveTrustedIssuer"},{"inputs":[{"internalType":"address","name":"_claimTopicsRegistry","type":"address"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callSetClaimTopicsRegistry"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callSetCompliance"},{"inputs":[{"internalType":"address","name":"_identityRegistry","type":"address"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callSetIdentityRegistry"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callSetTokenName"},{"inputs":[{"internalType":"address","name":"_tokenOnchainID","type":"address"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callSetTokenOnchainID"},{"inputs":[{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callSetTokenSymbol"},{"inputs":[{"internalType":"address","name":"_trustedIssuersRegistry","type":"address"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callSetTrustedIssuersRegistry"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callTransferOwnershipOnClaimTopicsRegistryContract"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callTransferOwnershipOnComplianceContract"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callTransferOwnershipOnIdentityRegistryContract"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callTransferOwnershipOnIssuersRegistryContract"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callTransferOwnershipOnTokenContract"},{"inputs":[{"internalType":"contract IClaimIssuer","name":"_trustedIssuer","type":"address"},{"internalType":"uint256[]","name":"_claimTopics","type":"uint256[]"},{"internalType":"contract IIdentity","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callUpdateIssuerClaimTopics"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isClaimRegistryManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceSetter","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isIssuersRegistryManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isOwnerAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isRegistryAddressSetter","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenInfoManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeClaimRegistryManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeComplianceManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeComplianceSetter"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeIssuersRegistryManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeOwnerAdmin"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeRegistryAddressSetter"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenInfoManager"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"contract IToken","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"callAddAgentOnIdentityRegistryContract(address)":{"details":"calls the `addAgentOnIdentityRegistryContract` function on the Identity Registry contract OwnerManager has to be set as owner on the Identity Registry smart contract to process this function See {IIdentityRegistry-addAgentOnIdentityRegistryContract}. Requires that msg.sender is an Admin of the OwnerManager contract"},"callAddAgentOnTokenContract(address)":{"details":"calls the `addAgentOnTokenContract` function on the token contract OwnerManager has to be set as owner on the token smart contract to process this function See {IToken-addAgentOnTokenContract}. Requires that msg.sender is an Admin of the OwnerManager contract"},"callAddClaimTopic(uint256,address)":{"details":"calls the `addClaimTopic` function on the Claim Topics Registry contract OwnerManager has to be set as owner on the Claim Topics Registry smart contract to process this function See {IClaimTopicsRegistry-addClaimTopic}. Requires that `_onchainID` is set as ClaimRegistryManager on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callAddTrustedIssuer(address,uint256[],address)":{"details":"calls the `addTrustedIssuer` function on the Trusted Issuers Registry contract OwnerManager has to be set as owner on the Trusted Issuers Registry smart contract to process this function See {ITrustedIssuersRegistry-addTrustedIssuer}. Requires that `_onchainID` is set as IssuersRegistryManager on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callComplianceFunction(bytes,address)":{"details":"calls any onlyOwner function available on the compliance contract OwnerManager has to be set as owner on the compliance smart contract to process this function Requires that `_onchainID` is set as ComplianceManager on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callRemoveAgentOnIdentityRegistryContract(address)":{"details":"calls the `removeAgentOnIdentityRegistryContract` function on the Identity Registry contract OwnerManager has to be set as owner on the Identity Registry smart contract to process this function See {IIdentityRegistry-removeAgentOnIdentityRegistryContract}. Requires that msg.sender is an Admin of the OwnerManager contract"},"callRemoveAgentOnTokenContract(address)":{"details":"calls the `removeAgentOnTokenContract` function on the token contract OwnerManager has to be set as owner on the token smart contract to process this function See {IToken-removeAgentOnTokenContract}. Requires that msg.sender is an Admin of the OwnerManager contract"},"callRemoveClaimTopic(uint256,address)":{"details":"calls the `removeClaimTopic` function on the Claim Topics Registry contract OwnerManager has to be set as owner on the Claim Topics Registry smart contract to process this function See {IClaimTopicsRegistry-removeClaimTopic}. Requires that `_onchainID` is set as ClaimRegistryManager on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callRemoveTrustedIssuer(address,address)":{"details":"calls the `removeTrustedIssuer` function on the Trusted Issuers Registry contract OwnerManager has to be set as owner on the Trusted Issuers Registry smart contract to process this function See {ITrustedIssuersRegistry-removeTrustedIssuer}. Requires that `_onchainID` is set as IssuersRegistryManager on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callSetClaimTopicsRegistry(address,address)":{"details":"calls the `setClaimTopicsRegistry` function on the Identity Registry contract OwnerManager has to be set as owner on the Identity Registry smart contract to process this function See {IIdentityRegistry-setClaimTopicsRegistry}. Requires that `_onchainID` is set as RegistryAddressSetter on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callSetCompliance(address,address)":{"details":"calls the `setCompliance` function on the token contract OwnerManager has to be set as owner on the token smart contract to process this function See {IToken-setCompliance}. Requires that `_onchainID` is set as ComplianceSetter on the OwnerManager contract Requires that msg.sender is a MANAGEMENT KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callSetIdentityRegistry(address,address)":{"details":"calls the `setIdentityRegistry` function on the token contract OwnerManager has to be set as owner on the token smart contract to process this function See {IToken-setIdentityRegistry}. Requires that `_onchainID` is set as RegistryAddressSetter on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callSetTokenName(string,address)":{"details":"calls the `setName` function on the token contract OwnerManager has to be set as owner on the token smart contract to process this function See {IToken-setName}. Requires that `_onchainID` is set as TokenInfoManager on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callSetTokenOnchainID(address,address)":{"details":"calls the `setOnchainID` function on the token contract OwnerManager has to be set as owner on the token smart contract to process this function See {IToken-setOnchainID}. Requires that `_tokenOnchainID` is set as TokenInfoManager on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`","params":{"_onchainID":"the onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callSetTokenSymbol(string,address)":{"details":"calls the `setSymbol` function on the token contract OwnerManager has to be set as owner on the token smart contract to process this function See {IToken-setSymbol}. Requires that `_onchainID` is set as TokenInfoManager on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callSetTrustedIssuersRegistry(address,address)":{"details":"calls the `setTrustedIssuersRegistry` function on the Identity Registry contract OwnerManager has to be set as owner on the Identity Registry smart contract to process this function See {IIdentityRegistry-setTrustedIssuersRegistry}. Requires that `_onchainID` is set as RegistryAddressSetter on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"callTransferOwnershipOnClaimTopicsRegistryContract(address)":{"details":"calls the `transferOwnershipOnClaimTopicsRegistryContract` function on the Claim Topics Registry contract OwnerManager has to be set as owner on the Claim Topics registry smart contract to process this function See {IClaimTopicsRegistry-transferOwnershipOnClaimTopicsRegistryContract}. Requires that msg.sender is an Admin of the OwnerManager contract"},"callTransferOwnershipOnComplianceContract(address)":{"details":"calls the `transferOwnershipOnComplianceContract` function on the Compliance contract OwnerManager has to be set as owner on the Compliance smart contract to process this function See {ICompliance-transferOwnershipOnComplianceContract}. Requires that msg.sender is an Admin of the OwnerManager contract"},"callTransferOwnershipOnIdentityRegistryContract(address)":{"details":"calls the `transferOwnershipOnIdentityRegistryContract` function on the Identity Registry contract OwnerManager has to be set as owner on the Identity Registry smart contract to process this function See {IIdentityRegistry-transferOwnershipOnIdentityRegistryContract}. Requires that msg.sender is an Admin of the OwnerManager contract"},"callTransferOwnershipOnIssuersRegistryContract(address)":{"details":"calls the `transferOwnershipOnIssuersRegistryContract` function on the Trusted Issuers Registry contract OwnerManager has to be set as owner on the Trusted Issuers registry smart contract to process this function See {ITrustedIssuersRegistry-transferOwnershipOnIssuersRegistryContract}. Requires that msg.sender is an Admin of the OwnerManager contract"},"callTransferOwnershipOnTokenContract(address)":{"details":"calls the `transferOwnershipOnTokenContract` function on the token contract OwnerManager has to be set as owner on the token smart contract to process this function See {IToken-transferOwnershipOnTokenContract}. Requires that msg.sender is an Admin of the OwnerManager contract"},"callUpdateIssuerClaimTopics(address,uint256[],address)":{"details":"calls the `updateIssuerClaimTopics` function on the Trusted Issuers Registry contract OwnerManager has to be set as owner on the Trusted Issuers Registry smart contract to process this function See {ITrustedIssuersRegistry-updateIssuerClaimTopics}. Requires that `_onchainID` is set as IssuersRegistryManager on the OwnerManager contract Requires that msg.sender is an ACTION KEY on `_onchainID`","params":{"_onchainID":"the _onchainID contract of the caller, e.g. \"i call this function and i am Bob\""}},"constructor":{"details":"the constructor initiates the OwnerManager contract and sets msg.sender as owner of the contract","params":{"_token":"the token managed by this OwnerManager contract"}},"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."}},"version":1},"userdoc":{"kind":"user","methods":{"addOwnerAdmin(address)":{"notice":"functions"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/roles/permissioning/owner/OwnerManager.sol":"OwnerManager"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/legacy/ICompliance.sol":{"keccak256":"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7","urls":["bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e","dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/roles/permissioning/owner/OwnerManager.sol":{"keccak256":"0xca1215419db3a1b3de73f5f07c4cb145a4daf3ad830a65613ddbafb573c6697f","urls":["bzz-raw://e78f09596f36302082dba1451bcf4637a7a851cf151fcc48d6deb7ef8606cb64","dweb:/ipfs/QmeiPf4YjzsUgXa8wSwtcRghMDjYLMgSQHLHK7Yfu5Wacg"],"license":"GPL-3.0"},"contracts/erc3643/roles/permissioning/owner/OwnerRoles.sol":{"keccak256":"0x6dce8557bbc380a6741985c0bb9c6d7ac459eb645e6a0a7456da7bbacb5a1487","urls":["bzz-raw://2f7575a453f0323c443ef0e4a41433507de7bc5d4f888624c21e6808aa53a67f","dweb:/ipfs/QmU4pPkE2X3E5XiyKGoLUq462yi9xhCZeXnj49FJZF7GYo"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":93} \ No newline at end of file diff --git a/out/OwnerRoles.sol/OwnerRoles.json b/out/OwnerRoles.sol/OwnerRoles.json new file mode 100644 index 0000000..b51dd6c --- /dev/null +++ b/out/OwnerRoles.sol/OwnerRoles.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addClaimRegistryManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addComplianceManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addComplianceSetter","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addIssuersRegistryManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addOwnerAdmin","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addRegistryAddressSetter","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenInfoManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isClaimRegistryManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComplianceManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComplianceSetter","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isIssuersRegistryManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOwnerAdmin","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isRegistryAddressSetter","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenInfoManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeClaimRegistryManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeComplianceManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeComplianceSetter","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeIssuersRegistryManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeOwnerAdmin","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeRegistryAddressSetter","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenInfoManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdded","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_role","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"RoleRemoved","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_role","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61100d806100a56000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c8063882fc6ca116100c3578063ae5aaa3b1161007c578063ae5aaa3b146102c7578063ce4bdac7146102da578063e110255b146102ed578063f2fde38b14610300578063faed696a14610313578063ff8063111461032657600080fd5b8063882fc6ca1461024d5780638da5cb5b14610260578063934b2da41461027b57806394e69f1b1461028e578063a66bcc1c146102a1578063ac95fc91146102b457600080fd5b806346b686f81161011557806346b686f8146101e657806354b9797f146101f957806362cdd4821461020c5780636ff7bff71461021f578063715018a614610232578063828709371461023a57600080fd5b8063039ec2cd1461015d57806303ff5014146101725780632447e50b1461019a5780633ba7c75e146101ad5780633c734ce8146101c057806340522554146101d3575b600080fd5b61017061016b366004610ee1565b610339565b005b610185610180366004610ee1565b6103f4565b60405190151581526020015b60405180910390f35b6101856101a8366004610ee1565b610407565b6101856101bb366004610ee1565b610414565b6101856101ce366004610ee1565b610421565b6101706101e1366004610ee1565b61042e565b6101706101f4366004610ee1565b6104cf565b610170610207366004610ee1565b610571565b61018561021a366004610ee1565b61060c565b61017061022d366004610ee1565b610619565b6101706106c0565b610185610248366004610ee1565b6106d4565b61017061025b366004610ee1565b6106e1565b6000546040516001600160a01b039091168152602001610191565b610170610289366004610ee1565b610782565b61017061029c366004610ee1565b61081d565b6101706102af366004610ee1565b6108be565b6101706102c2366004610ee1565b610960565b6101706102d5366004610ee1565b610a07565b6101706102e8366004610ee1565b610aad565b6101706102fb366004610ee1565b610b4e565b61017061030e366004610ee1565b610bf3565b610170610321366004610ee1565b610c31565b610185610334366004610ee1565b610cd6565b3361034c6000546001600160a01b031690565b6001600160a01b0316148061036557506103653361060c565b61038a5760405162461bcd60e51b815260040161038190610f11565b60405180910390fd5b610395600282610ce3565b60408051808201825260158152742932b3b4b9ba393ca0b2323932b9b9a9b2ba3a32b960591b602082015290516001600160a01b03831690600080516020610f98833981519152906103e8908490610f48565b60405180910390a25050565b6000610401600483610d65565b92915050565b6000610401600783610d65565b6000610401600383610d65565b6000610401600583610d65565b336104416000546001600160a01b031690565b6001600160a01b0316148061045a575061045a3361060c565b6104765760405162461bcd60e51b815260040161038190610f11565b610481600382610ce3565b604080518082018252601081526f21b7b6b83634b0b731b2a9b2ba3a32b960811b602082015290516001600160a01b03831690600080516020610f98833981519152906103e8908490610f48565b336104e26000546001600160a01b031690565b6001600160a01b031614806104fb57506104fb3361060c565b6105175760405162461bcd60e51b815260040161038190610f11565b610522600482610ce3565b604080518082018252601181527021b7b6b83634b0b731b2a6b0b730b3b2b960791b602082015290516001600160a01b03831690600080516020610f98833981519152906103e8908490610f48565b336105846000546001600160a01b031690565b6001600160a01b0316148061059d575061059d3361060c565b6105b95760405162461bcd60e51b815260040161038190610f11565b6105c4600182610ce3565b604080518082018252600a81526927bbb732b920b236b4b760b11b602082015290516001600160a01b03831690600080516020610f98833981519152906103e8908490610f48565b6000610401600183610d65565b3361062c6000546001600160a01b031690565b6001600160a01b0316148061064557506106453361060c565b6106615760405162461bcd60e51b815260040161038190610f11565b61066c600682610ce3565b604080518082018252601681527524b9b9bab2b939a932b3b4b9ba393ca6b0b730b3b2b960511b602082015290516001600160a01b03831690600080516020610f98833981519152906103e8908490610f48565b6106c8610de8565b6106d26000610e15565b565b6000610401600283610d65565b336106f46000546001600160a01b031690565b6001600160a01b0316148061070d575061070d3361060c565b6107295760405162461bcd60e51b815260040161038190610f11565b610734600782610ce3565b604080518082018252601081526f2a37b5b2b724b73337a6b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020610f98833981519152906103e8908490610f48565b336107956000546001600160a01b031690565b6001600160a01b031614806107ae57506107ae3361060c565b6107ca5760405162461bcd60e51b815260040161038190610f11565b6107d5600182610e65565b604080518082018252600a81526927bbb732b920b236b4b760b11b602082015290516001600160a01b03831690600080516020610fb8833981519152906103e8908490610f48565b336108306000546001600160a01b031690565b6001600160a01b0316148061084957506108493361060c565b6108655760405162461bcd60e51b815260040161038190610f11565b610870600782610e65565b604080518082018252601081526f2a37b5b2b724b73337a6b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020610fb8833981519152906103e8908490610f48565b336108d16000546001600160a01b031690565b6001600160a01b031614806108ea57506108ea3361060c565b6109065760405162461bcd60e51b815260040161038190610f11565b610911600482610e65565b604080518082018252601181527021b7b6b83634b0b731b2a6b0b730b3b2b960791b602082015290516001600160a01b03831690600080516020610fb8833981519152906103e8908490610f48565b336109736000546001600160a01b031690565b6001600160a01b0316148061098c575061098c3361060c565b6109a85760405162461bcd60e51b815260040161038190610f11565b6109b3600682610e65565b604080518082018252601681527524b9b9bab2b939a932b3b4b9ba393ca6b0b730b3b2b960511b602082015290516001600160a01b03831690600080516020610fb8833981519152906103e8908490610f48565b33610a1a6000546001600160a01b031690565b6001600160a01b03161480610a335750610a333361060c565b610a4f5760405162461bcd60e51b815260040161038190610f11565b610a5a600282610e65565b60408051808201825260158152742932b3b4b9ba393ca0b2323932b9b9a9b2ba3a32b960591b602082015290516001600160a01b03831690600080516020610fb8833981519152906103e8908490610f48565b33610ac06000546001600160a01b031690565b6001600160a01b03161480610ad95750610ad93361060c565b610af55760405162461bcd60e51b815260040161038190610f11565b610b00600382610e65565b604080518082018252601081526f21b7b6b83634b0b731b2a9b2ba3a32b960811b602082015290516001600160a01b03831690600080516020610fb8833981519152906103e8908490610f48565b33610b616000546001600160a01b031690565b6001600160a01b03161480610b7a5750610b7a3361060c565b610b965760405162461bcd60e51b815260040161038190610f11565b610ba1600582610ce3565b604080518082018252601481527321b630b4b6a932b3b4b9ba393ca6b0b730b3b2b960611b602082015290516001600160a01b03831690600080516020610f98833981519152906103e8908490610f48565b610bfb610de8565b6001600160a01b038116610c2557604051631e4fbdf760e01b815260006004820152602401610381565b610c2e81610e15565b50565b33610c446000546001600160a01b031690565b6001600160a01b03161480610c5d5750610c5d3361060c565b610c795760405162461bcd60e51b815260040161038190610f11565b610c84600582610e65565b604080518082018252601481527321b630b4b6a932b3b4b9ba393ca6b0b730b3b2b960611b602082015290516001600160a01b03831690600080516020610fb8833981519152906103e8908490610f48565b6000610401600683610d65565b610ced8282610d65565b610d435760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610381565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60006001600160a01b038216610dc85760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610381565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000546001600160a01b031633146106d25760405163118cdaa760e01b8152336004820152602401610381565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610e6f8282610d65565b15610ebc5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610381565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b600060208284031215610ef357600080fd5b81356001600160a01b0381168114610f0a57600080fd5b9392505050565b60208082526019908201527f526f6c653a2053656e646572206973204e4f542041646d696e00000000000000604082015260600190565b60006020808352835180602085015260005b81811015610f7657858101830151858201604001528201610f5a565b506000604082860101526040601f19601f830116850101925050509291505056fed211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803abfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489a2646970667358221220f8cf217dded03bfa06c3217737ef3fbf54ca1d7c5baca7b090e228bed878bc2d64736f6c63430008180033","sourceMap":"3924:4667:94:-:0;;;4618:36;;;;;;;;;-1:-1:-1;4640:10:94;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;160:51:165;133:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;3924:4667:94;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:165:-;3924:4667:94;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101585760003560e01c8063882fc6ca116100c3578063ae5aaa3b1161007c578063ae5aaa3b146102c7578063ce4bdac7146102da578063e110255b146102ed578063f2fde38b14610300578063faed696a14610313578063ff8063111461032657600080fd5b8063882fc6ca1461024d5780638da5cb5b14610260578063934b2da41461027b57806394e69f1b1461028e578063a66bcc1c146102a1578063ac95fc91146102b457600080fd5b806346b686f81161011557806346b686f8146101e657806354b9797f146101f957806362cdd4821461020c5780636ff7bff71461021f578063715018a614610232578063828709371461023a57600080fd5b8063039ec2cd1461015d57806303ff5014146101725780632447e50b1461019a5780633ba7c75e146101ad5780633c734ce8146101c057806340522554146101d3575b600080fd5b61017061016b366004610ee1565b610339565b005b610185610180366004610ee1565b6103f4565b60405190151581526020015b60405180910390f35b6101856101a8366004610ee1565b610407565b6101856101bb366004610ee1565b610414565b6101856101ce366004610ee1565b610421565b6101706101e1366004610ee1565b61042e565b6101706101f4366004610ee1565b6104cf565b610170610207366004610ee1565b610571565b61018561021a366004610ee1565b61060c565b61017061022d366004610ee1565b610619565b6101706106c0565b610185610248366004610ee1565b6106d4565b61017061025b366004610ee1565b6106e1565b6000546040516001600160a01b039091168152602001610191565b610170610289366004610ee1565b610782565b61017061029c366004610ee1565b61081d565b6101706102af366004610ee1565b6108be565b6101706102c2366004610ee1565b610960565b6101706102d5366004610ee1565b610a07565b6101706102e8366004610ee1565b610aad565b6101706102fb366004610ee1565b610b4e565b61017061030e366004610ee1565b610bf3565b610170610321366004610ee1565b610c31565b610185610334366004610ee1565b610cd6565b3361034c6000546001600160a01b031690565b6001600160a01b0316148061036557506103653361060c565b61038a5760405162461bcd60e51b815260040161038190610f11565b60405180910390fd5b610395600282610ce3565b60408051808201825260158152742932b3b4b9ba393ca0b2323932b9b9a9b2ba3a32b960591b602082015290516001600160a01b03831690600080516020610f98833981519152906103e8908490610f48565b60405180910390a25050565b6000610401600483610d65565b92915050565b6000610401600783610d65565b6000610401600383610d65565b6000610401600583610d65565b336104416000546001600160a01b031690565b6001600160a01b0316148061045a575061045a3361060c565b6104765760405162461bcd60e51b815260040161038190610f11565b610481600382610ce3565b604080518082018252601081526f21b7b6b83634b0b731b2a9b2ba3a32b960811b602082015290516001600160a01b03831690600080516020610f98833981519152906103e8908490610f48565b336104e26000546001600160a01b031690565b6001600160a01b031614806104fb57506104fb3361060c565b6105175760405162461bcd60e51b815260040161038190610f11565b610522600482610ce3565b604080518082018252601181527021b7b6b83634b0b731b2a6b0b730b3b2b960791b602082015290516001600160a01b03831690600080516020610f98833981519152906103e8908490610f48565b336105846000546001600160a01b031690565b6001600160a01b0316148061059d575061059d3361060c565b6105b95760405162461bcd60e51b815260040161038190610f11565b6105c4600182610ce3565b604080518082018252600a81526927bbb732b920b236b4b760b11b602082015290516001600160a01b03831690600080516020610f98833981519152906103e8908490610f48565b6000610401600183610d65565b3361062c6000546001600160a01b031690565b6001600160a01b0316148061064557506106453361060c565b6106615760405162461bcd60e51b815260040161038190610f11565b61066c600682610ce3565b604080518082018252601681527524b9b9bab2b939a932b3b4b9ba393ca6b0b730b3b2b960511b602082015290516001600160a01b03831690600080516020610f98833981519152906103e8908490610f48565b6106c8610de8565b6106d26000610e15565b565b6000610401600283610d65565b336106f46000546001600160a01b031690565b6001600160a01b0316148061070d575061070d3361060c565b6107295760405162461bcd60e51b815260040161038190610f11565b610734600782610ce3565b604080518082018252601081526f2a37b5b2b724b73337a6b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020610f98833981519152906103e8908490610f48565b336107956000546001600160a01b031690565b6001600160a01b031614806107ae57506107ae3361060c565b6107ca5760405162461bcd60e51b815260040161038190610f11565b6107d5600182610e65565b604080518082018252600a81526927bbb732b920b236b4b760b11b602082015290516001600160a01b03831690600080516020610fb8833981519152906103e8908490610f48565b336108306000546001600160a01b031690565b6001600160a01b0316148061084957506108493361060c565b6108655760405162461bcd60e51b815260040161038190610f11565b610870600782610e65565b604080518082018252601081526f2a37b5b2b724b73337a6b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020610fb8833981519152906103e8908490610f48565b336108d16000546001600160a01b031690565b6001600160a01b031614806108ea57506108ea3361060c565b6109065760405162461bcd60e51b815260040161038190610f11565b610911600482610e65565b604080518082018252601181527021b7b6b83634b0b731b2a6b0b730b3b2b960791b602082015290516001600160a01b03831690600080516020610fb8833981519152906103e8908490610f48565b336109736000546001600160a01b031690565b6001600160a01b0316148061098c575061098c3361060c565b6109a85760405162461bcd60e51b815260040161038190610f11565b6109b3600682610e65565b604080518082018252601681527524b9b9bab2b939a932b3b4b9ba393ca6b0b730b3b2b960511b602082015290516001600160a01b03831690600080516020610fb8833981519152906103e8908490610f48565b33610a1a6000546001600160a01b031690565b6001600160a01b03161480610a335750610a333361060c565b610a4f5760405162461bcd60e51b815260040161038190610f11565b610a5a600282610e65565b60408051808201825260158152742932b3b4b9ba393ca0b2323932b9b9a9b2ba3a32b960591b602082015290516001600160a01b03831690600080516020610fb8833981519152906103e8908490610f48565b33610ac06000546001600160a01b031690565b6001600160a01b03161480610ad95750610ad93361060c565b610af55760405162461bcd60e51b815260040161038190610f11565b610b00600382610e65565b604080518082018252601081526f21b7b6b83634b0b731b2a9b2ba3a32b960811b602082015290516001600160a01b03831690600080516020610fb8833981519152906103e8908490610f48565b33610b616000546001600160a01b031690565b6001600160a01b03161480610b7a5750610b7a3361060c565b610b965760405162461bcd60e51b815260040161038190610f11565b610ba1600582610ce3565b604080518082018252601481527321b630b4b6a932b3b4b9ba393ca6b0b730b3b2b960611b602082015290516001600160a01b03831690600080516020610f98833981519152906103e8908490610f48565b610bfb610de8565b6001600160a01b038116610c2557604051631e4fbdf760e01b815260006004820152602401610381565b610c2e81610e15565b50565b33610c446000546001600160a01b031690565b6001600160a01b03161480610c5d5750610c5d3361060c565b610c795760405162461bcd60e51b815260040161038190610f11565b610c84600582610e65565b604080518082018252601481527321b630b4b6a932b3b4b9ba393ca6b0b730b3b2b960611b602082015290516001600160a01b03831690600080516020610fb8833981519152906103e8908490610f48565b6000610401600683610d65565b610ced8282610d65565b610d435760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610381565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60006001600160a01b038216610dc85760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610381565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000546001600160a01b031633146106d25760405163118cdaa760e01b8152336004820152602401610381565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610e6f8282610d65565b15610ebc5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610381565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b600060208284031215610ef357600080fd5b81356001600160a01b0381168114610f0a57600080fd5b9392505050565b60208082526019908201527f526f6c653a2053656e646572206973204e4f542041646d696e00000000000000604082015260600190565b60006020808352835180602085015260005b81811015610f7657858101830151858201604001528201610f5a565b506000604082860101526040601f19601f830116850101925050509291505056fed211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803abfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489a2646970667358221220f8cf217dded03bfa06c3217737ef3fbf54ca1d7c5baca7b090e228bed878bc2d64736f6c63430008180033","sourceMap":"3924:4667:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5281:222;;;;;;:::i;:::-;;:::i;:::-;;8193:126;;;;;;:::i;:::-;;:::i;:::-;;;470:14:165;;463:22;445:41;;433:2;418:18;8193:126:94;;;;;;;;7783:124;;;;;;:::i;:::-;;:::i;8325:::-;;;;;;:::i;:::-;;:::i;8055:132::-;;;;;;:::i;:::-;;:::i;5714:207::-;;;;;;:::i;:::-;;:::i;6135:210::-;;;;;;:::i;:::-;;:::i;4866:189::-;;;;;;:::i;:::-;;:::i;7665:112::-;;;;;;:::i;:::-;;:::i;7016:225::-;;;;;;:::i;:::-;;:::i;2293:101:141:-;;;:::i;8455:134:94:-;;;;;;:::i;:::-;;:::i;7452:207::-;;;;;;:::i;:::-;;:::i;1638:85:141:-;1684:7;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:141;;;643:51:165;;631:2;616:18;1638:85:141;497:203:165;4679:181:94;;;;;;:::i;:::-;;:::i;7247:199::-;;;;;;:::i;:::-;;:::i;5927:202::-;;;;;;:::i;:::-;;:::i;6793:217::-;;;;;;:::i;:::-;;:::i;5061:214::-;;;;;;:::i;:::-;;:::i;5509:199::-;;;;;;:::i;:::-;;:::i;6568:219::-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;6351:211:94:-;;;;;;:::i;:::-;;:::i;7913:136::-;;;;;;:::i;:::-;;:::i;5281:222::-;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;;;;;;;;;5363:37:::1;:22;5393:6:::0;5363:29:::1;:37::i;:::-;5410:45;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5410:45:94::1;::::0;::::1;::::0;5470:26;;-1:-1:-1;;;;;5470:26:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;5470:26:94;::::1;::::0;5410:45;;5470:26:::1;:::i;:::-;;;;;;;;5353:150;5281:222:::0;:::o;8193:126::-;8259:4;8282:30;:18;8305:6;8282:22;:30::i;:::-;8275:37;8193:126;-1:-1:-1;;8193:126:94:o;7783:124::-;7848:4;7871:29;:17;7893:6;7871:21;:29::i;8325:124::-;8390:4;8413:29;:17;8435:6;8413:21;:29::i;8055:132::-;8124:4;8147:33;:21;8173:6;8147:25;:33::i;5714:207::-;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;5791:32:::1;:17;5816:6:::0;5791:24:::1;:32::i;:::-;5833:40;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5833:40:94::1;::::0;::::1;::::0;5888:26;;-1:-1:-1;;;;;5888:26:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;5888:26:94;::::1;::::0;5833:40;;5888:26:::1;:::i;6135:210::-:0;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;6213:33:::1;:18;6239:6:::0;6213:25:::1;:33::i;:::-;6256:41;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6256:41:94::1;::::0;::::1;::::0;6312:26;;-1:-1:-1;;;;;6312:26:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;6312:26:94;::::1;::::0;6256:41;;6312:26:::1;:::i;4866:189::-:0;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;4937:26:::1;:11;4956:6:::0;4937:18:::1;:26::i;:::-;4973:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;4973:34:94::1;::::0;::::1;::::0;5022:26;;-1:-1:-1;;;;;5022:26:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;5022:26:94;::::1;::::0;4973:34;;5022:26:::1;:::i;7665:112::-:0;7724:4;7747:23;:11;7763:6;7747:15;:23::i;7016:225::-;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;7099:38:::1;:23;7130:6:::0;7099:30:::1;:38::i;:::-;7147:46;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;7147:46:94::1;::::0;::::1;::::0;7208:26;;-1:-1:-1;;;;;7208:26:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;7208:26:94;::::1;::::0;7147:46;;7208:26:::1;:::i;2293:101:141:-:0;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;8455:134:94:-;8525:4;8548:34;:22;8575:6;8548:26;:34::i;7452:207::-;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;7529:32:::1;:17;7554:6:::0;7529:24:::1;:32::i;:::-;7571:40;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;7571:40:94::1;::::0;::::1;::::0;7626:26;;-1:-1:-1;;;;;7626:26:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;7626:26:94;::::1;::::0;7571:40;;7626:26:::1;:::i;4679:181::-:0;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;4747:23:::1;:11;4763:6:::0;4747:15:::1;:23::i;:::-;4780:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;4780:34:94::1;::::0;::::1;::::0;4829:24;;-1:-1:-1;;;;;4829:24:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;4829:24:94;::::1;::::0;4780:34;;4829:24:::1;:::i;7247:199::-:0;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;7321:29:::1;:17;7343:6:::0;7321:21:::1;:29::i;:::-;7360:40;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;7360:40:94::1;::::0;::::1;::::0;7415:24;;-1:-1:-1;;;;;7415:24:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;7415:24:94;::::1;::::0;7360:40;;7415:24:::1;:::i;5927:202::-:0;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;6002:30:::1;:18;6025:6:::0;6002:22:::1;:30::i;:::-;6042:41;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6042:41:94::1;::::0;::::1;::::0;6098:24;;-1:-1:-1;;;;;6098:24:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;6098:24:94;::::1;::::0;6042:41;;6098:24:::1;:::i;6793:217::-:0;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;6873:35:::1;:23;6901:6:::0;6873:27:::1;:35::i;:::-;6918:46;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6918:46:94::1;::::0;::::1;::::0;6979:24;;-1:-1:-1;;;;;6979:24:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;6979:24:94;::::1;::::0;6918:46;;6979:24:::1;:::i;5061:214::-:0;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;5140:34:::1;:22;5167:6:::0;5140:26:::1;:34::i;:::-;5184:45;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5184:45:94::1;::::0;::::1;::::0;5244:24;;-1:-1:-1;;;;;5244:24:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;5244:24:94;::::1;::::0;5184:45;;5244:24:::1;:::i;5509:199::-:0;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;5583:29:::1;:17;5605:6:::0;5583:21:::1;:29::i;:::-;5622:40;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5622:40:94::1;::::0;::::1;::::0;5677:24;;-1:-1:-1;;;;;5677:24:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;5677:24:94;::::1;::::0;5622:40;;5677:24:::1;:::i;6568:219::-:0;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;6649:36:::1;:21;6678:6:::0;6649:28:::1;:36::i;:::-;6695:44;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6695:44:94::1;::::0;::::1;::::0;6754:26;;-1:-1:-1;;;;;6754:26:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;6754:26:94;::::1;::::0;6695:44;;6754:26:::1;:::i;2543:215:141:-:0;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;643:51:165::0;616:18;;2672:31:141::1;497:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;6351:211:94:-;4524:10;4513:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;4513:7:94;-1:-1:-1;;;;;4513:21:94;;:51;;;-1:-1:-1;4538:26:94;735:10:152;7665:112:94;:::i;4538:26::-;4505:89;;;;-1:-1:-1;;;4505:89:94;;;;;;;:::i;:::-;6429:33:::1;:21;6455:6:::0;6429:25:::1;:33::i;:::-;6472:44;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6472:44:94::1;::::0;::::1;::::0;6531:24;;-1:-1:-1;;;;;6531:24:94;::::1;::::0;-1:-1:-1;;;;;;;;;;;6531:24:94;::::1;::::0;6472:44;;6531:24:::1;:::i;7913:136::-:0;7984:4;8007:35;:23;8035:6;8007:27;:35::i;4327:180:89:-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;1814:2:165;4398:64:89;;;1796:21:165;1853:2;1833:18;;;1826:30;1892:34;1872:18;;;1865:62;-1:-1:-1;;;1943:18:165;;;1936:31;1984:19;;4398:64:89;1612:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;4596:200::-;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;2216:2:165;4684:68:89;;;2198:21:165;2255:2;2235:18;;;2228:30;2294:34;2274:18;;;2267:62;-1:-1:-1;;;2345:18:165;;;2338:32;2387:19;;4684:68:89;2014:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;1796:162:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;643:51:165;616:18;;1901:40:141;497:203:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;4077:175:89:-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;2619:2:165;4145:63:89;;;2601:21:165;2658:2;2638:18;;;2631:30;2697:33;2677:18;;;2670:61;2748:18;;4145:63:89;2417:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;14:286:165:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:165;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:165:o;705:349::-;907:2;889:21;;;946:2;926:18;;;919:30;985:27;980:2;965:18;;958:55;1045:2;1030:18;;705:349::o;1059:548::-;1171:4;1200:2;1229;1218:9;1211:21;1261:6;1255:13;1304:6;1299:2;1288:9;1284:18;1277:34;1329:1;1339:140;1353:6;1350:1;1347:13;1339:140;;;1448:14;;;1444:23;;1438:30;1414:17;;;1433:2;1410:26;1403:66;1368:10;;1339:140;;;1343:3;1528:1;1523:2;1514:6;1503:9;1499:22;1495:31;1488:42;1598:2;1591;1587:7;1582:2;1574:6;1570:15;1566:29;1555:9;1551:45;1547:54;1539:62;;;;1059:548;;;;:::o","linkReferences":{}},"methodIdentifiers":{"addClaimRegistryManager(address)":"faed696a","addComplianceManager(address)":"a66bcc1c","addComplianceSetter(address)":"ce4bdac7","addIssuersRegistryManager(address)":"ac95fc91","addOwnerAdmin(address)":"934b2da4","addRegistryAddressSetter(address)":"ae5aaa3b","addTokenInfoManager(address)":"94e69f1b","isClaimRegistryManager(address)":"3c734ce8","isComplianceManager(address)":"03ff5014","isComplianceSetter(address)":"3ba7c75e","isIssuersRegistryManager(address)":"ff806311","isOwnerAdmin(address)":"62cdd482","isRegistryAddressSetter(address)":"82870937","isTokenInfoManager(address)":"2447e50b","owner()":"8da5cb5b","removeClaimRegistryManager(address)":"e110255b","removeComplianceManager(address)":"46b686f8","removeComplianceSetter(address)":"40522554","removeIssuersRegistryManager(address)":"6ff7bff7","removeOwnerAdmin(address)":"54b9797f","removeRegistryAddressSetter(address)":"039ec2cd","removeTokenInfoManager(address)":"882fc6ca","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_role\",\"type\":\"string\"}],\"name\":\"RoleAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_role\",\"type\":\"string\"}],\"name\":\"RoleRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addClaimRegistryManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addComplianceManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addComplianceSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addIssuersRegistryManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addOwnerAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addRegistryAddressSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addTokenInfoManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isClaimRegistryManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isComplianceManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isComplianceSetter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isIssuersRegistryManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isOwnerAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isRegistryAddressSetter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isTokenInfoManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeClaimRegistryManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeComplianceManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeComplianceSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeIssuersRegistryManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeOwnerAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeRegistryAddressSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeTokenInfoManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"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.\"}},\"version\":1},\"userdoc\":{\"events\":{\"RoleAdded(address,string)\":{\"notice\":\"events\"}},\"kind\":\"user\",\"methods\":{\"addOwnerAdmin(address)\":{\"notice\":\"functions\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/roles/permissioning/owner/OwnerRoles.sol\":\"OwnerRoles\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/roles/permissioning/owner/OwnerRoles.sol\":{\"keccak256\":\"0x6dce8557bbc380a6741985c0bb9c6d7ac459eb645e6a0a7456da7bbacb5a1487\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2f7575a453f0323c443ef0e4a41433507de7bc5d4f888624c21e6808aa53a67f\",\"dweb:/ipfs/QmU4pPkE2X3E5XiyKGoLUq462yi9xhCZeXnj49FJZF7GYo\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"string","name":"_role","type":"string","indexed":false}],"type":"event","name":"RoleAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"string","name":"_role","type":"string","indexed":false}],"type":"event","name":"RoleRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addClaimRegistryManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addComplianceManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addComplianceSetter"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addIssuersRegistryManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addOwnerAdmin"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addRegistryAddressSetter"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenInfoManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isClaimRegistryManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceSetter","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isIssuersRegistryManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isOwnerAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isRegistryAddressSetter","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenInfoManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeClaimRegistryManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeComplianceManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeComplianceSetter"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeIssuersRegistryManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeOwnerAdmin"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeRegistryAddressSetter"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenInfoManager"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"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."}},"version":1},"userdoc":{"kind":"user","methods":{"addOwnerAdmin(address)":{"notice":"functions"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/roles/permissioning/owner/OwnerRoles.sol":"OwnerRoles"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/roles/permissioning/owner/OwnerRoles.sol":{"keccak256":"0x6dce8557bbc380a6741985c0bb9c6d7ac459eb645e6a0a7456da7bbacb5a1487","urls":["bzz-raw://2f7575a453f0323c443ef0e4a41433507de7bc5d4f888624c21e6808aa53a67f","dweb:/ipfs/QmU4pPkE2X3E5XiyKGoLUq462yi9xhCZeXnj49FJZF7GYo"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":94} \ No newline at end of file diff --git a/out/OwnerRolesUpgradeable.sol/OwnerRolesUpgradeable.json b/out/OwnerRolesUpgradeable.sol/OwnerRolesUpgradeable.json new file mode 100644 index 0000000..0f64665 --- /dev/null +++ b/out/OwnerRolesUpgradeable.sol/OwnerRolesUpgradeable.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addClaimRegistryManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addComplianceManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addComplianceSetter","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addIssuersRegistryManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addOwnerAdmin","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addRegistryAddressSetter","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenInfoManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isClaimRegistryManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComplianceManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComplianceSetter","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isIssuersRegistryManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOwnerAdmin","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isRegistryAddressSetter","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenInfoManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeClaimRegistryManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeComplianceManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeComplianceSetter","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeIssuersRegistryManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeOwnerAdmin","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeRegistryAddressSetter","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenInfoManager","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdded","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_role","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"RoleRemoved","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_role","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610fd9806100206000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c8063882fc6ca116100c3578063ae5aaa3b1161007c578063ae5aaa3b146102cc578063ce4bdac7146102df578063e110255b146102f2578063f2fde38b14610305578063faed696a14610318578063ff8063111461032b57600080fd5b8063882fc6ca1461024d5780638da5cb5b14610260578063934b2da41461028057806394e69f1b14610293578063a66bcc1c146102a6578063ac95fc91146102b957600080fd5b806346b686f81161011557806346b686f8146101e657806354b9797f146101f957806362cdd4821461020c5780636ff7bff71461021f578063715018a614610232578063828709371461023a57600080fd5b8063039ec2cd1461015d57806303ff5014146101725780632447e50b1461019a5780633ba7c75e146101ad5780633c734ce8146101c057806340522554146101d3575b600080fd5b61017061016b366004610ead565b61033e565b005b610185610180366004610ead565b6103ef565b60405190151581526020015b60405180910390f35b6101856101a8366004610ead565b610402565b6101856101bb366004610ead565b61040f565b6101856101ce366004610ead565b61041c565b6101706101e1366004610ead565b610429565b6101706101f4366004610ead565b6104c0565b610170610207366004610ead565b610558565b61018561021a366004610ead565b6105e9565b61017061022d366004610ead565b6105f5565b610170610692565b610185610248366004610ead565b6106a6565b61017061025b366004610ead565b6106b3565b61026861074a565b6040516001600160a01b039091168152602001610191565b61017061028e366004610ead565b610778565b6101706102a1366004610ead565b610809565b6101706102b4366004610ead565b6108a0565b6101706102c7366004610ead565b610938565b6101706102da366004610ead565b6109d5565b6101706102ed366004610ead565b610a71565b610170610300366004610ead565b610b08565b610170610313366004610ead565b610ba3565b610170610326366004610ead565b610be1565b610185610339366004610ead565b610c7c565b3361034761074a565b6001600160a01b031614806103605750610360336105e9565b6103855760405162461bcd60e51b815260040161037c90610edd565b60405180910390fd5b610390600182610c89565b60408051808201825260158152742932b3b4b9ba393ca0b2323932b9b9a9b2ba3a32b960591b602082015290516001600160a01b03831690600080516020610f64833981519152906103e3908490610f14565b60405180910390a25050565b60006103fc600383610d0b565b92915050565b60006103fc600683610d0b565b60006103fc600283610d0b565b60006103fc600483610d0b565b3361043261074a565b6001600160a01b0316148061044b575061044b336105e9565b6104675760405162461bcd60e51b815260040161037c90610edd565b610472600282610c89565b604080518082018252601081526f21b7b6b83634b0b731b2a9b2ba3a32b960811b602082015290516001600160a01b03831690600080516020610f64833981519152906103e3908490610f14565b336104c961074a565b6001600160a01b031614806104e257506104e2336105e9565b6104fe5760405162461bcd60e51b815260040161037c90610edd565b610509600382610c89565b604080518082018252601181527021b7b6b83634b0b731b2a6b0b730b3b2b960791b602082015290516001600160a01b03831690600080516020610f64833981519152906103e3908490610f14565b3361056161074a565b6001600160a01b0316148061057a575061057a336105e9565b6105965760405162461bcd60e51b815260040161037c90610edd565b6105a1600082610c89565b604080518082018252600a81526927bbb732b920b236b4b760b11b602082015290516001600160a01b03831690600080516020610f64833981519152906103e3908490610f14565b60006103fc8183610d0b565b336105fe61074a565b6001600160a01b031614806106175750610617336105e9565b6106335760405162461bcd60e51b815260040161037c90610edd565b61063e600582610c89565b604080518082018252601681527524b9b9bab2b939a932b3b4b9ba393ca6b0b730b3b2b960511b602082015290516001600160a01b03831690600080516020610f64833981519152906103e3908490610f14565b61069a610d8e565b6106a46000610dc0565b565b60006103fc600183610d0b565b336106bc61074a565b6001600160a01b031614806106d557506106d5336105e9565b6106f15760405162461bcd60e51b815260040161037c90610edd565b6106fc600682610c89565b604080518082018252601081526f2a37b5b2b724b73337a6b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020610f64833981519152906103e3908490610f14565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b3361078161074a565b6001600160a01b0316148061079a575061079a336105e9565b6107b65760405162461bcd60e51b815260040161037c90610edd565b6107c1600082610e31565b604080518082018252600a81526927bbb732b920b236b4b760b11b602082015290516001600160a01b03831690600080516020610f84833981519152906103e3908490610f14565b3361081261074a565b6001600160a01b0316148061082b575061082b336105e9565b6108475760405162461bcd60e51b815260040161037c90610edd565b610852600682610e31565b604080518082018252601081526f2a37b5b2b724b73337a6b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020610f84833981519152906103e3908490610f14565b336108a961074a565b6001600160a01b031614806108c257506108c2336105e9565b6108de5760405162461bcd60e51b815260040161037c90610edd565b6108e9600382610e31565b604080518082018252601181527021b7b6b83634b0b731b2a6b0b730b3b2b960791b602082015290516001600160a01b03831690600080516020610f84833981519152906103e3908490610f14565b3361094161074a565b6001600160a01b0316148061095a575061095a336105e9565b6109765760405162461bcd60e51b815260040161037c90610edd565b610981600582610e31565b604080518082018252601681527524b9b9bab2b939a932b3b4b9ba393ca6b0b730b3b2b960511b602082015290516001600160a01b03831690600080516020610f84833981519152906103e3908490610f14565b336109de61074a565b6001600160a01b031614806109f757506109f7336105e9565b610a135760405162461bcd60e51b815260040161037c90610edd565b610a1e600182610e31565b60408051808201825260158152742932b3b4b9ba393ca0b2323932b9b9a9b2ba3a32b960591b602082015290516001600160a01b03831690600080516020610f84833981519152906103e3908490610f14565b33610a7a61074a565b6001600160a01b03161480610a935750610a93336105e9565b610aaf5760405162461bcd60e51b815260040161037c90610edd565b610aba600282610e31565b604080518082018252601081526f21b7b6b83634b0b731b2a9b2ba3a32b960811b602082015290516001600160a01b03831690600080516020610f84833981519152906103e3908490610f14565b33610b1161074a565b6001600160a01b03161480610b2a5750610b2a336105e9565b610b465760405162461bcd60e51b815260040161037c90610edd565b610b51600482610c89565b604080518082018252601481527321b630b4b6a932b3b4b9ba393ca6b0b730b3b2b960611b602082015290516001600160a01b03831690600080516020610f64833981519152906103e3908490610f14565b610bab610d8e565b6001600160a01b038116610bd557604051631e4fbdf760e01b81526000600482015260240161037c565b610bde81610dc0565b50565b33610bea61074a565b6001600160a01b03161480610c035750610c03336105e9565b610c1f5760405162461bcd60e51b815260040161037c90610edd565b610c2a600482610e31565b604080518082018252601481527321b630b4b6a932b3b4b9ba393ca6b0b730b3b2b960611b602082015290516001600160a01b03831690600080516020610f84833981519152906103e3908490610f14565b60006103fc600583610d0b565b610c938282610d0b565b610ce95760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b606482015260840161037c565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60006001600160a01b038216610d6e5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840161037c565b506001600160a01b03166000908152602091909152604090205460ff1690565b33610d9761074a565b6001600160a01b0316146106a45760405163118cdaa760e01b815233600482015260240161037c565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b610e3b8282610d0b565b15610e885760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640161037c565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b600060208284031215610ebf57600080fd5b81356001600160a01b0381168114610ed657600080fd5b9392505050565b60208082526019908201527f526f6c653a2053656e646572206973204e4f542041646d696e00000000000000604082015260600190565b60006020808352835180602085015260005b81811015610f4257858101830151858201604001528201610f26565b506000604082860101526040601f19601f830116850101925050509291505056fed211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803abfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489a2646970667358221220371a5dddea1181b44f24c35da021144d229a0cfedadf4ef3bbcb00de8687931364736f6c63430008180033","sourceMap":"3947:4649:95:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101585760003560e01c8063882fc6ca116100c3578063ae5aaa3b1161007c578063ae5aaa3b146102cc578063ce4bdac7146102df578063e110255b146102f2578063f2fde38b14610305578063faed696a14610318578063ff8063111461032b57600080fd5b8063882fc6ca1461024d5780638da5cb5b14610260578063934b2da41461028057806394e69f1b14610293578063a66bcc1c146102a6578063ac95fc91146102b957600080fd5b806346b686f81161011557806346b686f8146101e657806354b9797f146101f957806362cdd4821461020c5780636ff7bff71461021f578063715018a614610232578063828709371461023a57600080fd5b8063039ec2cd1461015d57806303ff5014146101725780632447e50b1461019a5780633ba7c75e146101ad5780633c734ce8146101c057806340522554146101d3575b600080fd5b61017061016b366004610ead565b61033e565b005b610185610180366004610ead565b6103ef565b60405190151581526020015b60405180910390f35b6101856101a8366004610ead565b610402565b6101856101bb366004610ead565b61040f565b6101856101ce366004610ead565b61041c565b6101706101e1366004610ead565b610429565b6101706101f4366004610ead565b6104c0565b610170610207366004610ead565b610558565b61018561021a366004610ead565b6105e9565b61017061022d366004610ead565b6105f5565b610170610692565b610185610248366004610ead565b6106a6565b61017061025b366004610ead565b6106b3565b61026861074a565b6040516001600160a01b039091168152602001610191565b61017061028e366004610ead565b610778565b6101706102a1366004610ead565b610809565b6101706102b4366004610ead565b6108a0565b6101706102c7366004610ead565b610938565b6101706102da366004610ead565b6109d5565b6101706102ed366004610ead565b610a71565b610170610300366004610ead565b610b08565b610170610313366004610ead565b610ba3565b610170610326366004610ead565b610be1565b610185610339366004610ead565b610c7c565b3361034761074a565b6001600160a01b031614806103605750610360336105e9565b6103855760405162461bcd60e51b815260040161037c90610edd565b60405180910390fd5b610390600182610c89565b60408051808201825260158152742932b3b4b9ba393ca0b2323932b9b9a9b2ba3a32b960591b602082015290516001600160a01b03831690600080516020610f64833981519152906103e3908490610f14565b60405180910390a25050565b60006103fc600383610d0b565b92915050565b60006103fc600683610d0b565b60006103fc600283610d0b565b60006103fc600483610d0b565b3361043261074a565b6001600160a01b0316148061044b575061044b336105e9565b6104675760405162461bcd60e51b815260040161037c90610edd565b610472600282610c89565b604080518082018252601081526f21b7b6b83634b0b731b2a9b2ba3a32b960811b602082015290516001600160a01b03831690600080516020610f64833981519152906103e3908490610f14565b336104c961074a565b6001600160a01b031614806104e257506104e2336105e9565b6104fe5760405162461bcd60e51b815260040161037c90610edd565b610509600382610c89565b604080518082018252601181527021b7b6b83634b0b731b2a6b0b730b3b2b960791b602082015290516001600160a01b03831690600080516020610f64833981519152906103e3908490610f14565b3361056161074a565b6001600160a01b0316148061057a575061057a336105e9565b6105965760405162461bcd60e51b815260040161037c90610edd565b6105a1600082610c89565b604080518082018252600a81526927bbb732b920b236b4b760b11b602082015290516001600160a01b03831690600080516020610f64833981519152906103e3908490610f14565b60006103fc8183610d0b565b336105fe61074a565b6001600160a01b031614806106175750610617336105e9565b6106335760405162461bcd60e51b815260040161037c90610edd565b61063e600582610c89565b604080518082018252601681527524b9b9bab2b939a932b3b4b9ba393ca6b0b730b3b2b960511b602082015290516001600160a01b03831690600080516020610f64833981519152906103e3908490610f14565b61069a610d8e565b6106a46000610dc0565b565b60006103fc600183610d0b565b336106bc61074a565b6001600160a01b031614806106d557506106d5336105e9565b6106f15760405162461bcd60e51b815260040161037c90610edd565b6106fc600682610c89565b604080518082018252601081526f2a37b5b2b724b73337a6b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020610f64833981519152906103e3908490610f14565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b3361078161074a565b6001600160a01b0316148061079a575061079a336105e9565b6107b65760405162461bcd60e51b815260040161037c90610edd565b6107c1600082610e31565b604080518082018252600a81526927bbb732b920b236b4b760b11b602082015290516001600160a01b03831690600080516020610f84833981519152906103e3908490610f14565b3361081261074a565b6001600160a01b0316148061082b575061082b336105e9565b6108475760405162461bcd60e51b815260040161037c90610edd565b610852600682610e31565b604080518082018252601081526f2a37b5b2b724b73337a6b0b730b3b2b960811b602082015290516001600160a01b03831690600080516020610f84833981519152906103e3908490610f14565b336108a961074a565b6001600160a01b031614806108c257506108c2336105e9565b6108de5760405162461bcd60e51b815260040161037c90610edd565b6108e9600382610e31565b604080518082018252601181527021b7b6b83634b0b731b2a6b0b730b3b2b960791b602082015290516001600160a01b03831690600080516020610f84833981519152906103e3908490610f14565b3361094161074a565b6001600160a01b0316148061095a575061095a336105e9565b6109765760405162461bcd60e51b815260040161037c90610edd565b610981600582610e31565b604080518082018252601681527524b9b9bab2b939a932b3b4b9ba393ca6b0b730b3b2b960511b602082015290516001600160a01b03831690600080516020610f84833981519152906103e3908490610f14565b336109de61074a565b6001600160a01b031614806109f757506109f7336105e9565b610a135760405162461bcd60e51b815260040161037c90610edd565b610a1e600182610e31565b60408051808201825260158152742932b3b4b9ba393ca0b2323932b9b9a9b2ba3a32b960591b602082015290516001600160a01b03831690600080516020610f84833981519152906103e3908490610f14565b33610a7a61074a565b6001600160a01b03161480610a935750610a93336105e9565b610aaf5760405162461bcd60e51b815260040161037c90610edd565b610aba600282610e31565b604080518082018252601081526f21b7b6b83634b0b731b2a9b2ba3a32b960811b602082015290516001600160a01b03831690600080516020610f84833981519152906103e3908490610f14565b33610b1161074a565b6001600160a01b03161480610b2a5750610b2a336105e9565b610b465760405162461bcd60e51b815260040161037c90610edd565b610b51600482610c89565b604080518082018252601481527321b630b4b6a932b3b4b9ba393ca6b0b730b3b2b960611b602082015290516001600160a01b03831690600080516020610f64833981519152906103e3908490610f14565b610bab610d8e565b6001600160a01b038116610bd557604051631e4fbdf760e01b81526000600482015260240161037c565b610bde81610dc0565b50565b33610bea61074a565b6001600160a01b03161480610c035750610c03336105e9565b610c1f5760405162461bcd60e51b815260040161037c90610edd565b610c2a600482610e31565b604080518082018252601481527321b630b4b6a932b3b4b9ba393ca6b0b730b3b2b960611b602082015290516001600160a01b03831690600080516020610f84833981519152906103e3908490610f14565b60006103fc600583610d0b565b610c938282610d0b565b610ce95760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b606482015260840161037c565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60006001600160a01b038216610d6e5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840161037c565b506001600160a01b03166000908152602091909152604090205460ff1690565b33610d9761074a565b6001600160a01b0316146106a45760405163118cdaa760e01b815233600482015260240161037c565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b610e3b8282610d0b565b15610e885760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640161037c565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b600060208284031215610ebf57600080fd5b81356001600160a01b0381168114610ed657600080fd5b9392505050565b60208082526019908201527f526f6c653a2053656e646572206973204e4f542041646d696e00000000000000604082015260600190565b60006020808352835180602085015260005b81811015610f4257858101830151858201604001528201610f26565b506000604082860101526040601f19601f830116850101925050509291505056fed211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803abfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489a2646970667358221220371a5dddea1181b44f24c35da021144d229a0cfedadf4ef3bbcb00de8687931364736f6c63430008180033","sourceMap":"3947:4649:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5286:222;;;;;;:::i;:::-;;:::i;:::-;;8198:126;;;;;;:::i;:::-;;:::i;:::-;;;470:14:165;;463:22;445:41;;433:2;418:18;8198:126:95;;;;;;;;7788:124;;;;;;:::i;:::-;;:::i;8330:::-;;;;;;:::i;:::-;;:::i;8060:132::-;;;;;;:::i;:::-;;:::i;5719:207::-;;;;;;:::i;:::-;;:::i;6140:210::-;;;;;;:::i;:::-;;:::i;4871:189::-;;;;;;:::i;:::-;;:::i;7670:112::-;;;;;;:::i;:::-;;:::i;7021:225::-;;;;;;:::i;:::-;;:::i;3155:101:136:-;;;:::i;8460:134:95:-;;;;;;:::i;:::-;;:::i;7457:207::-;;;;;;:::i;:::-;;:::i;2441:144:136:-;;;:::i;:::-;;;-1:-1:-1;;;;;661:32:165;;;643:51;;631:2;616:18;2441:144:136;497:203:165;4684:181:95;;;;;;:::i;:::-;;:::i;7252:199::-;;;;;;:::i;:::-;;:::i;5932:202::-;;;;;;:::i;:::-;;:::i;6798:217::-;;;;;;:::i;:::-;;:::i;5066:214::-;;;;;;:::i;:::-;;:::i;5514:199::-;;;;;;:::i;:::-;;:::i;6573:219::-;;;;;;:::i;:::-;;:::i;3405:215:136:-;;;;;;:::i;:::-;;:::i;6356:211:95:-;;;;;;:::i;:::-;;:::i;7918:136::-;;;;;;:::i;:::-;;:::i;5286:222::-;4571:10;4560:7;:5;:7::i;:::-;-1:-1:-1;;;;;4560:21:95;;:51;;;-1:-1:-1;4585:26:95;966:10:138;7670:112:95;:::i;4585:26::-;4552:89;;;;-1:-1:-1;;;4552:89:95;;;;;;;:::i;:::-;;;;;;;;;5368:37:::1;:22;5398:6:::0;5368:29:::1;:37::i;:::-;5415:45;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5415:45:95::1;::::0;::::1;::::0;5475:26;;-1:-1:-1;;;;;5475:26:95;::::1;::::0;-1:-1:-1;;;;;;;;;;;5475:26:95;::::1;::::0;5415:45;;5475:26:::1;:::i;:::-;;;;;;;;5358:150;5286:222:::0;:::o;8198:126::-;8264:4;8287:30;:18;8310:6;8287:22;:30::i;:::-;8280:37;8198:126;-1:-1:-1;;8198:126:95:o;7788:124::-;7853:4;7876:29;:17;7898:6;7876:21;:29::i;8330:124::-;8395:4;8418:29;:17;8440:6;8418:21;:29::i;8060:132::-;8129:4;8152:33;:21;8178:6;8152:25;:33::i;5719:207::-;4571:10;4560:7;:5;:7::i;:::-;-1:-1:-1;;;;;4560:21:95;;:51;;;-1:-1:-1;4585:26:95;966:10:138;7670:112:95;:::i;4585:26::-;4552:89;;;;-1:-1:-1;;;4552:89:95;;;;;;;:::i;:::-;5796:32:::1;:17;5821:6:::0;5796:24:::1;:32::i;:::-;5838:40;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5838:40:95::1;::::0;::::1;::::0;5893:26;;-1:-1:-1;;;;;5893:26:95;::::1;::::0;-1:-1:-1;;;;;;;;;;;5893:26:95;::::1;::::0;5838:40;;5893:26:::1;:::i;6140:210::-:0;4571:10;4560:7;:5;:7::i;:::-;-1:-1:-1;;;;;4560:21:95;;:51;;;-1:-1:-1;4585:26:95;966:10:138;7670:112:95;:::i;4585:26::-;4552:89;;;;-1:-1:-1;;;4552:89:95;;;;;;;:::i;:::-;6218:33:::1;:18;6244:6:::0;6218:25:::1;:33::i;:::-;6261:41;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6261:41:95::1;::::0;::::1;::::0;6317:26;;-1:-1:-1;;;;;6317:26:95;::::1;::::0;-1:-1:-1;;;;;;;;;;;6317:26:95;::::1;::::0;6261:41;;6317:26:::1;:::i;4871:189::-:0;4571:10;4560:7;:5;:7::i;:::-;-1:-1:-1;;;;;4560:21:95;;:51;;;-1:-1:-1;4585:26:95;966:10:138;7670:112:95;:::i;4585:26::-;4552:89;;;;-1:-1:-1;;;4552:89:95;;;;;;;:::i;:::-;4942:26:::1;:11;4961:6:::0;4942:18:::1;:26::i;:::-;4978:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;4978:34:95::1;::::0;::::1;::::0;5027:26;;-1:-1:-1;;;;;5027:26:95;::::1;::::0;-1:-1:-1;;;;;;;;;;;5027:26:95;::::1;::::0;4978:34;;5027:26:::1;:::i;7670:112::-:0;7729:4;7752:23;7729:4;7768:6;7752:15;:23::i;7021:225::-;4571:10;4560:7;:5;:7::i;:::-;-1:-1:-1;;;;;4560:21:95;;:51;;;-1:-1:-1;4585:26:95;966:10:138;7670:112:95;:::i;4585:26::-;4552:89;;;;-1:-1:-1;;;4552:89:95;;;;;;;:::i;:::-;7104:38:::1;:23;7135:6:::0;7104:30:::1;:38::i;:::-;7152:46;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;7152:46:95::1;::::0;::::1;::::0;7213:26;;-1:-1:-1;;;;;7213:26:95;::::1;::::0;-1:-1:-1;;;;;;;;;;;7213:26:95;::::1;::::0;7152:46;;7213:26:::1;:::i;3155:101:136:-:0;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;8460:134:95:-;8530:4;8553:34;:22;8580:6;8553:26;:34::i;7457:207::-;4571:10;4560:7;:5;:7::i;:::-;-1:-1:-1;;;;;4560:21:95;;:51;;;-1:-1:-1;4585:26:95;966:10:138;7670:112:95;:::i;4585:26::-;4552:89;;;;-1:-1:-1;;;4552:89:95;;;;;;;:::i;:::-;7534:32:::1;:17;7559:6:::0;7534:24:::1;:32::i;:::-;7576:40;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;7576:40:95::1;::::0;::::1;::::0;7631:26;;-1:-1:-1;;;;;7631:26:95;::::1;::::0;-1:-1:-1;;;;;;;;;;;7631:26:95;::::1;::::0;7576:40;;7631:26:::1;:::i;2441:144:136:-:0;1313:22;2570:8;-1:-1:-1;;;;;2570:8:136;;2441:144::o;4684:181:95:-;4571:10;4560:7;:5;:7::i;:::-;-1:-1:-1;;;;;4560:21:95;;:51;;;-1:-1:-1;4585:26:95;966:10:138;7670:112:95;:::i;4585:26::-;4552:89;;;;-1:-1:-1;;;4552:89:95;;;;;;;:::i;:::-;4752:23:::1;:11;4768:6:::0;4752:15:::1;:23::i;:::-;4785:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;4785:34:95::1;::::0;::::1;::::0;4834:24;;-1:-1:-1;;;;;4834:24:95;::::1;::::0;-1:-1:-1;;;;;;;;;;;4834:24:95;::::1;::::0;4785:34;;4834:24:::1;:::i;7252:199::-:0;4571:10;4560:7;:5;:7::i;:::-;-1:-1:-1;;;;;4560:21:95;;:51;;;-1:-1:-1;4585:26:95;966:10:138;7670:112:95;:::i;4585:26::-;4552:89;;;;-1:-1:-1;;;4552:89:95;;;;;;;:::i;:::-;7326:29:::1;:17;7348:6:::0;7326:21:::1;:29::i;:::-;7365:40;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;7365:40:95::1;::::0;::::1;::::0;7420:24;;-1:-1:-1;;;;;7420:24:95;::::1;::::0;-1:-1:-1;;;;;;;;;;;7420:24:95;::::1;::::0;7365:40;;7420:24:::1;:::i;5932:202::-:0;4571:10;4560:7;:5;:7::i;:::-;-1:-1:-1;;;;;4560:21:95;;:51;;;-1:-1:-1;4585:26:95;966:10:138;7670:112:95;:::i;4585:26::-;4552:89;;;;-1:-1:-1;;;4552:89:95;;;;;;;:::i;:::-;6007:30:::1;:18;6030:6:::0;6007:22:::1;:30::i;:::-;6047:41;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6047:41:95::1;::::0;::::1;::::0;6103:24;;-1:-1:-1;;;;;6103:24:95;::::1;::::0;-1:-1:-1;;;;;;;;;;;6103:24:95;::::1;::::0;6047:41;;6103:24:::1;:::i;6798:217::-:0;4571:10;4560:7;:5;:7::i;:::-;-1:-1:-1;;;;;4560:21:95;;:51;;;-1:-1:-1;4585:26:95;966:10:138;7670:112:95;:::i;4585:26::-;4552:89;;;;-1:-1:-1;;;4552:89:95;;;;;;;:::i;:::-;6878:35:::1;:23;6906:6:::0;6878:27:::1;:35::i;:::-;6923:46;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6923:46:95::1;::::0;::::1;::::0;6984:24;;-1:-1:-1;;;;;6984:24:95;::::1;::::0;-1:-1:-1;;;;;;;;;;;6984:24:95;::::1;::::0;6923:46;;6984:24:::1;:::i;5066:214::-:0;4571:10;4560:7;:5;:7::i;:::-;-1:-1:-1;;;;;4560:21:95;;:51;;;-1:-1:-1;4585:26:95;966:10:138;7670:112:95;:::i;4585:26::-;4552:89;;;;-1:-1:-1;;;4552:89:95;;;;;;;:::i;:::-;5145:34:::1;:22;5172:6:::0;5145:26:::1;:34::i;:::-;5189:45;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5189:45:95::1;::::0;::::1;::::0;5249:24;;-1:-1:-1;;;;;5249:24:95;::::1;::::0;-1:-1:-1;;;;;;;;;;;5249:24:95;::::1;::::0;5189:45;;5249:24:::1;:::i;5514:199::-:0;4571:10;4560:7;:5;:7::i;:::-;-1:-1:-1;;;;;4560:21:95;;:51;;;-1:-1:-1;4585:26:95;966:10:138;7670:112:95;:::i;4585:26::-;4552:89;;;;-1:-1:-1;;;4552:89:95;;;;;;;:::i;:::-;5588:29:::1;:17;5610:6:::0;5588:21:::1;:29::i;:::-;5627:40;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5627:40:95::1;::::0;::::1;::::0;5682:24;;-1:-1:-1;;;;;5682:24:95;::::1;::::0;-1:-1:-1;;;;;;;;;;;5682:24:95;::::1;::::0;5627:40;;5682:24:::1;:::i;6573:219::-:0;4571:10;4560:7;:5;:7::i;:::-;-1:-1:-1;;;;;4560:21:95;;:51;;;-1:-1:-1;4585:26:95;966:10:138;7670:112:95;:::i;4585:26::-;4552:89;;;;-1:-1:-1;;;4552:89:95;;;;;;;:::i;:::-;6654:36:::1;:21;6683:6:::0;6654:28:::1;:36::i;:::-;6700:44;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6700:44:95::1;::::0;::::1;::::0;6759:26;;-1:-1:-1;;;;;6759:26:95;::::1;::::0;-1:-1:-1;;;;;;;;;;;6759:26:95;::::1;::::0;6700:44;;6759:26:::1;:::i;3405:215:136:-:0;2334:13;:11;:13::i;:::-;-1:-1:-1;;;;;3489:22:136;::::1;3485:91;;3534:31;::::0;-1:-1:-1;;;3534:31:136;;3562:1:::1;3534:31;::::0;::::1;643:51:165::0;616:18;;3534:31:136::1;497:203:165::0;3485:91:136::1;3585:28;3604:8;3585:18;:28::i;:::-;3405:215:::0;:::o;6356:211:95:-;4571:10;4560:7;:5;:7::i;:::-;-1:-1:-1;;;;;4560:21:95;;:51;;;-1:-1:-1;4585:26:95;966:10:138;7670:112:95;:::i;4585:26::-;4552:89;;;;-1:-1:-1;;;4552:89:95;;;;;;;:::i;:::-;6434:33:::1;:21;6460:6:::0;6434:25:::1;:33::i;:::-;6477:44;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6477:44:95::1;::::0;::::1;::::0;6536:24;;-1:-1:-1;;;;;6536:24:95;::::1;::::0;-1:-1:-1;;;;;;;;;;;6536:24:95;::::1;::::0;6477:44;;6536:24:::1;:::i;7918:136::-:0;7989:4;8012:35;:23;8040:6;8012:27;:35::i;4327:180:89:-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;1814:2:165;4398:64:89;;;1796:21:165;1853:2;1833:18;;;1826:30;1892:34;1872:18;;;1865:62;-1:-1:-1;;;1943:18:165;;;1936:31;1984:19;;4398:64:89;1612:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;4596:200::-;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;2216:2:165;4684:68:89;;;2198:21:165;2255:2;2235:18;;;2228:30;2294:34;2274:18;;;2267:62;-1:-1:-1;;;2345:18:165;;;2338:32;2387:19;;4684:68:89;2014:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;2658:162:136:-;966:10:138;2717:7:136;:5;:7::i;:::-;-1:-1:-1;;;;;2717:23:136;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:136;;966:10:138;2763:40:136;;;643:51:165;616:18;;2763:40:136;497:203:165;3774:248:136;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:136;;-1:-1:-1;;;;;3941:19:136;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;4077:175:89:-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;2619:2:165;4145:63:89;;;2601:21:165;2658:2;2638:18;;;2631:30;2697:33;2677:18;;;2670:61;2748:18;;4145:63:89;2417:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;14:286:165:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:165;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:165:o;705:349::-;907:2;889:21;;;946:2;926:18;;;919:30;985:27;980:2;965:18;;958:55;1045:2;1030:18;;705:349::o;1059:548::-;1171:4;1200:2;1229;1218:9;1211:21;1261:6;1255:13;1304:6;1299:2;1288:9;1284:18;1277:34;1329:1;1339:140;1353:6;1350:1;1347:13;1339:140;;;1448:14;;;1444:23;;1438:30;1414:17;;;1433:2;1410:26;1403:66;1368:10;;1339:140;;;1343:3;1528:1;1523:2;1514:6;1503:9;1499:22;1495:31;1488:42;1598:2;1591;1587:7;1582:2;1574:6;1570:15;1566:29;1555:9;1551:45;1547:54;1539:62;;;;1059:548;;;;:::o","linkReferences":{}},"methodIdentifiers":{"addClaimRegistryManager(address)":"faed696a","addComplianceManager(address)":"a66bcc1c","addComplianceSetter(address)":"ce4bdac7","addIssuersRegistryManager(address)":"ac95fc91","addOwnerAdmin(address)":"934b2da4","addRegistryAddressSetter(address)":"ae5aaa3b","addTokenInfoManager(address)":"94e69f1b","isClaimRegistryManager(address)":"3c734ce8","isComplianceManager(address)":"03ff5014","isComplianceSetter(address)":"3ba7c75e","isIssuersRegistryManager(address)":"ff806311","isOwnerAdmin(address)":"62cdd482","isRegistryAddressSetter(address)":"82870937","isTokenInfoManager(address)":"2447e50b","owner()":"8da5cb5b","removeClaimRegistryManager(address)":"e110255b","removeComplianceManager(address)":"46b686f8","removeComplianceSetter(address)":"40522554","removeIssuersRegistryManager(address)":"6ff7bff7","removeOwnerAdmin(address)":"54b9797f","removeRegistryAddressSetter(address)":"039ec2cd","removeTokenInfoManager(address)":"882fc6ca","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_role\",\"type\":\"string\"}],\"name\":\"RoleAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_role\",\"type\":\"string\"}],\"name\":\"RoleRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addClaimRegistryManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addComplianceManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addComplianceSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addIssuersRegistryManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addOwnerAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addRegistryAddressSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"addTokenInfoManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isClaimRegistryManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isComplianceManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isComplianceSetter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isIssuersRegistryManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isOwnerAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isRegistryAddressSetter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isTokenInfoManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeClaimRegistryManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeComplianceManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeComplianceSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeIssuersRegistryManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeOwnerAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeRegistryAddressSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"removeTokenInfoManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"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.\"}},\"version\":1},\"userdoc\":{\"events\":{\"RoleAdded(address,string)\":{\"notice\":\"events\"}},\"kind\":\"user\",\"methods\":{\"addOwnerAdmin(address)\":{\"notice\":\"functions\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/roles/permissioning/owner/OwnerRolesUpgradeable.sol\":\"OwnerRolesUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/roles/permissioning/owner/OwnerRolesUpgradeable.sol\":{\"keccak256\":\"0xf125bf390792a316c75ec5a32f6cfcc5b909fcfa9560c02f1a1b341c1d96e044\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cec0de89fb8c94997e0df27609f3677e57244984cbb0176f9b987c9b7e51a382\",\"dweb:/ipfs/QmXXsFqC51vLsCAGw3QJ2mHQYzmCTnz7N5LY6XyEHEAodK\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"string","name":"_role","type":"string","indexed":false}],"type":"event","name":"RoleAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"string","name":"_role","type":"string","indexed":false}],"type":"event","name":"RoleRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addClaimRegistryManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addComplianceManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addComplianceSetter"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addIssuersRegistryManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addOwnerAdmin"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addRegistryAddressSetter"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenInfoManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isClaimRegistryManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceSetter","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isIssuersRegistryManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isOwnerAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isRegistryAddressSetter","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenInfoManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeClaimRegistryManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeComplianceManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeComplianceSetter"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeIssuersRegistryManager"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeOwnerAdmin"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeRegistryAddressSetter"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenInfoManager"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"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."}},"version":1},"userdoc":{"kind":"user","methods":{"addOwnerAdmin(address)":{"notice":"functions"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/roles/permissioning/owner/OwnerRolesUpgradeable.sol":"OwnerRolesUpgradeable"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/roles/permissioning/owner/OwnerRolesUpgradeable.sol":{"keccak256":"0xf125bf390792a316c75ec5a32f6cfcc5b909fcfa9560c02f1a1b341c1d96e044","urls":["bzz-raw://cec0de89fb8c94997e0df27609f3677e57244984cbb0176f9b987c9b7e51a382","dweb:/ipfs/QmXXsFqC51vLsCAGw3QJ2mHQYzmCTnz7N5LY6XyEHEAodK"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"}},"version":1},"id":95} \ No newline at end of file diff --git a/out/Pausable.sol/Pausable.json b/out/Pausable.sol/Pausable.json new file mode 100644 index 0000000..b6fd975 --- /dev/null +++ b/out/Pausable.sol/Pausable.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"paused()":"5c975abb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"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.\",\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}]},\"events\":{\"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\":{\"constructor\":{\"details\":\"Initializes the contract in unpaused state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the contract in unpaused state."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/Pausable.sol":"Pausable"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Pausable.sol":{"keccak256":"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd","urls":["bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc","dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc"],"license":"MIT"}},"version":1},"id":153} \ No newline at end of file diff --git a/out/PythStructs.sol/PythStructs.json b/out/PythStructs.sol/PythStructs.json new file mode 100644 index 0000000..c62d80f --- /dev/null +++ b/out/PythStructs.sol/PythStructs.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea26469706673582212202bd5ff520e4de703ac7cf163bdce4777ed874141edddb89952bb64f4e190dcfa64736f6c63430008180033","sourceMap":"64:1111:164:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea26469706673582212202bd5ff520e4de703ac7cf163bdce4777ed874141edddb89952bb64f4e190dcfa64736f6c63430008180033","sourceMap":"64:1111:164:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@pythnetwork/pyth-sdk-solidity/PythStructs.sol\":\"PythStructs\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@pythnetwork/pyth-sdk-solidity/PythStructs.sol\":{\"keccak256\":\"0xade221177dda98ebd194c363f264ceea125bde0e6a7a72f7b54da3ac60316894\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a404dbbc64183995326c345cae27601d37c783b3d9030c8dc0ab4943fa2bf1da\",\"dweb:/ipfs/QmfNFesQffYisafmJFbKHxVFSD8fY49X1z9f8N7qtfW8AX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@pythnetwork/pyth-sdk-solidity/PythStructs.sol":"PythStructs"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@pythnetwork/pyth-sdk-solidity/PythStructs.sol":{"keccak256":"0xade221177dda98ebd194c363f264ceea125bde0e6a7a72f7b54da3ac60316894","urls":["bzz-raw://a404dbbc64183995326c345cae27601d37c783b3d9030c8dc0ab4943fa2bf1da","dweb:/ipfs/QmfNFesQffYisafmJFbKHxVFSD8fY49X1z9f8N7qtfW8AX"],"license":"Apache-2.0"}},"version":1},"id":164} \ No newline at end of file diff --git a/out/ReentrancyGuard.sol/ReentrancyGuard.json b/out/ReentrancyGuard.sol/ReentrancyGuard.json new file mode 100644 index 0000000..1e64333 --- /dev/null +++ b/out/ReentrancyGuard.sol/ReentrancyGuard.json @@ -0,0 +1 @@ +{"abi":[{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\",\"errors\":{\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":"ReentrancyGuard"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"}},"version":1},"id":154} \ No newline at end of file diff --git a/out/RequiresNFTModule.sol/RequiresNFTModule.json b/out/RequiresNFTModule.sol/RequiresNFTModule.json new file mode 100644 index 0000000..6d2f325 --- /dev/null +++ b/out/RequiresNFTModule.sol/RequiresNFTModule.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"bindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canComplianceBind","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComplianceBound","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPlugAndPlay","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"moduleBurnAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleCheck","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleMintAction","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleTransferAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"requireNFT","inputs":[{"name":"_nftAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unrequireNFT","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComplianceBound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ComplianceUnbound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NFTRequired","inputs":[{"name":"_compliance","type":"address","indexed":false,"internalType":"address"},{"name":"_nftAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NFTUnrequired","inputs":[{"name":"_compliance","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506108b8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80634a932544116100715780634a932544146101625780634cf4d29514610175578063792881d8146101a1578063bcc21053146101a9578063e6f5e807146101bd578063f104a8c91461014f57600080fd5b8063013b7ce4146100b95780630302e195146100e15780630694a5fb146100f657806306fdde03146101095780632cb7e1ec1461013c578063372491a21461014f575b600080fd5b6100cc6100c73660046106cd565b6101c4565b60405190151581526020015b60405180910390f35b6100f46100ef36600461071a565b6101d9565b005b6100f461010436600461071a565b6102d0565b604080518082018252601181527052657175697265734e46544d6f64756c6560781b602082015290516100d8919061073c565b6100f461014a36600461078b565b6103c6565b6100f461015d3660046107c7565b6103fa565b6100f461017036600461071a565b61042d565b6100cc61018336600461071a565b6001600160a01b031660009081526020819052604090205460ff1690565b6100f4610560565b6100cc6101b736600461071a565b50600190565b60016100cc565b60006101d082856105fa565b95945050505050565b3360009081526020819052604090205460ff166102115760405162461bcd60e51b8152600401610208906107f1565b60405180910390fd5b6001600160a01b0381166102595760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964204164647265737360881b6044820152606401610208565b60408051602080820183526001600160a01b0384811680845233600081815260018552869020945185546001600160a01b0319169316929092179093558351908152908101919091527f11c201b691eb8c7ea60f2f80bf729f8f95dd52a5989e529861fb9a61f5272707910160405180910390a150565b3360009081526020819052604090205460ff166102ff5760405162461bcd60e51b8152600401610208906107f1565b6001600160a01b0381166103555760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610208565b336001600160a01b0382161461037d5760405162461bcd60e51b815260040161020890610828565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166103f55760405162461bcd60e51b8152600401610208906107f1565b505050565b3360009081526020819052604090205460ff166104295760405162461bcd60e51b8152600401610208906107f1565b5050565b6001600160a01b0381166104835760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610208565b6001600160a01b03811660009081526020819052604090205460ff16156104ec5760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e6400000000000000006044820152606401610208565b336001600160a01b038216146105145760405162461bcd60e51b815260040161020890610828565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b3360009081526020819052604090205460ff1661058f5760405162461bcd60e51b8152600401610208906107f1565b60408051602080820183526000808352338082526001835290849020925183546001600160a01b0319166001600160a01b039091161790925591519081527f6cf63d5ed5dff63c0a0b3c552f0022b543906e2225e4b12553b6baf477d8d0b5910160405180910390a1565b6001600160a01b0380831660009081526001602090815260408083208151928301909152549092168083529091906106365760009150506106ab565b80516040516370a0823160e01b81526001600160a01b03858116600483015260009216906370a0823190602401602060405180830381865afa158015610680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a49190610869565b1515925050505b92915050565b80356001600160a01b03811681146106c857600080fd5b919050565b600080600080608085870312156106e357600080fd5b6106ec856106b1565b93506106fa602086016106b1565b92506040850135915061070f606086016106b1565b905092959194509250565b60006020828403121561072c57600080fd5b610735826106b1565b9392505050565b60006020808352835180602085015260005b8181101561076a5785810183015185820160400152820161074e565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806000606084860312156107a057600080fd5b6107a9846106b1565b92506107b7602085016106b1565b9150604084013590509250925092565b600080604083850312156107da57600080fd5b6107e3836106b1565b946020939093013593505050565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b60006020828403121561087b57600080fd5b505191905056fea26469706673582212203e1bcf6e097849822be644e4c2019daffa5385e7b25d4c061e90f9d594eca9fc64736f6c63430008180033","sourceMap":"153:3733:53:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80634a932544116100715780634a932544146101625780634cf4d29514610175578063792881d8146101a1578063bcc21053146101a9578063e6f5e807146101bd578063f104a8c91461014f57600080fd5b8063013b7ce4146100b95780630302e195146100e15780630694a5fb146100f657806306fdde03146101095780632cb7e1ec1461013c578063372491a21461014f575b600080fd5b6100cc6100c73660046106cd565b6101c4565b60405190151581526020015b60405180910390f35b6100f46100ef36600461071a565b6101d9565b005b6100f461010436600461071a565b6102d0565b604080518082018252601181527052657175697265734e46544d6f64756c6560781b602082015290516100d8919061073c565b6100f461014a36600461078b565b6103c6565b6100f461015d3660046107c7565b6103fa565b6100f461017036600461071a565b61042d565b6100cc61018336600461071a565b6001600160a01b031660009081526020819052604090205460ff1690565b6100f4610560565b6100cc6101b736600461071a565b50600190565b60016100cc565b60006101d082856105fa565b95945050505050565b3360009081526020819052604090205460ff166102115760405162461bcd60e51b8152600401610208906107f1565b60405180910390fd5b6001600160a01b0381166102595760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964204164647265737360881b6044820152606401610208565b60408051602080820183526001600160a01b0384811680845233600081815260018552869020945185546001600160a01b0319169316929092179093558351908152908101919091527f11c201b691eb8c7ea60f2f80bf729f8f95dd52a5989e529861fb9a61f5272707910160405180910390a150565b3360009081526020819052604090205460ff166102ff5760405162461bcd60e51b8152600401610208906107f1565b6001600160a01b0381166103555760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610208565b336001600160a01b0382161461037d5760405162461bcd60e51b815260040161020890610828565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166103f55760405162461bcd60e51b8152600401610208906107f1565b505050565b3360009081526020819052604090205460ff166104295760405162461bcd60e51b8152600401610208906107f1565b5050565b6001600160a01b0381166104835760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610208565b6001600160a01b03811660009081526020819052604090205460ff16156104ec5760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e6400000000000000006044820152606401610208565b336001600160a01b038216146105145760405162461bcd60e51b815260040161020890610828565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b3360009081526020819052604090205460ff1661058f5760405162461bcd60e51b8152600401610208906107f1565b60408051602080820183526000808352338082526001835290849020925183546001600160a01b0319166001600160a01b039091161790925591519081527f6cf63d5ed5dff63c0a0b3c552f0022b543906e2225e4b12553b6baf477d8d0b5910160405180910390a1565b6001600160a01b0380831660009081526001602090815260408083208151928301909152549092168083529091906106365760009150506106ab565b80516040516370a0823160e01b81526001600160a01b03858116600483015260009216906370a0823190602401602060405180830381865afa158015610680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a49190610869565b1515925050505b92915050565b80356001600160a01b03811681146106c857600080fd5b919050565b600080600080608085870312156106e357600080fd5b6106ec856106b1565b93506106fa602086016106b1565b92506040850135915061070f606086016106b1565b905092959194509250565b60006020828403121561072c57600080fd5b610735826106b1565b9392505050565b60006020808352835180602085015260005b8181101561076a5785810183015185820160400152820161074e565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806000606084860312156107a057600080fd5b6107a9846106b1565b92506107b7602085016106b1565b9150604084013590509250925092565b600080604083850312156107da57600080fd5b6107e3836106b1565b946020939093013593505050565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b60006020828403121561087b57600080fd5b505191905056fea26469706673582212203e1bcf6e097849822be644e4c2019daffa5385e7b25d4c061e90f9d594eca9fc64736f6c63430008180033","sourceMap":"153:3733:53:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:220;;;;;;:::i;:::-;;:::i;:::-;;;765:14:165;;758:22;740:41;;728:2;713:18;3166:220:53;;;;;;;;1067:290;;;;;;:::i;:::-;;:::i;:::-;;5018:343:44;;;;;;:::i;:::-;;:::i;3783:101:53:-;3851:26;;;;;;;;;;;-1:-1:-1;;;3851:26:53;;;;3783:101;;;;3851:26;3783:101;:::i;1914:104::-;;;;;;:::i;:::-;;:::i;2429:87::-;;;;;;:::i;:::-;;:::i;4555:396:44:-;;;;;;:::i;:::-;;:::i;5429:139::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5532:29:44;5509:4;5532:29;;;;;;;;;;;;;;5429:139;1546:197:53;;;:::i;3455:118::-;;;;;;:::i;:::-;-1:-1:-1;3562:4:53;;3455:118;3637:91;3717:4;3637:91;;3166:220;3326:4;3349:30;3362:11;3375:3;3349:12;:30::i;:::-;3342:37;3166:220;-1:-1:-1;;;;;3166:220:53:o;1067:290::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1154:25:53;::::1;1146:53;;;::::0;-1:-1:-1;;;1146:53:53;;2689:2:165;1146:53:53::1;::::0;::::1;2671:21:165::0;2728:2;2708:18;;;2701:30;-1:-1:-1;;;2747:18:165;;;2740:45;2802:18;;1146:53:53::1;2487:339:165::0;1146:53:53::1;1238:60;::::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;1238:60:53;;::::1;::::0;;;1224:10:::1;-1:-1:-1::0;1210:25:53;;;:13:::1;:25:::0;;;;;:88;;;;-1:-1:-1;;;;;;1210:88:53::1;::::0;::::1;::::0;;;::::1;::::0;;;1314:36;;3043:34:165;;;3093:18;;;3086:43;;;;1314:36:53::1;::::0;2978:18:165;1314:36:53::1;;;;;;;1067:290:::0;:::o;5018:343:44:-;4426:10;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;-1:-1:-1;;;;;5120:25:44;::::1;5112:69;;;::::0;-1:-1:-1;;;5112:69:44;;3342:2:165;5112:69:44::1;::::0;::::1;3324:21:165::0;3381:2;3361:18;;;3354:30;3420:33;3400:18;;;3393:61;3471:18;;5112:69:44::1;3140:355:165::0;5112:69:44::1;5199:10;-1:-1:-1::0;;;;;5199:25:44;::::1;;5191:71;;;;-1:-1:-1::0;;;5191:71:44::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5272:29:44;::::1;5304:5;5272:29:::0;;;::::1;::::0;;;;;;;:37;;-1:-1:-1;;5272:37:44::1;::::0;;5324:30;::::1;::::0;5304:5;5324:30:::1;5018:343:::0;:::o;1914:104:53:-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;1914:104:53;;;:::o;2429:87::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;2429:87:53;;:::o;4555:396:44:-;-1:-1:-1;;;;;4636:25:44;;4628:69;;;;-1:-1:-1;;;4628:69:44;;3342:2:165;4628:69:44;;;3324:21:165;3381:2;3361:18;;;3354:30;3420:33;3400:18;;;3393:61;3471:18;;4628:69:44;3140:355:165;4628:69:44;-1:-1:-1;;;;;4716:29:44;;:16;:29;;;;;;;;;;;;;4715:30;4707:67;;;;-1:-1:-1;;;4707:67:44;;4104:2:165;4707:67:44;;;4086:21:165;4143:2;4123:18;;;4116:30;4182:26;4162:18;;;4155:54;4226:18;;4707:67:44;3902:348:165;4707:67:44;4792:10;-1:-1:-1;;;;;4792:25:44;;;4784:71;;;;-1:-1:-1;;;4784:71:44;;;;;;;:::i;:::-;-1:-1:-1;;;;;4865:29:44;;:16;:29;;;;;;;;;;;:36;;-1:-1:-1;;4865:36:44;4897:4;4865:36;;;4916:28;;;4865:16;4916:28;4555:396;:::o;1546:197:53:-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;1636:59:53::1;::::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;1636:59:53;;;1622:10:::1;1608:25:::0;;;:13:::1;:25:::0;;;;;;:87;;;;-1:-1:-1;;;;;;1608:87:53::1;-1:-1:-1::0;;;;;1608:87:53;;::::1;;::::0;;;1711:25;;4401:51:165;;;1711:25:53::1;::::0;4374:18:165;1711:25:53::1;;;;;;;1546:197::o:0;2725:379::-;-1:-1:-1;;;;;2862:26:53;;;2813:4;2862:26;;;:13;:26;;;;;;;;2829:59;;;;;;;;;;;;;;;2813:4;;2829:59;2907:54;;2956:5;2949:12;;;;;2907:54;3016:22;;3008:55;;-1:-1:-1;;;3008:55:53;;-1:-1:-1;;;;;4419:32:165;;;3008:55:53;;;4401:51:165;2972:20:53;;3008:41;;;;4374:18:165;;3008:55:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3081:16;;;-1:-1:-1;;;2725:379:53;;;;;:::o;14:173:165:-;82:20;;-1:-1:-1;;;;;131:31:165;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:403::-;278:6;286;294;302;355:3;343:9;334:7;330:23;326:33;323:53;;;372:1;369;362:12;323:53;395:29;414:9;395:29;:::i;:::-;385:39;;443:38;477:2;466:9;462:18;443:38;:::i;:::-;433:48;;528:2;517:9;513:18;500:32;490:42;;551:38;585:2;574:9;570:18;551:38;:::i;:::-;541:48;;192:403;;;;;;;:::o;792:186::-;851:6;904:2;892:9;883:7;879:23;875:32;872:52;;;920:1;917;910:12;872:52;943:29;962:9;943:29;:::i;:::-;933:39;792:186;-1:-1:-1;;;792:186:165:o;983:548::-;1095:4;1124:2;1153;1142:9;1135:21;1185:6;1179:13;1228:6;1223:2;1212:9;1208:18;1201:34;1253:1;1263:140;1277:6;1274:1;1271:13;1263:140;;;1372:14;;;1368:23;;1362:30;1338:17;;;1357:2;1334:26;1327:66;1292:10;;1263:140;;;1267:3;1452:1;1447:2;1438:6;1427:9;1423:22;1419:31;1412:42;1522:2;1515;1511:7;1506:2;1498:6;1494:15;1490:29;1479:9;1475:45;1471:54;1463:62;;;;983:548;;;;:::o;1536:328::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1721:29;1740:9;1721:29;:::i;:::-;1711:39;;1769:38;1803:2;1792:9;1788:18;1769:38;:::i;:::-;1759:48;;1854:2;1843:9;1839:18;1826:32;1816:42;;1536:328;;;;;:::o;1869:254::-;1937:6;1945;1998:2;1986:9;1977:7;1973:23;1969:32;1966:52;;;2014:1;2011;2004:12;1966:52;2037:29;2056:9;2037:29;:::i;:::-;2027:39;2113:2;2098:18;;;;2085:32;;-1:-1:-1;;;1869:254:165:o;2128:354::-;2330:2;2312:21;;;2369:2;2349:18;;;2342:30;2408:32;2403:2;2388:18;;2381:60;2473:2;2458:18;;2128:354::o;3500:397::-;3702:2;3684:21;;;3741:2;3721:18;;;3714:30;3780:34;3775:2;3760:18;;3753:62;-1:-1:-1;;;3846:2:165;3831:18;;3824:31;3887:3;3872:19;;3500:397::o;4463:184::-;4533:6;4586:2;4574:9;4565:7;4561:23;4557:32;4554:52;;;4602:1;4599;4592:12;4554:52;-1:-1:-1;4625:16:165;;4463:184;-1:-1:-1;4463:184:165:o","linkReferences":{}},"methodIdentifiers":{"bindCompliance(address)":"4a932544","canComplianceBind(address)":"bcc21053","isComplianceBound(address)":"4cf4d295","isPlugAndPlay()":"e6f5e807","moduleBurnAction(address,uint256)":"372491a2","moduleCheck(address,address,uint256,address)":"013b7ce4","moduleMintAction(address,uint256)":"f104a8c9","moduleTransferAction(address,address,uint256)":"2cb7e1ec","name()":"06fdde03","requireNFT(address)":"0302e195","unbindCompliance(address)":"0694a5fb","unrequireNFT()":"792881d8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_nftAddress\",\"type\":\"address\"}],\"name\":\"NFTRequired\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"NFTUnrequired\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"bindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"canComplianceBind\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"isComplianceBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPlugAndPlay\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleBurnAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"moduleCheck\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleMintAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleTransferAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_nftAddress\",\"type\":\"address\"}],\"name\":\"requireNFT\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"unbindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unrequireNFT\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"bindCompliance(address)\":{\"details\":\"See {IModule-bindCompliance}.\"},\"canComplianceBind(address)\":{\"details\":\"See {IModule-canComplianceBind}.\"},\"isComplianceBound(address)\":{\"details\":\"See {IModule-isComplianceBound}.\"},\"isPlugAndPlay()\":{\"details\":\"See {IModule-isPlugAndPlay}.\"},\"moduleBurnAction(address,uint256)\":{\"details\":\"See {IModule-moduleBurnAction}. no burn action required in this module\"},\"moduleCheck(address,address,uint256,address)\":{\"details\":\"See {IModule-moduleCheck}.\"},\"moduleMintAction(address,uint256)\":{\"details\":\"See {IModule-moduleMintAction}. no mint action required in this module\"},\"moduleTransferAction(address,address,uint256)\":{\"details\":\"See {IModule-moduleTransferAction}. no transfer action required in this module\"},\"name()\":{\"details\":\"See {IModule-name}.\"},\"requireNFT(address)\":{\"details\":\"add an required NFT for compliance.\",\"params\":{\"_nftAddress\":\"is the address of the nft Only the owner of the Compliance smart contract can call this function emits an `NFTRequired` event\"}},\"unbindCompliance(address)\":{\"details\":\"See {IModule-unbindCompliance}.\"},\"unrequireNFT()\":{\"details\":\"unregister an NFT for compliance. Only the owner of the Compliance smart contract can call this function emits an `NFTUnregister` event\"}},\"version\":1},\"userdoc\":{\"events\":{\"ComplianceBound(address)\":{\"notice\":\"this event is emitted when the compliance contract is bound to the module. the event is emitted by the bindCompliance function `_compliance` is the address of the compliance contract being bound\"},\"ComplianceUnbound(address)\":{\"notice\":\"this event is emitted when the compliance contract is unbound from the module. the event is emitted by the unbindCompliance function `_compliance` is the address of the compliance contract being unbound\"},\"NFTRequired(address,address)\":{\"notice\":\"this event is emitted when a user NFT is required for transfer `_compliance` is the compliance address. `_nftAddress` is the required NFT address\"},\"NFTUnrequired(address)\":{\"notice\":\"this event is emitted when a user NFT is removed from requirements `_compliance` is the compliance address.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/modular/modules/RequiresNFTModule.sol\":\"RequiresNFTModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/modules/AbstractModule.sol\":{\"keccak256\":\"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8\",\"dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu\"]},\"contracts/erc3643/compliance/modular/modules/IModule.sol\":{\"keccak256\":\"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c\",\"dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk\"]},\"contracts/erc3643/compliance/modular/modules/RequiresNFTModule.sol\":{\"keccak256\":\"0x392d59796fdcbdb6ff7f239eebed242603fe2791d80aaa5d40619d59ccef0ceb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f29f922a0c583012cdc65b352e142e7fb371ad191078fdda4b86b9ea648ab378\",\"dweb:/ipfs/QmXDCWPbCWy2dRENLJts18rUa8G6cYt6dpYgsxDJXdSjRB\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":false},{"internalType":"address","name":"_nftAddress","type":"address","indexed":false}],"type":"event","name":"NFTRequired","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":false}],"type":"event","name":"NFTUnrequired","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindCompliance"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"canComplianceBind","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPlugAndPlay","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleBurnAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"moduleCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleMintAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleTransferAction"},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[{"internalType":"address","name":"_nftAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"requireNFT"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindCompliance"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unrequireNFT"}],"devdoc":{"kind":"dev","methods":{"bindCompliance(address)":{"details":"See {IModule-bindCompliance}."},"canComplianceBind(address)":{"details":"See {IModule-canComplianceBind}."},"isComplianceBound(address)":{"details":"See {IModule-isComplianceBound}."},"isPlugAndPlay()":{"details":"See {IModule-isPlugAndPlay}."},"moduleBurnAction(address,uint256)":{"details":"See {IModule-moduleBurnAction}. no burn action required in this module"},"moduleCheck(address,address,uint256,address)":{"details":"See {IModule-moduleCheck}."},"moduleMintAction(address,uint256)":{"details":"See {IModule-moduleMintAction}. no mint action required in this module"},"moduleTransferAction(address,address,uint256)":{"details":"See {IModule-moduleTransferAction}. no transfer action required in this module"},"name()":{"details":"See {IModule-name}."},"requireNFT(address)":{"details":"add an required NFT for compliance.","params":{"_nftAddress":"is the address of the nft Only the owner of the Compliance smart contract can call this function emits an `NFTRequired` event"}},"unbindCompliance(address)":{"details":"See {IModule-unbindCompliance}."},"unrequireNFT()":{"details":"unregister an NFT for compliance. Only the owner of the Compliance smart contract can call this function emits an `NFTUnregister` event"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/modular/modules/RequiresNFTModule.sol":"RequiresNFTModule"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/modules/AbstractModule.sol":{"keccak256":"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3","urls":["bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8","dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/IModule.sol":{"keccak256":"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02","urls":["bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c","dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/RequiresNFTModule.sol":{"keccak256":"0x392d59796fdcbdb6ff7f239eebed242603fe2791d80aaa5d40619d59ccef0ceb","urls":["bzz-raw://f29f922a0c583012cdc65b352e142e7fb371ad191078fdda4b86b9ea648ab378","dweb:/ipfs/QmXDCWPbCWy2dRENLJts18rUa8G6cYt6dpYgsxDJXdSjRB"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":53} \ No newline at end of file diff --git a/out/Roles.sol/Roles.json b/out/Roles.sol/Roles.json new file mode 100644 index 0000000..054aeee --- /dev/null +++ b/out/Roles.sol/Roles.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220835a8017c11c78866bfe39d4d482953e536ba3ec6eee4ef3bfcde47f6af1a6dd64736f6c63430008180033","sourceMap":"3926:872:89:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;3926:872:89;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220835a8017c11c78866bfe39d4d482953e536ba3ec6eee4ef3bfcde47f6af1a6dd64736f6c63430008180033","sourceMap":"3926:872:89:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing addresses assigned to a Role.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Roles\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/roles/Roles.sol\":\"Roles\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/roles/Roles.sol":"Roles"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"}},"version":1},"id":89} \ No newline at end of file diff --git a/out/SafeHTS.sol/SafeHTS.json b/out/SafeHTS.sol/SafeHTS.json new file mode 100644 index 0000000..9c7b7ae --- /dev/null +++ b/out/SafeHTS.sol/SafeHTS.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220551bb4a1b6c5f534b52b1847949149f59c9143b577991ea678bae5e722b36f6e64736f6c63430008180033","sourceMap":"179:26008:12:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;179:26008:12;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220551bb4a1b6c5f534b52b1847949149f59c9143b577991ea678bae5e722b36f6e64736f6c63430008180033","sourceMap":"179:26008:12:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/safe-HTS/SafeHTS.sol\":\"SafeHTS\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/safe-HTS/HederaResponseCodes.sol\":{\"keccak256\":\"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca\",\"dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G\"]},\"contracts/common/safe-HTS/IHederaTokenService.sol\":{\"keccak256\":\"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786\",\"dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W\"]},\"contracts/common/safe-HTS/SafeHTS.sol\":{\"keccak256\":\"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe\",\"dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/common/safe-HTS/SafeHTS.sol":"SafeHTS"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/safe-HTS/HederaResponseCodes.sol":{"keccak256":"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324","urls":["bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca","dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G"],"license":"Apache-2.0"},"contracts/common/safe-HTS/IHederaTokenService.sol":{"keccak256":"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735","urls":["bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786","dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W"],"license":"Apache-2.0"},"contracts/common/safe-HTS/SafeHTS.sol":{"keccak256":"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10","urls":["bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe","dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7"],"license":"Apache-2.0"}},"version":1},"id":12} \ No newline at end of file diff --git a/out/SafeTransferLib.sol/SafeTransferLib.json b/out/SafeTransferLib.sol/SafeTransferLib.json new file mode 100644 index 0000000..02ddd07 --- /dev/null +++ b/out/SafeTransferLib.sol/SafeTransferLib.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d58071cf7097e0956c955431d543e8d77be44c55515286e1acb2a2ccc502519c64736f6c63430008180033","sourceMap":"579:5270:110:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;579:5270:110;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d58071cf7097e0956c955431d543e8d77be44c55515286e1acb2a2ccc502519c64736f6c63430008180033","sourceMap":"579:5270:110:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol)\",\"details\":\"Use with caution! Some functions in this library knowingly create dirty bits at the destination of the free memory pointer.Note that none of the functions in this library check that a token has code at all! That responsibility is delegated to the caller.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Safe ETH and ERC20 transfer library that gracefully handles missing return values.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc4626/libraries/SafeTransferLib.sol\":\"SafeTransferLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc4626/ERC20.sol\":{\"keccak256\":\"0x33fe85bf9c3a26cc53c74f425a248df6664a2c85c7b872ce9567a8b785619879\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://b42e32a0a88263829f727e8cc5efae644c89db3ad3900daad3918aa75bea756f\",\"dweb:/ipfs/QmQC7KSYBVuNnojtMrJ99rcSsfBhBAK5wSjuTVjANxLvCB\"]},\"contracts/erc4626/libraries/SafeTransferLib.sol\":{\"keccak256\":\"0x97357325a0f635274a84341d6c3f8b7a9003b2aa38976e2f5fcbb7cd9a31d5de\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://275077abf697e5a2ad66e9181e83013f3fdd54dc4d5d752fd6e4c3c878125c6b\",\"dweb:/ipfs/QmdRTBWEUrYGdcbCzA12HYWkJNXrd8XgQgGUtUws2f2HnC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc4626/libraries/SafeTransferLib.sol":"SafeTransferLib"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc4626/ERC20.sol":{"keccak256":"0x33fe85bf9c3a26cc53c74f425a248df6664a2c85c7b872ce9567a8b785619879","urls":["bzz-raw://b42e32a0a88263829f727e8cc5efae644c89db3ad3900daad3918aa75bea756f","dweb:/ipfs/QmQC7KSYBVuNnojtMrJ99rcSsfBhBAK5wSjuTVjANxLvCB"],"license":"AGPL-3.0-only"},"contracts/erc4626/libraries/SafeTransferLib.sol":{"keccak256":"0x97357325a0f635274a84341d6c3f8b7a9003b2aa38976e2f5fcbb7cd9a31d5de","urls":["bzz-raw://275077abf697e5a2ad66e9181e83013f3fdd54dc4d5d752fd6e4c3c878125c6b","dweb:/ipfs/QmdRTBWEUrYGdcbCzA12HYWkJNXrd8XgQgGUtUws2f2HnC"],"license":"AGPL-3.0-only"}},"version":1},"id":110} \ No newline at end of file diff --git a/out/Script.sol/Script.json b/out/Script.sol/Script.json new file mode 100644 index 0000000..d3697fe --- /dev/null +++ b/out/Script.sol/Script.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_SCRIPT","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_SCRIPT()":"f8ccbf47"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"IS_SCRIPT\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Script.sol\":\"Script\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/Script.sol\":{\"keccak256\":\"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c\",\"dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x1e2c73d51d6b0d1101f3a4cf0e6def9818a891d6aa8d306f2b127943a69dca2d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ab436d74b405f890e2634c6077df15cc196b4032ec1bdabaaf021ef209e68db\",\"dweb:/ipfs/Qmbb1Qgtdn6S4aqrnpg3y9TDX7erFFcRir9GN62Y7QazaY\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8\",\"dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194\",\"dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87\",\"dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"IS_SCRIPT","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Script.sol":"Script"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/Script.sol":{"keccak256":"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2","urls":["bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c","dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x1e2c73d51d6b0d1101f3a4cf0e6def9818a891d6aa8d306f2b127943a69dca2d","urls":["bzz-raw://0ab436d74b405f890e2634c6077df15cc196b4032ec1bdabaaf021ef209e68db","dweb:/ipfs/Qmbb1Qgtdn6S4aqrnpg3y9TDX7erFFcRir9GN62Y7QazaY"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4","urls":["bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8","dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a","urls":["bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194","dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9","urls":["bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87","dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"}},"version":1},"id":1} \ No newline at end of file diff --git a/out/SignedMath.sol/SignedMath.json b/out/SignedMath.sol/SignedMath.json new file mode 100644 index 0000000..41530e3 --- /dev/null +++ b/out/SignedMath.sol/SignedMath.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cc89ebabe6439ffdbb010aebacdf3661ee9d001f744dfcac38c9c690c85bc1fb64736f6c63430008180033","sourceMap":"216:1047:161:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;216:1047:161;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cc89ebabe6439ffdbb010aebacdf3661ee9d001f744dfcac38c9c690c85bc1fb64736f6c63430008180033","sourceMap":"216:1047:161:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":"SignedMath"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"}},"version":1},"id":161} \ No newline at end of file diff --git a/out/StdAssertions.sol/StdAssertions.json b/out/StdAssertions.sol/StdAssertions.json new file mode 100644 index 0000000..c4ba2a0 --- /dev/null +++ b/out/StdAssertions.sol/StdAssertions.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"failed()":"ba414fa6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdAssertions.sol\":\"StdAssertions\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe\",\"dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8\",\"dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.10+commit.fc410830"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdAssertions.sol":"StdAssertions"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270","urls":["bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe","dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4","urls":["bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8","dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy"],"license":"MIT OR Apache-2.0"}},"version":1},"id":1} \ No newline at end of file diff --git a/out/StdChains.sol/StdChains.json b/out/StdChains.sol/StdChains.json new file mode 100644 index 0000000..074f773 --- /dev/null +++ b/out/StdChains.sol/StdChains.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"StdChains provides information about EVM compatible chains that can be used in scripts/tests. For each chain, the chain's name, chain ID, and a default RPC URL are provided. Chains are identified by their alias, which is the same as the alias in the `[rpc_endpoints]` section of the `foundry.toml` file. For best UX, ensure the alias in the `foundry.toml` file match the alias used in this contract, which can be found as the first argument to the `setChainWithDefaultRpcUrl` call in the `initializeStdChains` function. There are two main ways to use this contract: 1. Set a chain with `setChain(string memory chainAlias, ChainData memory chain)` or `setChain(string memory chainAlias, Chain memory chain)` 2. Get a chain with `getChain(string memory chainAlias)` or `getChain(uint256 chainId)`. The first time either of those are used, chains are initialized with the default set of RPC URLs. This is done in `initializeStdChains`, which uses `setChainWithDefaultRpcUrl`. Defaults are recorded in `defaultRpcUrls`. The `setChain` function is straightforward, and it simply saves off the given chain data. The `getChain` methods use `getChainWithUpdatedRpcUrl` to return a chain. For example, let's say we want to retrieve the RPC URL for `mainnet`: - If you have specified data with `setChain`, it will return that. - If you have configured a mainnet RPC URL in `foundry.toml`, it will return the URL, provided it is valid (e.g. a URL is specified, or an environment variable is given and exists). - If neither of the above conditions is met, the default data is returned. Summarizing the above, the prioritization hierarchy is `setChain` -> `foundry.toml` -> environment variable -> defaults.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdChains.sol\":\"StdChains\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x1e2c73d51d6b0d1101f3a4cf0e6def9818a891d6aa8d306f2b127943a69dca2d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ab436d74b405f890e2634c6077df15cc196b4032ec1bdabaaf021ef209e68db\",\"dweb:/ipfs/Qmbb1Qgtdn6S4aqrnpg3y9TDX7erFFcRir9GN62Y7QazaY\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8\",\"dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdChains.sol":"StdChains"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/StdChains.sol":{"keccak256":"0x1e2c73d51d6b0d1101f3a4cf0e6def9818a891d6aa8d306f2b127943a69dca2d","urls":["bzz-raw://0ab436d74b405f890e2634c6077df15cc196b4032ec1bdabaaf021ef209e68db","dweb:/ipfs/Qmbb1Qgtdn6S4aqrnpg3y9TDX7erFFcRir9GN62Y7QazaY"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4","urls":["bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8","dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy"],"license":"MIT OR Apache-2.0"}},"version":1},"id":2} \ No newline at end of file diff --git a/out/StdCheats.sol/StdCheats.json b/out/StdCheats.sol/StdCheats.json new file mode 100644 index 0000000..8f7a402 --- /dev/null +++ b/out/StdCheats.sol/StdCheats.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdCheats.sol\":\"StdCheats\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8\",\"dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194\",\"dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdCheats.sol":"StdCheats"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4","urls":["bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8","dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a","urls":["bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194","dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"}},"version":1},"id":3} \ No newline at end of file diff --git a/out/StdCheats.sol/StdCheatsSafe.json b/out/StdCheats.sol/StdCheatsSafe.json new file mode 100644 index 0000000..baf46ae --- /dev/null +++ b/out/StdCheats.sol/StdCheatsSafe.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdCheats.sol\":\"StdCheatsSafe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8\",\"dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194\",\"dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdCheats.sol":"StdCheatsSafe"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4","urls":["bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8","dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a","urls":["bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194","dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"}},"version":1},"id":3} \ No newline at end of file diff --git a/out/StdError.sol/stdError.json b/out/StdError.sol/stdError.json new file mode 100644 index 0000000..1ea97ca --- /dev/null +++ b/out/StdError.sol/stdError.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"arithmeticError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"assertionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"divisionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodeStorageError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"enumConversionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"indexOOBError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"memOverflowError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"popError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"zeroVarError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"}],"bytecode":{"object":"0x61025661003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061009d5760003560e01c8063986c5f6811610070578063986c5f68146100d8578063b22dc54d146100e0578063b67689da146100e8578063d160e4de146100f0578063fa784a44146100f857600080fd5b806305ee8612146100a257806310332977146100c05780631de45560146100c85780638995290f146100d0575b600080fd5b6100aa610100565b6040516100b791906101cb565b60405180910390f35b6100aa61013b565b6100aa61014d565b6100aa61015f565b6100aa610171565b6100aa610183565b6100aa610195565b6100aa6101a7565b6100aa6101b9565b604051603260248201526044015b60408051601f198184030181529190526020810180516001600160e01b0316634e487b7160e01b17905281565b6040516001602482015260440161010e565b6040516021602482015260440161010e565b6040516011602482015260440161010e565b6040516041602482015260440161010e565b6040516031602482015260440161010e565b6040516051602482015260440161010e565b6040516022602482015260440161010e565b6040516012602482015260440161010e565b600060208083528351808285015260005b818110156101f8578581018301518582016040015282016101dc565b8181111561020a576000604083870101525b50601f01601f191692909201604001939250505056fea26469706673582212207a5b47954e83fd6b08a75ce68bb01042126e06a10865ebfa9350695fb376d20964736f6c634300080a0033","sourceMap":"162:850:4:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;162:850:4;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040526004361061009d5760003560e01c8063986c5f6811610070578063986c5f68146100d8578063b22dc54d146100e0578063b67689da146100e8578063d160e4de146100f0578063fa784a44146100f857600080fd5b806305ee8612146100a257806310332977146100c05780631de45560146100c85780638995290f146100d0575b600080fd5b6100aa610100565b6040516100b791906101cb565b60405180910390f35b6100aa61013b565b6100aa61014d565b6100aa61015f565b6100aa610171565b6100aa610183565b6100aa610195565b6100aa6101a7565b6100aa6101b9565b604051603260248201526044015b60408051601f198184030181529190526020810180516001600160e01b0316634e487b7160e01b17905281565b6040516001602482015260440161010e565b6040516021602482015260440161010e565b6040516011602482015260440161010e565b6040516041602482015260440161010e565b6040516031602482015260440161010e565b6040516051602482015260440161010e565b6040516022602482015260440161010e565b6040516012602482015260440161010e565b600060208083528351808285015260005b818110156101f8578581018301518582016040015282016101dc565b8181111561020a576000604083870101525b50601f01601f191692909201604001939250505056fea26469706673582212207a5b47954e83fd6b08a75ce68bb01042126e06a10865ebfa9350695fb376d20964736f6c634300080a0033","sourceMap":"162:850:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;185:86;;;:::i;461:91::-;;;:::i;277:87::-;;;:::i;831:88::-;;;:::i;654:80::-;;;:::i;925:84::-;;;:::i;558:90::-;;;:::i;370:85::-;;;:::i;740:::-;778:47;;820:4;778:47;;;775:36:24;748:18;;778:47:4;;;;-1:-1:-1;;778:47:4;;;;;;;;;;;;;;-1:-1:-1;;;;;778:47:4;-1:-1:-1;;;778:47:4;;;740:85;:::o;185:86::-;224:47;;266:4;224:47;;;775:36:24;748:18;;224:47:4;622:195:24;461:91:4;505:47;;547:4;505:47;;;775:36:24;748:18;;505:47:4;622:195:24;277:87:4;317:47;;359:4;317:47;;;775:36:24;748:18;;317:47:4;622:195:24;831:88:4;872:47;;914:4;872:47;;;775:36:24;748:18;;872:47:4;622:195:24;654:80:4;687:47;;729:4;687:47;;;775:36:24;748:18;;687:47:4;622:195:24;925:84:4;962:47;;1004:4;962:47;;;775:36:24;748:18;;962:47:4;622:195:24;558:90:4;601:47;;643:4;601:47;;;775:36:24;748:18;;601:47:4;622:195:24;370:85:4;408:47;;450:4;408:47;;;775:36:24;748:18;;408:47:4;622:195:24;14:603;132:4;161:2;190;179:9;172:21;222:6;216:13;265:6;260:2;249:9;245:18;238:34;290:1;300:140;314:6;311:1;308:13;300:140;;;409:14;;;405:23;;399:30;375:17;;;394:2;371:26;364:66;329:10;;300:140;;;458:6;455:1;452:13;449:91;;;528:1;523:2;514:6;503:9;499:22;495:31;488:42;449:91;-1:-1:-1;601:2:24;580:15;-1:-1:-1;;576:29:24;561:45;;;;608:2;557:54;;14:603;-1:-1:-1;;;14:603:24:o","linkReferences":{}},"methodIdentifiers":{"arithmeticError()":"8995290f","assertionError()":"10332977","divisionError()":"fa784a44","encodeStorageError()":"d160e4de","enumConversionError()":"1de45560","indexOOBError()":"05ee8612","memOverflowError()":"986c5f68","popError()":"b22dc54d","zeroVarError()":"b67689da"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"arithmeticError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assertionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"divisionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodeStorageError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enumConversionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexOOBError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memOverflowError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"popError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zeroVarError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdError.sol\":\"stdError\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.10+commit.fc410830"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"arithmeticError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"assertionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"divisionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodeStorageError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"enumConversionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"indexOOBError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memOverflowError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"popError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zeroVarError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdError.sol":"stdError"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"}},"version":1},"id":4} \ No newline at end of file diff --git a/out/StdInvariant.sol/StdInvariant.json b/out/StdInvariant.sol/StdInvariant.json new file mode 100644 index 0000000..f213f3f --- /dev/null +++ b/out/StdInvariant.sol/StdInvariant.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdInvariant.sol\":\"StdInvariant\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391\",\"dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.10+commit.fc410830"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdInvariant.sol":"StdInvariant"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d","urls":["bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391","dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5"],"license":"MIT"}},"version":1},"id":5} \ No newline at end of file diff --git a/out/StdJson.sol/stdJson.json b/out/StdJson.sol/stdJson.json new file mode 100644 index 0000000..51312f4 --- /dev/null +++ b/out/StdJson.sol/stdJson.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e7dc0bf58d244703795bd1c6fc2fc5c9457d49c589f3d46117379ec58a663abe64736f6c63430008180033","sourceMap":"610:5612:4:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;610:5612:4;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e7dc0bf58d244703795bd1c6fc2fc5c9457d49c589f3d46117379ec58a663abe64736f6c63430008180033","sourceMap":"610:5612:4:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdJson.sol\":\"stdJson\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8\",\"dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdJson.sol":"stdJson"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4","urls":["bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8","dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy"],"license":"MIT OR Apache-2.0"}},"version":1},"id":4} \ No newline at end of file diff --git a/out/StdMath.sol/stdMath.json b/out/StdMath.sol/stdMath.json new file mode 100644 index 0000000..97f090c --- /dev/null +++ b/out/StdMath.sol/stdMath.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fb033281dafdba24f9e068c5a29b77657b5d6e0838b5103b57246802c1e34f8c64736f6c63430008180033","sourceMap":"65:1294:5:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;65:1294:5;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fb033281dafdba24f9e068c5a29b77657b5d6e0838b5103b57246802c1e34f8c64736f6c63430008180033","sourceMap":"65:1294:5:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdMath.sol\":\"stdMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdMath.sol":"stdMath"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"}},"version":1},"id":5} \ No newline at end of file diff --git a/out/StdStorage.sol/stdStorage.json b/out/StdStorage.sol/stdStorage.json new file mode 100644 index 0000000..b140d31 --- /dev/null +++ b/out/StdStorage.sol/stdStorage.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b04c5c9d42cee566e848e2c9cee640944740acc0b5b632053858d2f6e8b2cb8364736f6c63430008180033","sourceMap":"12760:5081:6:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;12760:5081:6;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b04c5c9d42cee566e848e2c9cee640944740acc0b5b632053858d2f6e8b2cb8364736f6c63430008180033","sourceMap":"12760:5081:6:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdStorage.sol\":\"stdStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8\",\"dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdStorage.sol":"stdStorage"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4","urls":["bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8","dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy"],"license":"MIT OR Apache-2.0"}},"version":1},"id":6} \ No newline at end of file diff --git a/out/StdStorage.sol/stdStorageSafe.json b/out/StdStorage.sol/stdStorageSafe.json new file mode 100644 index 0000000..ed8a34a --- /dev/null +++ b/out/StdStorage.sol/stdStorageSafe.json @@ -0,0 +1 @@ +{"abi":[{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220eb0726e72b07e313bc23cf963999a7cacb4aff0cd611d538c9e4c54c34b848b164736f6c63430008180033","sourceMap":"450:12308:6:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;450:12308:6;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220eb0726e72b07e313bc23cf963999a7cacb4aff0cd611d538c9e4c54c34b848b164736f6c63430008180033","sourceMap":"450:12308:6:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdStorage.sol\":\"stdStorageSafe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8\",\"dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdStorage.sol":"stdStorageSafe"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4","urls":["bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8","dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy"],"license":"MIT OR Apache-2.0"}},"version":1},"id":6} \ No newline at end of file diff --git a/out/StdStyle.sol/StdStyle.json b/out/StdStyle.sol/StdStyle.json new file mode 100644 index 0000000..b580cd6 --- /dev/null +++ b/out/StdStyle.sol/StdStyle.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ad8812650afb1666b6416f4e07e80cd57b963cafbbae8114d11fe2fdfcae87c464736f6c63430008180033","sourceMap":"100:10361:7:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;100:10361:7;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ad8812650afb1666b6416f4e07e80cd57b963cafbbae8114d11fe2fdfcae87c464736f6c63430008180033","sourceMap":"100:10361:7:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdStyle.sol\":\"StdStyle\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8\",\"dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdStyle.sol":"StdStyle"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4","urls":["bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8","dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy"],"license":"MIT OR Apache-2.0"}},"version":1},"id":7} \ No newline at end of file diff --git a/out/StdToml.sol/stdToml.json b/out/StdToml.sol/stdToml.json new file mode 100644 index 0000000..ead6249 --- /dev/null +++ b/out/StdToml.sol/stdToml.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e697028b9cd8e67e2694a2556b2e56e7165ac7731680a53c80bb44f19a63480464736f6c634300080a0033","sourceMap":"610:5612:10:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;610:5612:10;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e697028b9cd8e67e2694a2556b2e56e7165ac7731680a53c80bb44f19a63480464736f6c634300080a0033","sourceMap":"610:5612:10:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdToml.sol\":\"stdToml\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8\",\"dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.10+commit.fc410830"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdToml.sol":"stdToml"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4","urls":["bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8","dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy"],"license":"MIT OR Apache-2.0"}},"version":1},"id":10} \ No newline at end of file diff --git a/out/StdUtils.sol/StdUtils.json b/out/StdUtils.sol/StdUtils.json new file mode 100644 index 0000000..9c97f8b --- /dev/null +++ b/out/StdUtils.sol/StdUtils.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdUtils.sol\":\"StdUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8\",\"dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87\",\"dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdUtils.sol":"StdUtils"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4","urls":["bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8","dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9","urls":["bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87","dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv"],"license":"MIT"}},"version":1},"id":8} \ No newline at end of file diff --git a/out/Storage.sol/Storage.json b/out/Storage.sol/Storage.json new file mode 100644 index 0000000..2ff9f9e --- /dev/null +++ b/out/Storage.sol/Storage.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60806040526006805461ffff19169055348015601a57600080fd5b50603f8060286000396000f3fe6080604052600080fdfea264697066735822122019d6b384527b16c0c329d2ae8f7b322384de98341a59b06289f43d178be6f6a064736f6c63430008180033","sourceMap":"85:1019:126:-:0;;;757:34;;;-1:-1:-1;;856:34:126;;;85:1019;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea264697066735822122019d6b384527b16c0c329d2ae8f7b322384de98341a59b06289f43d178be6f6a064736f6c63430008180033","sourceMap":"85:1019:126:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onchainid/storage/Storage.sol\":\"Storage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/onchainid/storage/Storage.sol\":{\"keccak256\":\"0x4d625d363da1a06accde20e3cddc4e7846c5010faaa846e29adfe3c3301fe92c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e08cb6e44df21c75e0796a11531de13843b13168554bb26e3904ce5120f61582\",\"dweb:/ipfs/Qmd2sp9x86Q9iLUSvZkx3Hy4ProDfRNgn2qf9irZKeTDHC\"]},\"contracts/onchainid/storage/Structs.sol\":{\"keccak256\":\"0x42270db48adff6628fac14178eece647909bd6890bcfba1742fdff8f2d371a57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c04a62167213c8960fdb8a4d5ad12730d9a00cd4d4062b45b61249e3f15e4dc8\",\"dweb:/ipfs/QmQGoMtYcJqQZUjQ3gYgzEwMDLSScXBPphTHh4T6jHCJdV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onchainid/storage/Storage.sol":"Storage"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onchainid/storage/Storage.sol":{"keccak256":"0x4d625d363da1a06accde20e3cddc4e7846c5010faaa846e29adfe3c3301fe92c","urls":["bzz-raw://e08cb6e44df21c75e0796a11531de13843b13168554bb26e3904ce5120f61582","dweb:/ipfs/Qmd2sp9x86Q9iLUSvZkx3Hy4ProDfRNgn2qf9irZKeTDHC"],"license":"GPL-3.0"},"contracts/onchainid/storage/Structs.sol":{"keccak256":"0x42270db48adff6628fac14178eece647909bd6890bcfba1742fdff8f2d371a57","urls":["bzz-raw://c04a62167213c8960fdb8a4d5ad12730d9a00cd4d4062b45b61249e3f15e4dc8","dweb:/ipfs/QmQGoMtYcJqQZUjQ3gYgzEwMDLSScXBPphTHh4T6jHCJdV"],"license":"GPL-3.0"}},"version":1},"id":126} \ No newline at end of file diff --git a/out/Strings.sol/Strings.json b/out/Strings.sol/Strings.json new file mode 100644 index 0000000..bdfbb81 --- /dev/null +++ b/out/Strings.sol/Strings.json @@ -0,0 +1 @@ +{"abi":[{"type":"error","name":"StringsInsufficientHexLength","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d5e082704563da5911dfea13839e5c099746e0bfb63b661ba8739114897a130264736f6c63430008180033","sourceMap":"251:2847:155:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;251:2847:155;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d5e082704563da5911dfea13839e5c099746e0bfb63b661ba8739114897a130264736f6c63430008180033","sourceMap":"251:2847:155:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"StringsInsufficientHexLength"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/Strings.sol":"Strings"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"}},"version":1},"id":155} \ No newline at end of file diff --git a/out/Structs.sol/Structs.json b/out/Structs.sol/Structs.json new file mode 100644 index 0000000..a54a0ed --- /dev/null +++ b/out/Structs.sol/Structs.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220528ddbeb43336797bd95a57e6f5f9da4075870e9b3651e7935c9ae9f59545f3364736f6c63430008180033","sourceMap":"61:3192:127:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea2646970667358221220528ddbeb43336797bd95a57e6f5f9da4075870e9b3651e7935c9ae9f59545f3364736f6c63430008180033","sourceMap":"61:3192:127:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onchainid/storage/Structs.sol\":\"Structs\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/onchainid/storage/Structs.sol\":{\"keccak256\":\"0x42270db48adff6628fac14178eece647909bd6890bcfba1742fdff8f2d371a57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c04a62167213c8960fdb8a4d5ad12730d9a00cd4d4062b45b61249e3f15e4dc8\",\"dweb:/ipfs/QmQGoMtYcJqQZUjQ3gYgzEwMDLSScXBPphTHh4T6jHCJdV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onchainid/storage/Structs.sol":"Structs"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onchainid/storage/Structs.sol":{"keccak256":"0x42270db48adff6628fac14178eece647909bd6890bcfba1742fdff8f2d371a57","urls":["bzz-raw://c04a62167213c8960fdb8a4d5ad12730d9a00cd4d4062b45b61249e3f15e4dc8","dweb:/ipfs/QmQGoMtYcJqQZUjQ3gYgzEwMDLSScXBPphTHh4T6jHCJdV"],"license":"GPL-3.0"}},"version":1},"id":127} \ No newline at end of file diff --git a/out/SupplyLimit.sol/SupplyLimit.json b/out/SupplyLimit.sol/SupplyLimit.json new file mode 100644 index 0000000..20bedab --- /dev/null +++ b/out/SupplyLimit.sol/SupplyLimit.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"complianceCheckOnSupplyLimit","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenBound","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSupplyLimit","inputs":[{"name":"_limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supplyLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokenBound","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IToken"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SupplyLimitSet","inputs":[{"name":"_limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TokenAgentAdded","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentRemoved","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","addTokenAgent(address)":"ff3e6954","bindToken(address)":"3ff5aa02","canTransfer(address,address,uint256)":"e46638e6","complianceCheckOnSupplyLimit(address,address,uint256)":"737ce08e","created(address,uint256)":"5f8dead3","destroyed(address,uint256)":"8d2ea772","isAgent(address)":"1ffbb064","isTokenAgent(address)":"346531fa","isTokenBound(address)":"993e8b95","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","removeTokenAgent(address)":"cdde2932","renounceOwnership()":"715018a6","setSupplyLimit(uint256)":"361fab25","supplyLimit()":"19d1997a","tokenBound()":"93e62f07","transferOwnership(address)":"f2fde38b","transferred(address,address,uint256)":"8baf29b4","unbindToken(address)":"40db3b50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"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\":\"uint256\",\"name\":\"_limit\",\"type\":\"uint256\"}],\"name\":\"SupplyLimitSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"addTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"complianceCheckOnSupplyLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"isTokenAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"removeTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_limit\",\"type\":\"uint256\"}],\"name\":\"setSupplyLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplyLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenBound\",\"outputs\":[{\"internalType\":\"contract IToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addTokenAgent(address)\":{\"details\":\"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces\"},\"bindToken(address)\":{\"details\":\"See {ICompliance-bindToken}.\"},\"canTransfer(address,address,uint256)\":{\"details\":\"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"complianceCheckOnSupplyLimit(address,address,uint256)\":{\"details\":\"check on the compliance status of a transaction. This check always returns true, real check is done at the creation action level\"},\"created(address,uint256)\":{\"details\":\"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_to\":\"The address of the receiver\"}},\"destroyed(address,uint256)\":{\"details\":\"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the receiver\"}},\"isTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"isTokenBound(address)\":{\"details\":\"See {ICompliance-isTokenBound}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"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.\"},\"setSupplyLimit(uint256)\":{\"details\":\"sets supply limit. Supply limit has to be smaller or equal to the actual supply.\",\"params\":{\"_limit\":\"max amount of tokens to be created Only the owner of the Compliance smart contract can call this function emits an `SupplyLimitSet` event\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferred(address,address,uint256)\":{\"details\":\"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract\",\"params\":{\"_amount\":\"The amount of tokens involved in the transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"}},\"unbindToken(address)\":{\"details\":\"See {ICompliance-unbindToken}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"SupplyLimitSet(uint256)\":{\"notice\":\"this event is emitted when the supply limit has been set. `_limit` is the max amount of tokens in circulation.\"},\"TokenAgentAdded(address)\":{\"notice\":\"this event is emitted when the Agent has been added on the allowedList of this Compliance. the event is emitted by the Compliance constructor and by the addTokenAgent function `_agentAddress` is the address of the Agent to add\"},\"TokenAgentRemoved(address)\":{\"notice\":\"this event is emitted when the Agent has been removed from the agent list of this Compliance. the event is emitted by the Compliance constructor and by the removeTokenAgent function `_agentAddress` is the address of the Agent to remove\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"}},\"kind\":\"user\",\"methods\":{\"supplyLimit()\":{\"notice\":\"supply limit variable\"},\"tokenBound()\":{\"notice\":\"Mapping of tokens linked to the compliance contract\"}},\"notice\":\"this feature allows to put a supply limit on the token If an agent tries to mint more tokens than the maximum threshold, the minting will fail\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/legacy/features/SupplyLimit.sol\":\"SupplyLimit\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/legacy/BasicCompliance.sol\":{\"keccak256\":\"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d\",\"dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4\"]},\"contracts/erc3643/compliance/legacy/ICompliance.sol\":{\"keccak256\":\"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e\",\"dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV\"]},\"contracts/erc3643/compliance/legacy/features/SupplyLimit.sol\":{\"keccak256\":\"0x117b76e0fa4545ea5e389d1bb1b565aaeb5a36ebaf70c4a2d57ddbda7f992ab7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42a2a4982bf93314ba8193b56d05972b54416975ee4fda1d0158c4a4ee88429b\",\"dweb:/ipfs/QmR4yABkD2yda71JhiQ7iTAS61pYj7YeqY8oMBfoGV6ytf\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_limit","type":"uint256","indexed":false}],"type":"event","name":"SupplyLimitSet","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenAgent"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"complianceCheckOnSupplyLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"_limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setSupplyLimit"},{"inputs":[],"stateMutability":"view","type":"function","name":"supplyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenBound","outputs":[{"internalType":"contract IToken","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"}],"devdoc":{"kind":"dev","methods":{"addTokenAgent(address)":{"details":"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces"},"bindToken(address)":{"details":"See {ICompliance-bindToken}."},"canTransfer(address,address,uint256)":{"details":"checks that the transfer is compliant. default compliance always returns true READ ONLY FUNCTION, this function cannot be used to increment counters, emit events, ...","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"complianceCheckOnSupplyLimit(address,address,uint256)":{"details":"check on the compliance status of a transaction. This check always returns true, real check is done at the creation action level"},"created(address,uint256)":{"details":"function called whenever tokens are created on a wallet this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_to":"The address of the receiver"}},"destroyed(address,uint256)":{"details":"function called whenever tokens are destroyed this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the receiver"}},"isTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"isTokenBound(address)":{"details":"See {ICompliance-isTokenBound}."},"owner()":{"details":"Returns the address of the current owner."},"removeTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"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."},"setSupplyLimit(uint256)":{"details":"sets supply limit. Supply limit has to be smaller or equal to the actual supply.","params":{"_limit":"max amount of tokens to be created Only the owner of the Compliance smart contract can call this function emits an `SupplyLimitSet` event"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"transferred(address,address,uint256)":{"details":"function called whenever tokens are transferred from one wallet to another this function can update state variables in the compliance contract these state variables being used by `canTransfer` to decide if a transfer is compliant or not depending on the values stored in these state variables and on the parameters of the compliance smart contract","params":{"_amount":"The amount of tokens involved in the transfer","_from":"The address of the sender","_to":"The address of the receiver"}},"unbindToken(address)":{"details":"See {ICompliance-unbindToken}."}},"version":1},"userdoc":{"kind":"user","methods":{"supplyLimit()":{"notice":"supply limit variable"},"tokenBound()":{"notice":"Mapping of tokens linked to the compliance contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/legacy/features/SupplyLimit.sol":"SupplyLimit"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/legacy/BasicCompliance.sol":{"keccak256":"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305","urls":["bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d","dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/ICompliance.sol":{"keccak256":"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7","urls":["bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e","dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/features/SupplyLimit.sol":{"keccak256":"0x117b76e0fa4545ea5e389d1bb1b565aaeb5a36ebaf70c4a2d57ddbda7f992ab7","urls":["bzz-raw://42a2a4982bf93314ba8193b56d05972b54416975ee4fda1d0158c4a4ee88429b","dweb:/ipfs/QmR4yABkD2yda71JhiQ7iTAS61pYj7YeqY8oMBfoGV6ytf"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":33} \ No newline at end of file diff --git a/out/SupplyLimitModule.sol/SupplyLimitModule.json b/out/SupplyLimitModule.sol/SupplyLimitModule.json new file mode 100644 index 0000000..b25598f --- /dev/null +++ b/out/SupplyLimitModule.sol/SupplyLimitModule.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"bindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canComplianceBind","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getSupplyLimit","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isComplianceBound","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPlugAndPlay","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"moduleBurnAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleCheck","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleMintAction","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleTransferAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"setSupplyLimit","inputs":[{"name":"_limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComplianceBound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ComplianceUnbound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SupplyLimitSet","inputs":[{"name":"_compliance","type":"address","indexed":false,"internalType":"address"},{"name":"_limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061089b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80634a932544116100715780634a932544146101625780634ae65b5c146101755780634cf4d295146101ac578063bcc21053146101d8578063e6f5e807146101ec578063f104a8c91461014f57600080fd5b8063013b7ce4146100b95780630694a5fb146100e157806306fdde03146100f65780632cb7e1ec14610129578063361fab251461013c578063372491a21461014f575b600080fd5b6100cc6100c7366004610644565b6101f3565b60405190151581526020015b60405180910390f35b6100f46100ef366004610697565b610316565b005b6040805180820182526011815270537570706c794c696d69744d6f64756c6560781b602082015290516100d891906106bb565b6100f461013736600461070a565b610415565b6100f461014a36600461074b565b610449565b6100f461015d366004610764565b6104c6565b6100f4610170366004610697565b6104f9565b61019e610183366004610697565b6001600160a01b031660009081526001602052604090205490565b6040519081526020016100d8565b6100cc6101ba366004610697565b6001600160a01b031660009081526020819052604090205460ff1690565b6100cc6101e6366004610697565b50600190565b60016100cc565b60006001600160a01b0385161580156102fd575060016000836001600160a01b03166001600160a01b031681526020019081526020016000205483836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa15801561026c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102909190610790565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f191906107ad565b6102fb91906107c6565b115b1561030a5750600061030e565b5060015b949350505050565b3360009081526020819052604090205460ff1661034e5760405162461bcd60e51b8152600401610345906107ed565b60405180910390fd5b6001600160a01b0381166103a45760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610345565b336001600160a01b038216146103cc5760405162461bcd60e51b815260040161034590610824565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166104445760405162461bcd60e51b8152600401610345906107ed565b505050565b3360009081526020819052604090205460ff166104785760405162461bcd60e51b8152600401610345906107ed565b33600081815260016020908152604091829020849055815192835282018390527f2f1ac7412e0c36ff7b73f7c4f474022dfa5d3f1c09e3262f63c9eb4627a9f505910160405180910390a150565b3360009081526020819052604090205460ff166104f55760405162461bcd60e51b8152600401610345906107ed565b5050565b6001600160a01b03811661054f5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610345565b6001600160a01b03811660009081526020819052604090205460ff16156105b85760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e6400000000000000006044820152606401610345565b336001600160a01b038216146105e05760405162461bcd60e51b815260040161034590610824565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b6001600160a01b038116811461064157600080fd5b50565b6000806000806080858703121561065a57600080fd5b84356106658161062c565b935060208501356106758161062c565b925060408501359150606085013561068c8161062c565b939692955090935050565b6000602082840312156106a957600080fd5b81356106b48161062c565b9392505050565b60006020808352835180602085015260005b818110156106e9578581018301518582016040015282016106cd565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060006060848603121561071f57600080fd5b833561072a8161062c565b9250602084013561073a8161062c565b929592945050506040919091013590565b60006020828403121561075d57600080fd5b5035919050565b6000806040838503121561077757600080fd5b82356107828161062c565b946020939093013593505050565b6000602082840312156107a257600080fd5b81516106b48161062c565b6000602082840312156107bf57600080fd5b5051919050565b808201808211156107e757634e487b7160e01b600052601160045260246000fd5b92915050565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b60608201526080019056fea2646970667358221220713a49d65599ac909057f6d0e2ab13ba6dd7d4a8b9848a6bf01d8131a50dc11564736f6c63430008180033","sourceMap":"3947:2800:54:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80634a932544116100715780634a932544146101625780634ae65b5c146101755780634cf4d295146101ac578063bcc21053146101d8578063e6f5e807146101ec578063f104a8c91461014f57600080fd5b8063013b7ce4146100b95780630694a5fb146100e157806306fdde03146100f65780632cb7e1ec14610129578063361fab251461013c578063372491a21461014f575b600080fd5b6100cc6100c7366004610644565b6101f3565b60405190151581526020015b60405180910390f35b6100f46100ef366004610697565b610316565b005b6040805180820182526011815270537570706c794c696d69744d6f64756c6560781b602082015290516100d891906106bb565b6100f461013736600461070a565b610415565b6100f461014a36600461074b565b610449565b6100f461015d366004610764565b6104c6565b6100f4610170366004610697565b6104f9565b61019e610183366004610697565b6001600160a01b031660009081526001602052604090205490565b6040519081526020016100d8565b6100cc6101ba366004610697565b6001600160a01b031660009081526020819052604090205460ff1690565b6100cc6101e6366004610697565b50600190565b60016100cc565b60006001600160a01b0385161580156102fd575060016000836001600160a01b03166001600160a01b031681526020019081526020016000205483836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa15801561026c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102909190610790565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f191906107ad565b6102fb91906107c6565b115b1561030a5750600061030e565b5060015b949350505050565b3360009081526020819052604090205460ff1661034e5760405162461bcd60e51b8152600401610345906107ed565b60405180910390fd5b6001600160a01b0381166103a45760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610345565b336001600160a01b038216146103cc5760405162461bcd60e51b815260040161034590610824565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166104445760405162461bcd60e51b8152600401610345906107ed565b505050565b3360009081526020819052604090205460ff166104785760405162461bcd60e51b8152600401610345906107ed565b33600081815260016020908152604091829020849055815192835282018390527f2f1ac7412e0c36ff7b73f7c4f474022dfa5d3f1c09e3262f63c9eb4627a9f505910160405180910390a150565b3360009081526020819052604090205460ff166104f55760405162461bcd60e51b8152600401610345906107ed565b5050565b6001600160a01b03811661054f5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610345565b6001600160a01b03811660009081526020819052604090205460ff16156105b85760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e6400000000000000006044820152606401610345565b336001600160a01b038216146105e05760405162461bcd60e51b815260040161034590610824565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b6001600160a01b038116811461064157600080fd5b50565b6000806000806080858703121561065a57600080fd5b84356106658161062c565b935060208501356106758161062c565b925060408501359150606085013561068c8161062c565b939692955090935050565b6000602082840312156106a957600080fd5b81356106b48161062c565b9392505050565b60006020808352835180602085015260005b818110156106e9578581018301518582016040015282016106cd565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060006060848603121561071f57600080fd5b833561072a8161062c565b9250602084013561073a8161062c565b929592945050506040919091013590565b60006020828403121561075d57600080fd5b5035919050565b6000806040838503121561077757600080fd5b82356107828161062c565b946020939093013593505050565b6000602082840312156107a257600080fd5b81516106b48161062c565b6000602082840312156107bf57600080fd5b5051919050565b808201808211156107e757634e487b7160e01b600052601160045260246000fd5b92915050565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b60608201526080019056fea2646970667358221220713a49d65599ac909057f6d0e2ab13ba6dd7d4a8b9848a6bf01d8131a50dc11564736f6c63430008180033","sourceMap":"3947:2800:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5635:390;;;;;;:::i;:::-;;:::i;:::-;;;918:14:165;;911:22;893:41;;881:2;866:18;5635:390:54;;;;;;;;5018:343:44;;;;;;:::i;:::-;;:::i;:::-;;6644:101:54;6712:26;;;;;;;;;;;-1:-1:-1;;;6712:26:54;;;;6644:101;;;;6712:26;6644:101;:::i;4971:104::-;;;;;;:::i;:::-;;:::i;4632:168::-;;;;;;:::i;:::-;;:::i;5486:87::-;;;;;;:::i;:::-;;:::i;4555:396:44:-;;;;;;:::i;:::-;;:::i;6121:127:54:-;;;;;;:::i;:::-;-1:-1:-1;;;;;6215:26:54;6189:7;6215:26;;;:13;:26;;;;;;;6121:127;;;;2862:25:165;;;2850:2;2835:18;6121:127:54;2716:177:165;5429:139:44;;;;;;:::i;:::-;-1:-1:-1;;;;;5532:29:44;5509:4;5532:29;;;;;;;;;;;;;;5429:139;6316:118:54;;;;;;:::i;:::-;-1:-1:-1;6423:4:54;;6316:118;6498:91;6578:4;6498:91;;5635:390;5795:4;-1:-1:-1;;;;;5815:19:54;;;:144;;;;;5933:13;:26;5947:11;-1:-1:-1;;;;;5933:26:54;-1:-1:-1;;;;;5933:26:54;;;;;;;;;;;;;5923:6;5877:11;-1:-1:-1;;;;;5858:45:54;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5851:67:54;;:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:78;;;;:::i;:::-;5850:109;5815:144;5811:187;;;-1:-1:-1;5982:5:54;5975:12;;5811:187;-1:-1:-1;6014:4:54;5635:390;;;;;;;:::o;5018:343:44:-;4426:10;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5120:25:44;::::1;5112:69;;;::::0;-1:-1:-1;;;5112:69:44;;4131:2:165;5112:69:44::1;::::0;::::1;4113:21:165::0;4170:2;4150:18;;;4143:30;4209:33;4189:18;;;4182:61;4260:18;;5112:69:44::1;3929:355:165::0;5112:69:44::1;5199:10;-1:-1:-1::0;;;;;5199:25:44;::::1;;5191:71;;;;-1:-1:-1::0;;;5191:71:44::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5272:29:44;::::1;5304:5;5272:29:::0;;;::::1;::::0;;;;;;;:37;;-1:-1:-1;;5272:37:44::1;::::0;;5324:30;::::1;::::0;5304:5;5324:30:::1;5018:343:::0;:::o;4971:104:54:-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;4971:104:54;;;:::o;4632:168::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;4724:10:54::1;4710:25;::::0;;;:13:::1;:25;::::0;;;;;;;;:34;;;4759;;4865:51:165;;;4932:18;;4925:34;;;4759::54::1;::::0;4838:18:165;4759:34:54::1;;;;;;;4632:168:::0;:::o;5486:87::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;5486:87:54;;:::o;4555:396:44:-;-1:-1:-1;;;;;4636:25:44;;4628:69;;;;-1:-1:-1;;;4628:69:44;;4131:2:165;4628:69:44;;;4113:21:165;4170:2;4150:18;;;4143:30;4209:33;4189:18;;;4182:61;4260:18;;4628:69:44;3929:355:165;4628:69:44;-1:-1:-1;;;;;4716:29:44;;:16;:29;;;;;;;;;;;;;4715:30;4707:67;;;;-1:-1:-1;;;4707:67:44;;5172:2:165;4707:67:44;;;5154:21:165;5211:2;5191:18;;;5184:30;5250:26;5230:18;;;5223:54;5294:18;;4707:67:44;4970:348:165;4707:67:44;4792:10;-1:-1:-1;;;;;4792:25:44;;;4784:71;;;;-1:-1:-1;;;4784:71:44;;;;;;;:::i;:::-;-1:-1:-1;;;;;4865:29:44;;:16;:29;;;;;;;;;;;:36;;-1:-1:-1;;4865:36:44;4897:4;4865:36;;;4916:28;;;4865:16;4916:28;4555:396;:::o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:598::-;236:6;244;252;260;313:3;301:9;292:7;288:23;284:33;281:53;;;330:1;327;320:12;281:53;369:9;356:23;388:31;413:5;388:31;:::i;:::-;438:5;-1:-1:-1;495:2:165;480:18;;467:32;508:33;467:32;508:33;:::i;:::-;560:7;-1:-1:-1;614:2:165;599:18;;586:32;;-1:-1:-1;670:2:165;655:18;;642:32;683:33;642:32;683:33;:::i;:::-;150:598;;;;-1:-1:-1;150:598:165;;-1:-1:-1;;150:598:165:o;945:247::-;1004:6;1057:2;1045:9;1036:7;1032:23;1028:32;1025:52;;;1073:1;1070;1063:12;1025:52;1112:9;1099:23;1131:31;1156:5;1131:31;:::i;:::-;1181:5;945:247;-1:-1:-1;;;945:247:165:o;1197:548::-;1309:4;1338:2;1367;1356:9;1349:21;1399:6;1393:13;1442:6;1437:2;1426:9;1422:18;1415:34;1467:1;1477:140;1491:6;1488:1;1485:13;1477:140;;;1586:14;;;1582:23;;1576:30;1552:17;;;1571:2;1548:26;1541:66;1506:10;;1477:140;;;1481:3;1666:1;1661:2;1652:6;1641:9;1637:22;1633:31;1626:42;1736:2;1729;1725:7;1720:2;1712:6;1708:15;1704:29;1693:9;1689:45;1685:54;1677:62;;;;1197:548;;;;:::o;1750:456::-;1827:6;1835;1843;1896:2;1884:9;1875:7;1871:23;1867:32;1864:52;;;1912:1;1909;1902:12;1864:52;1951:9;1938:23;1970:31;1995:5;1970:31;:::i;:::-;2020:5;-1:-1:-1;2077:2:165;2062:18;;2049:32;2090:33;2049:32;2090:33;:::i;:::-;1750:456;;2142:7;;-1:-1:-1;;;2196:2:165;2181:18;;;;2168:32;;1750:456::o;2211:180::-;2270:6;2323:2;2311:9;2302:7;2298:23;2294:32;2291:52;;;2339:1;2336;2329:12;2291:52;-1:-1:-1;2362:23:165;;2211:180;-1:-1:-1;2211:180:165:o;2396:315::-;2464:6;2472;2525:2;2513:9;2504:7;2500:23;2496:32;2493:52;;;2541:1;2538;2531:12;2493:52;2580:9;2567:23;2599:31;2624:5;2599:31;:::i;:::-;2649:5;2701:2;2686:18;;;;2673:32;;-1:-1:-1;;;2396:315:165:o;2898:251::-;2968:6;3021:2;3009:9;3000:7;2996:23;2992:32;2989:52;;;3037:1;3034;3027:12;2989:52;3069:9;3063:16;3088:31;3113:5;3088:31;:::i;3154:184::-;3224:6;3277:2;3265:9;3256:7;3252:23;3248:32;3245:52;;;3293:1;3290;3283:12;3245:52;-1:-1:-1;3316:16:165;;3154:184;-1:-1:-1;3154:184:165:o;3343:222::-;3408:9;;;3429:10;;;3426:133;;;3481:10;3476:3;3472:20;3469:1;3462:31;3516:4;3513:1;3506:15;3544:4;3541:1;3534:15;3426:133;3343:222;;;;:::o;3570:354::-;3772:2;3754:21;;;3811:2;3791:18;;;3784:30;3850:32;3845:2;3830:18;;3823:60;3915:2;3900:18;;3570:354::o;4289:397::-;4491:2;4473:21;;;4530:2;4510:18;;;4503:30;4569:34;4564:2;4549:18;;4542:62;-1:-1:-1;;;4635:2:165;4620:18;;4613:31;4676:3;4661:19;;4289:397::o","linkReferences":{}},"methodIdentifiers":{"bindCompliance(address)":"4a932544","canComplianceBind(address)":"bcc21053","getSupplyLimit(address)":"4ae65b5c","isComplianceBound(address)":"4cf4d295","isPlugAndPlay()":"e6f5e807","moduleBurnAction(address,uint256)":"372491a2","moduleCheck(address,address,uint256,address)":"013b7ce4","moduleMintAction(address,uint256)":"f104a8c9","moduleTransferAction(address,address,uint256)":"2cb7e1ec","name()":"06fdde03","setSupplyLimit(uint256)":"361fab25","unbindCompliance(address)":"0694a5fb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_limit\",\"type\":\"uint256\"}],\"name\":\"SupplyLimitSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"bindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"canComplianceBind\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"getSupplyLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"isComplianceBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPlugAndPlay\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleBurnAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"moduleCheck\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleMintAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleTransferAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_limit\",\"type\":\"uint256\"}],\"name\":\"setSupplyLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"unbindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"bindCompliance(address)\":{\"details\":\"See {IModule-bindCompliance}.\"},\"canComplianceBind(address)\":{\"details\":\"See {IModule-canComplianceBind}.\"},\"getSupplyLimit(address)\":{\"details\":\"getter for `supplyLimits` variable returns supply limit\"},\"isComplianceBound(address)\":{\"details\":\"See {IModule-isComplianceBound}.\"},\"isPlugAndPlay()\":{\"details\":\"See {IModule-isPlugAndPlay}.\"},\"moduleBurnAction(address,uint256)\":{\"details\":\"See {IModule-moduleBurnAction}. no burn action required in this module\"},\"moduleCheck(address,address,uint256,address)\":{\"details\":\"See {IModule-moduleCheck}.\"},\"moduleMintAction(address,uint256)\":{\"details\":\"See {IModule-moduleMintAction}. no mint action required in this module\"},\"moduleTransferAction(address,address,uint256)\":{\"details\":\"See {IModule-moduleTransferAction}. no transfer action required in this module\"},\"name()\":{\"details\":\"See {IModule-name}.\"},\"setSupplyLimit(uint256)\":{\"details\":\"sets supply limit. Supply limit has to be smaller or equal to the actual supply.\",\"params\":{\"_limit\":\"max amount of tokens to be created Only the owner of the Compliance smart contract can call this function emits an `SupplyLimitSet` event\"}},\"unbindCompliance(address)\":{\"details\":\"See {IModule-unbindCompliance}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ComplianceBound(address)\":{\"notice\":\"this event is emitted when the compliance contract is bound to the module. the event is emitted by the bindCompliance function `_compliance` is the address of the compliance contract being bound\"},\"ComplianceUnbound(address)\":{\"notice\":\"this event is emitted when the compliance contract is unbound from the module. the event is emitted by the unbindCompliance function `_compliance` is the address of the compliance contract being unbound\"},\"SupplyLimitSet(address,uint256)\":{\"notice\":\"this event is emitted when the supply limit has been set. `_compliance` is the compliance address. `_limit` is the max amount of tokens in circulation.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/modular/modules/SupplyLimitModule.sol\":\"SupplyLimitModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/compliance/modular/modules/AbstractModule.sol\":{\"keccak256\":\"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8\",\"dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu\"]},\"contracts/erc3643/compliance/modular/modules/IModule.sol\":{\"keccak256\":\"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c\",\"dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk\"]},\"contracts/erc3643/compliance/modular/modules/SupplyLimitModule.sol\":{\"keccak256\":\"0xefe7a5286668fed627a9a05b84bbb75d24e4032f5894a803b508d5649c60fb72\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://59236d474b1c3bee8e0a1c22ba777a8e851018cfb96965cac3d316e1e8796d3d\",\"dweb:/ipfs/QmPtNpH9yFbKt4cWpPBtobp5o1iSGFMpiUFeDev9yRM4PY\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":false},{"internalType":"uint256","name":"_limit","type":"uint256","indexed":false}],"type":"event","name":"SupplyLimitSet","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindCompliance"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"canComplianceBind","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"getSupplyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPlugAndPlay","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleBurnAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"moduleCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleMintAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleTransferAction"},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"_limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setSupplyLimit"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindCompliance"}],"devdoc":{"kind":"dev","methods":{"bindCompliance(address)":{"details":"See {IModule-bindCompliance}."},"canComplianceBind(address)":{"details":"See {IModule-canComplianceBind}."},"getSupplyLimit(address)":{"details":"getter for `supplyLimits` variable returns supply limit"},"isComplianceBound(address)":{"details":"See {IModule-isComplianceBound}."},"isPlugAndPlay()":{"details":"See {IModule-isPlugAndPlay}."},"moduleBurnAction(address,uint256)":{"details":"See {IModule-moduleBurnAction}. no burn action required in this module"},"moduleCheck(address,address,uint256,address)":{"details":"See {IModule-moduleCheck}."},"moduleMintAction(address,uint256)":{"details":"See {IModule-moduleMintAction}. no mint action required in this module"},"moduleTransferAction(address,address,uint256)":{"details":"See {IModule-moduleTransferAction}. no transfer action required in this module"},"name()":{"details":"See {IModule-name}."},"setSupplyLimit(uint256)":{"details":"sets supply limit. Supply limit has to be smaller or equal to the actual supply.","params":{"_limit":"max amount of tokens to be created Only the owner of the Compliance smart contract can call this function emits an `SupplyLimitSet` event"}},"unbindCompliance(address)":{"details":"See {IModule-unbindCompliance}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/modular/modules/SupplyLimitModule.sol":"SupplyLimitModule"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/AbstractModule.sol":{"keccak256":"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3","urls":["bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8","dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/IModule.sol":{"keccak256":"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02","urls":["bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c","dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/SupplyLimitModule.sol":{"keccak256":"0xefe7a5286668fed627a9a05b84bbb75d24e4032f5894a803b508d5649c60fb72","urls":["bzz-raw://59236d474b1c3bee8e0a1c22ba777a8e851018cfb96965cac3d316e1e8796d3d","dweb:/ipfs/QmPtNpH9yFbKt4cWpPBtobp5o1iSGFMpiUFeDev9yRM4PY"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"}},"version":1},"id":54} \ No newline at end of file diff --git a/out/SupplyLimitTest.sol/SupplyLimitTest.json b/out/SupplyLimitTest.sol/SupplyLimitTest.json new file mode 100644 index 0000000..2c4bd82 --- /dev/null +++ b/out/SupplyLimitTest.sol/SupplyLimitTest.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"complianceCheckOnSupplyLimit","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"created","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"destroyed","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenBound","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTokenAgent","inputs":[{"name":"_agentAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSupplyLimit","inputs":[{"name":"_limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supplyLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokenBound","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IToken"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferred","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindToken","inputs":[{"name":"_token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SupplyLimitSet","inputs":[{"name":"_limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TokenAgentAdded","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenAgentRemoved","inputs":[{"name":"_agentAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenBound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUnbound","inputs":[{"name":"_token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610e1f806100a56000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638baf29b4116100ad578063993e8b9511610071578063993e8b9514610270578063cdde293214610283578063e46638e614610296578063f2fde38b146102a9578063ff3e6954146102bc57600080fd5b80638baf29b4146101ff5780638d2ea772146102125780638da5cb5b1461022557806393e62f071461024a57806397a6278e1461025d57600080fd5b806340db3b50116100f457806340db3b50146101ab5780635f8dead3146101be578063715018a6146101d1578063737ce08e146101d957806384e79842146101ec57600080fd5b806319d1997a146101315780631ffbb0641461014d578063346531fa14610170578063361fab25146101835780633ff5aa0214610198575b600080fd5b61013a60045481565b6040519081526020015b60405180910390f35b61016061015b366004610caa565b6102cf565b6040519015158152602001610144565b61016061017e366004610caa565b6102e2565b610196610191366004610cc5565b61038b565b005b6101966101a6366004610caa565b6103cf565b6101966101b9366004610caa565b6104b2565b6101966101cc366004610cde565b6105d4565b610196610606565b6101606101e7366004610d08565b61061a565b6101966101fa366004610caa565b610624565b61019661020d366004610d08565b6106c4565b610196610220366004610cde565b6106ed565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610144565b600354610232906001600160a01b031681565b61019661026b366004610caa565b610711565b61016061027e366004610caa565b6107b1565b610196610291366004610caa565b6107d1565b6101606102a4366004610d08565b610892565b6101966102b7366004610caa565b6108b5565b6101966102ca366004610caa565b6108f3565b60006102dc6001836109b8565b92915050565b6001600160a01b03811660009081526002602052604081205460ff1615801561037657506003546040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa158015610350573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103749190610d44565b155b1561038357506000919050565b506001919050565b610393610a3b565b60048190556040518181527f2cc259af6838b2a0d4d04c0f2f361079ea338dfc784cf242a87cf7d51013f568906020015b60405180910390a150565b336103e26000546001600160a01b031690565b6001600160a01b0316148061041357506003546001600160a01b03161580156104135750336001600160a01b038216145b6104645760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c0000000060448201526064015b60405180910390fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b906020016103c4565b336104c56000546001600160a01b031690565b6001600160a01b031614806104e25750336001600160a01b038216145b61052e5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c00000000604482015260640161045b565b6003546001600160a01b0382811691161461058b5760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e64000000000000000000604482015260640161045b565b600380546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a906020016103c4565b6105dc610a68565b6105f85760405162461bcd60e51b815260040161045b90610d66565b6106028282610a78565b5050565b61060e610a3b565b6106186000610b40565b565b60015b9392505050565b61062c610a3b565b6001600160a01b0381166106825760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161045b565b61068d600182610b90565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b6106cc610a68565b6106e85760405162461bcd60e51b815260040161045b90610d66565b505050565b6106f5610a68565b6106025760405162461bcd60e51b815260040161045b90610d66565b610719610a3b565b6001600160a01b03811661076f5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161045b565b61077a600182610c0c565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6003546000906001600160a01b0383811691161461038357506000919050565b6107d9610a3b565b6001600160a01b03811660009081526002602052604090205460ff166108415760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e74206973206e6f74207265676973746572656420796574604482015260640161045b565b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f6a659bb87bb23efbdc295f8eed8ae8c4379bfb77660ced2ef0f3d7d26b05c6a691016103c4565b600061089f84848461061a565b6108ab5750600061061d565b5060019392505050565b6108bd610a3b565b6001600160a01b0381166108e757604051631e4fbdf760e01b81526000600482015260240161045b565b6108f081610b40565b50565b6108fb610a3b565b6001600160a01b03811660009081526002602052604090205460ff16156109645760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e7420697320616c72656164792072656769737465726564604482015260640161045b565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fd62c45e13ac30396aceb3ad37c89bd1ba9048032fe61679000e92eb93dbfd67d91016103c4565b60006001600160a01b038216610a1b5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840161045b565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000546001600160a01b031633146106185760405163118cdaa760e01b815233600482015260240161045b565b6000610a73336107b1565b905090565b600454600360009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ace573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af29190610dd0565b11156106025760405162461bcd60e51b815260206004820152601760248201527f63616e6e6f74206d696e74206d6f726520746f6b656e73000000000000000000604482015260640161045b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610b9a82826109b8565b15610be75760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640161045b565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610c1682826109b8565b610c6c5760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b606482015260840161045b565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b80356001600160a01b0381168114610ca557600080fd5b919050565b600060208284031215610cbc57600080fd5b61061d82610c8e565b600060208284031215610cd757600080fd5b5035919050565b60008060408385031215610cf157600080fd5b610cfa83610c8e565b946020939093013593505050565b600080600060608486031215610d1d57600080fd5b610d2684610c8e565b9250610d3460208501610c8e565b9150604084013590509250925092565b600060208284031215610d5657600080fd5b8151801515811461061d57600080fd5b60208082526044908201527f6572726f72203a20746869732061646472657373206973206e6f74206120746f60408201527f6b656e20626f756e6420746f2074686520636f6d706c69616e636520636f6e746060820152631c9858dd60e21b608082015260a00190565b600060208284031215610de257600080fd5b505191905056fea2646970667358221220e5541e4df5dfdb67fa2acd6afe427e70a7c30259cc49e8157c4cd727d61df2ac64736f6c63430008180033","sourceMap":"3881:969:40:-:0;;;;;;;;;;;;-1:-1:-1;4272:10:87;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;160:51:165;133:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;3881:969:40;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:165:-;3881:969:40;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80638baf29b4116100ad578063993e8b9511610071578063993e8b9514610270578063cdde293214610283578063e46638e614610296578063f2fde38b146102a9578063ff3e6954146102bc57600080fd5b80638baf29b4146101ff5780638d2ea772146102125780638da5cb5b1461022557806393e62f071461024a57806397a6278e1461025d57600080fd5b806340db3b50116100f457806340db3b50146101ab5780635f8dead3146101be578063715018a6146101d1578063737ce08e146101d957806384e79842146101ec57600080fd5b806319d1997a146101315780631ffbb0641461014d578063346531fa14610170578063361fab25146101835780633ff5aa0214610198575b600080fd5b61013a60045481565b6040519081526020015b60405180910390f35b61016061015b366004610caa565b6102cf565b6040519015158152602001610144565b61016061017e366004610caa565b6102e2565b610196610191366004610cc5565b61038b565b005b6101966101a6366004610caa565b6103cf565b6101966101b9366004610caa565b6104b2565b6101966101cc366004610cde565b6105d4565b610196610606565b6101606101e7366004610d08565b61061a565b6101966101fa366004610caa565b610624565b61019661020d366004610d08565b6106c4565b610196610220366004610cde565b6106ed565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610144565b600354610232906001600160a01b031681565b61019661026b366004610caa565b610711565b61016061027e366004610caa565b6107b1565b610196610291366004610caa565b6107d1565b6101606102a4366004610d08565b610892565b6101966102b7366004610caa565b6108b5565b6101966102ca366004610caa565b6108f3565b60006102dc6001836109b8565b92915050565b6001600160a01b03811660009081526002602052604081205460ff1615801561037657506003546040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa158015610350573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103749190610d44565b155b1561038357506000919050565b506001919050565b610393610a3b565b60048190556040518181527f2cc259af6838b2a0d4d04c0f2f361079ea338dfc784cf242a87cf7d51013f568906020015b60405180910390a150565b336103e26000546001600160a01b031690565b6001600160a01b0316148061041357506003546001600160a01b03161580156104135750336001600160a01b038216145b6104645760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c0000000060448201526064015b60405180910390fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b906020016103c4565b336104c56000546001600160a01b031690565b6001600160a01b031614806104e25750336001600160a01b038216145b61052e5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c00000000604482015260640161045b565b6003546001600160a01b0382811691161461058b5760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e64000000000000000000604482015260640161045b565b600380546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a906020016103c4565b6105dc610a68565b6105f85760405162461bcd60e51b815260040161045b90610d66565b6106028282610a78565b5050565b61060e610a3b565b6106186000610b40565b565b60015b9392505050565b61062c610a3b565b6001600160a01b0381166106825760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161045b565b61068d600182610b90565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b6106cc610a68565b6106e85760405162461bcd60e51b815260040161045b90610d66565b505050565b6106f5610a68565b6106025760405162461bcd60e51b815260040161045b90610d66565b610719610a3b565b6001600160a01b03811661076f5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161045b565b61077a600182610c0c565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6003546000906001600160a01b0383811691161461038357506000919050565b6107d9610a3b565b6001600160a01b03811660009081526002602052604090205460ff166108415760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e74206973206e6f74207265676973746572656420796574604482015260640161045b565b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f6a659bb87bb23efbdc295f8eed8ae8c4379bfb77660ced2ef0f3d7d26b05c6a691016103c4565b600061089f84848461061a565b6108ab5750600061061d565b5060019392505050565b6108bd610a3b565b6001600160a01b0381166108e757604051631e4fbdf760e01b81526000600482015260240161045b565b6108f081610b40565b50565b6108fb610a3b565b6001600160a01b03811660009081526002602052604090205460ff16156109645760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e7420697320616c72656164792072656769737465726564604482015260640161045b565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fd62c45e13ac30396aceb3ad37c89bd1ba9048032fe61679000e92eb93dbfd67d91016103c4565b60006001600160a01b038216610a1b5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840161045b565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000546001600160a01b031633146106185760405163118cdaa760e01b815233600482015260240161045b565b6000610a73336107b1565b905090565b600454600360009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ace573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af29190610dd0565b11156106025760405162461bcd60e51b815260206004820152601760248201527f63616e6e6f74206d696e74206d6f726520746f6b656e73000000000000000000604482015260640161045b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610b9a82826109b8565b15610be75760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640161045b565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610c1682826109b8565b610c6c5760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b606482015260840161045b565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b80356001600160a01b0381168114610ca557600080fd5b919050565b600060208284031215610cbc57600080fd5b61061d82610c8e565b600060208284031215610cd757600080fd5b5035919050565b60008060408385031215610cf157600080fd5b610cfa83610c8e565b946020939093013593505050565b600080600060608486031215610d1d57600080fd5b610d2684610c8e565b9250610d3460208501610c8e565b9150604084013590509250925092565b600060208284031215610d5657600080fd5b8151801515811461061d57600080fd5b60208082526044908201527f6572726f72203a20746869732061646472657373206973206e6f74206120746f60408201527f6b656e20626f756e6420746f2074686520636f6d706c69616e636520636f6e746060820152631c9858dd60e21b608082015260a00190565b600060208284031215610de257600080fd5b505191905056fea2646970667358221220e5541e4df5dfdb67fa2acd6afe427e70a7c30259cc49e8157c4cd727d61df2ac64736f6c63430008180033","sourceMap":"3881:969:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4121:26:33;;;;;;;;;160:25:165;;;148:2;133:18;4121:26:33;;;;;;;;4700:103:87;;;;;;:::i;:::-;;:::i;:::-;;;730:14:165;;723:22;705:41;;693:2;678:18;4700:103:87;565:187:165;6271:253:24;;;;;;:::i;:::-;;:::i;4634:133:33:-;;;;;;:::i;:::-;;:::i;:::-;;5569:277:24;;;;;;:::i;:::-;;:::i;5910:296::-;;;;;;:::i;:::-;;:::i;4205:132:40:-;;;;;;:::i;:::-;;:::i;2293:101:141:-;;;:::i;4936:154:33:-;;;;;;:::i;:::-;;:::i;4292:194:87:-;;;;;;:::i;:::-;;:::i;3985:158:40:-;;;;;;:::i;:::-;;:::i;4401:141::-;;;;;;:::i;:::-;;:::i;1638:85:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;1638:85;;;-1:-1:-1;;;;;1698:32:165;;;1680:51;;1668:2;1653:18;1638:85:141;1534:203:165;4173:24:24;;;;;-1:-1:-1;;;;;4173:24:24;;;4492:202:87;;;;;;:::i;:::-;;:::i;6589:182:24:-;;;;;;:::i;:::-;;:::i;5239:266::-;;;;;;:::i;:::-;;:::i;4608:240:40:-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;4913:261:24:-;;;;;;:::i;:::-;;:::i;4700:103:87:-;4754:4;4777:19;:7;4789:6;4777:11;:19::i;:::-;4770:26;4700:103;-1:-1:-1;;4700:103:87:o;6271:253:24:-;-1:-1:-1;;;;;6367:31:24;;6346:4;6367:31;;;:16;:31;;;;;;;;6366:32;:92;;;;-1:-1:-1;6422:10:24;;6403:55;;-1:-1:-1;;;6403:55:24;;-1:-1:-1;;;;;1698:32:165;;;6403:55:24;;;1680:51:165;6422:10:24;;;;6403:40;;1653:18:165;;6403:55:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6402:56;6366:92;6362:135;;;-1:-1:-1;6481:5:24;;6271:253;-1:-1:-1;6271:253:24:o;6362:135::-;-1:-1:-1;6513:4:24;;6271:253;-1:-1:-1;6271:253:24:o;4634:133:33:-;1531:13:141;:11;:13::i;:::-;4703:11:33::1;:20:::0;;;4738:22:::1;::::0;160:25:165;;;4738:22:33::1;::::0;148:2:165;133:18;4738:22:33::1;;;;;;;;4634:133:::0;:::o;5569:277:24:-;5651:10;5640:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;5640:7:24;-1:-1:-1;;;;;5640:21:24;;:84;;;-1:-1:-1;5674:10:24;;-1:-1:-1;;;;;5674:10:24;5666:33;:57;;;;-1:-1:-1;5703:10:24;-1:-1:-1;;;;;5703:20:24;;;5666:57;5632:137;;;;-1:-1:-1;;;5632:137:24;;2450:2:165;5632:137:24;;;2432:21:165;2489:2;2469:18;;;2462:30;2528;2508:18;;;2501:58;2576:18;;5632:137:24;;;;;;;;;5779:10;:27;;-1:-1:-1;;;;;;5779:27:24;-1:-1:-1;;;;;5779:27:24;;;;;;;;5821:18;;1680:51:165;;;5821:18:24;;1668:2:165;1653:18;5821::24;1534:203:165;5910:296:24;5994:10;5983:7;1684::141;1710:6;-1:-1:-1;;;;;1710:6:141;;1638:85;5983:7:24;-1:-1:-1;;;;;5983:21:24;;:45;;;-1:-1:-1;6008:10:24;-1:-1:-1;;;;;6008:20:24;;;5983:45;5975:87;;;;-1:-1:-1;;;5975:87:24;;2450:2:165;5975:87:24;;;2432:21:165;2489:2;2469:18;;;2462:30;2528;2508:18;;;2501:58;2576:18;;5975:87:24;2248:352:165;5975:87:24;6098:10;;-1:-1:-1;;;;;6080:29:24;;;6098:10;;6080:29;6072:65;;;;-1:-1:-1;;;6072:65:24;;2807:2:165;6072:65:24;;;2789:21:165;2846:2;2826:18;;;2819:30;2885:25;2865:18;;;2858:53;2928:18;;6072:65:24;2605:347:165;6072:65:24;6154:10;6147:17;;-1:-1:-1;;;;;;6147:17:24;;;6179:20;;-1:-1:-1;;;;;1698:32:165;;1680:51;;6179:20:24;;1668:2:165;1653:18;6179:20:24;1534:203:165;4205:132:40;4348:10:24;:8;:10::i;:::-;4340:91;;;;-1:-1:-1;;;4340:91:24;;;;;;;:::i;:::-;4289:41:40::1;4318:3;4323:6;4289:28;:41::i;:::-;4205:132:::0;;:::o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;4936:154:33:-;5079:4;4936:154;;;;;;:::o;4292:194:87:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4361:20:87;::::1;4353:64;;;::::0;-1:-1:-1;;;4353:64:87;;3636:2:165;4353:64:87::1;::::0;::::1;3618:21:165::0;3675:2;3655:18;;;3648:30;3714:33;3694:18;;;3687:61;3765:18;;4353:64:87::1;3434:355:165::0;4353:64:87::1;4427:19;:7;4439:6:::0;4427:11:::1;:19::i;:::-;4461:18;::::0;-1:-1:-1;;;;;4461:18:87;::::1;::::0;::::1;::::0;;;::::1;4292:194:::0;:::o;3985:158:40:-;4348:10:24;:8;:10::i;:::-;4340:91;;;;-1:-1:-1;;;4340:91:24;;;;;;;:::i;:::-;3985:158:40;;;:::o;4401:141::-;4348:10:24;:8;:10::i;:::-;4340:91;;;;-1:-1:-1;;;4340:91:24;;;;;;;:::i;4492:202:87:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4564:20:87;::::1;4556:64;;;::::0;-1:-1:-1;;;4556:64:87;;3636:2:165;4556:64:87::1;::::0;::::1;3618:21:165::0;3675:2;3655:18;;;3648:30;3714:33;3694:18;;;3687:61;3765:18;;4556:64:87::1;3434:355:165::0;4556:64:87::1;4630:22;:7;4645:6:::0;4630:14:::1;:22::i;:::-;4667:20;::::0;-1:-1:-1;;;;;4667:20:87;::::1;::::0;::::1;::::0;;;::::1;4492:202:::0;:::o;6589:182:24:-;6695:10;;6657:4;;-1:-1:-1;;;;;6677:29:24;;;6695:10;;6677:29;6673:71;;-1:-1:-1;6728:5:24;;6589:182;-1:-1:-1;6589:182:24:o;5239:266::-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;5334:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;5326:76;;;::::0;-1:-1:-1;;;5326:76:24;;3996:2:165;5326:76:24::1;::::0;::::1;3978:21:165::0;;;4015:18;;;4008:30;4074:34;4054:18;;;4047:62;4126:18;;5326:76:24::1;3794:356:165::0;5326:76:24::1;-1:-1:-1::0;;;;;5412:31:24;::::1;5446:5;5412:31:::0;;;:16:::1;:31;::::0;;;;;;;;:39;;-1:-1:-1;;5412:39:24::1;::::0;;5466:32;;1680:51:165;;;5466:32:24::1;::::0;1653:18:165;5466:32:24::1;1534:203:165::0;4608:240:40;4705:4;4726:48;4755:5;4762:3;4767:6;4726:28;:48::i;:::-;4721:100;;-1:-1:-1;4805:5:40;4798:12;;4721:100;-1:-1:-1;4837:4:40;4608:240;;;;;:::o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;1680:51:165::0;1653:18;;2672:31:141::1;1534:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;4913:261:24:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;5006:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;5005:32;4997:77;;;::::0;-1:-1:-1;;;4997:77:24;;4357:2:165;4997:77:24::1;::::0;::::1;4339:21:165::0;;;4376:18;;;4369:30;4435:34;4415:18;;;4408:62;4487:18;;4997:77:24::1;4155:356:165::0;4997:77:24::1;-1:-1:-1::0;;;;;5084:31:24;::::1;;::::0;;;:16:::1;:31;::::0;;;;;;;;:38;;-1:-1:-1;;5084:38:24::1;5118:4;5084:38;::::0;;5137:30;;1680:51:165;;;5137:30:24::1;::::0;1653:18:165;5137:30:24::1;1534:203:165::0;4596:200:89;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;4718:2:165;4684:68:89;;;4700:21:165;4757:2;4737:18;;;4730:30;4796:34;4776:18;;;4769:62;-1:-1:-1;;;4847:18:165;;;4840:32;4889:19;;4684:68:89;4516:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;1796:162:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;1680:51:165;1653:18;;1901:40:141;1534:203:165;6897:97:24;6940:4;6963:24;6976:10;6963:12;:24::i;:::-;6956:31;;6897:97;:::o;5924:176:33:-;6054:11;;6026:10;;;;;;;;;-1:-1:-1;;;;;6026:10:33;-1:-1:-1;;;;;6026:22:33;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;;6018:75;;;;-1:-1:-1;;;6018:75:33;;5310:2:165;6018:75:33;;;5292:21:165;5349:2;5329:18;;;5322:30;5388:25;5368:18;;;5361:53;5431:18;;6018:75:33;5108:347:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;4077:175:89:-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;5662:2:165;4145:63:89;;;5644:21:165;5701:2;5681:18;;;5674:30;5740:33;5720:18;;;5713:61;5791:18;;4145:63:89;5460:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;4327:180::-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;6022:2:165;4398:64:89;;;6004:21:165;6061:2;6041:18;;;6034:30;6100:34;6080:18;;;6073:62;-1:-1:-1;;;6151:18:165;;;6144:31;6192:19;;4398:64:89;5820:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;196:173:165:-;264:20;;-1:-1:-1;;;;;313:31:165;;303:42;;293:70;;359:1;356;349:12;293:70;196:173;;;:::o;374:186::-;433:6;486:2;474:9;465:7;461:23;457:32;454:52;;;502:1;499;492:12;454:52;525:29;544:9;525:29;:::i;757:180::-;816:6;869:2;857:9;848:7;844:23;840:32;837:52;;;885:1;882;875:12;837:52;-1:-1:-1;908:23:165;;757:180;-1:-1:-1;757:180:165:o;942:254::-;1010:6;1018;1071:2;1059:9;1050:7;1046:23;1042:32;1039:52;;;1087:1;1084;1077:12;1039:52;1110:29;1129:9;1110:29;:::i;:::-;1100:39;1186:2;1171:18;;;;1158:32;;-1:-1:-1;;;942:254:165:o;1201:328::-;1278:6;1286;1294;1347:2;1335:9;1326:7;1322:23;1318:32;1315:52;;;1363:1;1360;1353:12;1315:52;1386:29;1405:9;1386:29;:::i;:::-;1376:39;;1434:38;1468:2;1457:9;1453:18;1434:38;:::i;:::-;1424:48;;1519:2;1508:9;1504:18;1491:32;1481:42;;1201:328;;;;;:::o;1966:277::-;2033:6;2086:2;2074:9;2065:7;2061:23;2057:32;2054:52;;;2102:1;2099;2092:12;2054:52;2134:9;2128:16;2187:5;2180:13;2173:21;2166:5;2163:32;2153:60;;2209:1;2206;2199:12;2957:472;3159:2;3141:21;;;3198:2;3178:18;;;3171:30;3237:34;3232:2;3217:18;;3210:62;3308:34;3303:2;3288:18;;3281:62;-1:-1:-1;;;3374:3:165;3359:19;;3352:35;3419:3;3404:19;;2957:472::o;4919:184::-;4989:6;5042:2;5030:9;5021:7;5017:23;5013:32;5010:52;;;5058:1;5055;5048:12;5010:52;-1:-1:-1;5081:16:165;;4919:184;-1:-1:-1;4919:184:165:o","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","addTokenAgent(address)":"ff3e6954","bindToken(address)":"3ff5aa02","canTransfer(address,address,uint256)":"e46638e6","complianceCheckOnSupplyLimit(address,address,uint256)":"737ce08e","created(address,uint256)":"5f8dead3","destroyed(address,uint256)":"8d2ea772","isAgent(address)":"1ffbb064","isTokenAgent(address)":"346531fa","isTokenBound(address)":"993e8b95","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","removeTokenAgent(address)":"cdde2932","renounceOwnership()":"715018a6","setSupplyLimit(uint256)":"361fab25","supplyLimit()":"19d1997a","tokenBound()":"93e62f07","transferOwnership(address)":"f2fde38b","transferred(address,address,uint256)":"8baf29b4","unbindToken(address)":"40db3b50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"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\":\"uint256\",\"name\":\"_limit\",\"type\":\"uint256\"}],\"name\":\"SupplyLimitSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"TokenAgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"TokenUnbound\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"addTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"bindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"canTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"complianceCheckOnSupplyLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"created\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"destroyed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"isTokenAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agentAddress\",\"type\":\"address\"}],\"name\":\"removeTokenAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_limit\",\"type\":\"uint256\"}],\"name\":\"setSupplyLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplyLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenBound\",\"outputs\":[{\"internalType\":\"contract IToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferred\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unbindToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addTokenAgent(address)\":{\"details\":\"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces\"},\"bindToken(address)\":{\"details\":\"See {ICompliance-bindToken}.\"},\"canTransfer(address,address,uint256)\":{\"details\":\"See {ICompliance-canTransfer}.\"},\"complianceCheckOnSupplyLimit(address,address,uint256)\":{\"details\":\"check on the compliance status of a transaction. This check always returns true, real check is done at the creation action level\"},\"created(address,uint256)\":{\"details\":\"See {ICompliance-created}.\"},\"destroyed(address,uint256)\":{\"details\":\"See {ICompliance-destroyed}.\"},\"isTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"isTokenBound(address)\":{\"details\":\"See {ICompliance-isTokenBound}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeTokenAgent(address)\":{\"details\":\"See {ICompliance-isTokenAgent}.\"},\"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.\"},\"setSupplyLimit(uint256)\":{\"details\":\"sets supply limit. Supply limit has to be smaller or equal to the actual supply.\",\"params\":{\"_limit\":\"max amount of tokens to be created Only the owner of the Compliance smart contract can call this function emits an `SupplyLimitSet` event\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferred(address,address,uint256)\":{\"details\":\"See {ICompliance-transferred}.\"},\"unbindToken(address)\":{\"details\":\"See {ICompliance-unbindToken}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"SupplyLimitSet(uint256)\":{\"notice\":\"this event is emitted when the supply limit has been set. `_limit` is the max amount of tokens in circulation.\"},\"TokenAgentAdded(address)\":{\"notice\":\"this event is emitted when the Agent has been added on the allowedList of this Compliance. the event is emitted by the Compliance constructor and by the addTokenAgent function `_agentAddress` is the address of the Agent to add\"},\"TokenAgentRemoved(address)\":{\"notice\":\"this event is emitted when the Agent has been removed from the agent list of this Compliance. the event is emitted by the Compliance constructor and by the removeTokenAgent function `_agentAddress` is the address of the Agent to remove\"},\"TokenBound(address)\":{\"notice\":\"this event is emitted when a token has been bound to the compliance contract the event is emitted by the bindToken function `_token` is the address of the token to bind\"},\"TokenUnbound(address)\":{\"notice\":\"this event is emitted when a token has been unbound from the compliance contract the event is emitted by the unbindToken function `_token` is the address of the token to unbind\"}},\"kind\":\"user\",\"methods\":{\"supplyLimit()\":{\"notice\":\"supply limit variable\"},\"tokenBound()\":{\"notice\":\"Mapping of tokens linked to the compliance contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/legacy/test/SupplyLimitTest.sol\":\"SupplyLimitTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/legacy/BasicCompliance.sol\":{\"keccak256\":\"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d\",\"dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4\"]},\"contracts/erc3643/compliance/legacy/ICompliance.sol\":{\"keccak256\":\"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e\",\"dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV\"]},\"contracts/erc3643/compliance/legacy/features/SupplyLimit.sol\":{\"keccak256\":\"0x117b76e0fa4545ea5e389d1bb1b565aaeb5a36ebaf70c4a2d57ddbda7f992ab7\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42a2a4982bf93314ba8193b56d05972b54416975ee4fda1d0158c4a4ee88429b\",\"dweb:/ipfs/QmR4yABkD2yda71JhiQ7iTAS61pYj7YeqY8oMBfoGV6ytf\"]},\"contracts/erc3643/compliance/legacy/test/SupplyLimitTest.sol\":{\"keccak256\":\"0x4ac678263685841946f04ec05d65a2671d0ac417d15c885805a7ed5f60d345c5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://8647ef57748d3d0239e5584a15d2119ed77b09ed8c5d2b648d1fad3ab95bd0be\",\"dweb:/ipfs/QmXezy5ufY98UnnYfLMoQnA7u5rZ8jorUo6yzLcBbrGLNN\"]},\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_limit","type":"uint256","indexed":false}],"type":"event","name":"SupplyLimitSet","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address","indexed":false}],"type":"event","name":"TokenAgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":false}],"type":"event","name":"TokenUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addTokenAgent"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindToken"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"view","type":"function","name":"canTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"complianceCheckOnSupplyLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"created"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"destroyed"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[{"internalType":"address","name":"_agentAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTokenAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"_limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setSupplyLimit"},{"inputs":[],"stateMutability":"view","type":"function","name":"supplyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenBound","outputs":[{"internalType":"contract IToken","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferred"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindToken"}],"devdoc":{"kind":"dev","methods":{"addTokenAgent(address)":{"details":"See {ICompliance-addTokenAgent}. this function is deprecated, but still implemented to avoid breaking interfaces"},"bindToken(address)":{"details":"See {ICompliance-bindToken}."},"canTransfer(address,address,uint256)":{"details":"See {ICompliance-canTransfer}."},"complianceCheckOnSupplyLimit(address,address,uint256)":{"details":"check on the compliance status of a transaction. This check always returns true, real check is done at the creation action level"},"created(address,uint256)":{"details":"See {ICompliance-created}."},"destroyed(address,uint256)":{"details":"See {ICompliance-destroyed}."},"isTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"isTokenBound(address)":{"details":"See {ICompliance-isTokenBound}."},"owner()":{"details":"Returns the address of the current owner."},"removeTokenAgent(address)":{"details":"See {ICompliance-isTokenAgent}."},"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."},"setSupplyLimit(uint256)":{"details":"sets supply limit. Supply limit has to be smaller or equal to the actual supply.","params":{"_limit":"max amount of tokens to be created Only the owner of the Compliance smart contract can call this function emits an `SupplyLimitSet` event"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"transferred(address,address,uint256)":{"details":"See {ICompliance-transferred}."},"unbindToken(address)":{"details":"See {ICompliance-unbindToken}."}},"version":1},"userdoc":{"kind":"user","methods":{"supplyLimit()":{"notice":"supply limit variable"},"tokenBound()":{"notice":"Mapping of tokens linked to the compliance contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/legacy/test/SupplyLimitTest.sol":"SupplyLimitTest"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/legacy/BasicCompliance.sol":{"keccak256":"0xce25ee68b28c579c5ab939195b5edab7b0c21380e2aedf3e11d69c2672e5b305","urls":["bzz-raw://7697a83d4e59d3a87717e25b712ed6f4928f915093e5c01fb0f947e87fbbc30d","dweb:/ipfs/QmVkqNVaX9xD7w11iFHMpXjXZmVMRTicDTZq9NWwYCWYZ4"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/ICompliance.sol":{"keccak256":"0xe6d88f1eb17685150a6f536910546c6275079fde441f6c536a640b3eb146c1a7","urls":["bzz-raw://0a2a3758989bbe6d68831268b54e50c326403ceb82d08ecffc700b045eabef9e","dweb:/ipfs/QmQpcrFPREyxcwyfV1yKzdwaQDfVY5qSSpkV381WJwKrpV"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/features/SupplyLimit.sol":{"keccak256":"0x117b76e0fa4545ea5e389d1bb1b565aaeb5a36ebaf70c4a2d57ddbda7f992ab7","urls":["bzz-raw://42a2a4982bf93314ba8193b56d05972b54416975ee4fda1d0158c4a4ee88429b","dweb:/ipfs/QmR4yABkD2yda71JhiQ7iTAS61pYj7YeqY8oMBfoGV6ytf"],"license":"GPL-3.0"},"contracts/erc3643/compliance/legacy/test/SupplyLimitTest.sol":{"keccak256":"0x4ac678263685841946f04ec05d65a2671d0ac417d15c885805a7ed5f60d345c5","urls":["bzz-raw://8647ef57748d3d0239e5584a15d2119ed77b09ed8c5d2b648d1fad3ab95bd0be","dweb:/ipfs/QmXezy5ufY98UnnYfLMoQnA7u5rZ8jorUo6yzLcBbrGLNN"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":40} \ No newline at end of file diff --git a/out/TIRStorage.sol/TIRStorage.json b/out/TIRStorage.sol/TIRStorage.json new file mode 100644 index 0000000..15b8984 --- /dev/null +++ b/out/TIRStorage.sol/TIRStorage.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea26469706673582212203f5b1824ffda939720693524aef27521d0f2ca18d2090535c89e7d56d0e6640f64736f6c63430008180033","sourceMap":"3900:677:86:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea26469706673582212203f5b1824ffda939720693524aef27521d0f2ca18d2090535c89e7d56d0e6640f64736f6c63430008180033","sourceMap":"3900:677:86:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"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.\"},\"_claimTopicsToTrustedIssuers\":{\"details\":\"Mapping between a claim topic and the allowed trusted issuers for it.\"},\"_trustedIssuerClaimTopics\":{\"details\":\"Mapping between a trusted issuer address and its corresponding claimTopics.\"},\"_trustedIssuers\":{\"details\":\"Array containing all TrustedIssuers identity contract address.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/registry/storage/TIRStorage.sol\":\"TIRStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/registry/storage/TIRStorage.sol\":{\"keccak256\":\"0x310c91e0ba1d72dfc7db11fd3f3ad54cb75e88f4ee1746809b9840362ef4bba1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4d27226d47c0a4018eca7b5b903ec45c27116074ec4612f70d2e651eaa201e46\",\"dweb:/ipfs/QmZ2uCnPgoSZxN1hQy5mNZCWzc6bWkynp1MgAwRPwtXzB6\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/registry/storage/TIRStorage.sol":"TIRStorage"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/registry/storage/TIRStorage.sol":{"keccak256":"0x310c91e0ba1d72dfc7db11fd3f3ad54cb75e88f4ee1746809b9840362ef4bba1","urls":["bzz-raw://4d27226d47c0a4018eca7b5b903ec45c27116074ec4612f70d2e651eaa201e46","dweb:/ipfs/QmZ2uCnPgoSZxN1hQy5mNZCWzc6bWkynp1MgAwRPwtXzB6"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"}},"version":1},"id":86} \ No newline at end of file diff --git a/out/TREXFactory.sol/TREXFactory.json b/out/TREXFactory.sol/TREXFactory.json new file mode 100644 index 0000000..a4c1037 --- /dev/null +++ b/out/TREXFactory.sol/TREXFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"implementationAuthority_","type":"address","internalType":"address"},{"name":"idFactory_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deployTREXSuite","inputs":[{"name":"_salt","type":"string","internalType":"string"},{"name":"_tokenDetails","type":"tuple","internalType":"struct ITREXFactory.TokenDetails","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"decimals","type":"uint8","internalType":"uint8"},{"name":"irs","type":"address","internalType":"address"},{"name":"ONCHAINID","type":"address","internalType":"address"},{"name":"irAgents","type":"address[]","internalType":"address[]"},{"name":"tokenAgents","type":"address[]","internalType":"address[]"},{"name":"complianceModules","type":"address[]","internalType":"address[]"},{"name":"complianceSettings","type":"bytes[]","internalType":"bytes[]"}]},{"name":"_claimDetails","type":"tuple","internalType":"struct ITREXFactory.ClaimDetails","components":[{"name":"claimTopics","type":"uint256[]","internalType":"uint256[]"},{"name":"issuers","type":"address[]","internalType":"address[]"},{"name":"issuerClaims","type":"uint256[][]","internalType":"uint256[][]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getIdFactory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getImplementationAuthority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getToken","inputs":[{"name":"_salt","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"recoverContractOwnership","inputs":[{"name":"_contract","type":"address","internalType":"address"},{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIdFactory","inputs":[{"name":"idFactory_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setImplementationAuthority","inputs":[{"name":"implementationAuthority_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tokenDeployed","inputs":[{"name":"","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Deployed","inputs":[{"name":"_addr","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"IdFactorySet","inputs":[{"name":"_idFactory","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ImplementationAuthoritySet","inputs":[{"name":"_implementationAuthority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TREXSuiteDeployed","inputs":[{"name":"_token","type":"address","indexed":true,"internalType":"address"},{"name":"_ir","type":"address","indexed":false,"internalType":"address"},{"name":"_irs","type":"address","indexed":false,"internalType":"address"},{"name":"_tir","type":"address","indexed":false,"internalType":"address"},{"name":"_ctr","type":"address","indexed":false,"internalType":"address"},{"name":"_mc","type":"address","indexed":false,"internalType":"address"},{"name":"_salt","type":"string","indexed":true,"internalType":"string"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506040516200615d3803806200615d8339810160408190526200003491620005e9565b33806200005c57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b620000678162000086565b506200007382620000d6565b6200007e81620004ea565b505062000646565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620000e06200059b565b6001600160a01b038116620001385760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640162000053565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000182573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a8919062000621565b6001600160a01b03161415801562000237575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000205573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022b919062000621565b6001600160a01b031614155b8015620002bb575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000289573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002af919062000621565b6001600160a01b031614155b80156200033f575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200030d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000333919062000621565b6001600160a01b031614155b8015620003c3575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000391573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b7919062000621565b6001600160a01b031614155b801562000447575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000415573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043b919062000621565b6001600160a01b031614155b620004955760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f72697479604482015260640162000053565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b8906020015b60405180910390a150565b620004f46200059b565b6001600160a01b0381166200054c5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640162000053565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fae81f4fee1b2d830e39ae449967642aaa0e5a1771aa200d0a50853010992242c90602001620004df565b6000546001600160a01b03163314620005ca5760405163118cdaa760e01b815233600482015260240162000053565b565b80516001600160a01b0381168114620005e457600080fd5b919050565b60008060408385031215620005fd57600080fd5b6200060883620005cc565b91506200061860208401620005cc565b90509250929050565b6000602082840312156200063457600080fd5b6200063f82620005cc565b9392505050565b615b0780620006566000396000f3fe60806040523480156200001157600080fd5b5060043610620000b75760003560e01c806392dd9d65116200007a57806392dd9d65146200012c578063c1733f681462000143578063ccd41cce146200015a578063cf753d371462000171578063f2fde38b1462000188578063fb88d79c146200019f57600080fd5b80632d5f118714620000bc57806350b0183814620000e55780635f2773a514620000fe578063715018a614620001105780638da5cb5b146200011a575b600080fd5b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b620000fc620000f636600462001ab8565b620001d6565b005b6002546001600160a01b0316620000c9565b620000fc62000241565b6000546001600160a01b0316620000c9565b620000fc6200013d36600462001af6565b62000259565b620000c96200015436600462001b1d565b62000671565b620000fc6200016b36600462001af6565b620006a8565b620000fc6200018236600462001c3f565b62000759565b620000fc6200019936600462001af6565b620016ed565b620000c9620001b036600462001cdf565b80516020818301810180516003825292820191909301209152546001600160a01b031681565b620001e062001731565b60405163f2fde38b60e01b81526001600160a01b03828116600483015283169063f2fde38b90602401600060405180830381600087803b1580156200022457600080fd5b505af115801562000239573d6000803e3d6000fd5b505050505050565b6200024b62001731565b62000257600062001760565b565b6200026362001731565b6001600160a01b038116620002bf5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000309573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032f919062001d20565b6001600160a01b031614158015620003be575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b2919062001d20565b6001600160a01b031614155b801562000442575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000410573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000436919062001d20565b6001600160a01b031614155b8015620004c6575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000494573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ba919062001d20565b6001600160a01b031614155b80156200054a575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000518573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053e919062001d20565b6001600160a01b031614155b8015620005ce575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200059c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005c2919062001d20565b6001600160a01b031614155b6200061c5760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f726974796044820152606401620002b6565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b8906020015b60405180910390a150565b6000600383836040516200068792919062001d40565b908152604051908190036020019020546001600160a01b0316905092915050565b620006b262001731565b6001600160a01b0381166200070a5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401620002b6565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fae81f4fee1b2d830e39ae449967642aaa0e5a1771aa200d0a50853010992242c9060200162000666565b6200076362001731565b60006001600160a01b031660038460405162000780919062001d76565b908152604051908190036020019020546001600160a01b031614620007e15760405162461bcd60e51b81526020600482015260166024820152751d1bdad95b88185b1c9958591e4819195c1b1bde595960521b6044820152606401620002b6565b620007f0604082018262001d94565b905062000801602083018362001d94565b905014620008525760405162461bcd60e51b815260206004820152601760248201527f636c61696d207061747465726e206e6f742076616c69640000000000000000006044820152606401620002b6565b600562000863602083018362001d94565b90501115620008bf5760405162461bcd60e51b815260206004820152602160248201527f6d6178203520636c61696d2069737375657273206174206465706c6f796d656e6044820152601d60fa1b6064820152608401620002b6565b6005620008cd828062001d94565b905011156200091f5760405162461bcd60e51b815260206004820181905260248201527f6d6178203520636c61696d20746f70696373206174206465706c6f796d656e746044820152606401620002b6565b60056200093060c084018462001d94565b90501115801562000952575060056200094d60e084018462001d94565b905011155b620009a05760405162461bcd60e51b815260206004820152601a60248201527f6d61782035206167656e7473206174206465706c6f796d656e740000000000006044820152606401620002b6565b601e620009b261010084018462001d94565b9050111562000a105760405162461bcd60e51b815260206004820152602360248201527f6d6178203330206d6f64756c6520616374696f6e73206174206465706c6f796d604482015262195b9d60ea1b6064820152608401620002b6565b62000a2061012083018362001d94565b905062000a3261010084018462001d94565b9050101562000a845760405162461bcd60e51b815260206004820152601a60248201527f696e76616c696420636f6d706c69616e6365207061747465726e0000000000006044820152606401620002b6565b60015460009062000aa09085906001600160a01b0316620017b0565b60015490915060009062000abf9086906001600160a01b03166200183f565b60015490915060009062000ade9087906001600160a01b031662001854565b905060008062000af560a088016080890162001af6565b6001600160a01b03160362000b255760015462000b1d9088906001600160a01b031662001869565b905062000b3a565b62000b3760a087016080880162001af6565b90505b60015460009062000b599089906001600160a01b03168787866200187e565b60015490915060009062000c4b908a906001600160a01b0316848762000b8360208e018e62001de8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d806040019062000bd8919062001de8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508e606001602081019062000c30919062001e32565b8f60a001602081019062000c45919062001af6565b62001925565b9050600062000c6160c08a0160a08b0162001af6565b6001600160a01b03160362000d5e576002546000906001600160a01b0316633d56ff668362000c9460208d018d62001af6565b8d6040518463ffffffff1660e01b815260040162000cb59392919062001e85565b6020604051808303816000875af115801562000cd5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000cfb919062001d20565b604051633d1ddc5b60e01b81526001600160a01b03808316600483015291925090831690633d1ddc5b90602401600060405180830381600087803b15801562000d4357600080fd5b505af115801562000d58573d6000803e3d6000fd5b50505050505b60005b62000d6d888062001d94565b905081101562000e0c576001600160a01b03861663c7b2255162000d928a8062001d94565b8481811062000da55762000da562001ebc565b905060200201356040518263ffffffff1660e01b815260040162000dcb91815260200190565b600060405180830381600087803b15801562000de657600080fd5b505af115801562000dfb573d6000803e3d6000fd5b50506001909201915062000d619050565b5060005b62000e1f602089018962001d94565b905081101562000f08576001600160a01b038716639f63ea9862000e4760208b018b62001d94565b8481811062000e5a5762000e5a62001ebc565b905060200201602081019062000e71919062001af6565b62000e8060408c018c62001d94565b8581811062000e935762000e9362001ebc565b905060200281019062000ea7919062001d94565b6040518463ffffffff1660e01b815260040162000ec79392919062001ed2565b600060405180830381600087803b15801562000ee257600080fd5b505af115801562000ef7573d6000803e3d6000fd5b50506001909201915062000e109050565b5060405163690a49f960e01b81526001600160a01b03838116600483015284169063690a49f990602401600060405180830381600087803b15801562000f4d57600080fd5b505af115801562000f62573d6000803e3d6000fd5b5050604051634273cc2160e11b81526001600160a01b038481166004830152851692506384e798429150602401600060405180830381600087803b15801562000faa57600080fd5b505af115801562000fbf573d6000803e3d6000fd5b5050505060005b62000fd560c08a018a62001d94565b90508110156200108f576001600160a01b0383166384e7984262000ffd60c08c018c62001d94565b8481811062001010576200101062001ebc565b905060200201602081019062001027919062001af6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b1580156200106957600080fd5b505af11580156200107e573d6000803e3d6000fd5b50506001909201915062000fc69050565b5060005b620010a260e08a018a62001d94565b90508110156200115c576001600160a01b0382166384e79842620010ca60e08c018c62001d94565b84818110620010dd57620010dd62001ebc565b9050602002016020810190620010f4919062001af6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b1580156200113657600080fd5b505af11580156200114b573d6000803e3d6000fd5b505060019092019150620010939050565b5060005b620011706101008a018a62001d94565b9050811015620013d0576001600160a01b03851663a446d49f620011996101008c018c62001d94565b84818110620011ac57620011ac62001ebc565b9050602002016020810190620011c3919062001af6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801562001208573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200122e919062001f1d565b620012d8576001600160a01b038516631ed86f19620012526101008c018c62001d94565b8481811062001265576200126562001ebc565b90506020020160208101906200127c919062001af6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015620012be57600080fd5b505af1158015620012d3573d6000803e3d6000fd5b505050505b620012e86101208a018a62001d94565b9050811015620013c7576001600160a01b03851663efb22d33620013116101208c018c62001d94565b8481811062001324576200132462001ebc565b905060200281019062001338919062001de8565b620013486101008e018e62001d94565b868181106200135b576200135b62001ebc565b905060200201602081019062001372919062001af6565b6040518463ffffffff1660e01b8152600401620013929392919062001f41565b600060405180830381600087803b158015620013ad57600080fd5b505af1158015620013c2573d6000803e3d6000fd5b505050505b60010162001160565b508060038a604051620013e4919062001d76565b9081526040516020918190038201902080546001600160a01b0319166001600160a01b039384161790559082169063f2fde38b9062001426908b018b62001af6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b1580156200146857600080fd5b505af11580156200147d573d6000803e3d6000fd5b5050506001600160a01b038316905063f2fde38b620014a060208b018b62001af6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015620014e257600080fd5b505af1158015620014f7573d6000803e3d6000fd5b5050506001600160a01b038716905063f2fde38b6200151a60208b018b62001af6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b1580156200155c57600080fd5b505af115801562001571573d6000803e3d6000fd5b5050506001600160a01b038616905063f2fde38b6200159460208b018b62001af6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015620015d657600080fd5b505af1158015620015eb573d6000803e3d6000fd5b5050506001600160a01b038516905063f2fde38b6200160e60208b018b62001af6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b1580156200165057600080fd5b505af115801562001665573d6000803e3d6000fd5b505050508860405162001679919062001d76565b604080519182900382206001600160a01b0385811684528681166020850152898116848401528881166060850152878116608085015291519092918416917f057adae5fa3e9caa8a0d584edff60f61558d33f073412ec2d66d558b739e0a41919081900360a00190a3505050505050505050565b620016f762001731565b6001600160a01b0381166200172357604051631e4fbdf760e01b815260006004820152602401620002b6565b6200172e8162001760565b50565b6000546001600160a01b03163314620002575760405163118cdaa760e01b8152336004820152602401620002b6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060405180602001620017c59062001a4e565b601f1982820381018352601f9091011660408181526001600160a01b0386166020830152919250600091016040516020818303038152906040529050600082826040516020016200181892919062001f82565b6040516020818303038152906040529050620018358682620019c6565b9695505050505050565b60008060405180602001620017c59062001a5c565b60008060405180602001620017c59062001a6a565b60008060405180602001620017c59062001a78565b60008060405180602001620018939062001a86565b601f1982820381018352601f9091011660408181526001600160a01b03898116602084015288811682840152878116606084015286166080808401919091528151808403909101815260a08301909152919250600090620018fb908490849060c00162001f82565b6040516020818303038152906040529050620019188982620019c6565b9998505050505050505050565b600080604051806020016200193a9062001a94565b6020820181038252601f19601f82011660405250905060008989898989898960405160200162001971979695949392919062001fb5565b6040516020818303038152906040529050600082826040516020016200199992919062001f82565b6040516020818303038152906040529050620019b68c82620019c6565b9c9b505050505050505050505050565b60008083604051602001620019dc919062001d76565b60405160208183030381529060405280519060200120905060008360200184518381836000f592505050803b62001a1257600080fd5b6040516001600160a01b038216907ff40fcec21964ffb566044d083b4073f29f7f7929110ea19e1b3ebe375d89055e90600090a2949350505050565b6108fc806200201e83390190565b6108fc806200291a83390190565b6108fc806200321683390190565b6108fc8062003b1283390190565b6109bf806200440e83390190565b610d058062004dcd83390190565b6001600160a01b03811681146200172e57600080fd5b6000806040838503121562001acc57600080fd5b823562001ad98162001aa2565b9150602083013562001aeb8162001aa2565b809150509250929050565b60006020828403121562001b0957600080fd5b813562001b168162001aa2565b9392505050565b6000806020838503121562001b3157600080fd5b823567ffffffffffffffff8082111562001b4a57600080fd5b818501915085601f83011262001b5f57600080fd5b81358181111562001b6f57600080fd5b86602082850101111562001b8257600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011262001bbc57600080fd5b813567ffffffffffffffff8082111562001bda5762001bda62001b94565b604051601f8301601f19908116603f0116810190828211818310171562001c055762001c0562001b94565b8160405283815286602085880101111562001c1f57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121562001c5557600080fd5b833567ffffffffffffffff8082111562001c6e57600080fd5b62001c7c8783880162001baa565b9450602086013591508082111562001c9357600080fd5b90850190610140828803121562001ca957600080fd5b9092506040850135908082111562001cc057600080fd5b5084016060818703121562001cd457600080fd5b809150509250925092565b60006020828403121562001cf257600080fd5b813567ffffffffffffffff81111562001d0a57600080fd5b62001d188482850162001baa565b949350505050565b60006020828403121562001d3357600080fd5b815162001b168162001aa2565b8183823760009101908152919050565b60005b8381101562001d6d57818101518382015260200162001d53565b50506000910152565b6000825162001d8a81846020870162001d50565b9190910192915050565b6000808335601e1984360301811262001dac57600080fd5b83018035915067ffffffffffffffff82111562001dc857600080fd5b6020019150600581901b360382131562001de157600080fd5b9250929050565b6000808335601e1984360301811262001e0057600080fd5b83018035915067ffffffffffffffff82111562001e1c57600080fd5b60200191503681900382131562001de157600080fd5b60006020828403121562001e4557600080fd5b813560ff8116811462001b1657600080fd5b6000815180845262001e7181602086016020860162001d50565b601f01601f19169290920160200192915050565b6001600160a01b0384811682528316602082015260606040820181905260009062001eb39083018462001e57565b95945050505050565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0384168152604060208201819052810182905260006001600160fb1b0383111562001f0357600080fd5b8260051b8085606085013791909101606001949350505050565b60006020828403121562001f3057600080fd5b8151801515811462001b1657600080fd5b6040815282604082015282846060830137600060608483018101919091526001600160a01b03929092166020820152601f909201601f191690910101919050565b6000835162001f9681846020880162001d50565b83519083019062001fac81836020880162001d50565b01949350505050565b600060018060a01b03808a1683528089166020840152808816604084015260e0606084015262001fe960e084018862001e57565b838103608085015262001ffd818862001e57565b60ff9690961660a0850152509290921660c090910152509594505050505056fe608060405234801561001057600080fd5b506040516108fc3803806108fc83398101604081905261002f9161022a565b6001600160a01b03811661008a5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6100a0816000805160206108dc83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a260006100ec6000805160206108dc8339815191525490565b6001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa158015610129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014d919061022a565b60408051600481526024810182526020810180516001600160e01b03166370e39c9560e11b17905290519192506000916001600160a01b038416916101919161025a565b600060405180830381855af49150503d80600081146101cc576040519150601f19603f3d011682016040523d82523d6000602084013e6101d1565b606091505b50509050806102225760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e000000000000000000006044820152606401610081565b505050610289565b60006020828403121561023c57600080fd5b81516001600160a01b038116811461025357600080fd5b9392505050565b6000825160005b8181101561027b5760208186018101518583015201610261565b506000920191825250919050565b610644806102986000396000f3fe6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca26469706673582212206955ffd130838bdc539223ccd03c1c04fb662e05c259ad982afe29afad397fd564736f6c63430008180033821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc608060405234801561001057600080fd5b506040516108fc3803806108fc83398101604081905261002f9161022a565b6001600160a01b03811661008a5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6100a0816000805160206108dc83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a260006100ec6000805160206108dc8339815191525490565b6001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014d919061022a565b60408051600481526024810182526020810180516001600160e01b03166370e39c9560e11b17905290519192506000916001600160a01b038416916101919161025a565b600060405180830381855af49150503d80600081146101cc576040519150601f19603f3d011682016040523d82523d6000602084013e6101d1565b606091505b50509050806102225760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e000000000000000000006044820152606401610081565b505050610289565b60006020828403121561023c57600080fd5b81516001600160a01b038116811461025357600080fd5b9392505050565b6000825160005b8181101561027b5760208186018101518583015201610261565b506000920191825250919050565b610644806102986000396000f3fe6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca264697066735822122040d5d3640bec242b642b94ef000a34014b5bb835c9537e7060464697004ec5eb64736f6c63430008180033821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc608060405234801561001057600080fd5b506040516108fc3803806108fc83398101604081905261002f9161022a565b6001600160a01b03811661008a5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6100a0816000805160206108dc83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a260006100ec6000805160206108dc8339815191525490565b6001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014d919061022a565b60408051600481526024810182526020810180516001600160e01b03166370e39c9560e11b17905290519192506000916001600160a01b038416916101919161025a565b600060405180830381855af49150503d80600081146101cc576040519150601f19603f3d011682016040523d82523d6000602084013e6101d1565b606091505b50509050806102225760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e000000000000000000006044820152606401610081565b505050610289565b60006020828403121561023c57600080fd5b81516001600160a01b038116811461025357600080fd5b9392505050565b6000825160005b8181101561027b5760208186018101518583015201610261565b506000920191825250919050565b610644806102986000396000f3fe6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca2646970667358221220c6dc8eb95ea71b8562be58b345e202616a697695c4d857dc39d6d92f361fda5064736f6c63430008180033821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc608060405234801561001057600080fd5b506040516108fc3803806108fc83398101604081905261002f9161022a565b6001600160a01b03811661008a5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6100a0816000805160206108dc83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a260006100ec6000805160206108dc8339815191525490565b6001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014d919061022a565b60408051600481526024810182526020810180516001600160e01b03166370e39c9560e11b17905290519192506000916001600160a01b038416916101919161025a565b600060405180830381855af49150503d80600081146101cc576040519150601f19603f3d011682016040523d82523d6000602084013e6101d1565b606091505b50509050806102225760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e000000000000000000006044820152606401610081565b505050610289565b60006020828403121561023c57600080fd5b81516001600160a01b038116811461025357600080fd5b9392505050565b6000825160005b8181101561027b5760208186018101518583015201610261565b506000920191825250919050565b610644806102986000396000f3fe6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca26469706673582212205f0e682fedfcda123e3a8edcca67fc085e4ecd1fd5a649c9db3628d7d13f809764736f6c63430008180033821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc608060405234801561001057600080fd5b506040516109bf3803806109bf83398101604081905261002f916102a7565b6001600160a01b0384161580159061004f57506001600160a01b03831615155b801561006357506001600160a01b03821615155b801561007757506001600160a01b03811615155b6100c85760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6100de8460008051602061099f83398151915255565b6040516001600160a01b038516907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a2600061012a60008051602061099f8339815191525490565b6001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610167573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061018b91906102fb565b6040516001600160a01b0386811660248301528581166044830152848116606483015291925060009183169060840160408051601f198184030181529181526020820180516001600160e01b031663184b955960e01b179052516101ef919061031d565b600060405180830381855af49150503d806000811461022a576040519150601f19603f3d011682016040523d82523d6000602084013e61022f565b606091505b50509050806102805760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e0000000000000000000060448201526064016100bf565b50505050505061034c565b80516001600160a01b03811681146102a257600080fd5b919050565b600080600080608085870312156102bd57600080fd5b6102c68561028b565b93506102d46020860161028b565b92506102e26040860161028b565b91506102f06060860161028b565b905092959194509250565b60006020828403121561030d57600080fd5b6103168261028b565b9392505050565b6000825160005b8181101561033e5760208186018101518583015201610324565b506000920191825250919050565b6106448061035b6000396000f3fe6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca2646970667358221220972a136aaf8f06814fc9dbadcf5086a5c36c6b5e9f884bc093dce2a66933965364736f6c63430008180033821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc60806040523480156200001157600080fd5b5060405162000d0538038062000d058339810160408190526200003491620004dd565b6001600160a01b038716158015906200005557506001600160a01b03861615155b80156200006a57506001600160a01b03851615155b620000bc5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b604051602001620000d890602080825260009082015260400190565b6040516020818303038152906040528051906020012084604051602001620001019190620005da565b60405160208183030381529060405280519060200120141580156200017f57506040516020016200013d90602080825260009082015260400190565b6040516020818303038152906040528051906020012083604051602001620001669190620005da565b6040516020818303038152906040528051906020012014155b620001cd5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d20656d70747920737472696e67006044820152606401620000b3565b60128260ff161115620002235760405162461bcd60e51b815260206004820152601960248201527f646563696d616c73206265747765656e203020616e64203138000000000000006044820152606401620000b3565b6200023b8760008051602062000ce583398151915255565b6040516001600160a01b038816907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a260006200028960008051602062000ce58339815191525490565b6001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ed9190620005f6565b90506000816001600160a01b0316888888888888604051602401620003189695949392919062000614565b60408051601f198184030181529181526020820180516001600160e01b0316633e46d86760e21b179052516200034f919062000673565b600060405180830381855af49150503d80600081146200038c576040519150601f19603f3d011682016040523d82523d6000602084013e62000391565b606091505b5050905080620003e45760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e000000000000000000006044820152606401620000b3565b50505050505050505062000691565b80516001600160a01b03811681146200040b57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200044357818101518382015260200162000429565b50506000910152565b600082601f8301126200045e57600080fd5b81516001600160401b03808211156200047b576200047b62000410565b604051601f8301601f19908116603f01168101908282118183101715620004a657620004a662000410565b81604052838152866020858801011115620004c057600080fd5b620004d384602083016020890162000426565b9695505050505050565b600080600080600080600060e0888a031215620004f957600080fd5b6200050488620003f3565b96506200051460208901620003f3565b95506200052460408901620003f3565b60608901519095506001600160401b03808211156200054257600080fd5b620005508b838c016200044c565b955060808a01519150808211156200056757600080fd5b50620005768a828b016200044c565b93505060a088015160ff811681146200058e57600080fd5b91506200059e60c08901620003f3565b905092959891949750929550565b60008151808452620005c681602086016020860162000426565b601f01601f19169290920160200192915050565b602081526000620005ef6020830184620005ac565b9392505050565b6000602082840312156200060957600080fd5b620005ef82620003f3565b600060018060a01b038089168352808816602084015260c060408401526200064060c0840188620005ac565b8381036060850152620006548188620005ac565b60ff969096166080850152509290921660a09091015250949350505050565b600082516200068781846020870162000426565b9190910192915050565b61064480620006a16000396000f3fe6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca2646970667358221220097922edd211735e90a207527b386ae7265be6fe3958af597f2c8cab1eb70dc664736f6c63430008180033821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca26469706673582212202ff618bf14d986bbf9abbbe36a78133bb174d954785f40d88e0960c4225a6d1564736f6c63430008180033","sourceMap":"4609:11398:61:-:0;;;5192:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5266:10;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;640:51:165;613:18;;1322:31:141;;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;5288:52:61::1;5315:24:::0;5288:26:::1;:52::i;:::-;5350:24;5363:10:::0;5350:12:::1;:24::i;:::-;5192:189:::0;;4609:11398;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;10407:1131:61:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;10521:38:61;::::1;10513:82;;;::::0;-1:-1:-1;;;10513:82:61;;904:2:165;10513:82:61::1;::::0;::::1;886:21:165::0;943:2;923:18;;;916:30;982:33;962:18;;;955:61;1033:18;;10513:82:61::1;702:355:165::0;10513:82:61::1;10809:1;-1:-1:-1::0;;;;;10716:95:61::1;10746:24;-1:-1:-1::0;;;;;10716:79:61::1;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10716:95:61::1;;;:204;;;;;10918:1;-1:-1:-1::0;;;;;10827:93:61::1;10857:24;-1:-1:-1::0;;;;;10827:77:61::1;;:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10827:93:61::1;;;10716:204;:312;;;;;11026:1;-1:-1:-1::0;;;;;10936:92:61::1;10966:24;-1:-1:-1::0;;;;;10936:76:61::1;;:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10936:92:61::1;;;10716:312;:421;;;;;11135:1;-1:-1:-1::0;;;;;11044:93:61::1;11074:24;-1:-1:-1::0;;;;;11044:77:61::1;;:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11044:93:61::1;;;10716:421;:529;;;;;11243:1;-1:-1:-1::0;;;;;11153:92:61::1;11183:24;-1:-1:-1::0;;;;;11153:76:61::1;;:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11153:92:61::1;;;10716:529;:638;;;;;11352:1;-1:-1:-1::0;;;;;11261:93:61::1;11291:24;-1:-1:-1::0;;;;;11261:77:61::1;;:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11261:93:61::1;;;10716:638;10695:708;;;::::0;-1:-1:-1;;;10695:708:61;;1477:2:165;10695:708:61::1;::::0;::::1;1459:21:165::0;;;1496:18;;;1489:30;1555:34;1535:18;;;1528:62;1607:18;;10695:708:61::1;1275:356:165::0;10695:708:61::1;11413:24;:51:::0;;-1:-1:-1;;;;;;11413:51:61::1;-1:-1:-1::0;;;;;11413:51:61;::::1;::::0;;::::1;::::0;;;11479:52:::1;::::0;640:51:165;;;11479:52:61::1;::::0;628:2:165;613:18;11479:52:61::1;;;;;;;;10407:1131:::0;:::o;11606:225::-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;11692:24:61;::::1;11684:68;;;::::0;-1:-1:-1;;;11684:68:61;;904:2:165;11684:68:61::1;::::0;::::1;886:21:165::0;943:2;923:18;;;916:30;982:33;962:18;;;955:61;1033:18;;11684:68:61::1;702:355:165::0;11684:68:61::1;11762:10;:23:::0;;-1:-1:-1;;;;;;11762:23:61::1;-1:-1:-1::0;;;;;11762:23:61;::::1;::::0;;::::1;::::0;;;11800:24:::1;::::0;640:51:165;;;11800:24:61::1;::::0;628:2:165;613:18;11800:24:61::1;494:203:165::0;1796:162:141;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;640:51:165;613:18;;1901:40:141;494:203:165;1851:101:141;1796:162::o;14:177:165:-;93:13;;-1:-1:-1;;;;;135:31:165;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;1062:208::-;1132:6;1185:2;1173:9;1164:7;1160:23;1156:32;1153:52;;;1201:1;1198;1191:12;1153:52;1224:40;1254:9;1224:40;:::i;:::-;1214:50;1062:208;-1:-1:-1;;;1062:208:165:o;1275:356::-;4609:11398:61;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523480156200001157600080fd5b5060043610620000b75760003560e01c806392dd9d65116200007a57806392dd9d65146200012c578063c1733f681462000143578063ccd41cce146200015a578063cf753d371462000171578063f2fde38b1462000188578063fb88d79c146200019f57600080fd5b80632d5f118714620000bc57806350b0183814620000e55780635f2773a514620000fe578063715018a614620001105780638da5cb5b146200011a575b600080fd5b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b620000fc620000f636600462001ab8565b620001d6565b005b6002546001600160a01b0316620000c9565b620000fc62000241565b6000546001600160a01b0316620000c9565b620000fc6200013d36600462001af6565b62000259565b620000c96200015436600462001b1d565b62000671565b620000fc6200016b36600462001af6565b620006a8565b620000fc6200018236600462001c3f565b62000759565b620000fc6200019936600462001af6565b620016ed565b620000c9620001b036600462001cdf565b80516020818301810180516003825292820191909301209152546001600160a01b031681565b620001e062001731565b60405163f2fde38b60e01b81526001600160a01b03828116600483015283169063f2fde38b90602401600060405180830381600087803b1580156200022457600080fd5b505af115801562000239573d6000803e3d6000fd5b505050505050565b6200024b62001731565b62000257600062001760565b565b6200026362001731565b6001600160a01b038116620002bf5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000309573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032f919062001d20565b6001600160a01b031614158015620003be575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b2919062001d20565b6001600160a01b031614155b801562000442575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000410573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000436919062001d20565b6001600160a01b031614155b8015620004c6575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000494573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ba919062001d20565b6001600160a01b031614155b80156200054a575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000518573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053e919062001d20565b6001600160a01b031614155b8015620005ce575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200059c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005c2919062001d20565b6001600160a01b031614155b6200061c5760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f726974796044820152606401620002b6565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b8906020015b60405180910390a150565b6000600383836040516200068792919062001d40565b908152604051908190036020019020546001600160a01b0316905092915050565b620006b262001731565b6001600160a01b0381166200070a5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401620002b6565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fae81f4fee1b2d830e39ae449967642aaa0e5a1771aa200d0a50853010992242c9060200162000666565b6200076362001731565b60006001600160a01b031660038460405162000780919062001d76565b908152604051908190036020019020546001600160a01b031614620007e15760405162461bcd60e51b81526020600482015260166024820152751d1bdad95b88185b1c9958591e4819195c1b1bde595960521b6044820152606401620002b6565b620007f0604082018262001d94565b905062000801602083018362001d94565b905014620008525760405162461bcd60e51b815260206004820152601760248201527f636c61696d207061747465726e206e6f742076616c69640000000000000000006044820152606401620002b6565b600562000863602083018362001d94565b90501115620008bf5760405162461bcd60e51b815260206004820152602160248201527f6d6178203520636c61696d2069737375657273206174206465706c6f796d656e6044820152601d60fa1b6064820152608401620002b6565b6005620008cd828062001d94565b905011156200091f5760405162461bcd60e51b815260206004820181905260248201527f6d6178203520636c61696d20746f70696373206174206465706c6f796d656e746044820152606401620002b6565b60056200093060c084018462001d94565b90501115801562000952575060056200094d60e084018462001d94565b905011155b620009a05760405162461bcd60e51b815260206004820152601a60248201527f6d61782035206167656e7473206174206465706c6f796d656e740000000000006044820152606401620002b6565b601e620009b261010084018462001d94565b9050111562000a105760405162461bcd60e51b815260206004820152602360248201527f6d6178203330206d6f64756c6520616374696f6e73206174206465706c6f796d604482015262195b9d60ea1b6064820152608401620002b6565b62000a2061012083018362001d94565b905062000a3261010084018462001d94565b9050101562000a845760405162461bcd60e51b815260206004820152601a60248201527f696e76616c696420636f6d706c69616e6365207061747465726e0000000000006044820152606401620002b6565b60015460009062000aa09085906001600160a01b0316620017b0565b60015490915060009062000abf9086906001600160a01b03166200183f565b60015490915060009062000ade9087906001600160a01b031662001854565b905060008062000af560a088016080890162001af6565b6001600160a01b03160362000b255760015462000b1d9088906001600160a01b031662001869565b905062000b3a565b62000b3760a087016080880162001af6565b90505b60015460009062000b599089906001600160a01b03168787866200187e565b60015490915060009062000c4b908a906001600160a01b0316848762000b8360208e018e62001de8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d806040019062000bd8919062001de8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508e606001602081019062000c30919062001e32565b8f60a001602081019062000c45919062001af6565b62001925565b9050600062000c6160c08a0160a08b0162001af6565b6001600160a01b03160362000d5e576002546000906001600160a01b0316633d56ff668362000c9460208d018d62001af6565b8d6040518463ffffffff1660e01b815260040162000cb59392919062001e85565b6020604051808303816000875af115801562000cd5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000cfb919062001d20565b604051633d1ddc5b60e01b81526001600160a01b03808316600483015291925090831690633d1ddc5b90602401600060405180830381600087803b15801562000d4357600080fd5b505af115801562000d58573d6000803e3d6000fd5b50505050505b60005b62000d6d888062001d94565b905081101562000e0c576001600160a01b03861663c7b2255162000d928a8062001d94565b8481811062000da55762000da562001ebc565b905060200201356040518263ffffffff1660e01b815260040162000dcb91815260200190565b600060405180830381600087803b15801562000de657600080fd5b505af115801562000dfb573d6000803e3d6000fd5b50506001909201915062000d619050565b5060005b62000e1f602089018962001d94565b905081101562000f08576001600160a01b038716639f63ea9862000e4760208b018b62001d94565b8481811062000e5a5762000e5a62001ebc565b905060200201602081019062000e71919062001af6565b62000e8060408c018c62001d94565b8581811062000e935762000e9362001ebc565b905060200281019062000ea7919062001d94565b6040518463ffffffff1660e01b815260040162000ec79392919062001ed2565b600060405180830381600087803b15801562000ee257600080fd5b505af115801562000ef7573d6000803e3d6000fd5b50506001909201915062000e109050565b5060405163690a49f960e01b81526001600160a01b03838116600483015284169063690a49f990602401600060405180830381600087803b15801562000f4d57600080fd5b505af115801562000f62573d6000803e3d6000fd5b5050604051634273cc2160e11b81526001600160a01b038481166004830152851692506384e798429150602401600060405180830381600087803b15801562000faa57600080fd5b505af115801562000fbf573d6000803e3d6000fd5b5050505060005b62000fd560c08a018a62001d94565b90508110156200108f576001600160a01b0383166384e7984262000ffd60c08c018c62001d94565b8481811062001010576200101062001ebc565b905060200201602081019062001027919062001af6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b1580156200106957600080fd5b505af11580156200107e573d6000803e3d6000fd5b50506001909201915062000fc69050565b5060005b620010a260e08a018a62001d94565b90508110156200115c576001600160a01b0382166384e79842620010ca60e08c018c62001d94565b84818110620010dd57620010dd62001ebc565b9050602002016020810190620010f4919062001af6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b1580156200113657600080fd5b505af11580156200114b573d6000803e3d6000fd5b505060019092019150620010939050565b5060005b620011706101008a018a62001d94565b9050811015620013d0576001600160a01b03851663a446d49f620011996101008c018c62001d94565b84818110620011ac57620011ac62001ebc565b9050602002016020810190620011c3919062001af6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801562001208573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200122e919062001f1d565b620012d8576001600160a01b038516631ed86f19620012526101008c018c62001d94565b8481811062001265576200126562001ebc565b90506020020160208101906200127c919062001af6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015620012be57600080fd5b505af1158015620012d3573d6000803e3d6000fd5b505050505b620012e86101208a018a62001d94565b9050811015620013c7576001600160a01b03851663efb22d33620013116101208c018c62001d94565b8481811062001324576200132462001ebc565b905060200281019062001338919062001de8565b620013486101008e018e62001d94565b868181106200135b576200135b62001ebc565b905060200201602081019062001372919062001af6565b6040518463ffffffff1660e01b8152600401620013929392919062001f41565b600060405180830381600087803b158015620013ad57600080fd5b505af1158015620013c2573d6000803e3d6000fd5b505050505b60010162001160565b508060038a604051620013e4919062001d76565b9081526040516020918190038201902080546001600160a01b0319166001600160a01b039384161790559082169063f2fde38b9062001426908b018b62001af6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b1580156200146857600080fd5b505af11580156200147d573d6000803e3d6000fd5b5050506001600160a01b038316905063f2fde38b620014a060208b018b62001af6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015620014e257600080fd5b505af1158015620014f7573d6000803e3d6000fd5b5050506001600160a01b038716905063f2fde38b6200151a60208b018b62001af6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b1580156200155c57600080fd5b505af115801562001571573d6000803e3d6000fd5b5050506001600160a01b038616905063f2fde38b6200159460208b018b62001af6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015620015d657600080fd5b505af1158015620015eb573d6000803e3d6000fd5b5050506001600160a01b038516905063f2fde38b6200160e60208b018b62001af6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b1580156200165057600080fd5b505af115801562001665573d6000803e3d6000fd5b505050508860405162001679919062001d76565b604080519182900382206001600160a01b0385811684528681166020850152898116848401528881166060850152878116608085015291519092918416917f057adae5fa3e9caa8a0d584edff60f61558d33f073412ec2d66d558b739e0a41919081900360a00190a3505050505050505050565b620016f762001731565b6001600160a01b0381166200172357604051631e4fbdf760e01b815260006004820152602401620002b6565b6200172e8162001760565b50565b6000546001600160a01b03163314620002575760405163118cdaa760e01b8152336004820152602401620002b6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060405180602001620017c59062001a4e565b601f1982820381018352601f9091011660408181526001600160a01b0386166020830152919250600091016040516020818303038152906040529050600082826040516020016200181892919062001f82565b6040516020818303038152906040529050620018358682620019c6565b9695505050505050565b60008060405180602001620017c59062001a5c565b60008060405180602001620017c59062001a6a565b60008060405180602001620017c59062001a78565b60008060405180602001620018939062001a86565b601f1982820381018352601f9091011660408181526001600160a01b03898116602084015288811682840152878116606084015286166080808401919091528151808403909101815260a08301909152919250600090620018fb908490849060c00162001f82565b6040516020818303038152906040529050620019188982620019c6565b9998505050505050505050565b600080604051806020016200193a9062001a94565b6020820181038252601f19601f82011660405250905060008989898989898960405160200162001971979695949392919062001fb5565b6040516020818303038152906040529050600082826040516020016200199992919062001f82565b6040516020818303038152906040529050620019b68c82620019c6565b9c9b505050505050505050505050565b60008083604051602001620019dc919062001d76565b60405160208183030381529060405280519060200120905060008360200184518381836000f592505050803b62001a1257600080fd5b6040516001600160a01b038216907ff40fcec21964ffb566044d083b4073f29f7f7929110ea19e1b3ebe375d89055e90600090a2949350505050565b6108fc806200201e83390190565b6108fc806200291a83390190565b6108fc806200321683390190565b6108fc8062003b1283390190565b6109bf806200440e83390190565b610d058062004dcd83390190565b6001600160a01b03811681146200172e57600080fd5b6000806040838503121562001acc57600080fd5b823562001ad98162001aa2565b9150602083013562001aeb8162001aa2565b809150509250929050565b60006020828403121562001b0957600080fd5b813562001b168162001aa2565b9392505050565b6000806020838503121562001b3157600080fd5b823567ffffffffffffffff8082111562001b4a57600080fd5b818501915085601f83011262001b5f57600080fd5b81358181111562001b6f57600080fd5b86602082850101111562001b8257600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011262001bbc57600080fd5b813567ffffffffffffffff8082111562001bda5762001bda62001b94565b604051601f8301601f19908116603f0116810190828211818310171562001c055762001c0562001b94565b8160405283815286602085880101111562001c1f57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121562001c5557600080fd5b833567ffffffffffffffff8082111562001c6e57600080fd5b62001c7c8783880162001baa565b9450602086013591508082111562001c9357600080fd5b90850190610140828803121562001ca957600080fd5b9092506040850135908082111562001cc057600080fd5b5084016060818703121562001cd457600080fd5b809150509250925092565b60006020828403121562001cf257600080fd5b813567ffffffffffffffff81111562001d0a57600080fd5b62001d188482850162001baa565b949350505050565b60006020828403121562001d3357600080fd5b815162001b168162001aa2565b8183823760009101908152919050565b60005b8381101562001d6d57818101518382015260200162001d53565b50506000910152565b6000825162001d8a81846020870162001d50565b9190910192915050565b6000808335601e1984360301811262001dac57600080fd5b83018035915067ffffffffffffffff82111562001dc857600080fd5b6020019150600581901b360382131562001de157600080fd5b9250929050565b6000808335601e1984360301811262001e0057600080fd5b83018035915067ffffffffffffffff82111562001e1c57600080fd5b60200191503681900382131562001de157600080fd5b60006020828403121562001e4557600080fd5b813560ff8116811462001b1657600080fd5b6000815180845262001e7181602086016020860162001d50565b601f01601f19169290920160200192915050565b6001600160a01b0384811682528316602082015260606040820181905260009062001eb39083018462001e57565b95945050505050565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0384168152604060208201819052810182905260006001600160fb1b0383111562001f0357600080fd5b8260051b8085606085013791909101606001949350505050565b60006020828403121562001f3057600080fd5b8151801515811462001b1657600080fd5b6040815282604082015282846060830137600060608483018101919091526001600160a01b03929092166020820152601f909201601f191690910101919050565b6000835162001f9681846020880162001d50565b83519083019062001fac81836020880162001d50565b01949350505050565b600060018060a01b03808a1683528089166020840152808816604084015260e0606084015262001fe960e084018862001e57565b838103608085015262001ffd818862001e57565b60ff9690961660a0850152509290921660c090910152509594505050505056fe608060405234801561001057600080fd5b506040516108fc3803806108fc83398101604081905261002f9161022a565b6001600160a01b03811661008a5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6100a0816000805160206108dc83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a260006100ec6000805160206108dc8339815191525490565b6001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa158015610129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014d919061022a565b60408051600481526024810182526020810180516001600160e01b03166370e39c9560e11b17905290519192506000916001600160a01b038416916101919161025a565b600060405180830381855af49150503d80600081146101cc576040519150601f19603f3d011682016040523d82523d6000602084013e6101d1565b606091505b50509050806102225760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e000000000000000000006044820152606401610081565b505050610289565b60006020828403121561023c57600080fd5b81516001600160a01b038116811461025357600080fd5b9392505050565b6000825160005b8181101561027b5760208186018101518583015201610261565b506000920191825250919050565b610644806102986000396000f3fe6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca26469706673582212206955ffd130838bdc539223ccd03c1c04fb662e05c259ad982afe29afad397fd564736f6c63430008180033821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc608060405234801561001057600080fd5b506040516108fc3803806108fc83398101604081905261002f9161022a565b6001600160a01b03811661008a5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6100a0816000805160206108dc83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a260006100ec6000805160206108dc8339815191525490565b6001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014d919061022a565b60408051600481526024810182526020810180516001600160e01b03166370e39c9560e11b17905290519192506000916001600160a01b038416916101919161025a565b600060405180830381855af49150503d80600081146101cc576040519150601f19603f3d011682016040523d82523d6000602084013e6101d1565b606091505b50509050806102225760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e000000000000000000006044820152606401610081565b505050610289565b60006020828403121561023c57600080fd5b81516001600160a01b038116811461025357600080fd5b9392505050565b6000825160005b8181101561027b5760208186018101518583015201610261565b506000920191825250919050565b610644806102986000396000f3fe6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca264697066735822122040d5d3640bec242b642b94ef000a34014b5bb835c9537e7060464697004ec5eb64736f6c63430008180033821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc608060405234801561001057600080fd5b506040516108fc3803806108fc83398101604081905261002f9161022a565b6001600160a01b03811661008a5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6100a0816000805160206108dc83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a260006100ec6000805160206108dc8339815191525490565b6001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014d919061022a565b60408051600481526024810182526020810180516001600160e01b03166370e39c9560e11b17905290519192506000916001600160a01b038416916101919161025a565b600060405180830381855af49150503d80600081146101cc576040519150601f19603f3d011682016040523d82523d6000602084013e6101d1565b606091505b50509050806102225760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e000000000000000000006044820152606401610081565b505050610289565b60006020828403121561023c57600080fd5b81516001600160a01b038116811461025357600080fd5b9392505050565b6000825160005b8181101561027b5760208186018101518583015201610261565b506000920191825250919050565b610644806102986000396000f3fe6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca2646970667358221220c6dc8eb95ea71b8562be58b345e202616a697695c4d857dc39d6d92f361fda5064736f6c63430008180033821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc608060405234801561001057600080fd5b506040516108fc3803806108fc83398101604081905261002f9161022a565b6001600160a01b03811661008a5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6100a0816000805160206108dc83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a260006100ec6000805160206108dc8339815191525490565b6001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014d919061022a565b60408051600481526024810182526020810180516001600160e01b03166370e39c9560e11b17905290519192506000916001600160a01b038416916101919161025a565b600060405180830381855af49150503d80600081146101cc576040519150601f19603f3d011682016040523d82523d6000602084013e6101d1565b606091505b50509050806102225760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e000000000000000000006044820152606401610081565b505050610289565b60006020828403121561023c57600080fd5b81516001600160a01b038116811461025357600080fd5b9392505050565b6000825160005b8181101561027b5760208186018101518583015201610261565b506000920191825250919050565b610644806102986000396000f3fe6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca26469706673582212205f0e682fedfcda123e3a8edcca67fc085e4ecd1fd5a649c9db3628d7d13f809764736f6c63430008180033821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc608060405234801561001057600080fd5b506040516109bf3803806109bf83398101604081905261002f916102a7565b6001600160a01b0384161580159061004f57506001600160a01b03831615155b801561006357506001600160a01b03821615155b801561007757506001600160a01b03811615155b6100c85760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6100de8460008051602061099f83398151915255565b6040516001600160a01b038516907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a2600061012a60008051602061099f8339815191525490565b6001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610167573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061018b91906102fb565b6040516001600160a01b0386811660248301528581166044830152848116606483015291925060009183169060840160408051601f198184030181529181526020820180516001600160e01b031663184b955960e01b179052516101ef919061031d565b600060405180830381855af49150503d806000811461022a576040519150601f19603f3d011682016040523d82523d6000602084013e61022f565b606091505b50509050806102805760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e0000000000000000000060448201526064016100bf565b50505050505061034c565b80516001600160a01b03811681146102a257600080fd5b919050565b600080600080608085870312156102bd57600080fd5b6102c68561028b565b93506102d46020860161028b565b92506102e26040860161028b565b91506102f06060860161028b565b905092959194509250565b60006020828403121561030d57600080fd5b6103168261028b565b9392505050565b6000825160005b8181101561033e5760208186018101518583015201610324565b506000920191825250919050565b6106448061035b6000396000f3fe6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca2646970667358221220972a136aaf8f06814fc9dbadcf5086a5c36c6b5e9f884bc093dce2a66933965364736f6c63430008180033821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc60806040523480156200001157600080fd5b5060405162000d0538038062000d058339810160408190526200003491620004dd565b6001600160a01b038716158015906200005557506001600160a01b03861615155b80156200006a57506001600160a01b03851615155b620000bc5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b604051602001620000d890602080825260009082015260400190565b6040516020818303038152906040528051906020012084604051602001620001019190620005da565b60405160208183030381529060405280519060200120141580156200017f57506040516020016200013d90602080825260009082015260400190565b6040516020818303038152906040528051906020012083604051602001620001669190620005da565b6040516020818303038152906040528051906020012014155b620001cd5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d20656d70747920737472696e67006044820152606401620000b3565b60128260ff161115620002235760405162461bcd60e51b815260206004820152601960248201527f646563696d616c73206265747765656e203020616e64203138000000000000006044820152606401620000b3565b6200023b8760008051602062000ce583398151915255565b6040516001600160a01b038816907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a260006200028960008051602062000ce58339815191525490565b6001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ed9190620005f6565b90506000816001600160a01b0316888888888888604051602401620003189695949392919062000614565b60408051601f198184030181529181526020820180516001600160e01b0316633e46d86760e21b179052516200034f919062000673565b600060405180830381855af49150503d80600081146200038c576040519150601f19603f3d011682016040523d82523d6000602084013e62000391565b606091505b5050905080620003e45760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e000000000000000000006044820152606401620000b3565b50505050505050505062000691565b80516001600160a01b03811681146200040b57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200044357818101518382015260200162000429565b50506000910152565b600082601f8301126200045e57600080fd5b81516001600160401b03808211156200047b576200047b62000410565b604051601f8301601f19908116603f01168101908282118183101715620004a657620004a662000410565b81604052838152866020858801011115620004c057600080fd5b620004d384602083016020890162000426565b9695505050505050565b600080600080600080600060e0888a031215620004f957600080fd5b6200050488620003f3565b96506200051460208901620003f3565b95506200052460408901620003f3565b60608901519095506001600160401b03808211156200054257600080fd5b620005508b838c016200044c565b955060808a01519150808211156200056757600080fd5b50620005768a828b016200044c565b93505060a088015160ff811681146200058e57600080fd5b91506200059e60c08901620003f3565b905092959891949750929550565b60008151808452620005c681602086016020860162000426565b601f01601f19169290920160200192915050565b602081526000620005ef6020830184620005ac565b9392505050565b6000602082840312156200060957600080fd5b620005ef82620003f3565b600060018060a01b038089168352808816602084015260c060408401526200064060c0840188620005ac565b8381036060850152620006548188620005ac565b60ff969096166080850152509290921660a09091015250949350505050565b600082516200068781846020870162000426565b9190910192915050565b61064480620006a16000396000f3fe6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca2646970667358221220097922edd211735e90a207527b386ae7265be6fe3958af597f2c8cab1eb70dc664736f6c63430008180033821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca26469706673582212202ff618bf14d986bbf9abbbe36a78133bb174d954785f40d88e0960c4225a6d1564736f6c63430008180033","sourceMap":"4609:11398:61:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9844:126;9939:24;;-1:-1:-1;;;;;9939:24:61;9844:126;;;-1:-1:-1;;;;;178:32:165;;;160:51;;148:2;133:18;9844:126:61;;;;;;;9596:166;;;;;;:::i;:::-;;:::i;:::-;;10038:98;10119:10;;-1:-1:-1;;;;;10119:10:61;10038:98;;2293:101:141;;;:::i;1638:85::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;1638:85;;10407:1131:61;;;;;;:::i;:::-;;:::i;10200:125::-;;;;;;:::i;:::-;;:::i;11606:225::-;;;;;;:::i;:::-;;:::i;5521:3995::-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;5033:47:61:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5033:47:61;;;9596:166;1531:13:141;:11;:13::i;:::-;9706:49:61::1;::::0;-1:-1:-1;;;9706:49:61;;-1:-1:-1;;;;;178:32:165;;;9706:49:61::1;::::0;::::1;160:51:165::0;9706:38:61;::::1;::::0;::::1;::::0;133:18:165;;9706:49:61::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9596:166:::0;;:::o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;10407:1131:61:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;10521:38:61;::::1;10513:82;;;::::0;-1:-1:-1;;;10513:82:61;;3874:2:165;10513:82:61::1;::::0;::::1;3856:21:165::0;3913:2;3893:18;;;3886:30;3952:33;3932:18;;;3925:61;4003:18;;10513:82:61::1;;;;;;;;;10809:1;-1:-1:-1::0;;;;;10716:95:61::1;10746:24;-1:-1:-1::0;;;;;10716:79:61::1;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10716:95:61::1;;;:204;;;;;10918:1;-1:-1:-1::0;;;;;10827:93:61::1;10857:24;-1:-1:-1::0;;;;;10827:77:61::1;;:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10827:93:61::1;;;10716:204;:312;;;;;11026:1;-1:-1:-1::0;;;;;10936:92:61::1;10966:24;-1:-1:-1::0;;;;;10936:76:61::1;;:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10936:92:61::1;;;10716:312;:421;;;;;11135:1;-1:-1:-1::0;;;;;11044:93:61::1;11074:24;-1:-1:-1::0;;;;;11044:77:61::1;;:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11044:93:61::1;;;10716:421;:529;;;;;11243:1;-1:-1:-1::0;;;;;11153:92:61::1;11183:24;-1:-1:-1::0;;;;;11153:76:61::1;;:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11153:92:61::1;;;10716:529;:638;;;;;11352:1;-1:-1:-1::0;;;;;11261:93:61::1;11291:24;-1:-1:-1::0;;;;;11261:77:61::1;;:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11261:93:61::1;;;10716:638;10695:708;;;::::0;-1:-1:-1;;;10695:708:61;;4490:2:165;10695:708:61::1;::::0;::::1;4472:21:165::0;;;4509:18;;;4502:30;4568:34;4548:18;;;4541:62;4620:18;;10695:708:61::1;4288:356:165::0;10695:708:61::1;11413:24;:51:::0;;-1:-1:-1;;;;;;11413:51:61::1;-1:-1:-1::0;;;;;11413:51:61;::::1;::::0;;::::1;::::0;;;11479:52:::1;::::0;160:51:165;;;11479:52:61::1;::::0;148:2:165;133:18;11479:52:61::1;;;;;;;;10407:1131:::0;:::o;10200:125::-;10272:7;10298:13;10312:5;;10298:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;10298:20:61;;-1:-1:-1;10200:125:61;;;;:::o;11606:225::-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;11692:24:61;::::1;11684:68;;;::::0;-1:-1:-1;;;11684:68:61;;3874:2:165;11684:68:61::1;::::0;::::1;3856:21:165::0;3913:2;3893:18;;;3886:30;3952:33;3932:18;;;3925:61;4003:18;;11684:68:61::1;3672:355:165::0;11684:68:61::1;11762:10;:23:::0;;-1:-1:-1;;;;;;11762:23:61::1;-1:-1:-1::0;;;;;11762:23:61;::::1;::::0;;::::1;::::0;;;11800:24:::1;::::0;160:51:165;;;11800:24:61::1;::::0;148:2:165;133:18;11800:24:61::1;14:203:165::0;5521:3995:61;1531:13:141;:11;:13::i;:::-;5731:1:61::1;-1:-1:-1::0;;;;;5699:34:61::1;:13;5713:5;5699:20;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;;-1:-1:-1;;;;;5699:20:61::1;:34;5691:78;;;::::0;-1:-1:-1;;;5691:78:61;;5678:2:165;5691:78:61::1;::::0;::::1;5660:21:165::0;5717:2;5697:18;;;5690:30;-1:-1:-1;;;5736:18:165;;;5729:52;5798:18;;5691:78:61::1;5476:346:165::0;5691:78:61::1;5822:26;;::::0;::::1;:13:::0;:26:::1;:::i;:::-;5821:35:::0;-1:-1:-1;5788:21:61::1;;::::0;::::1;:13:::0;:21:::1;:::i;:::-;5787:30;;:69;5779:114;;;::::0;-1:-1:-1;;;5779:114:61;;7156:2:165;5779:114:61::1;::::0;::::1;7138:21:165::0;7195:2;7175:18;;;7168:30;7234:25;7214:18;;;7207:53;7277:18;;5779:114:61::1;6954:347:165::0;5779:114:61::1;5945:1;5912:21;;::::0;::::1;:13:::0;:21:::1;:::i;:::-;5911:30;;:35;;5903:90;;;::::0;-1:-1:-1;;;5903:90:61;;7508:2:165;5903:90:61::1;::::0;::::1;7490:21:165::0;7547:2;7527:18;;;7520:30;7586:34;7566:18;;;7559:62;-1:-1:-1;;;7637:18:165;;;7630:31;7678:19;;5903:90:61::1;7306:397:165::0;5903:90:61::1;6049:1;6012:25;:13:::0;;:25:::1;:::i;:::-;6011:34;;:39;;6003:93;;;::::0;-1:-1:-1;;;6003:93:61;;8460:2:165;6003:93:61::1;::::0;::::1;8442:21:165::0;;;8479:18;;;8472:30;8538:34;8518:18;;;8511:62;8590:18;;6003:93:61::1;8258:356:165::0;6003:93:61::1;6149:1;6115:22;;::::0;::::1;:13:::0;:22:::1;:::i;:::-;6114:31;;:36;;:79;;;;-1:-1:-1::0;6192:1:61::1;6155:25;;::::0;::::1;:13:::0;:25:::1;:::i;:::-;6154:34;;:39;;6114:79;6106:127;;;::::0;-1:-1:-1;;;6106:127:61;;8821:2:165;6106:127:61::1;::::0;::::1;8803:21:165::0;8860:2;8840:18;;;8833:30;8899:28;8879:18;;;8872:56;8945:18;;6106:127:61::1;8619:350:165::0;6106:127:61::1;6295:2;6252:31;;::::0;::::1;:13:::0;:31:::1;:::i;:::-;6251:40;;:46;;6243:103;;;::::0;-1:-1:-1;;;6243:103:61;;9176:2:165;6243:103:61::1;::::0;::::1;9158:21:165::0;9215:2;9195:18;;;9188:30;9254:34;9234:18;;;9227:62;-1:-1:-1;;;9305:18:165;;;9298:33;9348:19;;6243:103:61::1;8974:399:165::0;6243:103:61::1;6409:32;;::::0;::::1;:13:::0;:32:::1;:::i;:::-;6408:41:::0;-1:-1:-1;6365:31:61::1;;::::0;::::1;:13:::0;:31:::1;:::i;:::-;6364:40;;:85;;6356:133;;;::::0;-1:-1:-1;;;6356:133:61;;10141:2:165;6356:133:61::1;::::0;::::1;10123:21:165::0;10180:2;10160:18;;;10153:30;10219:28;10199:18;;;10192:56;10265:18;;6356:133:61::1;9939:350:165::0;6356:133:61::1;6572:24;::::0;6500:27:::1;::::0;6554:43:::1;::::0;6565:5;;-1:-1:-1;;;;;6572:24:61::1;6554:10;:43::i;:::-;6674:24;::::0;6500:98;;-1:-1:-1;6608:24:61::1;::::0;6656:43:::1;::::0;6667:5;;-1:-1:-1;;;;;6674:24:61::1;6656:10;:43::i;:::-;6770:24;::::0;6608:92;;-1:-1:-1;6710:21:61::1;::::0;6753:42:::1;::::0;6763:5;;-1:-1:-1;;;;;6770:24:61::1;6753:9;:42::i;:::-;6710:86:::0;-1:-1:-1;6806:28:61::1;::::0;6848:17:::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;6848:31:61::1;::::0;6844:225:::1;;6944:24;::::0;6926:43:::1;::::0;6937:5;;-1:-1:-1;;;;;6944:24:61::1;6926:10;:43::i;:::-;6895:75;;6844:225;;;7040:17;::::0;;;::::1;::::0;::::1;;:::i;:::-;7009:49;;6844:225;7136:24;::::0;7078:20:::1;::::0;7119:96:::1;::::0;7129:5;;-1:-1:-1;;;;;7136:24:61::1;7170:3:::0;7196;7210;7119:9:::1;:96::i;:::-;7314:24;::::0;7078:138;;-1:-1:-1;7226:12:61::1;::::0;7248:317:::1;::::0;7291:5;;-1:-1:-1;;;;;7314:24:61::1;7078:138:::0;7393:2;7414:18:::1;;::::0;::::1;:13:::0;:18:::1;:::i;:::-;7248:317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7450:13;:20;;;;;;;;:::i;:::-;7248:317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7488:13;:22;;;;;;;;;;:::i;:::-;7528:13;:23;;;;;;;;;;:::i;:::-;7248:12;:317::i;:::-;7226:340:::0;-1:-1:-1;7614:1:61::1;7579:23;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;7579:37:61::1;::::0;7576:214:::1;;7662:10;::::0;7632:16:::1;::::0;-1:-1:-1;;;;;7662:10:61::1;7651:42;7702:5:::0;7710:19:::1;;::::0;::::1;:13:::0;:19:::1;:::i;:::-;7731:5;7651:86;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7751:28;::::0;-1:-1:-1;;;7751:28:61;;-1:-1:-1;;;;;178:32:165;;;7751:28:61::1;::::0;::::1;160:51:165::0;7632:105:61;;-1:-1:-1;7751:18:61;;::::1;::::0;::::1;::::0;133::165;;7751:28:61::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7618:172;7576:214;7804:9;7799:137;7824:25;:13:::0;;:25:::1;:::i;:::-;7823:34;;7819:1;:38;7799:137;;;-1:-1:-1::0;;;;;7878:17:61;::::1;;7896:25;:13:::0;;:25:::1;:::i;:::-;7922:1;7896:28;;;;;;;:::i;:::-;;;;;;;7878:47;;;;;;;;;;;;;12072:25:165::0;;12060:2;12045:18;;11926:177;7878:47:61::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7859:3:61::1;::::0;;::::1;::::0;-1:-1:-1;7799:137:61::1;::::0;-1:-1:-1;7799:137:61::1;;;7950:9;7945:179;7970:21;;::::0;::::1;:13:::0;:21:::1;:::i;:::-;7969:30;;7965:1;:34;7945:179;;;-1:-1:-1::0;;;;;8020:20:61;::::1;;8054:23;;::::0;::::1;8055:13:::0;8054:23:::1;:::i;:::-;8078:1;8054:26;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8083;;::::0;::::1;:13:::0;:26:::1;:::i;:::-;8110:1;8083:29;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;8020:93;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8001:3:61::1;::::0;;::::1;::::0;-1:-1:-1;7945:179:61::1;::::0;-1:-1:-1;7945:179:61::1;;-1:-1:-1::0;8133:37:61::1;::::0;-1:-1:-1;;;8133:37:61;;-1:-1:-1;;;;;178:32:165;;;8133:37:61::1;::::0;::::1;160:51:165::0;8133:24:61;::::1;::::0;::::1;::::0;133:18:165;;8133:37:61::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8180:47:61::1;::::0;-1:-1:-1;;;8180:47:61;;-1:-1:-1;;;;;178:32:165;;;8180:47:61::1;::::0;::::1;160:51:165::0;8180:31:61;::::1;::::0;-1:-1:-1;8180:31:61::1;::::0;-1:-1:-1;133:18:165;;8180:47:61::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8242:9;8237:145;8262:22;;::::0;::::1;:13:::0;:22:::1;:::i;:::-;8261:31;;8257:1;:35;8237:145;;;-1:-1:-1::0;;;;;8313:31:61;::::1;;8345:22;;::::0;::::1;:13:::0;:22:::1;:::i;:::-;8368:1;8345:25;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8313:58;::::0;-1:-1:-1;;;;;;8313:58:61::1;::::0;;;;;;-1:-1:-1;;;;;178:32:165;;;8313:58:61::1;::::0;::::1;160:51:165::0;133:18;;8313:58:61::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8294:3:61::1;::::0;;::::1;::::0;-1:-1:-1;8237:145:61::1;::::0;-1:-1:-1;8237:145:61::1;;;8396:9;8391:154;8416:25;;::::0;::::1;:13:::0;:25:::1;:::i;:::-;8415:34;;8411:1;:38;8391:154;;;-1:-1:-1::0;;;;;8470:34:61;::::1;;8505:25;;::::0;::::1;:13:::0;:25:::1;:::i;:::-;8531:1;8505:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8470:64;::::0;-1:-1:-1;;;;;;8470:64:61::1;::::0;;;;;;-1:-1:-1;;;;;178:32:165;;;8470:64:61::1;::::0;::::1;160:51:165::0;133:18;;8470:64:61::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8451:3:61::1;::::0;;::::1;::::0;-1:-1:-1;8391:154:61::1;::::0;-1:-1:-1;8391:154:61::1;;;8559:9;8554:426;8579:31;;::::0;::::1;:13:::0;:31:::1;:::i;:::-;8578:40;;8574:1;:44;8554:426;;;-1:-1:-1::0;;;;;8644:16:61;::::1;;8661:31;;::::0;::::1;:13:::0;:31:::1;:::i;:::-;8693:1;8661:34;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8644:52;::::0;-1:-1:-1;;;;;;8644:52:61::1;::::0;;;;;;-1:-1:-1;;;;;178:32:165;;;8644:52:61::1;::::0;::::1;160:51:165::0;133:18;;8644:52:61::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8639:140;;-1:-1:-1::0;;;;;8716:12:61;::::1;;8729:31;;::::0;::::1;:13:::0;:31:::1;:::i;:::-;8761:1;8729:34;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8716:48;::::0;-1:-1:-1;;;;;;8716:48:61::1;::::0;;;;;;-1:-1:-1;;;;;178:32:165;;;8716:48:61::1;::::0;::::1;160:51:165::0;133:18;;8716:48:61::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8639:140;8801:32;;::::0;::::1;:13:::0;:32:::1;:::i;:::-;8800:41;;8796:1;:45;8792:178;;;-1:-1:-1::0;;;;;8861:21:61;::::1;;8883:32;;::::0;::::1;:13:::0;:32:::1;:::i;:::-;8916:1;8883:35;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;8920:31;;::::0;::::1;:13:::0;:31:::1;:::i;:::-;8952:1;8920:34;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8861:94;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8792:178;8620:3;;8554:426;;;;9020:5;8989:13;9003:5;8989:20;;;;;;:::i;:::-;::::0;;;::::1;::::0;::::1;::::0;;;;;;;;:37;;-1:-1:-1;;;;;;8989:37:61::1;-1:-1:-1::0;;;;;8989:37:61;;::::1;;::::0;;9036:43;;::::1;::::0;::::1;::::0;9080:19:::1;::::0;;::::1;::::0;::::1;:::i;:::-;9036:64;::::0;-1:-1:-1;;;;;;9036:64:61::1;::::0;;;;;;-1:-1:-1;;;;;178:32:165;;;9036:64:61::1;::::0;::::1;160:51:165::0;133:18;;9036:64:61::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;;;9110:40:61;::::1;::::0;-1:-1:-1;9110:40:61::1;9151:19;;::::0;::::1;::::0;::::1;:::i;:::-;9110:61;::::0;-1:-1:-1;;;;;;9110:61:61::1;::::0;;;;;;-1:-1:-1;;;;;178:32:165;;;9110:61:61::1;::::0;::::1;160:51:165::0;133:18;;9110:61:61::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;;;9181:41:61;::::1;::::0;-1:-1:-1;9181:41:61::1;9223:19;;::::0;::::1;::::0;::::1;:::i;:::-;9181:62;::::0;-1:-1:-1;;;;;;9181:62:61::1;::::0;;;;;;-1:-1:-1;;;;;178:32:165;;;9181:62:61::1;::::0;::::1;160:51:165::0;133:18;;9181:62:61::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;;;9253:41:61;::::1;::::0;-1:-1:-1;9253:41:61::1;9295:19;;::::0;::::1;::::0;::::1;:::i;:::-;9253:62;::::0;-1:-1:-1;;;;;;9253:62:61::1;::::0;;;;;;-1:-1:-1;;;;;178:32:165;;;9253:62:61::1;::::0;::::1;160:51:165::0;133:18;;9253:62:61::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;;;9325:40:61;::::1;::::0;-1:-1:-1;9325:40:61::1;9366:19;;::::0;::::1;::::0;::::1;:::i;:::-;9325:61;::::0;-1:-1:-1;;;;;;9325:61:61::1;::::0;;;;;;-1:-1:-1;;;;;178:32:165;;;9325:61:61::1;::::0;::::1;160:51:165::0;133:18;;9325:61:61::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9503:5;9401:108;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;-1:-1:-1;;;;;14290:15:165;;;14272:34;;14342:15;;;14337:2;14322:18;;14315:43;14394:15;;;14374:18;;;14367:43;14446:15;;;14441:2;14426:18;;14419:43;14499:15;;;14493:3;14478:19;;14471:44;9401:108:61;;;;;;::::1;::::0;::::1;::::0;;;;;14221:3:165;9401:108:61;;::::1;5681:3835;;;;;;5521:3995:::0;;;:::o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;160:51:165::0;133:18;;2672:31:141::1;14:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;160:51:165;133:18;;1901:40:141;14:203:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;12656:401:61:-;12775:7;12793:18;12814:46;;;;;;;;:::i;:::-;-1:-1:-1;;12814:46:61;;;;;;;;;;;;;;;;-1:-1:-1;;;;;178:32:165;;12814:46:61;12900:36;;160:51:165;12814:46:61;;-1:-1:-1;12870:27:61;;133:18:165;12900:36:61;;;;;;;;;;;;12870:66;;12946:21;12987:5;12994:14;12970:39;;;;;;;;;:::i;:::-;;;;;;;;;;;;;12946:63;;13026:24;13034:5;13041:8;13026:7;:24::i;:::-;13019:31;12656:401;-1:-1:-1;;;;;;12656:401:61:o;13133:400::-;13253:7;13272:18;13293:43;;;;;;;;:::i;13613:397::-;13732:7;13751:18;13772:41;;;;;;;;:::i;14091:403::-;14210:7;14229:18;14250:47;;;;;;;;:::i;14567:640::-;14798:7;14817:18;14838:40;;;;;;;;:::i;:::-;-1:-1:-1;;14838:40:61;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15310:15:165;;;14838:40:61;14918:168;;15292:34:165;15362:15;;;15342:18;;;15335:43;15414:15;;;15394:18;;;15387:43;15466:15;;15446:18;;;;15439:43;;;;14918:168:61;;;;;;;;;;15226:19:165;;;14918:168:61;;;14838:40;;-1:-1:-1;;;15120:39:61;;14838:40;;14918:168;;15120:39;;;:::i;:::-;;;;;;;;;;;;;15096:63;;15176:24;15184:5;15191:8;15176:7;:24::i;:::-;15169:31;14567:640;-1:-1:-1;;;;;;;;;14567:640:61:o;15267:738::-;15565:7;15584:18;15605:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;15584:50;;15644:27;15707:24;15745:17;15776:11;15801:5;15820:7;15841:9;15864:10;15674:210;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;15644:240;;15894:21;15935:5;15942:14;15918:39;;;;;;;;;:::i;:::-;;;;;;;;;;;;;15894:63;;15974:24;15982:5;15989:8;15974:7;:24::i;:::-;15967:31;15267:738;-1:-1:-1;;;;;;;;;;;;15267:738:61:o;11938:639::-;12015:7;12034:17;12089:4;12072:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;12062:33;;;;;;12034:62;;12106:12;12237:8;12231:4;12227:19;12314:8;12308:15;12415:9;12401:12;12387;12384:1;12376:49;12368:57;;;;12460:4;12448:17;12438:73;;12495:1;12492;12485:12;12438:73;12535:14;;-1:-1:-1;;;;;12535:14:61;;;;;;;;12566:4;11938:639;-1:-1:-1;;;;11938:639:61:o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;222:131:165:-;-1:-1:-1;;;;;297:31:165;;287:42;;277:70;;343:1;340;333:12;358:388;426:6;434;487:2;475:9;466:7;462:23;458:32;455:52;;;503:1;500;493:12;455:52;542:9;529:23;561:31;586:5;561:31;:::i;:::-;611:5;-1:-1:-1;668:2:165;653:18;;640:32;681:33;640:32;681:33;:::i;:::-;733:7;723:17;;;358:388;;;;;:::o;751:247::-;810:6;863:2;851:9;842:7;838:23;834:32;831:52;;;879:1;876;869:12;831:52;918:9;905:23;937:31;962:5;937:31;:::i;:::-;987:5;751:247;-1:-1:-1;;;751:247:165:o;1003:592::-;1074:6;1082;1135:2;1123:9;1114:7;1110:23;1106:32;1103:52;;;1151:1;1148;1141:12;1103:52;1191:9;1178:23;1220:18;1261:2;1253:6;1250:14;1247:34;;;1277:1;1274;1267:12;1247:34;1315:6;1304:9;1300:22;1290:32;;1360:7;1353:4;1349:2;1345:13;1341:27;1331:55;;1382:1;1379;1372:12;1331:55;1422:2;1409:16;1448:2;1440:6;1437:14;1434:34;;;1464:1;1461;1454:12;1434:34;1509:7;1504:2;1495:6;1491:2;1487:15;1483:24;1480:37;1477:57;;;1530:1;1527;1520:12;1477:57;1561:2;1553:11;;;;;1583:6;;-1:-1:-1;1003:592:165;;-1:-1:-1;;;;1003:592:165:o;1600:127::-;1661:10;1656:3;1652:20;1649:1;1642:31;1692:4;1689:1;1682:15;1716:4;1713:1;1706:15;1732:719;1775:5;1828:3;1821:4;1813:6;1809:17;1805:27;1795:55;;1846:1;1843;1836:12;1795:55;1882:6;1869:20;1908:18;1945:2;1941;1938:10;1935:36;;;1951:18;;:::i;:::-;2026:2;2020:9;1994:2;2080:13;;-1:-1:-1;;2076:22:165;;;2100:2;2072:31;2068:40;2056:53;;;2124:18;;;2144:22;;;2121:46;2118:72;;;2170:18;;:::i;:::-;2210:10;2206:2;2199:22;2245:2;2237:6;2230:18;2291:3;2284:4;2279:2;2271:6;2267:15;2263:26;2260:35;2257:55;;;2308:1;2305;2298:12;2257:55;2372:2;2365:4;2357:6;2353:17;2346:4;2338:6;2334:17;2321:54;2419:1;2412:4;2407:2;2399:6;2395:15;2391:26;2384:37;2439:6;2430:15;;;;;;1732:719;;;;:::o;2456:884::-;2609:6;2617;2625;2678:2;2666:9;2657:7;2653:23;2649:32;2646:52;;;2694:1;2691;2684:12;2646:52;2734:9;2721:23;2763:18;2804:2;2796:6;2793:14;2790:34;;;2820:1;2817;2810:12;2790:34;2843:50;2885:7;2876:6;2865:9;2861:22;2843:50;:::i;:::-;2833:60;;2946:2;2935:9;2931:18;2918:32;2902:48;;2975:2;2965:8;2962:16;2959:36;;;2991:1;2988;2981:12;2959:36;3014:24;;;;3072:3;3054:16;;;3050:26;3047:46;;;3089:1;3086;3079:12;3047:46;3112:2;;-1:-1:-1;3167:2:165;3152:18;;3139:32;;3183:16;;;3180:36;;;3212:1;3209;3202:12;3180:36;-1:-1:-1;3235:24:165;;3293:2;3275:16;;;3271:25;3268:45;;;3309:1;3306;3299:12;3268:45;3332:2;3322:12;;;2456:884;;;;;:::o;3345:322::-;3414:6;3467:2;3455:9;3446:7;3442:23;3438:32;3435:52;;;3483:1;3480;3473:12;3435:52;3523:9;3510:23;3556:18;3548:6;3545:30;3542:50;;;3588:1;3585;3578:12;3542:50;3611;3653:7;3644:6;3633:9;3629:22;3611:50;:::i;:::-;3601:60;3345:322;-1:-1:-1;;;;3345:322:165:o;4032:251::-;4102:6;4155:2;4143:9;4134:7;4130:23;4126:32;4123:52;;;4171:1;4168;4161:12;4123:52;4203:9;4197:16;4222:31;4247:5;4222:31;:::i;4649:273::-;4834:6;4826;4821:3;4808:33;4790:3;4860:16;;4885:13;;;4860:16;4649:273;-1:-1:-1;4649:273:165:o;4927:250::-;5012:1;5022:113;5036:6;5033:1;5030:13;5022:113;;;5112:11;;;5106:18;5093:11;;;5086:39;5058:2;5051:10;5022:113;;;-1:-1:-1;;5169:1:165;5151:16;;5144:27;4927:250::o;5182:289::-;5313:3;5351:6;5345:13;5367:66;5426:6;5421:3;5414:4;5406:6;5402:17;5367:66;:::i;:::-;5449:16;;;;;5182:289;-1:-1:-1;;5182:289:165:o;5827:572::-;5947:4;5953:6;6013:11;6000:25;6107:2;6103:7;6092:8;6076:14;6072:29;6068:43;6048:18;6044:68;6034:96;;6126:1;6123;6116:12;6034:96;6153:33;;6205:20;;;-1:-1:-1;6248:18:165;6237:30;;6234:50;;;6280:1;6277;6270:12;6234:50;6313:4;6301:17;;-1:-1:-1;6364:1:165;6360:14;;;6344;6340:35;6330:46;;6327:66;;;6389:1;6386;6379:12;6327:66;5827:572;;;;;:::o;10294:522::-;10372:4;10378:6;10438:11;10425:25;10532:2;10528:7;10517:8;10501:14;10497:29;10493:43;10473:18;10469:68;10459:96;;10551:1;10548;10541:12;10459:96;10578:33;;10630:20;;;-1:-1:-1;10673:18:165;10662:30;;10659:50;;;10705:1;10702;10695:12;10659:50;10738:4;10726:17;;-1:-1:-1;10769:14:165;10765:27;;;10755:38;;10752:58;;;10806:1;10803;10796:12;10821:269;10878:6;10931:2;10919:9;10910:7;10906:23;10902:32;10899:52;;;10947:1;10944;10937:12;10899:52;10986:9;10973:23;11036:4;11029:5;11025:16;11018:5;11015:27;11005:55;;11056:1;11053;11046:12;11095:271;11137:3;11175:5;11169:12;11202:6;11197:3;11190:19;11218:76;11287:6;11280:4;11275:3;11271:14;11264:4;11257:5;11253:16;11218:76;:::i;:::-;11348:2;11327:15;-1:-1:-1;;11323:29:165;11314:39;;;;11355:4;11310:50;;11095:271;-1:-1:-1;;11095:271:165:o;11371:418::-;-1:-1:-1;;;;;11614:15:165;;;11596:34;;11666:15;;11661:2;11646:18;;11639:43;11718:2;11713;11698:18;;11691:30;;;11539:4;;11738:45;;11764:18;;11756:6;11738:45;:::i;:::-;11730:53;11371:418;-1:-1:-1;;;;;11371:418:165:o;11794:127::-;11855:10;11850:3;11846:20;11843:1;11836:31;11886:4;11883:1;11876:15;11910:4;11907:1;11900:15;12108:562;-1:-1:-1;;;;;12347:32:165;;12329:51;;12416:2;12411;12396:18;;12389:30;;;12435:18;;12428:34;;;-1:-1:-1;;;;;;12474:31:165;;12471:51;;;12518:1;12515;12508:12;12471:51;12552:6;12549:1;12545:14;12609:6;12601;12596:2;12585:9;12581:18;12568:48;12637:22;;;;12661:2;12633:31;;12108:562;-1:-1:-1;;;;12108:562:165:o;12675:277::-;12742:6;12795:2;12783:9;12774:7;12770:23;12766:32;12763:52;;;12811:1;12808;12801:12;12763:52;12843:9;12837:16;12896:5;12889:13;12882:21;12875:5;12872:32;12862:60;;12918:1;12915;12908:12;13483:487;13668:2;13657:9;13650:21;13707:6;13702:2;13691:9;13687:18;13680:34;13764:6;13756;13751:2;13740:9;13736:18;13723:48;13820:1;13815:2;13791:22;;;13787:31;;13780:42;;;;-1:-1:-1;;;;;13931:32:165;;;;13924:4;13909:20;;13902:62;13883:2;13862:15;;;-1:-1:-1;;13858:29:165;13843:45;;;13839:54;;;-1:-1:-1;13483:487:165:o;14526:492::-;14701:3;14739:6;14733:13;14755:66;14814:6;14809:3;14802:4;14794:6;14790:17;14755:66;:::i;:::-;14884:13;;14843:16;;;;14906:70;14884:13;14843:16;14953:4;14941:17;;14906:70;:::i;:::-;14992:20;;14526:492;-1:-1:-1;;;;14526:492:165:o;15493:824::-;15789:4;15835:1;15831;15826:3;15822:11;15818:19;15876:2;15868:6;15864:15;15853:9;15846:34;15928:2;15920:6;15916:15;15911:2;15900:9;15896:18;15889:43;15980:2;15972:6;15968:15;15963:2;15952:9;15948:18;15941:43;16020:3;16015:2;16004:9;16000:18;15993:31;16047:46;16088:3;16077:9;16073:19;16065:6;16047:46;:::i;:::-;16142:9;16134:6;16130:22;16124:3;16113:9;16109:19;16102:51;16170:33;16196:6;16188;16170:33;:::i;:::-;16252:4;16240:17;;;;16234:3;16219:19;;16212:46;-1:-1:-1;16295:15:165;;;;16289:3;16274:19;;;16267:44;-1:-1:-1;16162:41:165;15493:824;-1:-1:-1;;;;;15493:824:165:o","linkReferences":{}},"methodIdentifiers":{"deployTREXSuite(string,(address,string,string,uint8,address,address,address[],address[],address[],bytes[]),(uint256[],address[],uint256[][]))":"cf753d37","getIdFactory()":"5f2773a5","getImplementationAuthority()":"2d5f1187","getToken(string)":"c1733f68","owner()":"8da5cb5b","recoverContractOwnership(address,address)":"50b01838","renounceOwnership()":"715018a6","setIdFactory(address)":"ccd41cce","setImplementationAuthority(address)":"92dd9d65","tokenDeployed(string)":"fb88d79c","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementationAuthority_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"idFactory_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"Deployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_idFactory\",\"type\":\"address\"}],\"name\":\"IdFactorySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_implementationAuthority\",\"type\":\"address\"}],\"name\":\"ImplementationAuthoritySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_ir\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_irs\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_tir\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_ctr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_mc\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"_salt\",\"type\":\"string\"}],\"name\":\"TREXSuiteDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_salt\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"irs\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ONCHAINID\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"irAgents\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokenAgents\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"complianceModules\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"complianceSettings\",\"type\":\"bytes[]\"}],\"internalType\":\"struct ITREXFactory.TokenDetails\",\"name\":\"_tokenDetails\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"issuers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"issuerClaims\",\"type\":\"uint256[][]\"}],\"internalType\":\"struct ITREXFactory.ClaimDetails\",\"name\":\"_claimDetails\",\"type\":\"tuple\"}],\"name\":\"deployTREXSuite\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIdFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getImplementationAuthority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_salt\",\"type\":\"string\"}],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"recoverContractOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"idFactory_\",\"type\":\"address\"}],\"name\":\"setIdFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementationAuthority_\",\"type\":\"address\"}],\"name\":\"setImplementationAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"tokenDeployed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"deployTREXSuite(string,(address,string,string,uint8,address,address,address[],address[],address[],bytes[]),(uint256[],address[],uint256[][]))\":{\"details\":\"See {ITREXFactory-deployTREXSuite}.\"},\"getIdFactory()\":{\"details\":\"See {ITREXFactory-getIdFactory}.\"},\"getImplementationAuthority()\":{\"details\":\"See {ITREXFactory-getImplementationAuthority}.\"},\"getToken(string)\":{\"details\":\"See {ITREXFactory-getToken}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"recoverContractOwnership(address,address)\":{\"details\":\"See {ITREXFactory-recoverContractOwnership}.\"},\"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.\"},\"setIdFactory(address)\":{\"details\":\"See {ITREXFactory-setIdFactory}.\"},\"setImplementationAuthority(address)\":{\"details\":\"See {ITREXFactory-setImplementationAuthority}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"events\":{\"Deployed(address)\":{\"notice\":\"event emitted whenever a single contract is deployed by the factory\"},\"IdFactorySet(address)\":{\"notice\":\"event emitted when the Identity Factory is set\"},\"ImplementationAuthoritySet(address)\":{\"notice\":\"event emitted when the implementation authority of the factory contract is set\"},\"TREXSuiteDeployed(address,address,address,address,address,address,string)\":{\"notice\":\"event emitted by the factory when a full suite of T-REX contracts is deployed\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"constructor is setting the implementation authority and the Identity Factory of the TREX factory\"},\"tokenDeployed(string)\":{\"notice\":\"mapping containing info about the token contracts corresponding to salt already used for CREATE2 deployments\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/factory/TREXFactory.sol\":\"TREXFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/factory/ITREXFactory.sol\":{\"keccak256\":\"0xb95c6d68ed87b0b92621dc7f50d6c761e21fc98f5c5390e37df019127a9f6c9a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4e38726754a9d9cf0ac73961ba6f7313dd3fea9ff6ea73e33ced23418f812939\",\"dweb:/ipfs/QmQNgh8YNoDGguvSzRuTvKu7eXrqW8K53CxPkuq6RN8HnT\"]},\"contracts/erc3643/factory/TREXFactory.sol\":{\"keccak256\":\"0x40981ab2ff9addd68e6b5f4c79d43b9b78be9835f5b87975a3f7c107ac124d73\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a150c0114edf0154b78029aa171059eba946338eef59d621688748f245c8eaaf\",\"dweb:/ipfs/QmYgwpBSRggkTbkqyXYzrZi9E7ruB1wGFidenrB1VUH5yy\"]},\"contracts/erc3643/proxy/AbstractProxy.sol\":{\"keccak256\":\"0x25dca1861c6dd72695b0b509da29cfb0fcce7c1ac1df0a0266f444596affc3f4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://221fb9fd02e0db96ff0ce584de79edefeb3b66a820c4dfab788147c0d32743fc\",\"dweb:/ipfs/QmcTatYqxSryAPkrqpvy3A9eFNoa13WjE48jitjBYwB7wq\"]},\"contracts/erc3643/proxy/ClaimTopicsRegistryProxy.sol\":{\"keccak256\":\"0x9023e92f81437cfe43509a1335d16265e50419bc236a93e44cca721b2c7d8fec\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1e0701d01d53199a86fd13d31443b305fb4f9ddc37b879a846bf64cb88be59e3\",\"dweb:/ipfs/QmdjPLnp5fwgbn4JNdUYpoPcQ4RD48P9XpVtgTAN7KY3zq\"]},\"contracts/erc3643/proxy/IdentityRegistryProxy.sol\":{\"keccak256\":\"0xa0573d6b467d2184d87e0d5048b1ef67ed02e6095e88ebb2dacae82dfa411f5a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://90f975c7a8962f0ccb8065ed84c83971a5f50ff54b2953e9f8c572fc0fa02165\",\"dweb:/ipfs/QmdQjtvjYaKtuw1UhkgvrRqFErvcDkBkRRXbMGqYt6SLCu\"]},\"contracts/erc3643/proxy/IdentityRegistryStorageProxy.sol\":{\"keccak256\":\"0x5dae449f9bce21a0135a7af1cfea8eb7e87ba3e8d727c94da8f79ff74e1a840f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4c4d8fc0e321a268d6410151dcb948b0600e70672bccc114e44a9f38ab755e39\",\"dweb:/ipfs/QmWZvTRsotARWJa88AGfQ8Ar3tQFv1dTSo3GSo36oZZkAD\"]},\"contracts/erc3643/proxy/ModularComplianceProxy.sol\":{\"keccak256\":\"0x644ba0ef8b8258bb3c2aea17bf797e2a3d05d2c9676c1328a1d970e37c9269db\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cf81cc6b827fa7c2e0f9cc5484323a09651accab58e2d6298a080c99ce49d727\",\"dweb:/ipfs/QmPBbzy1TLfPiEW3dE4tRbinNr2f6ZxA7eT2an2ZHgq3j4\"]},\"contracts/erc3643/proxy/TokenProxy.sol\":{\"keccak256\":\"0x5768c099cd01c78a2153fd566d8066dde02b7197ce093175e85f4bcdd72b2475\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://905cacdac7296cab659f702babbc7baaeaf5f9eb6ee70cb86af8cee0bc112026\",\"dweb:/ipfs/Qmf2wUMLcYVRZBKntZpq8Pfzy7AXYaymE7nzNSqZYed3Tn\"]},\"contracts/erc3643/proxy/TrustedIssuersRegistryProxy.sol\":{\"keccak256\":\"0x83c5b64007a1712501ee8f6036b9cc2f9fb8b7a115ac1f06a54cba42dd893108\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1a0908ec22650ecbfc7bae976bb6f0ae75ae1d8c331ae011823574143afb91c5\",\"dweb:/ipfs/QmTFbugmV7DSr5fThJTta9YGc3nWSfPiEY8FjeyY5ciMJZ\"]},\"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol\":{\"keccak256\":\"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa\",\"dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc\"]},\"contracts/erc3643/proxy/interface/IProxy.sol\":{\"keccak256\":\"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65\",\"dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/factory/IIdFactory.sol\":{\"keccak256\":\"0x7176e78517381538ff4cc3fe4a4b9adb0a05d86e8750836801010af3cc2b9cc4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ea9875f1fdde42326e9bd66aa7605811f886bff7125af16579ba71fb3aa29d9e\",\"dweb:/ipfs/QmbyoWxwe2D4sdSFs191ukHZnS1uEpdKm9a85FBGK51Cy3\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"implementationAuthority_","type":"address"},{"internalType":"address","name":"idFactory_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_addr","type":"address","indexed":true}],"type":"event","name":"Deployed","anonymous":false},{"inputs":[{"internalType":"address","name":"_idFactory","type":"address","indexed":false}],"type":"event","name":"IdFactorySet","anonymous":false},{"inputs":[{"internalType":"address","name":"_implementationAuthority","type":"address","indexed":false}],"type":"event","name":"ImplementationAuthoritySet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":true},{"internalType":"address","name":"_ir","type":"address","indexed":false},{"internalType":"address","name":"_irs","type":"address","indexed":false},{"internalType":"address","name":"_tir","type":"address","indexed":false},{"internalType":"address","name":"_ctr","type":"address","indexed":false},{"internalType":"address","name":"_mc","type":"address","indexed":false},{"internalType":"string","name":"_salt","type":"string","indexed":true}],"type":"event","name":"TREXSuiteDeployed","anonymous":false},{"inputs":[{"internalType":"string","name":"_salt","type":"string"},{"internalType":"struct ITREXFactory.TokenDetails","name":"_tokenDetails","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"address","name":"irs","type":"address"},{"internalType":"address","name":"ONCHAINID","type":"address"},{"internalType":"address[]","name":"irAgents","type":"address[]"},{"internalType":"address[]","name":"tokenAgents","type":"address[]"},{"internalType":"address[]","name":"complianceModules","type":"address[]"},{"internalType":"bytes[]","name":"complianceSettings","type":"bytes[]"}]},{"internalType":"struct ITREXFactory.ClaimDetails","name":"_claimDetails","type":"tuple","components":[{"internalType":"uint256[]","name":"claimTopics","type":"uint256[]"},{"internalType":"address[]","name":"issuers","type":"address[]"},{"internalType":"uint256[][]","name":"issuerClaims","type":"uint256[][]"}]}],"stateMutability":"nonpayable","type":"function","name":"deployTREXSuite"},{"inputs":[],"stateMutability":"view","type":"function","name":"getIdFactory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getImplementationAuthority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"_salt","type":"string"}],"stateMutability":"view","type":"function","name":"getToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_contract","type":"address"},{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recoverContractOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"idFactory_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setIdFactory"},{"inputs":[{"internalType":"address","name":"implementationAuthority_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setImplementationAuthority"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function","name":"tokenDeployed","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"deployTREXSuite(string,(address,string,string,uint8,address,address,address[],address[],address[],bytes[]),(uint256[],address[],uint256[][]))":{"details":"See {ITREXFactory-deployTREXSuite}."},"getIdFactory()":{"details":"See {ITREXFactory-getIdFactory}."},"getImplementationAuthority()":{"details":"See {ITREXFactory-getImplementationAuthority}."},"getToken(string)":{"details":"See {ITREXFactory-getToken}."},"owner()":{"details":"Returns the address of the current owner."},"recoverContractOwnership(address,address)":{"details":"See {ITREXFactory-recoverContractOwnership}."},"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."},"setIdFactory(address)":{"details":"See {ITREXFactory-setIdFactory}."},"setImplementationAuthority(address)":{"details":"See {ITREXFactory-setImplementationAuthority}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"constructor is setting the implementation authority and the Identity Factory of the TREX factory"},"tokenDeployed(string)":{"notice":"mapping containing info about the token contracts corresponding to salt already used for CREATE2 deployments"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/factory/TREXFactory.sol":"TREXFactory"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/factory/ITREXFactory.sol":{"keccak256":"0xb95c6d68ed87b0b92621dc7f50d6c761e21fc98f5c5390e37df019127a9f6c9a","urls":["bzz-raw://4e38726754a9d9cf0ac73961ba6f7313dd3fea9ff6ea73e33ced23418f812939","dweb:/ipfs/QmQNgh8YNoDGguvSzRuTvKu7eXrqW8K53CxPkuq6RN8HnT"],"license":"GPL-3.0"},"contracts/erc3643/factory/TREXFactory.sol":{"keccak256":"0x40981ab2ff9addd68e6b5f4c79d43b9b78be9835f5b87975a3f7c107ac124d73","urls":["bzz-raw://a150c0114edf0154b78029aa171059eba946338eef59d621688748f245c8eaaf","dweb:/ipfs/QmYgwpBSRggkTbkqyXYzrZi9E7ruB1wGFidenrB1VUH5yy"],"license":"GPL-3.0"},"contracts/erc3643/proxy/AbstractProxy.sol":{"keccak256":"0x25dca1861c6dd72695b0b509da29cfb0fcce7c1ac1df0a0266f444596affc3f4","urls":["bzz-raw://221fb9fd02e0db96ff0ce584de79edefeb3b66a820c4dfab788147c0d32743fc","dweb:/ipfs/QmcTatYqxSryAPkrqpvy3A9eFNoa13WjE48jitjBYwB7wq"],"license":"GPL-3.0"},"contracts/erc3643/proxy/ClaimTopicsRegistryProxy.sol":{"keccak256":"0x9023e92f81437cfe43509a1335d16265e50419bc236a93e44cca721b2c7d8fec","urls":["bzz-raw://1e0701d01d53199a86fd13d31443b305fb4f9ddc37b879a846bf64cb88be59e3","dweb:/ipfs/QmdjPLnp5fwgbn4JNdUYpoPcQ4RD48P9XpVtgTAN7KY3zq"],"license":"GPL-3.0"},"contracts/erc3643/proxy/IdentityRegistryProxy.sol":{"keccak256":"0xa0573d6b467d2184d87e0d5048b1ef67ed02e6095e88ebb2dacae82dfa411f5a","urls":["bzz-raw://90f975c7a8962f0ccb8065ed84c83971a5f50ff54b2953e9f8c572fc0fa02165","dweb:/ipfs/QmdQjtvjYaKtuw1UhkgvrRqFErvcDkBkRRXbMGqYt6SLCu"],"license":"GPL-3.0"},"contracts/erc3643/proxy/IdentityRegistryStorageProxy.sol":{"keccak256":"0x5dae449f9bce21a0135a7af1cfea8eb7e87ba3e8d727c94da8f79ff74e1a840f","urls":["bzz-raw://4c4d8fc0e321a268d6410151dcb948b0600e70672bccc114e44a9f38ab755e39","dweb:/ipfs/QmWZvTRsotARWJa88AGfQ8Ar3tQFv1dTSo3GSo36oZZkAD"],"license":"GPL-3.0"},"contracts/erc3643/proxy/ModularComplianceProxy.sol":{"keccak256":"0x644ba0ef8b8258bb3c2aea17bf797e2a3d05d2c9676c1328a1d970e37c9269db","urls":["bzz-raw://cf81cc6b827fa7c2e0f9cc5484323a09651accab58e2d6298a080c99ce49d727","dweb:/ipfs/QmPBbzy1TLfPiEW3dE4tRbinNr2f6ZxA7eT2an2ZHgq3j4"],"license":"GPL-3.0"},"contracts/erc3643/proxy/TokenProxy.sol":{"keccak256":"0x5768c099cd01c78a2153fd566d8066dde02b7197ce093175e85f4bcdd72b2475","urls":["bzz-raw://905cacdac7296cab659f702babbc7baaeaf5f9eb6ee70cb86af8cee0bc112026","dweb:/ipfs/Qmf2wUMLcYVRZBKntZpq8Pfzy7AXYaymE7nzNSqZYed3Tn"],"license":"GPL-3.0"},"contracts/erc3643/proxy/TrustedIssuersRegistryProxy.sol":{"keccak256":"0x83c5b64007a1712501ee8f6036b9cc2f9fb8b7a115ac1f06a54cba42dd893108","urls":["bzz-raw://1a0908ec22650ecbfc7bae976bb6f0ae75ae1d8c331ae011823574143afb91c5","dweb:/ipfs/QmTFbugmV7DSr5fThJTta9YGc3nWSfPiEY8FjeyY5ciMJZ"],"license":"GPL-3.0"},"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol":{"keccak256":"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5","urls":["bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa","dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc"],"license":"GPL-3.0"},"contracts/erc3643/proxy/interface/IProxy.sol":{"keccak256":"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536","urls":["bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65","dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/factory/IIdFactory.sol":{"keccak256":"0x7176e78517381538ff4cc3fe4a4b9adb0a05d86e8750836801010af3cc2b9cc4","urls":["bzz-raw://ea9875f1fdde42326e9bd66aa7605811f886bff7125af16579ba71fb3aa29d9e","dweb:/ipfs/QmbyoWxwe2D4sdSFs191ukHZnS1uEpdKm9a85FBGK51Cy3"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":61} \ No newline at end of file diff --git a/out/TREXGateway.sol/TREXGateway.json b/out/TREXGateway.sol/TREXGateway.json new file mode 100644 index 0000000..2442f75 --- /dev/null +++ b/out/TREXGateway.sol/TREXGateway.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"factory","type":"address","internalType":"address"},{"name":"publicDeploymentStatus","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addDeployer","inputs":[{"name":"deployer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"applyFeeDiscount","inputs":[{"name":"deployer","type":"address","internalType":"address"},{"name":"discount","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchAddDeployer","inputs":[{"name":"deployers","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchApplyFeeDiscount","inputs":[{"name":"deployers","type":"address[]","internalType":"address[]"},{"name":"discounts","type":"uint16[]","internalType":"uint16[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchDeployTREXSuite","inputs":[{"name":"_tokenDetails","type":"tuple[]","internalType":"struct ITREXFactory.TokenDetails[]","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"decimals","type":"uint8","internalType":"uint8"},{"name":"irs","type":"address","internalType":"address"},{"name":"ONCHAINID","type":"address","internalType":"address"},{"name":"irAgents","type":"address[]","internalType":"address[]"},{"name":"tokenAgents","type":"address[]","internalType":"address[]"},{"name":"complianceModules","type":"address[]","internalType":"address[]"},{"name":"complianceSettings","type":"bytes[]","internalType":"bytes[]"}]},{"name":"_claimDetails","type":"tuple[]","internalType":"struct ITREXFactory.ClaimDetails[]","components":[{"name":"claimTopics","type":"uint256[]","internalType":"uint256[]"},{"name":"issuers","type":"address[]","internalType":"address[]"},{"name":"issuerClaims","type":"uint256[][]","internalType":"uint256[][]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchRemoveDeployer","inputs":[{"name":"deployers","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"calculateFee","inputs":[{"name":"deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deployTREXSuite","inputs":[{"name":"_tokenDetails","type":"tuple","internalType":"struct ITREXFactory.TokenDetails","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"decimals","type":"uint8","internalType":"uint8"},{"name":"irs","type":"address","internalType":"address"},{"name":"ONCHAINID","type":"address","internalType":"address"},{"name":"irAgents","type":"address[]","internalType":"address[]"},{"name":"tokenAgents","type":"address[]","internalType":"address[]"},{"name":"complianceModules","type":"address[]","internalType":"address[]"},{"name":"complianceSettings","type":"bytes[]","internalType":"bytes[]"}]},{"name":"_claimDetails","type":"tuple","internalType":"struct ITREXFactory.ClaimDetails","components":[{"name":"claimTopics","type":"uint256[]","internalType":"uint256[]"},{"name":"issuers","type":"address[]","internalType":"address[]"},{"name":"issuerClaims","type":"uint256[][]","internalType":"uint256[][]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enableDeploymentFee","inputs":[{"name":"_isEnabled","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getDeploymentFee","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ITREXGateway.Fee","components":[{"name":"fee","type":"uint256","internalType":"uint256"},{"name":"feeToken","type":"address","internalType":"address"},{"name":"feeCollector","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getFactory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getPublicDeploymentStatus","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDeployer","inputs":[{"name":"deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDeploymentFeeEnabled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeDeployer","inputs":[{"name":"deployer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDeploymentFee","inputs":[{"name":"_fee","type":"uint256","internalType":"uint256"},{"name":"_feeToken","type":"address","internalType":"address"},{"name":"_feeCollector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFactory","inputs":[{"name":"factory","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPublicDeploymentStatus","inputs":[{"name":"_isEnabled","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferFactoryOwnership","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DeployerAdded","inputs":[{"name":"deployer","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DeployerRemoved","inputs":[{"name":"deployer","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DeploymentFeeEnabled","inputs":[{"name":"isEnabled","type":"bool","indexed":true,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"DeploymentFeeSet","inputs":[{"name":"fee","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"feeToken","type":"address","indexed":true,"internalType":"address"},{"name":"feeCollector","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FactorySet","inputs":[{"name":"factory","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FeeDiscountApplied","inputs":[{"name":"deployer","type":"address","indexed":true,"internalType":"address"},{"name":"discount","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"GatewaySuiteDeploymentProcessed","inputs":[{"name":"requester","type":"address","indexed":true,"internalType":"address"},{"name":"intendedOwner","type":"address","indexed":false,"internalType":"address"},{"name":"feeApplied","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PublicDeploymentStatusSet","inputs":[{"name":"publicDeploymentStatus","type":"bool","indexed":true,"internalType":"bool"}],"anonymous":false},{"type":"error","name":"BatchMaxLengthExceeded","inputs":[{"name":"lengthLimit","type":"uint16","internalType":"uint16"}]},{"type":"error","name":"DeployerAlreadyExists","inputs":[{"name":"deployer","type":"address","internalType":"address"}]},{"type":"error","name":"DeployerDoesNotExist","inputs":[{"name":"deployer","type":"address","internalType":"address"}]},{"type":"error","name":"DeploymentFeesAlreadyDisabled","inputs":[]},{"type":"error","name":"DeploymentFeesAlreadyEnabled","inputs":[]},{"type":"error","name":"DiscountOutOfRange","inputs":[]},{"type":"error","name":"OnlyAdminCall","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"PublicCannotDeployOnBehalf","inputs":[]},{"type":"error","name":"PublicDeploymentAlreadyDisabled","inputs":[]},{"type":"error","name":"PublicDeploymentAlreadyEnabled","inputs":[]},{"type":"error","name":"PublicDeploymentsNotAllowed","inputs":[]},{"type":"error","name":"StringsInsufficientHexLength","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddress","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b50604051620024d0380380620024d083398101604081905262000034916200013e565b33806200005b57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200006681620000ee565b50600280546001600160a01b0384166001600160a81b03199091168117600160a01b84151502179091556040517f1edf3afd4ac789736e00d216cd88be164ddcef26a6eedcc30cdb0cb62f3741b190600090a2604051811515907ff8be33baa430c4b62d2c9d79ab319d10cc41755a1fb65f85e64ca0632c29d0a490600090a250506200018c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080604083850312156200015257600080fd5b82516001600160a01b03811681146200016a57600080fd5b602084015190925080151581146200018157600080fd5b809150509250929050565b612334806200019c6000396000f3fe608060405234801561001057600080fd5b50600436106101725760003560e01c806384e79842116100de578063a264f2bd11610097578063e65811ff11610071578063e65811ff14610398578063eca465c4146103ab578063f2fde38b146103be578063f315df86146103d157600080fd5b8063a264f2bd14610360578063bfc2f10b14610373578063c8eebfcc1461038557600080fd5b806384e79842146102de578063880f4039146102f157806388cc58e4146103045780638da5cb5b1461032957806397a6278e1461033a5780639c5c5ce71461034d57600080fd5b806350c358a41161013057806350c358a4146102775780635bb478081461028a5780635d46c2831461029d578063715018a6146102b0578063730b86a9146102b857806375e14cff146102cb57600080fd5b806265939e146101775780631ffbb0641461018c5780632782035e146101b4578063465f5eb8146101c757806346c549cc146101e8578063477068511461026c575b600080fd5b61018a6101853660046116dc565b6103e4565b005b61019f61019a366004611739565b610589565b60405190151581526020015b60405180910390f35b61018a6101c236600461175b565b61059c565b6101da6101d5366004611739565b610776565b6040519081526020016101ab565b6102396040805160608101825260008082526020820181905291810191909152506040805160608101825260035481526004546001600160a01b039081166020830152600554169181019190915290565b60408051825181526020808401516001600160a01b039081169183019190915292820151909216908201526060016101ab565b60065460ff1661019f565b61019f610285366004611739565b6107bd565b61018a610298366004611739565b6107db565b61018a6102ab3660046117c6565b610854565b61018a6108fd565b61018a6102c6366004611d72565b610911565b61018a6102d9366004611e57565b610987565b61018a6102ec366004611739565b610a4f565b61018a6102ff366004611739565b610aef565b6002546001600160a01b03165b6040516001600160a01b0390911681526020016101ab565b6000546001600160a01b0316610311565b61018a610348366004611739565b610bac565b61018a61035b366004611739565b610c4c565b61018a61036e366004611e98565b610caf565b600254600160a01b900460ff1661019f565b61018a610393366004611eb5565b610d60565b61018a6103a63660046116dc565b610fab565b61018a6103b9366004611e98565b61113b565b61018a6103cc366004611739565b61120c565b61018a6103df366004611739565b61124a565b6103ed33610589565b15801561040557506000546001600160a01b03163314155b1561042357604051631859551f60e31b815260040160405180910390fd5b6101f481111561044f57604051632789f90560e11b81526101f460048201526024015b60405180910390fd5b60005b818110156105845761048483838381811061046f5761046f611f0e565b90506020020160208101906102859190611739565b6104d45782828281811061049a5761049a611f0e565b90506020020160208101906104af9190611739565b604051634e02340f60e01b81526001600160a01b039091166004820152602401610446565b600760008484848181106104ea576104ea611f0e565b90506020020160208101906104ff9190611739565b6001600160a01b031681526020810191909152604001600020805460ff1916905582828281811061053257610532611f0e565b90506020020160208101906105479190611739565b6001600160a01b03167ffdb22628e87f888d060acc53d048a6a8400a5024f81f9dcb0606e723f238864a60405160405180910390a2600101610452565b505050565b6000610596600183611303565b92915050565b6105a533610589565b1580156105bd57506000546001600160a01b03163314155b156105db57604051631859551f60e31b815260040160405180910390fd5b6101f483111561060257604051632789f90560e11b81526101f46004820152602401610446565b60005b8381101561076f5761271083838381811061062257610622611f0e565b90506020020160208101906106379190611f24565b61ffff16111561065a5760405163eb2b61a560e01b815260040160405180910390fd5b82828281811061066c5761066c611f0e565b90506020020160208101906106819190611f24565b6008600087878581811061069757610697611f0e565b90506020020160208101906106ac9190611739565b6001600160a01b031681526020810191909152604001600020805461ffff191661ffff929092169190911790558484828181106106eb576106eb611f0e565b90506020020160208101906107009190611739565b6001600160a01b03167fd254de1c4bdaafc52898e46f43ed993ee35724d55a0df75ebcb55f9f6c470dab84848481811061073c5761073c611f0e565b90506020020160208101906107519190611f24565b60405161ffff909116815260200160405180910390a2600101610605565b5050505050565b6003546001600160a01b0382166000908152600860205260408120549091612710916107a6919061ffff16611f55565b6107b09190611f6c565b6003546105969190611f8e565b6001600160a01b031660009081526007602052604090205460ff1690565b6107e3611386565b6001600160a01b03811661080a5760405163d92e233d60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f1edf3afd4ac789736e00d216cd88be164ddcef26a6eedcc30cdb0cb62f3741b190600090a250565b61085c611386565b6001600160a01b038216158061087957506001600160a01b038116155b156108975760405163d92e233d60e01b815260040160405180910390fd5b6003839055600480546001600160a01b03199081166001600160a01b038581169182179093556005805490921692841692831790915560405185907f62aa79f6e449920637ad5310ea6ef9c67a32aaa6a8b98cd6814452daf11213a390600090a4505050565b610905611386565b61090f60006113b3565b565b60058251111561093757604051632789f90560e11b815260056004820152602401610446565b60005b82518110156105845761097f83828151811061095857610958611f0e565b602002602001015183838151811061097257610972611f0e565b6020026020010151610d60565b60010161093a565b61099033610589565b1580156109a857506000546001600160a01b03163314155b156109c657604051631859551f60e31b815260040160405180910390fd5b6127108161ffff1611156109ed5760405163eb2b61a560e01b815260040160405180910390fd5b6001600160a01b038216600081815260086020908152604091829020805461ffff191661ffff861690811790915591519182527fd254de1c4bdaafc52898e46f43ed993ee35724d55a0df75ebcb55f9f6c470dab910160405180910390a25050565b610a57611386565b6001600160a01b038116610aad5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610446565b610ab8600182611403565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b610af833610589565b158015610b1057506000546001600160a01b03163314155b15610b2e57604051631859551f60e31b815260040160405180910390fd5b610b37816107bd565b15610b60576040516375c2ceb960e11b81526001600160a01b0382166004820152602401610446565b6001600160a01b038116600081815260076020526040808220805460ff19166001179055517f861a21548a3ee34d896ccac3668a9d65030aaf2cb7367a2ed13608014016a0329190a250565b610bb4611386565b6001600160a01b038116610c0a5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610446565b610c1560018261147f565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b610c54611386565b60025460405163f2fde38b60e01b81526001600160a01b0383811660048301529091169063f2fde38b90602401600060405180830381600087803b158015610c9b57600080fd5b505af115801561076f573d6000803e3d6000fd5b610cb7611386565b60065460ff161515811515148015610cd157506001811515145b15610cef576040516360d38b9560e01b815260040160405180910390fd5b60065460ff161515811515148015610d05575080155b15610d23576040516398e8f30360e01b815260040160405180910390fd5b6006805460ff19168215159081179091556040517f576845931000b1b98d2173829911e0db5a788158585b3da38572ec01552217d590600090a250565b600254600160a01b900460ff16158015610d805750610d7e336107bd565b155b15610d9e57604051632deadb8b60e21b815260040160405180910390fd5b600254600160a01b900460ff1615156001148015610dc6575081516001600160a01b03163314155b8015610dd85750610dd6336107bd565b155b15610df6576040516318f44adb60e01b815260040160405180910390fd5b60065460009060ff161515600103610ec65760035415801590610e2f57503360009081526008602052604090205461271061ffff909116105b15610ec657610e3d33610776565b600480546005546040516323b872dd60e01b815233938101939093526001600160a01b0390811660248401526044830184905292935091909116906323b872dd906064016020604051808303816000875af1158015610ea0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec49190611fa1565b505b6000610ed58460000151611501565b602080860151604051610ee9939201611fe2565b60408051601f198184030181529082905260025463cf753d3760e01b83529092506001600160a01b03169063cf753d3790610f2c908490889088906004016121a1565b600060405180830381600087803b158015610f4657600080fd5b505af1158015610f5a573d6000803e3d6000fd5b50508551604080516001600160a01b039092168252602082018690523393507f3ddb07c2df247d32c71cd94e46f101dd4a4bcd5ce07afc925673aa63ba24960e92500160405180910390a250505050565b610fb433610589565b158015610fcc57506000546001600160a01b03163314155b15610fea57604051631859551f60e31b815260040160405180910390fd5b6101f481111561101157604051632789f90560e11b81526101f46004820152602401610446565b60005b818110156105845761103183838381811061046f5761046f611f0e565b156110825782828281811061104857611048611f0e565b905060200201602081019061105d9190611739565b6040516375c2ceb960e11b81526001600160a01b039091166004820152602401610446565b60016007600085858581811061109a5761109a611f0e565b90506020020160208101906110af9190611739565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558282828181106110e9576110e9611f0e565b90506020020160208101906110fe9190611739565b6001600160a01b03167f861a21548a3ee34d896ccac3668a9d65030aaf2cb7367a2ed13608014016a03260405160405180910390a2600101611014565b611143611386565b600260149054906101000a900460ff16151581151514801561116757506001811515145b1561118557604051634cc2b9b760e01b815260040160405180910390fd5b600260149054906101000a900460ff1615158115151480156111a5575080155b156111c35760405163593cdd5360e11b815260040160405180910390fd5b6002805460ff60a01b1916600160a01b831515908102919091179091556040517ff8be33baa430c4b62d2c9d79ab319d10cc41755a1fb65f85e64ca0632c29d0a490600090a250565b611214611386565b6001600160a01b03811661123e57604051631e4fbdf760e01b815260006004820152602401610446565b611247816113b3565b50565b61125333610589565b15801561126b57506000546001600160a01b03163314155b1561128957604051631859551f60e31b815260040160405180910390fd5b611292816107bd565b6112ba57604051634e02340f60e01b81526001600160a01b0382166004820152602401610446565b6001600160a01b038116600081815260076020526040808220805460ff19169055517ffdb22628e87f888d060acc53d048a6a8400a5024f81f9dcb0606e723f238864a9190a250565b60006001600160a01b0382166113665760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610446565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000546001600160a01b0316331461090f5760405163118cdaa760e01b8152336004820152602401610446565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61140d8282611303565b1561145a5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610446565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6114898282611303565b6114df5760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610446565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60606105966001600160a01b03831660146060826000611522846002611f55565b61152d9060026122d4565b6001600160401b0381111561154457611544611802565b6040519080825280601f01601f19166020018201604052801561156e576020820181803683370190505b509050600360fc1b8160008151811061158957611589611f0e565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106115b8576115b8611f0e565b60200101906001600160f81b031916908160001a90535060006115dc856002611f55565b6115e79060016122d4565b90505b600181111561165f576f181899199a1a9b1b9c1cb0b131b232b360811b83600f166010811061161b5761161b611f0e565b1a60f81b82828151811061163157611631611f0e565b60200101906001600160f81b031916908160001a90535060049290921c91611658816122e7565b90506115ea565b5081156116895760405163e22e27eb60e01b81526004810186905260248101859052604401610446565b949350505050565b60008083601f8401126116a357600080fd5b5081356001600160401b038111156116ba57600080fd5b6020830191508360208260051b85010111156116d557600080fd5b9250929050565b600080602083850312156116ef57600080fd5b82356001600160401b0381111561170557600080fd5b61171185828601611691565b90969095509350505050565b80356001600160a01b038116811461173457600080fd5b919050565b60006020828403121561174b57600080fd5b6117548261171d565b9392505050565b6000806000806040858703121561177157600080fd5b84356001600160401b038082111561178857600080fd5b61179488838901611691565b909650945060208701359150808211156117ad57600080fd5b506117ba87828801611691565b95989497509550505050565b6000806000606084860312156117db57600080fd5b833592506117eb6020850161171d565b91506117f96040850161171d565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b038111828210171561183b5761183b611802565b60405290565b604051606081016001600160401b038111828210171561183b5761183b611802565b604051601f8201601f191681016001600160401b038111828210171561188b5761188b611802565b604052919050565b60006001600160401b038211156118ac576118ac611802565b5060051b60200190565b60006001600160401b038311156118cf576118cf611802565b6118e2601f8401601f1916602001611863565b90508281528383830111156118f657600080fd5b828260208301376000602084830101529392505050565b600082601f83011261191e57600080fd5b611754838335602085016118b6565b803560ff8116811461173457600080fd5b600082601f83011261194f57600080fd5b8135602061196461195f83611893565b611863565b8083825260208201915060208460051b87010193508684111561198657600080fd5b602086015b848110156119a95761199c8161171d565b835291830191830161198b565b509695505050505050565b600082601f8301126119c557600080fd5b813560206119d561195f83611893565b82815260059290921b840181019181810190868411156119f457600080fd5b8286015b848110156119a95780356001600160401b03811115611a175760008081fd5b8701603f81018913611a295760008081fd5b611a3a8986830135604084016118b6565b8452509183019183016119f8565b60006101408284031215611a5b57600080fd5b611a63611818565b9050611a6e8261171d565b815260208201356001600160401b0380821115611a8a57600080fd5b611a968583860161190d565b60208401526040840135915080821115611aaf57600080fd5b611abb8583860161190d565b6040840152611acc6060850161192d565b6060840152611add6080850161171d565b6080840152611aee60a0850161171d565b60a084015260c0840135915080821115611b0757600080fd5b611b138583860161193e565b60c084015260e0840135915080821115611b2c57600080fd5b611b388583860161193e565b60e084015261010091508184013581811115611b5357600080fd5b611b5f8682870161193e565b838501525061012091508184013581811115611b7a57600080fd5b611b86868287016119b4565b8385015250505092915050565b600082601f830112611ba457600080fd5b81356020611bb461195f83611893565b8083825260208201915060208460051b870101935086841115611bd657600080fd5b602086015b848110156119a95780358352918301918301611bdb565b600060608284031215611c0457600080fd5b611c0c611841565b905081356001600160401b0380821115611c2557600080fd5b611c3185838601611b93565b8352602091508184013581811115611c4857600080fd5b611c548682870161193e565b8385015250604084013581811115611c6b57600080fd5b8401601f81018613611c7c57600080fd5b8035611c8a61195f82611893565b81815260059190911b82018401908481019088831115611ca957600080fd5b8584015b83811015611ce157803586811115611cc55760008081fd5b611cd38b8983890101611b93565b845250918601918601611cad565b50604087015250939695505050505050565b600082601f830112611d0457600080fd5b81356020611d1461195f83611893565b82815260059290921b84018101918181019086841115611d3357600080fd5b8286015b848110156119a95780356001600160401b03811115611d565760008081fd5b611d648986838b0101611bf2565b845250918301918301611d37565b60008060408385031215611d8557600080fd5b82356001600160401b0380821115611d9c57600080fd5b818501915085601f830112611db057600080fd5b81356020611dc061195f83611893565b82815260059290921b84018101918181019089841115611ddf57600080fd5b8286015b84811015611e1757803586811115611dfb5760008081fd5b611e098c86838b0101611a48565b845250918301918301611de3565b5096505086013592505080821115611e2e57600080fd5b50611e3b85828601611cf3565b9150509250929050565b803561ffff8116811461173457600080fd5b60008060408385031215611e6a57600080fd5b611e738361171d565b9150611e8160208401611e45565b90509250929050565b801515811461124757600080fd5b600060208284031215611eaa57600080fd5b813561175481611e8a565b60008060408385031215611ec857600080fd5b82356001600160401b0380821115611edf57600080fd5b611eeb86838701611a48565b93506020850135915080821115611f0157600080fd5b50611e3b85828601611bf2565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f3657600080fd5b61175482611e45565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761059657610596611f3f565b600082611f8957634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561059657610596611f3f565b600060208284031215611fb357600080fd5b815161175481611e8a565b60005b83811015611fd9578181015183820152602001611fc1565b50506000910152565b60008351611ff4818460208801611fbe565b835190830190612008818360208801611fbe565b01949350505050565b60008151808452612029816020860160208601611fbe565b601f01601f19169290920160200192915050565b60008151808452602080850194506020840160005b838110156120775781516001600160a01b031687529582019590820190600101612052565b509495945050505050565b60008282518085526020808601955060208260051b8401016020860160005b848110156120cf57601f198684030189526120bd838351612011565b988401989250908301906001016120a1565b5090979650505050505050565b60008151808452602080850194506020840160005b83811015612077578151875295820195908201906001016120f1565b600081516060845261212260608501826120dc565b90506020808401518583038287015261213b838261203d565b925050604084015185830360408701528281518085528385019150838160051b860101848401935060005b8281101561219457601f198783030184526121828286516120dc565b94860194938601939150600101612166565b5098975050505050505050565b6060815260006121b46060830186612011565b828103602084015284516001600160a01b0316815261014060208601518160208401526121e382840182612011565b915050604086015182820360408401526121fd8282612011565b9150506060860151612214606084018260ff169052565b50608086015161222f60808401826001600160a01b03169052565b5060a086015161224a60a08401826001600160a01b03169052565b5060c086015182820360c0840152612262828261203d565b91505060e086015182820360e084015261227c828261203d565b9150506101008087015183830382850152612297838261203d565b9250505061012080870151838303828501526122b38382612082565b935050505082810360408401526122ca818561210d565b9695505050505050565b8082018082111561059657610596611f3f565b6000816122f6576122f6611f3f565b50600019019056fea2646970667358221220bcf75d8e876ffbcdc3006813e0ba9fca7b7445cac2a245b89e2801f474fac62064736f6c63430008180033","sourceMap":"5048:9110:62:-:0;;;5745:249;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4272:10:87;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;617:51:165;590:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;5813:8:62;:18;;-1:-1:-1;;;;;5813:18:62;;-1:-1:-1;;;;;;5841:48:62;;;;;-1:-1:-1;;;5841:48:62;;;;;;;;5904:19;;;;-1:-1:-1;;5904:19:62;5938:49;;;;;;;;;;;5745:249;;5048:9110;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:452:165:-;90:6;98;151:2;139:9;130:7;126:23;122:32;119:52;;;167:1;164;157:12;119:52;193:16;;-1:-1:-1;;;;;238:31:165;;228:42;;218:70;;284:1;281;274:12;218:70;357:2;342:18;;336:25;307:5;;-1:-1:-1;399:15:165;;392:23;380:36;;370:64;;430:1;427;420:12;370:64;453:7;443:17;;;14:452;;;;;:::o;471:203::-;5048:9110:62;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101725760003560e01c806384e79842116100de578063a264f2bd11610097578063e65811ff11610071578063e65811ff14610398578063eca465c4146103ab578063f2fde38b146103be578063f315df86146103d157600080fd5b8063a264f2bd14610360578063bfc2f10b14610373578063c8eebfcc1461038557600080fd5b806384e79842146102de578063880f4039146102f157806388cc58e4146103045780638da5cb5b1461032957806397a6278e1461033a5780639c5c5ce71461034d57600080fd5b806350c358a41161013057806350c358a4146102775780635bb478081461028a5780635d46c2831461029d578063715018a6146102b0578063730b86a9146102b857806375e14cff146102cb57600080fd5b806265939e146101775780631ffbb0641461018c5780632782035e146101b4578063465f5eb8146101c757806346c549cc146101e8578063477068511461026c575b600080fd5b61018a6101853660046116dc565b6103e4565b005b61019f61019a366004611739565b610589565b60405190151581526020015b60405180910390f35b61018a6101c236600461175b565b61059c565b6101da6101d5366004611739565b610776565b6040519081526020016101ab565b6102396040805160608101825260008082526020820181905291810191909152506040805160608101825260035481526004546001600160a01b039081166020830152600554169181019190915290565b60408051825181526020808401516001600160a01b039081169183019190915292820151909216908201526060016101ab565b60065460ff1661019f565b61019f610285366004611739565b6107bd565b61018a610298366004611739565b6107db565b61018a6102ab3660046117c6565b610854565b61018a6108fd565b61018a6102c6366004611d72565b610911565b61018a6102d9366004611e57565b610987565b61018a6102ec366004611739565b610a4f565b61018a6102ff366004611739565b610aef565b6002546001600160a01b03165b6040516001600160a01b0390911681526020016101ab565b6000546001600160a01b0316610311565b61018a610348366004611739565b610bac565b61018a61035b366004611739565b610c4c565b61018a61036e366004611e98565b610caf565b600254600160a01b900460ff1661019f565b61018a610393366004611eb5565b610d60565b61018a6103a63660046116dc565b610fab565b61018a6103b9366004611e98565b61113b565b61018a6103cc366004611739565b61120c565b61018a6103df366004611739565b61124a565b6103ed33610589565b15801561040557506000546001600160a01b03163314155b1561042357604051631859551f60e31b815260040160405180910390fd5b6101f481111561044f57604051632789f90560e11b81526101f460048201526024015b60405180910390fd5b60005b818110156105845761048483838381811061046f5761046f611f0e565b90506020020160208101906102859190611739565b6104d45782828281811061049a5761049a611f0e565b90506020020160208101906104af9190611739565b604051634e02340f60e01b81526001600160a01b039091166004820152602401610446565b600760008484848181106104ea576104ea611f0e565b90506020020160208101906104ff9190611739565b6001600160a01b031681526020810191909152604001600020805460ff1916905582828281811061053257610532611f0e565b90506020020160208101906105479190611739565b6001600160a01b03167ffdb22628e87f888d060acc53d048a6a8400a5024f81f9dcb0606e723f238864a60405160405180910390a2600101610452565b505050565b6000610596600183611303565b92915050565b6105a533610589565b1580156105bd57506000546001600160a01b03163314155b156105db57604051631859551f60e31b815260040160405180910390fd5b6101f483111561060257604051632789f90560e11b81526101f46004820152602401610446565b60005b8381101561076f5761271083838381811061062257610622611f0e565b90506020020160208101906106379190611f24565b61ffff16111561065a5760405163eb2b61a560e01b815260040160405180910390fd5b82828281811061066c5761066c611f0e565b90506020020160208101906106819190611f24565b6008600087878581811061069757610697611f0e565b90506020020160208101906106ac9190611739565b6001600160a01b031681526020810191909152604001600020805461ffff191661ffff929092169190911790558484828181106106eb576106eb611f0e565b90506020020160208101906107009190611739565b6001600160a01b03167fd254de1c4bdaafc52898e46f43ed993ee35724d55a0df75ebcb55f9f6c470dab84848481811061073c5761073c611f0e565b90506020020160208101906107519190611f24565b60405161ffff909116815260200160405180910390a2600101610605565b5050505050565b6003546001600160a01b0382166000908152600860205260408120549091612710916107a6919061ffff16611f55565b6107b09190611f6c565b6003546105969190611f8e565b6001600160a01b031660009081526007602052604090205460ff1690565b6107e3611386565b6001600160a01b03811661080a5760405163d92e233d60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f1edf3afd4ac789736e00d216cd88be164ddcef26a6eedcc30cdb0cb62f3741b190600090a250565b61085c611386565b6001600160a01b038216158061087957506001600160a01b038116155b156108975760405163d92e233d60e01b815260040160405180910390fd5b6003839055600480546001600160a01b03199081166001600160a01b038581169182179093556005805490921692841692831790915560405185907f62aa79f6e449920637ad5310ea6ef9c67a32aaa6a8b98cd6814452daf11213a390600090a4505050565b610905611386565b61090f60006113b3565b565b60058251111561093757604051632789f90560e11b815260056004820152602401610446565b60005b82518110156105845761097f83828151811061095857610958611f0e565b602002602001015183838151811061097257610972611f0e565b6020026020010151610d60565b60010161093a565b61099033610589565b1580156109a857506000546001600160a01b03163314155b156109c657604051631859551f60e31b815260040160405180910390fd5b6127108161ffff1611156109ed5760405163eb2b61a560e01b815260040160405180910390fd5b6001600160a01b038216600081815260086020908152604091829020805461ffff191661ffff861690811790915591519182527fd254de1c4bdaafc52898e46f43ed993ee35724d55a0df75ebcb55f9f6c470dab910160405180910390a25050565b610a57611386565b6001600160a01b038116610aad5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610446565b610ab8600182611403565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b610af833610589565b158015610b1057506000546001600160a01b03163314155b15610b2e57604051631859551f60e31b815260040160405180910390fd5b610b37816107bd565b15610b60576040516375c2ceb960e11b81526001600160a01b0382166004820152602401610446565b6001600160a01b038116600081815260076020526040808220805460ff19166001179055517f861a21548a3ee34d896ccac3668a9d65030aaf2cb7367a2ed13608014016a0329190a250565b610bb4611386565b6001600160a01b038116610c0a5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610446565b610c1560018261147f565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b610c54611386565b60025460405163f2fde38b60e01b81526001600160a01b0383811660048301529091169063f2fde38b90602401600060405180830381600087803b158015610c9b57600080fd5b505af115801561076f573d6000803e3d6000fd5b610cb7611386565b60065460ff161515811515148015610cd157506001811515145b15610cef576040516360d38b9560e01b815260040160405180910390fd5b60065460ff161515811515148015610d05575080155b15610d23576040516398e8f30360e01b815260040160405180910390fd5b6006805460ff19168215159081179091556040517f576845931000b1b98d2173829911e0db5a788158585b3da38572ec01552217d590600090a250565b600254600160a01b900460ff16158015610d805750610d7e336107bd565b155b15610d9e57604051632deadb8b60e21b815260040160405180910390fd5b600254600160a01b900460ff1615156001148015610dc6575081516001600160a01b03163314155b8015610dd85750610dd6336107bd565b155b15610df6576040516318f44adb60e01b815260040160405180910390fd5b60065460009060ff161515600103610ec65760035415801590610e2f57503360009081526008602052604090205461271061ffff909116105b15610ec657610e3d33610776565b600480546005546040516323b872dd60e01b815233938101939093526001600160a01b0390811660248401526044830184905292935091909116906323b872dd906064016020604051808303816000875af1158015610ea0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec49190611fa1565b505b6000610ed58460000151611501565b602080860151604051610ee9939201611fe2565b60408051601f198184030181529082905260025463cf753d3760e01b83529092506001600160a01b03169063cf753d3790610f2c908490889088906004016121a1565b600060405180830381600087803b158015610f4657600080fd5b505af1158015610f5a573d6000803e3d6000fd5b50508551604080516001600160a01b039092168252602082018690523393507f3ddb07c2df247d32c71cd94e46f101dd4a4bcd5ce07afc925673aa63ba24960e92500160405180910390a250505050565b610fb433610589565b158015610fcc57506000546001600160a01b03163314155b15610fea57604051631859551f60e31b815260040160405180910390fd5b6101f481111561101157604051632789f90560e11b81526101f46004820152602401610446565b60005b818110156105845761103183838381811061046f5761046f611f0e565b156110825782828281811061104857611048611f0e565b905060200201602081019061105d9190611739565b6040516375c2ceb960e11b81526001600160a01b039091166004820152602401610446565b60016007600085858581811061109a5761109a611f0e565b90506020020160208101906110af9190611739565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558282828181106110e9576110e9611f0e565b90506020020160208101906110fe9190611739565b6001600160a01b03167f861a21548a3ee34d896ccac3668a9d65030aaf2cb7367a2ed13608014016a03260405160405180910390a2600101611014565b611143611386565b600260149054906101000a900460ff16151581151514801561116757506001811515145b1561118557604051634cc2b9b760e01b815260040160405180910390fd5b600260149054906101000a900460ff1615158115151480156111a5575080155b156111c35760405163593cdd5360e11b815260040160405180910390fd5b6002805460ff60a01b1916600160a01b831515908102919091179091556040517ff8be33baa430c4b62d2c9d79ab319d10cc41755a1fb65f85e64ca0632c29d0a490600090a250565b611214611386565b6001600160a01b03811661123e57604051631e4fbdf760e01b815260006004820152602401610446565b611247816113b3565b50565b61125333610589565b15801561126b57506000546001600160a01b03163314155b1561128957604051631859551f60e31b815260040160405180910390fd5b611292816107bd565b6112ba57604051634e02340f60e01b81526001600160a01b0382166004820152602401610446565b6001600160a01b038116600081815260076020526040808220805460ff19169055517ffdb22628e87f888d060acc53d048a6a8400a5024f81f9dcb0606e723f238864a9190a250565b60006001600160a01b0382166113665760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610446565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000546001600160a01b0316331461090f5760405163118cdaa760e01b8152336004820152602401610446565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61140d8282611303565b1561145a5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610446565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6114898282611303565b6114df5760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610446565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60606105966001600160a01b03831660146060826000611522846002611f55565b61152d9060026122d4565b6001600160401b0381111561154457611544611802565b6040519080825280601f01601f19166020018201604052801561156e576020820181803683370190505b509050600360fc1b8160008151811061158957611589611f0e565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106115b8576115b8611f0e565b60200101906001600160f81b031916908160001a90535060006115dc856002611f55565b6115e79060016122d4565b90505b600181111561165f576f181899199a1a9b1b9c1cb0b131b232b360811b83600f166010811061161b5761161b611f0e565b1a60f81b82828151811061163157611631611f0e565b60200101906001600160f81b031916908160001a90535060049290921c91611658816122e7565b90506115ea565b5081156116895760405163e22e27eb60e01b81526004810186905260248101859052604401610446565b949350505050565b60008083601f8401126116a357600080fd5b5081356001600160401b038111156116ba57600080fd5b6020830191508360208260051b85010111156116d557600080fd5b9250929050565b600080602083850312156116ef57600080fd5b82356001600160401b0381111561170557600080fd5b61171185828601611691565b90969095509350505050565b80356001600160a01b038116811461173457600080fd5b919050565b60006020828403121561174b57600080fd5b6117548261171d565b9392505050565b6000806000806040858703121561177157600080fd5b84356001600160401b038082111561178857600080fd5b61179488838901611691565b909650945060208701359150808211156117ad57600080fd5b506117ba87828801611691565b95989497509550505050565b6000806000606084860312156117db57600080fd5b833592506117eb6020850161171d565b91506117f96040850161171d565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b038111828210171561183b5761183b611802565b60405290565b604051606081016001600160401b038111828210171561183b5761183b611802565b604051601f8201601f191681016001600160401b038111828210171561188b5761188b611802565b604052919050565b60006001600160401b038211156118ac576118ac611802565b5060051b60200190565b60006001600160401b038311156118cf576118cf611802565b6118e2601f8401601f1916602001611863565b90508281528383830111156118f657600080fd5b828260208301376000602084830101529392505050565b600082601f83011261191e57600080fd5b611754838335602085016118b6565b803560ff8116811461173457600080fd5b600082601f83011261194f57600080fd5b8135602061196461195f83611893565b611863565b8083825260208201915060208460051b87010193508684111561198657600080fd5b602086015b848110156119a95761199c8161171d565b835291830191830161198b565b509695505050505050565b600082601f8301126119c557600080fd5b813560206119d561195f83611893565b82815260059290921b840181019181810190868411156119f457600080fd5b8286015b848110156119a95780356001600160401b03811115611a175760008081fd5b8701603f81018913611a295760008081fd5b611a3a8986830135604084016118b6565b8452509183019183016119f8565b60006101408284031215611a5b57600080fd5b611a63611818565b9050611a6e8261171d565b815260208201356001600160401b0380821115611a8a57600080fd5b611a968583860161190d565b60208401526040840135915080821115611aaf57600080fd5b611abb8583860161190d565b6040840152611acc6060850161192d565b6060840152611add6080850161171d565b6080840152611aee60a0850161171d565b60a084015260c0840135915080821115611b0757600080fd5b611b138583860161193e565b60c084015260e0840135915080821115611b2c57600080fd5b611b388583860161193e565b60e084015261010091508184013581811115611b5357600080fd5b611b5f8682870161193e565b838501525061012091508184013581811115611b7a57600080fd5b611b86868287016119b4565b8385015250505092915050565b600082601f830112611ba457600080fd5b81356020611bb461195f83611893565b8083825260208201915060208460051b870101935086841115611bd657600080fd5b602086015b848110156119a95780358352918301918301611bdb565b600060608284031215611c0457600080fd5b611c0c611841565b905081356001600160401b0380821115611c2557600080fd5b611c3185838601611b93565b8352602091508184013581811115611c4857600080fd5b611c548682870161193e565b8385015250604084013581811115611c6b57600080fd5b8401601f81018613611c7c57600080fd5b8035611c8a61195f82611893565b81815260059190911b82018401908481019088831115611ca957600080fd5b8584015b83811015611ce157803586811115611cc55760008081fd5b611cd38b8983890101611b93565b845250918601918601611cad565b50604087015250939695505050505050565b600082601f830112611d0457600080fd5b81356020611d1461195f83611893565b82815260059290921b84018101918181019086841115611d3357600080fd5b8286015b848110156119a95780356001600160401b03811115611d565760008081fd5b611d648986838b0101611bf2565b845250918301918301611d37565b60008060408385031215611d8557600080fd5b82356001600160401b0380821115611d9c57600080fd5b818501915085601f830112611db057600080fd5b81356020611dc061195f83611893565b82815260059290921b84018101918181019089841115611ddf57600080fd5b8286015b84811015611e1757803586811115611dfb5760008081fd5b611e098c86838b0101611a48565b845250918301918301611de3565b5096505086013592505080821115611e2e57600080fd5b50611e3b85828601611cf3565b9150509250929050565b803561ffff8116811461173457600080fd5b60008060408385031215611e6a57600080fd5b611e738361171d565b9150611e8160208401611e45565b90509250929050565b801515811461124757600080fd5b600060208284031215611eaa57600080fd5b813561175481611e8a565b60008060408385031215611ec857600080fd5b82356001600160401b0380821115611edf57600080fd5b611eeb86838701611a48565b93506020850135915080821115611f0157600080fd5b50611e3b85828601611bf2565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f3657600080fd5b61175482611e45565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761059657610596611f3f565b600082611f8957634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561059657610596611f3f565b600060208284031215611fb357600080fd5b815161175481611e8a565b60005b83811015611fd9578181015183820152602001611fc1565b50506000910152565b60008351611ff4818460208801611fbe565b835190830190612008818360208801611fbe565b01949350505050565b60008151808452612029816020860160208601611fbe565b601f01601f19169290920160200192915050565b60008151808452602080850194506020840160005b838110156120775781516001600160a01b031687529582019590820190600101612052565b509495945050505050565b60008282518085526020808601955060208260051b8401016020860160005b848110156120cf57601f198684030189526120bd838351612011565b988401989250908301906001016120a1565b5090979650505050505050565b60008151808452602080850194506020840160005b83811015612077578151875295820195908201906001016120f1565b600081516060845261212260608501826120dc565b90506020808401518583038287015261213b838261203d565b925050604084015185830360408701528281518085528385019150838160051b860101848401935060005b8281101561219457601f198783030184526121828286516120dc565b94860194938601939150600101612166565b5098975050505050505050565b6060815260006121b46060830186612011565b828103602084015284516001600160a01b0316815261014060208601518160208401526121e382840182612011565b915050604086015182820360408401526121fd8282612011565b9150506060860151612214606084018260ff169052565b50608086015161222f60808401826001600160a01b03169052565b5060a086015161224a60a08401826001600160a01b03169052565b5060c086015182820360c0840152612262828261203d565b91505060e086015182820360e084015261227c828261203d565b9150506101008087015183830382850152612297838261203d565b9250505061012080870151838303828501526122b38382612082565b935050505082810360408401526122ca818561210d565b9695505050505050565b8082018082111561059657610596611f3f565b6000816122f6576122f6611f3f565b50600019019056fea2646970667358221220bcf75d8e876ffbcdc3006813e0ba9fca7b7445cac2a245b89e2801f474fac62064736f6c63430008180033","sourceMap":"5048:9110:62:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9166:562;;;;;;:::i;:::-;;:::i;:::-;;4700:103:87;;;;;;:::i;:::-;;:::i;:::-;;;1362:14:165;;1355:22;1337:41;;1325:2;1310:18;4700:103:87;;;;;;;;10222:601:62;;;;;;:::i;:::-;;:::i;13978:178::-;;;;;;:::i;:::-;;:::i;:::-;;;2312:25:165;;;2300:2;2285:18;13978:178:62;2166:177:165;12182:109:62;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;12263:21:62;;;;;;;;12270:14;12263:21;;;;;-1:-1:-1;;;;;12263:21:62;;;;;;;;;;;;;;;;;;12182:109;;;;;2665:13:165;;2647:32;;2726:4;2714:17;;;2708:24;-1:-1:-1;;;;;2808:21:165;;;2786:20;;;2779:51;;;;2878:17;;;2872:24;2868:33;;;2846:20;;;2839:63;2635:2;2620:18;12182:109:62;2457:451:165;12369:116:62;12457:21;;;;12369:116;;13793:117;;;;;;:::i;:::-;;:::i;6060:214::-;;;;;;:::i;:::-;;:::i;7627:426::-;;;;;;:::i;:::-;;:::i;2293:101:141:-;;;:::i;11341:407:62:-;;;;;;:::i;:::-;;:::i;10895:370::-;;;;;;:::i;:::-;;:::i;4292:194:87:-;;;;;;:::i;:::-;;:::i;8749:342:62:-;;;;;;:::i;:::-;;:::i;12016:94::-;12095:8;;-1:-1:-1;;;;;12095:8:62;12016:94;;;-1:-1:-1;;;;;13847:32:165;;;13829:51;;13817:2;13802:18;12016:94:62;13683:203:165;1638:85:141;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;1638:85;;4492:202:87;;;;;;:::i;:::-;;:::i;6896:144:62:-;;;;;;:::i;:::-;;:::i;7115:440::-;;;;;;:::i;:::-;;:::i;11829:121::-;11920:23;;-1:-1:-1;;;11920:23:62;;;;11829:121;;12556:1171;;;;;;:::i;:::-;;:::i;8125:557::-;;;;;;:::i;:::-;;:::i;6355:461::-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;9798:347:62:-;;;;;;:::i;:::-;;:::i;9166:562::-;9257:19;9265:10;9257:7;:19::i;:::-;9256:20;:45;;;;-1:-1:-1;1684:7:141;1710:6;-1:-1:-1;;;;;1710:6:141;9280:10:62;:21;;9256:45;9253:97;;;9324:15;;-1:-1:-1;;;9324:15:62;;;;;;;;;;;9253:97;9381:3;9362:22;;9359:86;;;9407:27;;-1:-1:-1;;;9407:27:62;;9430:3;9407:27;;;15031:38:165;15004:18;;9407:27:62;;;;;;;;9359:86;9459:9;9454:268;9474:20;;;9454:268;;;9519:24;9530:9;;9540:1;9530:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;9519:24::-;9515:104;;9591:9;;9601:1;9591:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9570:34;;-1:-1:-1;;;9570:34:62;;-1:-1:-1;;;;;13847:32:165;;;9570:34:62;;;13829:51:165;13802:18;;9570:34:62;13683:203:165;9515:104:62;9639:10;:24;9650:9;;9660:1;9650:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9639:24:62;;;;;;;;;;;;-1:-1:-1;9639:24:62;9632:31;;-1:-1:-1;;9632:31:62;;;9698:9;;9708:1;9698:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9682:29:62;;;;;;;;;;;9496:3;;9454:268;;;;9166:562;;:::o;4700:103:87:-;4754:4;4777:19;:7;4789:6;4777:11;:19::i;:::-;4770:26;4700:103;-1:-1:-1;;4700:103:87:o;10222:601:62:-;10344:19;10352:10;10344:7;:19::i;:::-;10343:20;:45;;;;-1:-1:-1;1684:7:141;1710:6;-1:-1:-1;;;;;1710:6:141;10367:10:62;:21;;10343:45;10340:97;;;10411:15;;-1:-1:-1;;;10411:15:62;;;;;;;;;;;10340:97;10468:3;10449:22;;10446:86;;;10494:27;;-1:-1:-1;;;10494:27:62;;10517:3;10494:27;;;15031:38:165;15004:18;;10494:27:62;14876:199:165;10446:86:62;10546:9;10541:276;10561:20;;;10541:276;;;10620:5;10605:9;;10615:1;10605:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;:20;;;10602:85;;;10652:20;;-1:-1:-1;;;10652:20:62;;;;;;;;;;;10602:85;10729:9;;10739:1;10729:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;10700;:26;10713:9;;10723:1;10713:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10700:26:62;;;;;;;;;;;;-1:-1:-1;10700:26:62;:41;;-1:-1:-1;;10700:41:62;;;;;;;;;;;;10779:9;;10789:1;10779:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10760:46:62;;10793:9;;10803:1;10793:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;10760:46;;15061:6:165;15049:19;;;15031:38;;15019:2;15004:18;10760:46:62;;;;;;;10583:3;;10541:276;;;;10222:601;;;;:::o;13978:178::-;14121:14;:18;-1:-1:-1;;;;;14096:22:62;;14047:7;14096:22;;;:12;:22;;;;;;14047:7;;14143:5;;14096:43;;14121:18;14096:22;;:43;:::i;:::-;14095:53;;;;:::i;:::-;14073:14;:18;:76;;;;:::i;13793:117::-;-1:-1:-1;;;;;13883:20:62;13860:4;13883:20;;;:10;:20;;;;;;;;;13793:117::o;6060:214::-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;6138:21:62;::::1;6135:71;;6182:13;;-1:-1:-1::0;;;6182:13:62::1;;;;;;;;;;;6135:71;6215:8;:18:::0;;-1:-1:-1;;;;;;6215:18:62::1;-1:-1:-1::0;;;;;6215:18:62;::::1;::::0;;::::1;::::0;;;6248:19:::1;::::0;::::1;::::0;-1:-1:-1;;6248:19:62::1;6060:214:::0;:::o;7627:426::-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;7750:23:62;::::1;::::0;;:54:::1;;-1:-1:-1::0;;;;;;7777:27:62;::::1;::::0;7750:54:::1;7747:104;;;7827:13;;-1:-1:-1::0;;;7827:13:62::1;;;;;;;;;;;7747:104;7860:14;:25:::0;;;7895:23;:35;;-1:-1:-1;;;;;;7895:35:62;;::::1;-1:-1:-1::0;;;;;7895:35:62;;::::1;::::0;;::::1;::::0;;;7940:27;:43;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;7998:48:::1;::::0;7860:25;;7998:48:::1;::::0;-1:-1:-1;;7998:48:62::1;7627:426:::0;;;:::o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;11341:407:62:-;11546:1;11523:13;:20;:24;11520:86;;;11570:25;;-1:-1:-1;;;11570:25:62;;11593:1;11570:25;;;15031:38:165;15004:18;;11570:25:62;14876:199:165;11520:86:62;11620:9;11615:127;11639:13;:20;11635:1;:24;11615:127;;;11680:51;11696:13;11710:1;11696:16;;;;;;;;:::i;:::-;;;;;;;11714:13;11728:1;11714:16;;;;;;;;:::i;:::-;;;;;;;11680:15;:51::i;:::-;11661:3;;11615:127;;10895:370;10988:19;10996:10;10988:7;:19::i;:::-;10987:20;:45;;;;-1:-1:-1;1684:7:141;1710:6;-1:-1:-1;;;;;1710:6:141;11011:10:62;:21;;10987:45;10984:97;;;11055:15;;-1:-1:-1;;;11055:15:62;;;;;;;;;;;10984:97;11104:5;11093:8;:16;;;11090:73;;;11132:20;;-1:-1:-1;;;11132:20:62;;;;;;;;;;;11090:73;-1:-1:-1;;;;;11172:22:62;;;;;;:12;:22;;;;;;;;;:33;;-1:-1:-1;;11172:33:62;;;;;;;;;;11220:38;;15031::165;;;11220::62;;15004:18:165;11220:38:62;;;;;;;10895:370;;:::o;4292:194:87:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4361:20:87;::::1;4353:64;;;::::0;-1:-1:-1;;;4353:64:87;;16658:2:165;4353:64:87::1;::::0;::::1;16640:21:165::0;16697:2;16677:18;;;16670:30;16736:33;16716:18;;;16709:61;16787:18;;4353:64:87::1;16456:355:165::0;4353:64:87::1;4427:19;:7;4439:6:::0;4427:11:::1;:19::i;:::-;4461:18;::::0;-1:-1:-1;;;;;4461:18:87;::::1;::::0;::::1;::::0;;;::::1;4292:194:::0;:::o;8749:342:62:-;8820:19;8828:10;8820:7;:19::i;:::-;8819:20;:45;;;;-1:-1:-1;1684:7:141;1710:6;-1:-1:-1;;;;;1710:6:141;8843:10:62;:21;;8819:45;8816:97;;;8887:15;;-1:-1:-1;;;8887:15:62;;;;;;;;;;;8816:97;8925:20;8936:8;8925:10;:20::i;:::-;8922:88;;;8968:31;;-1:-1:-1;;;8968:31:62;;-1:-1:-1;;;;;13847:32:165;;8968:31:62;;;13829:51:165;13802:18;;8968:31:62;13683:203:165;8922:88:62;-1:-1:-1;;;;;9019:20:62;;;;;;:10;:20;;;;;;:27;;-1:-1:-1;;9019:27:62;9042:4;9019:27;;;9061:23;;;9019:20;9061:23;8749:342;:::o;4492:202:87:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4564:20:87;::::1;4556:64;;;::::0;-1:-1:-1;;;4556:64:87;;16658:2:165;4556:64:87::1;::::0;::::1;16640:21:165::0;16697:2;16677:18;;;16670:30;16736:33;16716:18;;;16709:61;16787:18;;4556:64:87::1;16456:355:165::0;4556:64:87::1;4630:22;:7;4645:6:::0;4630:14:::1;:22::i;:::-;4667:20;::::0;-1:-1:-1;;;;;4667:20:87;::::1;::::0;::::1;::::0;;;::::1;4492:202:::0;:::o;6896:144:62:-;1531:13:141;:11;:13::i;:::-;6995:8:62::1;::::0;6987:46:::1;::::0;-1:-1:-1;;;6987:46:62;;-1:-1:-1;;;;;13847:32:165;;;6987:46:62::1;::::0;::::1;13829:51:165::0;6995:8:62;;::::1;::::0;6987:35:::1;::::0;13802:18:165;;6987:46:62::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;7115:440:::0;1531:13:141;:11;:13::i;:::-;7216:21:62::1;::::0;::::1;;7202:35;;::::0;::::1;;;:57:::0;::::1;;;-1:-1:-1::0;7255:4:62::1;7241:18:::0;::::1;;;7202:57;7199:124;;;7282:30;;-1:-1:-1::0;;;7282:30:62::1;;;;;;;;;;;7199:124;7349:21;::::0;::::1;;7335:35;;::::0;::::1;;;:58:::0;::::1;;;-1:-1:-1::0;7374:19:62;::::1;7335:58;7332:126;;;7416:31;;-1:-1:-1::0;;;7416:31:62::1;;;;;;;;;;;7332:126;7467:21;:34:::0;;-1:-1:-1;;7467:34:62::1;::::0;::::1;;::::0;;::::1;::::0;;;7516:32:::1;::::0;::::1;::::0;-1:-1:-1;;7516:32:62::1;7115:440:::0;:::o;12556:1171::-;12710:23;;-1:-1:-1;;;12710:23:62;;;;:32;;;:59;;;12747:22;12758:10;12747;:22::i;:::-;12746:23;12710:59;12707:125;;;12792:29;;-1:-1:-1;;;12792:29:62;;;;;;;;;;;12707:125;12844:23;;-1:-1:-1;;;12844:23:62;;;;:31;;12871:4;12844:31;:68;;;;-1:-1:-1;12893:19:62;;-1:-1:-1;;;;;12879:33:62;:10;:33;;12844:68;:95;;;;;12917:22;12928:10;12917;:22::i;:::-;12916:23;12844:95;12841:160;;;12962:28;;-1:-1:-1;;;12962:28:62;;;;;;;;;;;12841:160;13045:21;;13010:18;;13045:21;;:29;;:21;:29;13042:384;;13093:14;:18;:22;;;;:58;;-1:-1:-1;13132:10:62;13119:24;;;;:12;:24;;;;;;13146:5;13119:24;;;;:32;13093:58;13090:326;;;13184:24;13197:10;13184:12;:24::i;:::-;13233:23;;;13324:27;;13226:175;;-1:-1:-1;;;13226:175:62;;13292:10;13226:175;;;17056:34:165;;;;-1:-1:-1;;;;;13324:27:62;;;17106:18:165;;;17099:43;17158:18;;;17151:34;;;13171:37:62;;-1:-1:-1;13233:23:62;;;;;13226:44;;16991:18:165;;13226:175:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13090:326;13435:19;13482:40;13502:13;:19;;;13482;:40::i;:::-;13524:18;;;;;13465:78;;;;;;;:::i;:::-;;;;-1:-1:-1;;13465:78:62;;;;;;;;;;13567:8;;-1:-1:-1;;;13554:75:62;;13465:78;;-1:-1:-1;;;;;;13567:8:62;;13554:38;;:75;;13465:78;;13600:13;;13615;;13554:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13688:19:62;;13644:76;;;-1:-1:-1;;;;;23460:32:165;;;23442:51;;23524:2;23509:18;;23502:34;;;13676:10:62;;-1:-1:-1;13644:76:62;;-1:-1:-1;23415:18:165;13644:76:62;;;;;;;12697:1030;;12556:1171;;:::o;8125:557::-;8213:19;8221:10;8213:7;:19::i;:::-;8212:20;:45;;;;-1:-1:-1;1684:7:141;1710:6;-1:-1:-1;;;;;1710:6:141;8236:10:62;:21;;8212:45;8209:97;;;8280:15;;-1:-1:-1;;;8280:15:62;;;;;;;;;;;8209:97;8337:3;8318:22;;8315:86;;;8363:27;;-1:-1:-1;;;8363:27:62;;8386:3;8363:27;;;15031:38:165;15004:18;;8363:27:62;14876:199:165;8315:86:62;8415:9;8410:266;8430:20;;;8410:266;;;8474:24;8485:9;;8495:1;8485:12;;;;;;;:::i;8474:24::-;8471:104;;;8547:9;;8557:1;8547:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8525:35;;-1:-1:-1;;;8525:35:62;;-1:-1:-1;;;;;13847:32:165;;;8525:35:62;;;13829:51:165;13802:18;;8525:35:62;13683:203:165;8471:104:62;8615:4;8588:10;:24;8599:9;;8609:1;8599:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8588:24:62;;;;;;;;;;;;-1:-1:-1;8588:24:62;:31;;-1:-1:-1;;8588:31:62;;;;;;;;;;8652:9;;8662:1;8652:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8638:27:62;;;;;;;;;;;8452:3;;8410:266;;6355:461;1531:13:141;:11;:13::i;:::-;6462:23:62::1;;;;;;;;;;;6448:37;;:10;:37;;;:59;;;;-1:-1:-1::0;6503:4:62::1;6489:18:::0;::::1;;;6448:59;6445:128;;;6530:32;;-1:-1:-1::0;;;6530:32:62::1;;;;;;;;;;;6445:128;6599:23;;;;;;;;;;;6585:37;;:10;:37;;;:60;;;;-1:-1:-1::0;6626:19:62;::::1;6585:60;6582:130;;;6668:33;;-1:-1:-1::0;;;6668:33:62::1;;;;;;;;;;;6582:130;6721:23;:36:::0;;-1:-1:-1;;;;6721:36:62::1;-1:-1:-1::0;;;6721:36:62;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;6772:37:::1;::::0;::::1;::::0;-1:-1:-1;;6772:37:62::1;6355:461:::0;:::o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;13829:51:165::0;13802:18;;2672:31:141::1;13683:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;9798:347:62:-;9872:19;9880:10;9872:7;:19::i;:::-;9871:20;:45;;;;-1:-1:-1;1684:7:141;1710:6;-1:-1:-1;;;;;1710:6:141;9895:10:62;:21;;9871:45;9868:97;;;9939:15;;-1:-1:-1;;;9939:15:62;;;;;;;;;;;9868:97;9978:20;9989:8;9978:10;:20::i;:::-;9974:88;;10021:30;;-1:-1:-1;;;10021:30:62;;-1:-1:-1;;;;;13847:32:165;;10021:30:62;;;13829:51:165;13802:18;;10021:30:62;13683:203:165;9974:88:62;-1:-1:-1;;;;;10078:20:62;;;;;;:10;:20;;;;;;10071:27;;-1:-1:-1;;10071:27:62;;;10113:25;;;10078:20;10113:25;9798:347;:::o;4596:200:89:-;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;23749:2:165;4684:68:89;;;23731:21:165;23788:2;23768:18;;;23761:30;23827:34;23807:18;;;23800:62;-1:-1:-1;;;23878:18:165;;;23871:32;23920:19;;4684:68:89;23547:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;1796:162:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;13829:51:165;13802:18;;1901:40:141;13683:203:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;4077:175:89:-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;24152:2:165;4145:63:89;;;24134:21:165;24191:2;24171:18;;;24164:30;24230:33;24210:18;;;24203:61;24281:18;;4145:63:89;23950:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;4327:180::-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;24512:2:165;4398:64:89;;;24494:21:165;24551:2;24531:18;;;24524:30;24590:34;24570:18;;;24563:62;-1:-1:-1;;;24641:18:165;;;24634:31;24682:19;;4398:64:89;24310:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;2689:148:155:-;2747:13;2779:51;-1:-1:-1;;;;;2791:22:155;;375:2;2080:13;2126:5;2105:18;2173:10;2177:6;2173:1;:10;:::i;:::-;:14;;2186:1;2173:14;:::i;:::-;-1:-1:-1;;;;;2163:25:155;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2163:25:155;;2141:47;;-1:-1:-1;;;2198:6:155;2205:1;2198:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2198:15:155;;;;;;;;;-1:-1:-1;;;2223:6:155;2230:1;2223:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2223:15:155;;;;;;;;-1:-1:-1;2253:9:155;2265:10;2269:6;2265:1;:10;:::i;:::-;:14;;2278:1;2265:14;:::i;:::-;2253:26;;2248:140;2285:1;2281;:5;2248:140;;;-1:-1:-1;;;2330:10:155;2343:3;2330:16;2319:28;;;;;;;:::i;:::-;;;;2307:6;2314:1;2307:9;;;;;;;;:::i;:::-;;;;:40;-1:-1:-1;;;;;2307:40:155;;;;;;;;-1:-1:-1;2376:1:155;2361:16;;;;;2288:3;;;:::i;:::-;;;2248:140;;;-1:-1:-1;2401:15:155;;2397:96;;2439:43;;-1:-1:-1;;;2439:43:155;;;;;25157:25:165;;;25198:18;;;25191:34;;;25130:18;;2439:43:155;24983:248:165;2397:96:155;2516:6;2005:525;-1:-1:-1;;;;2005:525:155:o;14:367:165:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:165;;-1:-1:-1;;;;;214:30:165;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;308:67;14:367;;;;;:::o;386:437::-;472:6;480;533:2;521:9;512:7;508:23;504:32;501:52;;;549:1;546;539:12;501:52;589:9;576:23;-1:-1:-1;;;;;614:6:165;611:30;608:50;;;654:1;651;644:12;608:50;693:70;755:7;746:6;735:9;731:22;693:70;:::i;:::-;782:8;;667:96;;-1:-1:-1;386:437:165;-1:-1:-1;;;;386:437:165:o;828:173::-;896:20;;-1:-1:-1;;;;;945:31:165;;935:42;;925:70;;991:1;988;981:12;925:70;828:173;;;:::o;1006:186::-;1065:6;1118:2;1106:9;1097:7;1093:23;1089:32;1086:52;;;1134:1;1131;1124:12;1086:52;1157:29;1176:9;1157:29;:::i;:::-;1147:39;1006:186;-1:-1:-1;;;1006:186:165:o;1389:772::-;1510:6;1518;1526;1534;1587:2;1575:9;1566:7;1562:23;1558:32;1555:52;;;1603:1;1600;1593:12;1555:52;1643:9;1630:23;-1:-1:-1;;;;;1713:2:165;1705:6;1702:14;1699:34;;;1729:1;1726;1719:12;1699:34;1768:70;1830:7;1821:6;1810:9;1806:22;1768:70;:::i;:::-;1857:8;;-1:-1:-1;1742:96:165;-1:-1:-1;1945:2:165;1930:18;;1917:32;;-1:-1:-1;1961:16:165;;;1958:36;;;1990:1;1987;1980:12;1958:36;;2029:72;2093:7;2082:8;2071:9;2067:24;2029:72;:::i;:::-;1389:772;;;;-1:-1:-1;2120:8:165;-1:-1:-1;;;;1389:772:165:o;2913:328::-;2990:6;2998;3006;3059:2;3047:9;3038:7;3034:23;3030:32;3027:52;;;3075:1;3072;3065:12;3027:52;3111:9;3098:23;3088:33;;3140:38;3174:2;3163:9;3159:18;3140:38;:::i;:::-;3130:48;;3197:38;3231:2;3220:9;3216:18;3197:38;:::i;:::-;3187:48;;2913:328;;;;;:::o;3246:127::-;3307:10;3302:3;3298:20;3295:1;3288:31;3338:4;3335:1;3328:15;3362:4;3359:1;3352:15;3378:255;3450:2;3444:9;3492:6;3480:19;;-1:-1:-1;;;;;3514:34:165;;3550:22;;;3511:62;3508:88;;;3576:18;;:::i;:::-;3612:2;3605:22;3378:255;:::o;3638:253::-;3710:2;3704:9;3752:4;3740:17;;-1:-1:-1;;;;;3772:34:165;;3808:22;;;3769:62;3766:88;;;3834:18;;:::i;3896:275::-;3967:2;3961:9;4032:2;4013:13;;-1:-1:-1;;4009:27:165;3997:40;;-1:-1:-1;;;;;4052:34:165;;4088:22;;;4049:62;4046:88;;;4114:18;;:::i;:::-;4150:2;4143:22;3896:275;;-1:-1:-1;3896:275:165:o;4176:195::-;4248:4;-1:-1:-1;;;;;4273:6:165;4270:30;4267:56;;;4303:18;;:::i;:::-;-1:-1:-1;4348:1:165;4344:14;4360:4;4340:25;;4176:195::o;4376:407::-;4441:5;-1:-1:-1;;;;;4467:6:165;4464:30;4461:56;;;4497:18;;:::i;:::-;4535:57;4580:2;4559:15;;-1:-1:-1;;4555:29:165;4586:4;4551:40;4535:57;:::i;:::-;4526:66;;4615:6;4608:5;4601:21;4655:3;4646:6;4641:3;4637:16;4634:25;4631:45;;;4672:1;4669;4662:12;4631:45;4721:6;4716:3;4709:4;4702:5;4698:16;4685:43;4775:1;4768:4;4759:6;4752:5;4748:18;4744:29;4737:40;4376:407;;;;;:::o;4788:222::-;4831:5;4884:3;4877:4;4869:6;4865:17;4861:27;4851:55;;4902:1;4899;4892:12;4851:55;4924:80;5000:3;4991:6;4978:20;4971:4;4963:6;4959:17;4924:80;:::i;5015:156::-;5081:20;;5141:4;5130:16;;5120:27;;5110:55;;5161:1;5158;5151:12;5176:686;5230:5;5283:3;5276:4;5268:6;5264:17;5260:27;5250:55;;5301:1;5298;5291:12;5250:55;5337:6;5324:20;5363:4;5387:72;5403:55;5455:2;5403:55;:::i;:::-;5387:72;:::i;:::-;5481:3;5505:2;5500:3;5493:15;5533:4;5528:3;5524:14;5517:21;;5590:4;5584:2;5581:1;5577:10;5569:6;5565:23;5561:34;5547:48;;5618:3;5610:6;5607:15;5604:35;;;5635:1;5632;5625:12;5604:35;5671:4;5663:6;5659:17;5685:148;5701:6;5696:3;5693:15;5685:148;;;5767:23;5786:3;5767:23;:::i;:::-;5755:36;;5811:12;;;;5718;;5685:148;;;-1:-1:-1;5851:5:165;5176:686;-1:-1:-1;;;;;;5176:686:165:o;5867:1100::-;5919:5;5972:3;5965:4;5957:6;5953:17;5949:27;5939:55;;5990:1;5987;5980:12;5939:55;6026:6;6013:20;6052:4;6076:72;6092:55;6144:2;6092:55;:::i;6076:72::-;6182:15;;;6268:1;6264:10;;;;6252:23;;6248:32;;;6213:12;;;;6292:15;;;6289:35;;;6320:1;6317;6310:12;6289:35;6356:2;6348:6;6344:15;6368:570;6384:6;6379:3;6376:15;6368:570;;;6470:3;6457:17;-1:-1:-1;;;;;6493:11:165;6490:35;6487:125;;;6566:1;6595:2;6591;6584:14;6487:125;6635:24;;6694:2;6686:11;;6682:21;-1:-1:-1;6672:119:165;;6745:1;6774:2;6770;6763:14;6672:119;6816:79;6891:3;6885:2;6881;6877:11;6864:25;6859:2;6855;6851:11;6816:79;:::i;:::-;6804:92;;-1:-1:-1;6916:12:165;;;;6401;;6368:570;;6972:1664;7031:5;7079:6;7067:9;7062:3;7058:19;7054:32;7051:52;;;7099:1;7096;7089:12;7051:52;7121:22;;:::i;:::-;7112:31;;7166:29;7185:9;7166:29;:::i;:::-;7159:5;7152:44;7247:2;7236:9;7232:18;7219:32;-1:-1:-1;;;;;7311:2:165;7303:6;7300:14;7297:34;;;7327:1;7324;7317:12;7297:34;7363:46;7405:3;7396:6;7385:9;7381:22;7363:46;:::i;:::-;7358:2;7351:5;7347:14;7340:70;7463:2;7452:9;7448:18;7435:32;7419:48;;7492:2;7482:8;7479:16;7476:36;;;7508:1;7505;7498:12;7476:36;7544:48;7588:3;7577:8;7566:9;7562:24;7544:48;:::i;:::-;7539:2;7532:5;7528:14;7521:72;7625:36;7657:2;7646:9;7642:18;7625:36;:::i;:::-;7620:2;7613:5;7609:14;7602:60;7695:39;7729:3;7718:9;7714:19;7695:39;:::i;:::-;7689:3;7682:5;7678:15;7671:64;7768:39;7802:3;7791:9;7787:19;7768:39;:::i;:::-;7762:3;7755:5;7751:15;7744:64;7861:3;7850:9;7846:19;7833:33;7817:49;;7891:2;7881:8;7878:16;7875:36;;;7907:1;7904;7897:12;7875:36;7944:59;7999:3;7988:8;7977:9;7973:24;7944:59;:::i;:::-;7938:3;7931:5;7927:15;7920:84;8057:3;8046:9;8042:19;8029:33;8013:49;;8087:2;8077:8;8074:16;8071:36;;;8103:1;8100;8093:12;8071:36;8140:59;8195:3;8184:8;8173:9;8169:24;8140:59;:::i;:::-;8134:3;8127:5;8123:15;8116:84;8219:3;8209:13;;8275:2;8264:9;8260:18;8247:32;8304:2;8294:8;8291:16;8288:36;;;8320:1;8317;8310:12;8288:36;8356:59;8411:3;8400:8;8389:9;8385:24;8356:59;:::i;:::-;8351:2;8344:5;8340:14;8333:83;;8435:3;8425:13;;8491:2;8480:9;8476:18;8463:32;8520:2;8510:8;8507:16;8504:36;;;8536:1;8533;8526:12;8504:36;8572:57;8625:3;8614:8;8603:9;8599:24;8572:57;:::i;:::-;8567:2;8560:5;8556:14;8549:81;;;;6972:1664;;;;:::o;8641:680::-;8695:5;8748:3;8741:4;8733:6;8729:17;8725:27;8715:55;;8766:1;8763;8756:12;8715:55;8802:6;8789:20;8828:4;8852:72;8868:55;8920:2;8868:55;:::i;8852:72::-;8946:3;8970:2;8965:3;8958:15;8998:4;8993:3;8989:14;8982:21;;9055:4;9049:2;9046:1;9042:10;9034:6;9030:23;9026:34;9012:48;;9083:3;9075:6;9072:15;9069:35;;;9100:1;9097;9090:12;9069:35;9136:4;9128:6;9124:17;9150:142;9166:6;9161:3;9158:15;9150:142;;;9232:17;;9220:30;;9270:12;;;;9183;;9150:142;;9326:1539;9385:5;9433:4;9421:9;9416:3;9412:19;9408:30;9405:50;;;9451:1;9448;9441:12;9405:50;9473:22;;:::i;:::-;9464:31;;9531:9;9518:23;-1:-1:-1;;;;;9601:2:165;9593:6;9590:14;9587:34;;;9617:1;9614;9607:12;9587:34;9644:57;9697:3;9688:6;9677:9;9673:22;9644:57;:::i;:::-;9637:5;9630:72;9721:2;9711:12;;9776:2;9765:9;9761:18;9748:32;9805:2;9795:8;9792:16;9789:36;;;9821:1;9818;9811:12;9789:36;9857:59;9912:3;9901:8;9890:9;9886:24;9857:59;:::i;:::-;9852:2;9845:5;9841:14;9834:83;;9970:2;9959:9;9955:18;9942:32;9999:2;9989:8;9986:16;9983:36;;;10015:1;10012;10005:12;9983:36;10038:24;;10093:4;10085:13;;10081:23;-1:-1:-1;10071:51:165;;10118:1;10115;10108:12;10071:51;10154:2;10141:16;10177:72;10193:55;10245:2;10193:55;:::i;10177:72::-;10283:15;;;10365:1;10361:10;;;;10353:19;;10349:28;;;10314:12;;;;10389:15;;;10386:35;;;10417:1;10414;10407:12;10386:35;10449:2;10445;10441:11;10461:360;10477:6;10472:3;10469:15;10461:360;;;10563:3;10550:17;10599:2;10586:11;10583:19;10580:109;;;10643:1;10672:2;10668;10661:14;10580:109;10714:64;10774:3;10769:2;10755:11;10751:2;10747:20;10743:29;10714:64;:::i;:::-;10702:77;;-1:-1:-1;10799:12:165;;;;10494;;10461:360;;;-1:-1:-1;10848:2:165;10837:14;;10830:29;-1:-1:-1;10841:5:165;;9326:1539;-1:-1:-1;;;;;;9326:1539:165:o;10870:926::-;10936:5;10989:3;10982:4;10974:6;10970:17;10966:27;10956:55;;11007:1;11004;10997:12;10956:55;11043:6;11030:20;11069:4;11093:72;11109:55;11161:2;11109:55;:::i;11093:72::-;11199:15;;;11285:1;11281:10;;;;11269:23;;11265:32;;;11230:12;;;;11309:15;;;11306:35;;;11337:1;11334;11327:12;11306:35;11373:2;11365:6;11361:15;11385:382;11401:6;11396:3;11393:15;11385:382;;;11487:3;11474:17;-1:-1:-1;;;;;11510:11:165;11507:35;11504:125;;;11583:1;11612:2;11608;11601:14;11504:125;11654:70;11720:3;11715:2;11701:11;11693:6;11689:24;11685:33;11654:70;:::i;:::-;11642:83;;-1:-1:-1;11745:12:165;;;;11418;;11385:382;;11801:1450;11981:6;11989;12042:2;12030:9;12021:7;12017:23;12013:32;12010:52;;;12058:1;12055;12048:12;12010:52;12098:9;12085:23;-1:-1:-1;;;;;12168:2:165;12160:6;12157:14;12154:34;;;12184:1;12181;12174:12;12154:34;12222:6;12211:9;12207:22;12197:32;;12267:7;12260:4;12256:2;12252:13;12248:27;12238:55;;12289:1;12286;12279:12;12238:55;12325:2;12312:16;12347:4;12371:72;12387:55;12439:2;12387:55;:::i;12371:72::-;12477:15;;;12559:1;12555:10;;;;12547:19;;12543:28;;;12508:12;;;;12583:19;;;12580:39;;;12615:1;12612;12605:12;12580:39;12647:2;12643;12639:11;12659:366;12675:6;12670:3;12667:15;12659:366;;;12761:3;12748:17;12797:2;12784:11;12781:19;12778:109;;;12841:1;12870:2;12866;12859:14;12778:109;12912:70;12974:7;12969:2;12955:11;12951:2;12947:20;12943:29;12912:70;:::i;:::-;12900:83;;-1:-1:-1;13003:12:165;;;;12692;;12659:366;;;-1:-1:-1;13044:5:165;-1:-1:-1;;13087:18:165;;13074:32;;-1:-1:-1;;13118:16:165;;;13115:36;;;13147:1;13144;13137:12;13115:36;;13170:75;13237:7;13226:8;13215:9;13211:24;13170:75;:::i;:::-;13160:85;;;11801:1450;;;;;:::o;13256:159::-;13323:20;;13383:6;13372:18;;13362:29;;13352:57;;13405:1;13402;13395:12;13420:258;13487:6;13495;13548:2;13536:9;13527:7;13523:23;13519:32;13516:52;;;13564:1;13561;13554:12;13516:52;13587:29;13606:9;13587:29;:::i;:::-;13577:39;;13635:37;13668:2;13657:9;13653:18;13635:37;:::i;:::-;13625:47;;13420:258;;;;;:::o;13891:118::-;13977:5;13970:13;13963:21;13956:5;13953:32;13943:60;;13999:1;13996;13989:12;14014:241;14070:6;14123:2;14111:9;14102:7;14098:23;14094:32;14091:52;;;14139:1;14136;14129:12;14091:52;14178:9;14165:23;14197:28;14219:5;14197:28;:::i;14260:611::-;14390:6;14398;14451:2;14439:9;14430:7;14426:23;14422:32;14419:52;;;14467:1;14464;14457:12;14419:52;14507:9;14494:23;-1:-1:-1;;;;;14577:2:165;14569:6;14566:14;14563:34;;;14593:1;14590;14583:12;14563:34;14616:63;14671:7;14662:6;14651:9;14647:22;14616:63;:::i;:::-;14606:73;;14732:2;14721:9;14717:18;14704:32;14688:48;;14761:2;14751:8;14748:16;14745:36;;;14777:1;14774;14767:12;14745:36;;14800:65;14857:7;14846:8;14835:9;14831:24;14800:65;:::i;15080:127::-;15141:10;15136:3;15132:20;15129:1;15122:31;15172:4;15169:1;15162:15;15196:4;15193:1;15186:15;15212:184;15270:6;15323:2;15311:9;15302:7;15298:23;15294:32;15291:52;;;15339:1;15336;15329:12;15291:52;15362:28;15380:9;15362:28;:::i;15594:127::-;15655:10;15650:3;15646:20;15643:1;15636:31;15686:4;15683:1;15676:15;15710:4;15707:1;15700:15;15726:168;15799:9;;;15830;;15847:15;;;15841:22;;15827:37;15817:71;;15868:18;;:::i;15899:217::-;15939:1;15965;15955:132;;16009:10;16004:3;16000:20;15997:1;15990:31;16044:4;16041:1;16034:15;16072:4;16069:1;16062:15;15955:132;-1:-1:-1;16101:9:165;;15899:217::o;16121:128::-;16188:9;;;16209:11;;;16206:37;;;16223:18;;:::i;17196:245::-;17263:6;17316:2;17304:9;17295:7;17291:23;17287:32;17284:52;;;17332:1;17329;17322:12;17284:52;17364:9;17358:16;17383:28;17405:5;17383:28;:::i;17446:250::-;17531:1;17541:113;17555:6;17552:1;17549:13;17541:113;;;17631:11;;;17625:18;17612:11;;;17605:39;17577:2;17570:10;17541:113;;;-1:-1:-1;;17688:1:165;17670:16;;17663:27;17446:250::o;17701:496::-;17880:3;17918:6;17912:13;17934:66;17993:6;17988:3;17981:4;17973:6;17969:17;17934:66;:::i;:::-;18063:13;;18022:16;;;;18085:70;18063:13;18022:16;18132:4;18120:17;;18085:70;:::i;:::-;18171:20;;17701:496;-1:-1:-1;;;;17701:496:165:o;18202:271::-;18244:3;18282:5;18276:12;18309:6;18304:3;18297:19;18325:76;18394:6;18387:4;18382:3;18378:14;18371:4;18364:5;18360:16;18325:76;:::i;:::-;18455:2;18434:15;-1:-1:-1;;18430:29:165;18421:39;;;;18462:4;18417:50;;18202:271;-1:-1:-1;;18202:271:165:o;18558:465::-;18611:3;18649:5;18643:12;18676:6;18671:3;18664:19;18702:4;18731;18726:3;18722:14;18715:21;;18770:4;18763:5;18759:16;18793:1;18803:195;18817:6;18814:1;18811:13;18803:195;;;18882:13;;-1:-1:-1;;;;;18878:39:165;18866:52;;18938:12;;;;18973:15;;;;18914:1;18832:9;18803:195;;;-1:-1:-1;19014:3:165;;18558:465;-1:-1:-1;;;;;18558:465:165:o;19028:597::-;19079:3;19110;19142:5;19136:12;19169:6;19164:3;19157:19;19195:4;19224;19219:3;19215:14;19208:21;;19282:4;19272:6;19269:1;19265:14;19258:5;19254:26;19250:37;19321:4;19314:5;19310:16;19344:1;19354:245;19368:6;19365:1;19362:13;19354:245;;;19455:2;19451:7;19443:5;19437:4;19433:16;19429:30;19424:3;19417:43;19481:38;19514:4;19505:6;19499:13;19481:38;:::i;:::-;19577:12;;;;19473:46;-1:-1:-1;19542:15:165;;;;19390:1;19383:9;19354:245;;;-1:-1:-1;19615:4:165;;19028:597;-1:-1:-1;;;;;;;19028:597:165:o;19630:439::-;19683:3;19721:5;19715:12;19748:6;19743:3;19736:19;19774:4;19803;19798:3;19794:14;19787:21;;19842:4;19835:5;19831:16;19865:1;19875:169;19889:6;19886:1;19883:13;19875:169;;;19950:13;;19938:26;;19984:12;;;;20019:15;;;;19911:1;19904:9;19875:169;;20074:1072;20129:3;20173:5;20167:12;20200:4;20195:3;20188:17;20226:58;20278:4;20273:3;20269:14;20255:12;20226:58;:::i;:::-;20214:70;;20303:4;20355:2;20348:5;20344:14;20338:21;20399:3;20393:4;20389:14;20384:2;20379:3;20375:12;20368:36;20427:50;20472:4;20456:14;20427:50;:::i;:::-;20413:64;;;20525:4;20518:5;20514:16;20508:23;20575:3;20567:6;20563:16;20556:4;20551:3;20547:14;20540:40;20602:6;20637:14;20631:21;20676:6;20668;20661:22;20713:2;20705:6;20701:15;20692:24;;20772:2;20762:6;20759:1;20755:14;20747:6;20743:27;20739:36;20818:2;20802:14;20798:23;20784:37;;20839:1;20849:269;20863:6;20860:1;20857:13;20849:269;;;20955:2;20951:7;20942:6;20934;20930:19;20926:33;20919:5;20912:48;20983:51;21027:6;21018;21012:13;20983:51;:::i;:::-;21057:15;;;;21094:14;;;;20973:61;-1:-1:-1;20885:1:165;20878:9;20849:269;;;-1:-1:-1;21134:6:165;20074:1072;-1:-1:-1;;;;;;;;20074:1072:165:o;21151:2112::-;21480:2;21469:9;21462:21;21443:4;21506:45;21547:2;21536:9;21532:18;21524:6;21506:45;:::i;:::-;21587:22;;;21582:2;21567:18;;21560:50;21663:13;;-1:-1:-1;;;;;2414:31:165;2402:44;;21629:6;21732:2;21724:6;21720:15;21714:22;21769:2;21764;21756:6;21752:15;21745:27;21795:48;21839:2;21831:6;21827:15;21813:12;21795:48;:::i;:::-;21781:62;;;21892:4;21884:6;21880:17;21874:24;21945:6;21937;21933:19;21926:4;21918:6;21914:17;21907:46;21976:41;22010:6;21994:14;21976:41;:::i;:::-;21962:55;;;22066:2;22058:6;22054:15;22048:22;22079:49;22124:2;22116:6;22112:15;22096:14;18545:4;18534:16;18522:29;;18478:75;22079:49;;22177:4;22169:6;22165:17;22159:24;22192:53;22239:4;22231:6;22227:17;22211:14;-1:-1:-1;;;;;2414:31:165;2402:44;;2348:104;22192:53;;22294:4;22286:6;22282:17;22276:24;22309:53;22356:4;22348:6;22344:17;22328:14;-1:-1:-1;;;;;2414:31:165;2402:44;;2348:104;22309:53;;22411:4;22403:6;22399:17;22393:24;22464:6;22456;22452:19;22445:4;22437:6;22433:17;22426:46;22495:52;22540:6;22524:14;22495:52;:::i;:::-;22481:66;;;22596:4;22588:6;22584:17;22578:24;22649:6;22641;22637:19;22630:4;22622:6;22618:17;22611:46;22680:52;22725:6;22709:14;22680:52;:::i;:::-;22666:66;;;22751:6;22806:2;22798:6;22794:15;22788:22;22855:6;22847;22843:19;22838:2;22830:6;22826:15;22819:44;22886:52;22931:6;22915:14;22886:52;:::i;:::-;22872:66;;;;22957:6;23012:2;23004:6;23000:15;22994:22;23061:6;23053;23049:19;23044:2;23036:6;23032:15;23025:44;23089:50;23132:6;23116:14;23089:50;:::i;:::-;23078:61;;;;;23186:9;23181:3;23177:19;23170:4;23159:9;23155:20;23148:49;23214:43;23253:3;23245:6;23214:43;:::i;:::-;23206:51;21151:2112;-1:-1:-1;;;;;;21151:2112:165:o;24712:125::-;24777:9;;;24798:10;;;24795:36;;;24811:18;;:::i;24842:136::-;24881:3;24909:5;24899:39;;24918:18;;:::i;:::-;-1:-1:-1;;;24954:18:165;;24842:136::o","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","addDeployer(address)":"880f4039","applyFeeDiscount(address,uint16)":"75e14cff","batchAddDeployer(address[])":"e65811ff","batchApplyFeeDiscount(address[],uint16[])":"2782035e","batchDeployTREXSuite((address,string,string,uint8,address,address,address[],address[],address[],bytes[])[],(uint256[],address[],uint256[][])[])":"730b86a9","batchRemoveDeployer(address[])":"0065939e","calculateFee(address)":"465f5eb8","deployTREXSuite((address,string,string,uint8,address,address,address[],address[],address[],bytes[]),(uint256[],address[],uint256[][]))":"c8eebfcc","enableDeploymentFee(bool)":"a264f2bd","getDeploymentFee()":"46c549cc","getFactory()":"88cc58e4","getPublicDeploymentStatus()":"bfc2f10b","isAgent(address)":"1ffbb064","isDeployer(address)":"50c358a4","isDeploymentFeeEnabled()":"47706851","owner()":"8da5cb5b","removeAgent(address)":"97a6278e","removeDeployer(address)":"f315df86","renounceOwnership()":"715018a6","setDeploymentFee(uint256,address,address)":"5d46c283","setFactory(address)":"5bb47808","setPublicDeploymentStatus(bool)":"eca465c4","transferFactoryOwnership(address)":"9c5c5ce7","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"publicDeploymentStatus\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"lengthLimit\",\"type\":\"uint16\"}],\"name\":\"BatchMaxLengthExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"DeployerAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"DeployerDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DeploymentFeesAlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DeploymentFeesAlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DiscountOutOfRange\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyAdminCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PublicCannotDeployOnBehalf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PublicDeploymentAlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PublicDeploymentAlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PublicDeploymentsNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"DeployerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"DeployerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"DeploymentFeeEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"name\":\"DeploymentFeeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"name\":\"FactorySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"discount\",\"type\":\"uint16\"}],\"name\":\"FeeDiscountApplied\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"intendedOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"feeApplied\",\"type\":\"uint256\"}],\"name\":\"GatewaySuiteDeploymentProcessed\",\"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\":\"bool\",\"name\":\"publicDeploymentStatus\",\"type\":\"bool\"}],\"name\":\"PublicDeploymentStatusSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"addDeployer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"discount\",\"type\":\"uint16\"}],\"name\":\"applyFeeDiscount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"deployers\",\"type\":\"address[]\"}],\"name\":\"batchAddDeployer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"deployers\",\"type\":\"address[]\"},{\"internalType\":\"uint16[]\",\"name\":\"discounts\",\"type\":\"uint16[]\"}],\"name\":\"batchApplyFeeDiscount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"irs\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ONCHAINID\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"irAgents\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokenAgents\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"complianceModules\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"complianceSettings\",\"type\":\"bytes[]\"}],\"internalType\":\"struct ITREXFactory.TokenDetails[]\",\"name\":\"_tokenDetails\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"issuers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"issuerClaims\",\"type\":\"uint256[][]\"}],\"internalType\":\"struct ITREXFactory.ClaimDetails[]\",\"name\":\"_claimDetails\",\"type\":\"tuple[]\"}],\"name\":\"batchDeployTREXSuite\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"deployers\",\"type\":\"address[]\"}],\"name\":\"batchRemoveDeployer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"calculateFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"irs\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ONCHAINID\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"irAgents\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokenAgents\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"complianceModules\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"complianceSettings\",\"type\":\"bytes[]\"}],\"internalType\":\"struct ITREXFactory.TokenDetails\",\"name\":\"_tokenDetails\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"issuers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"issuerClaims\",\"type\":\"uint256[][]\"}],\"internalType\":\"struct ITREXFactory.ClaimDetails\",\"name\":\"_claimDetails\",\"type\":\"tuple\"}],\"name\":\"deployTREXSuite\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_isEnabled\",\"type\":\"bool\"}],\"name\":\"enableDeploymentFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDeploymentFee\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct ITREXGateway.Fee\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPublicDeploymentStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"isDeployer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDeploymentFeeEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"removeDeployer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_feeToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_feeCollector\",\"type\":\"address\"}],\"name\":\"setDeploymentFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"name\":\"setFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_isEnabled\",\"type\":\"bool\"}],\"name\":\"setPublicDeploymentStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferFactoryOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{\"addDeployer(address)\":{\"details\":\"See {ITREXGateway-addDeployer}.\"},\"applyFeeDiscount(address,uint16)\":{\"details\":\"See {ITREXGateway-applyFeeDiscount}.\"},\"batchAddDeployer(address[])\":{\"details\":\"See {ITREXGateway-batchAddDeployer}.\"},\"batchApplyFeeDiscount(address[],uint16[])\":{\"details\":\"See {ITREXGateway-batchApplyFeeDiscount}.\"},\"batchDeployTREXSuite((address,string,string,uint8,address,address,address[],address[],address[],bytes[])[],(uint256[],address[],uint256[][])[])\":{\"details\":\"See {ITREXGateway-batchDeployTREXSuite}.\"},\"batchRemoveDeployer(address[])\":{\"details\":\"See {ITREXGateway-batchRemoveDeployer}.\"},\"calculateFee(address)\":{\"details\":\"See {ITREXGateway-calculateFee}.\"},\"deployTREXSuite((address,string,string,uint8,address,address,address[],address[],address[],bytes[]),(uint256[],address[],uint256[][]))\":{\"details\":\"See {ITREXGateway-deployTREXSuite}.\"},\"enableDeploymentFee(bool)\":{\"details\":\"See {ITREXGateway-enableDeploymentFee}.\"},\"getDeploymentFee()\":{\"details\":\"See {ITREXGateway-getDeploymentFee}.\"},\"getFactory()\":{\"details\":\"See {ITREXGateway-getFactory}.\"},\"getPublicDeploymentStatus()\":{\"details\":\"See {ITREXGateway-getPublicDeploymentStatus}.\"},\"isDeployer(address)\":{\"details\":\"See {ITREXGateway-isDeployer}.\"},\"isDeploymentFeeEnabled()\":{\"details\":\"See {ITREXGateway-isDeploymentFeeEnabled}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeDeployer(address)\":{\"details\":\"See {ITREXGateway-removeDeployer}.\"},\"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.\"},\"setDeploymentFee(uint256,address,address)\":{\"details\":\"See {ITREXGateway-setDeploymentFee}.\"},\"setFactory(address)\":{\"details\":\"See {ITREXGateway-setFactory}.\"},\"setPublicDeploymentStatus(bool)\":{\"details\":\"See {ITREXGateway-setPublicDeploymentStatus}.\"},\"transferFactoryOwnership(address)\":{\"details\":\"See {ITREXGateway-transferFactoryOwnership}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"BatchMaxLengthExceeded(uint16)\":[{\"notice\":\"Batch Size is too big, could run out of gas\"}],\"DeployerAlreadyExists(address)\":[{\"notice\":\"The address is already a deployer\"}],\"DeployerDoesNotExist(address)\":[{\"notice\":\"The address is not a deployer\"}],\"DeploymentFeesAlreadyDisabled()\":[{\"notice\":\"The Deployment fees are already disabled\"}],\"DeploymentFeesAlreadyEnabled()\":[{\"notice\":\"The Deployment fees are already enabled\"}],\"DiscountOutOfRange()\":[{\"notice\":\"Discount cannot be bigger than 10000 (100%)\"}],\"OnlyAdminCall()\":[{\"notice\":\"Only Owner or Agent can call\"}],\"PublicCannotDeployOnBehalf()\":[{\"notice\":\"Public deployers can only deploy for themselves\"}],\"PublicDeploymentAlreadyDisabled()\":[{\"notice\":\"The Public Deployment Status is already set properly\"}],\"PublicDeploymentAlreadyEnabled()\":[{\"notice\":\"The Public Deployment Status is already set properly\"}],\"PublicDeploymentsNotAllowed()\":[{\"notice\":\"Cannot deploy if not deployer when public deployment disabled\"}],\"ZeroAddress()\":[{\"notice\":\"A required parameter was set to the Zero address.\"}]},\"events\":{\"DeployerAdded(address)\":{\"notice\":\"event emitted when an address is flagged as a deployer\"},\"DeployerRemoved(address)\":{\"notice\":\"event emitted when a deployer address loses deployment privileges\"},\"DeploymentFeeEnabled(bool)\":{\"notice\":\"event emitted when the deployment fees are enabled/disabled\"},\"DeploymentFeeSet(uint256,address,address)\":{\"notice\":\"event emitted when the deployment fees details are set/modified\"},\"FactorySet(address)\":{\"notice\":\"event emitted when the _factory variable is set/modified\"},\"FeeDiscountApplied(address,uint16)\":{\"notice\":\"event emitted when a discount on deployment fees is granted for an address\"},\"GatewaySuiteDeploymentProcessed(address,address,uint256)\":{\"notice\":\"event emitted whenever a TREX token has been deployed by the TREX factory through the use of the Gateway\"},\"PublicDeploymentStatusSet(bool)\":{\"notice\":\"event emitted when the public deployment status is set/modified\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"constructor of the contract, setting up the factory address and the public deployment status\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/factory/TREXGateway.sol\":\"TREXGateway\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/factory/ITREXFactory.sol\":{\"keccak256\":\"0xb95c6d68ed87b0b92621dc7f50d6c761e21fc98f5c5390e37df019127a9f6c9a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4e38726754a9d9cf0ac73961ba6f7313dd3fea9ff6ea73e33ced23418f812939\",\"dweb:/ipfs/QmQNgh8YNoDGguvSzRuTvKu7eXrqW8K53CxPkuq6RN8HnT\"]},\"contracts/erc3643/factory/ITREXGateway.sol\":{\"keccak256\":\"0xe3ef2958f4e1bd5ba55e0aba75a36ffec4a36dead2fce56e936e05832709e8bb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403eb26109727e74d4759f8b567bd1ae584cded5f73f945180eebf8eee12bd56\",\"dweb:/ipfs/QmWY4uPBDrSEUuY65G9hvkgfWkL6NEobqv7hefiTZyRq9o\"]},\"contracts/erc3643/factory/TREXGateway.sol\":{\"keccak256\":\"0xe8d199083de1dba8b5aee070063186038c1e70ba263a20af7cc7fc63a4949882\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7577481164160be6cfd1b03d199d2aff048139b6921932d9e3b4f5ce3314b4ba\",\"dweb:/ipfs/QmZJujv4TdUb4i2jrGSfCdUUKvz3YvhBvH5L7CMVTg5Aqc\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"factory","type":"address"},{"internalType":"bool","name":"publicDeploymentStatus","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint16","name":"lengthLimit","type":"uint16"}],"type":"error","name":"BatchMaxLengthExceeded"},{"inputs":[{"internalType":"address","name":"deployer","type":"address"}],"type":"error","name":"DeployerAlreadyExists"},{"inputs":[{"internalType":"address","name":"deployer","type":"address"}],"type":"error","name":"DeployerDoesNotExist"},{"inputs":[],"type":"error","name":"DeploymentFeesAlreadyDisabled"},{"inputs":[],"type":"error","name":"DeploymentFeesAlreadyEnabled"},{"inputs":[],"type":"error","name":"DiscountOutOfRange"},{"inputs":[],"type":"error","name":"OnlyAdminCall"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"PublicCannotDeployOnBehalf"},{"inputs":[],"type":"error","name":"PublicDeploymentAlreadyDisabled"},{"inputs":[],"type":"error","name":"PublicDeploymentAlreadyEnabled"},{"inputs":[],"type":"error","name":"PublicDeploymentsNotAllowed"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"StringsInsufficientHexLength"},{"inputs":[],"type":"error","name":"ZeroAddress"},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"deployer","type":"address","indexed":true}],"type":"event","name":"DeployerAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"deployer","type":"address","indexed":true}],"type":"event","name":"DeployerRemoved","anonymous":false},{"inputs":[{"internalType":"bool","name":"isEnabled","type":"bool","indexed":true}],"type":"event","name":"DeploymentFeeEnabled","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256","indexed":true},{"internalType":"address","name":"feeToken","type":"address","indexed":true},{"internalType":"address","name":"feeCollector","type":"address","indexed":true}],"type":"event","name":"DeploymentFeeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"factory","type":"address","indexed":true}],"type":"event","name":"FactorySet","anonymous":false},{"inputs":[{"internalType":"address","name":"deployer","type":"address","indexed":true},{"internalType":"uint16","name":"discount","type":"uint16","indexed":false}],"type":"event","name":"FeeDiscountApplied","anonymous":false},{"inputs":[{"internalType":"address","name":"requester","type":"address","indexed":true},{"internalType":"address","name":"intendedOwner","type":"address","indexed":false},{"internalType":"uint256","name":"feeApplied","type":"uint256","indexed":false}],"type":"event","name":"GatewaySuiteDeploymentProcessed","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bool","name":"publicDeploymentStatus","type":"bool","indexed":true}],"type":"event","name":"PublicDeploymentStatusSet","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addDeployer"},{"inputs":[{"internalType":"address","name":"deployer","type":"address"},{"internalType":"uint16","name":"discount","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"applyFeeDiscount"},{"inputs":[{"internalType":"address[]","name":"deployers","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"batchAddDeployer"},{"inputs":[{"internalType":"address[]","name":"deployers","type":"address[]"},{"internalType":"uint16[]","name":"discounts","type":"uint16[]"}],"stateMutability":"nonpayable","type":"function","name":"batchApplyFeeDiscount"},{"inputs":[{"internalType":"struct ITREXFactory.TokenDetails[]","name":"_tokenDetails","type":"tuple[]","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"address","name":"irs","type":"address"},{"internalType":"address","name":"ONCHAINID","type":"address"},{"internalType":"address[]","name":"irAgents","type":"address[]"},{"internalType":"address[]","name":"tokenAgents","type":"address[]"},{"internalType":"address[]","name":"complianceModules","type":"address[]"},{"internalType":"bytes[]","name":"complianceSettings","type":"bytes[]"}]},{"internalType":"struct ITREXFactory.ClaimDetails[]","name":"_claimDetails","type":"tuple[]","components":[{"internalType":"uint256[]","name":"claimTopics","type":"uint256[]"},{"internalType":"address[]","name":"issuers","type":"address[]"},{"internalType":"uint256[][]","name":"issuerClaims","type":"uint256[][]"}]}],"stateMutability":"nonpayable","type":"function","name":"batchDeployTREXSuite"},{"inputs":[{"internalType":"address[]","name":"deployers","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"batchRemoveDeployer"},{"inputs":[{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"view","type":"function","name":"calculateFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct ITREXFactory.TokenDetails","name":"_tokenDetails","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"address","name":"irs","type":"address"},{"internalType":"address","name":"ONCHAINID","type":"address"},{"internalType":"address[]","name":"irAgents","type":"address[]"},{"internalType":"address[]","name":"tokenAgents","type":"address[]"},{"internalType":"address[]","name":"complianceModules","type":"address[]"},{"internalType":"bytes[]","name":"complianceSettings","type":"bytes[]"}]},{"internalType":"struct ITREXFactory.ClaimDetails","name":"_claimDetails","type":"tuple","components":[{"internalType":"uint256[]","name":"claimTopics","type":"uint256[]"},{"internalType":"address[]","name":"issuers","type":"address[]"},{"internalType":"uint256[][]","name":"issuerClaims","type":"uint256[][]"}]}],"stateMutability":"nonpayable","type":"function","name":"deployTREXSuite"},{"inputs":[{"internalType":"bool","name":"_isEnabled","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"enableDeploymentFee"},{"inputs":[],"stateMutability":"view","type":"function","name":"getDeploymentFee","outputs":[{"internalType":"struct ITREXGateway.Fee","name":"","type":"tuple","components":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"address","name":"feeToken","type":"address"},{"internalType":"address","name":"feeCollector","type":"address"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getFactory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPublicDeploymentStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"view","type":"function","name":"isDeployer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDeploymentFeeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeDeployer"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"},{"internalType":"address","name":"_feeToken","type":"address"},{"internalType":"address","name":"_feeCollector","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDeploymentFee"},{"inputs":[{"internalType":"address","name":"factory","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFactory"},{"inputs":[{"internalType":"bool","name":"_isEnabled","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setPublicDeploymentStatus"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferFactoryOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"addDeployer(address)":{"details":"See {ITREXGateway-addDeployer}."},"applyFeeDiscount(address,uint16)":{"details":"See {ITREXGateway-applyFeeDiscount}."},"batchAddDeployer(address[])":{"details":"See {ITREXGateway-batchAddDeployer}."},"batchApplyFeeDiscount(address[],uint16[])":{"details":"See {ITREXGateway-batchApplyFeeDiscount}."},"batchDeployTREXSuite((address,string,string,uint8,address,address,address[],address[],address[],bytes[])[],(uint256[],address[],uint256[][])[])":{"details":"See {ITREXGateway-batchDeployTREXSuite}."},"batchRemoveDeployer(address[])":{"details":"See {ITREXGateway-batchRemoveDeployer}."},"calculateFee(address)":{"details":"See {ITREXGateway-calculateFee}."},"deployTREXSuite((address,string,string,uint8,address,address,address[],address[],address[],bytes[]),(uint256[],address[],uint256[][]))":{"details":"See {ITREXGateway-deployTREXSuite}."},"enableDeploymentFee(bool)":{"details":"See {ITREXGateway-enableDeploymentFee}."},"getDeploymentFee()":{"details":"See {ITREXGateway-getDeploymentFee}."},"getFactory()":{"details":"See {ITREXGateway-getFactory}."},"getPublicDeploymentStatus()":{"details":"See {ITREXGateway-getPublicDeploymentStatus}."},"isDeployer(address)":{"details":"See {ITREXGateway-isDeployer}."},"isDeploymentFeeEnabled()":{"details":"See {ITREXGateway-isDeploymentFeeEnabled}."},"owner()":{"details":"Returns the address of the current owner."},"removeDeployer(address)":{"details":"See {ITREXGateway-removeDeployer}."},"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."},"setDeploymentFee(uint256,address,address)":{"details":"See {ITREXGateway-setDeploymentFee}."},"setFactory(address)":{"details":"See {ITREXGateway-setFactory}."},"setPublicDeploymentStatus(bool)":{"details":"See {ITREXGateway-setPublicDeploymentStatus}."},"transferFactoryOwnership(address)":{"details":"See {ITREXGateway-transferFactoryOwnership}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"constructor of the contract, setting up the factory address and the public deployment status"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/factory/TREXGateway.sol":"TREXGateway"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/factory/ITREXFactory.sol":{"keccak256":"0xb95c6d68ed87b0b92621dc7f50d6c761e21fc98f5c5390e37df019127a9f6c9a","urls":["bzz-raw://4e38726754a9d9cf0ac73961ba6f7313dd3fea9ff6ea73e33ced23418f812939","dweb:/ipfs/QmQNgh8YNoDGguvSzRuTvKu7eXrqW8K53CxPkuq6RN8HnT"],"license":"GPL-3.0"},"contracts/erc3643/factory/ITREXGateway.sol":{"keccak256":"0xe3ef2958f4e1bd5ba55e0aba75a36ffec4a36dead2fce56e936e05832709e8bb","urls":["bzz-raw://403eb26109727e74d4759f8b567bd1ae584cded5f73f945180eebf8eee12bd56","dweb:/ipfs/QmWY4uPBDrSEUuY65G9hvkgfWkL6NEobqv7hefiTZyRq9o"],"license":"GPL-3.0"},"contracts/erc3643/factory/TREXGateway.sol":{"keccak256":"0xe8d199083de1dba8b5aee070063186038c1e70ba263a20af7cc7fc63a4949882","urls":["bzz-raw://7577481164160be6cfd1b03d199d2aff048139b6921932d9e3b4f5ce3314b4ba","dweb:/ipfs/QmZJujv4TdUb4i2jrGSfCdUUKvz3YvhBvH5L7CMVTg5Aqc"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"}},"version":1},"id":62} \ No newline at end of file diff --git a/out/TREXImplementationAuthority.sol/TREXImplementationAuthority.json b/out/TREXImplementationAuthority.sol/TREXImplementationAuthority.json new file mode 100644 index 0000000..2f813b8 --- /dev/null +++ b/out/TREXImplementationAuthority.sol/TREXImplementationAuthority.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"referenceStatus","type":"bool","internalType":"bool"},{"name":"trexFactory","type":"address","internalType":"address"},{"name":"iaFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"addAndUseTREXVersion","inputs":[{"name":"_version","type":"tuple","internalType":"struct ITREXImplementationAuthority.Version","components":[{"name":"major","type":"uint8","internalType":"uint8"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"patch","type":"uint8","internalType":"uint8"}]},{"name":"_trex","type":"tuple","internalType":"struct ITREXImplementationAuthority.TREXContracts","components":[{"name":"tokenImplementation","type":"address","internalType":"address"},{"name":"ctrImplementation","type":"address","internalType":"address"},{"name":"irImplementation","type":"address","internalType":"address"},{"name":"irsImplementation","type":"address","internalType":"address"},{"name":"tirImplementation","type":"address","internalType":"address"},{"name":"mcImplementation","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTREXVersion","inputs":[{"name":"_version","type":"tuple","internalType":"struct ITREXImplementationAuthority.Version","components":[{"name":"major","type":"uint8","internalType":"uint8"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"patch","type":"uint8","internalType":"uint8"}]},{"name":"_trex","type":"tuple","internalType":"struct ITREXImplementationAuthority.TREXContracts","components":[{"name":"tokenImplementation","type":"address","internalType":"address"},{"name":"ctrImplementation","type":"address","internalType":"address"},{"name":"irImplementation","type":"address","internalType":"address"},{"name":"irsImplementation","type":"address","internalType":"address"},{"name":"tirImplementation","type":"address","internalType":"address"},{"name":"mcImplementation","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeImplementationAuthority","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_newImplementationAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fetchVersion","inputs":[{"name":"_version","type":"tuple","internalType":"struct ITREXImplementationAuthority.Version","components":[{"name":"major","type":"uint8","internalType":"uint8"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"patch","type":"uint8","internalType":"uint8"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCTRImplementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getContracts","inputs":[{"name":"_version","type":"tuple","internalType":"struct ITREXImplementationAuthority.Version","components":[{"name":"major","type":"uint8","internalType":"uint8"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"patch","type":"uint8","internalType":"uint8"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITREXImplementationAuthority.TREXContracts","components":[{"name":"tokenImplementation","type":"address","internalType":"address"},{"name":"ctrImplementation","type":"address","internalType":"address"},{"name":"irImplementation","type":"address","internalType":"address"},{"name":"irsImplementation","type":"address","internalType":"address"},{"name":"tirImplementation","type":"address","internalType":"address"},{"name":"mcImplementation","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getCurrentVersion","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ITREXImplementationAuthority.Version","components":[{"name":"major","type":"uint8","internalType":"uint8"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"patch","type":"uint8","internalType":"uint8"}]}],"stateMutability":"view"},{"type":"function","name":"getIRImplementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getIRSImplementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getMCImplementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getReferenceContract","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getTIRImplementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getTREXFactory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getTokenImplementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isReferenceContract","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIAFactory","inputs":[{"name":"iaFactory","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTREXFactory","inputs":[{"name":"trexFactory","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"useTREXVersion","inputs":[{"name":"_version","type":"tuple","internalType":"struct ITREXImplementationAuthority.Version","components":[{"name":"major","type":"uint8","internalType":"uint8"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"patch","type":"uint8","internalType":"uint8"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"IAFactorySet","inputs":[{"name":"iaFactory","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ImplementationAuthorityChanged","inputs":[{"name":"_token","type":"address","indexed":true,"internalType":"address"},{"name":"_newImplementationAuthority","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ImplementationAuthoritySet","inputs":[{"name":"referenceStatus","type":"bool","indexed":false,"internalType":"bool"},{"name":"trexFactory","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TREXFactorySet","inputs":[{"name":"trexFactory","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TREXVersionAdded","inputs":[{"name":"version","type":"tuple","indexed":true,"internalType":"struct ITREXImplementationAuthority.Version","components":[{"name":"major","type":"uint8","internalType":"uint8"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"patch","type":"uint8","internalType":"uint8"}]},{"name":"trex","type":"tuple","indexed":true,"internalType":"struct ITREXImplementationAuthority.TREXContracts","components":[{"name":"tokenImplementation","type":"address","internalType":"address"},{"name":"ctrImplementation","type":"address","internalType":"address"},{"name":"irImplementation","type":"address","internalType":"address"},{"name":"irsImplementation","type":"address","internalType":"address"},{"name":"tirImplementation","type":"address","internalType":"address"},{"name":"mcImplementation","type":"address","internalType":"address"}]}],"anonymous":false},{"type":"event","name":"TREXVersionFetched","inputs":[{"name":"version","type":"tuple","indexed":true,"internalType":"struct ITREXImplementationAuthority.Version","components":[{"name":"major","type":"uint8","internalType":"uint8"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"patch","type":"uint8","internalType":"uint8"}]},{"name":"trex","type":"tuple","indexed":true,"internalType":"struct ITREXImplementationAuthority.TREXContracts","components":[{"name":"tokenImplementation","type":"address","internalType":"address"},{"name":"ctrImplementation","type":"address","internalType":"address"},{"name":"irImplementation","type":"address","internalType":"address"},{"name":"irsImplementation","type":"address","internalType":"address"},{"name":"tirImplementation","type":"address","internalType":"address"},{"name":"mcImplementation","type":"address","internalType":"address"}]}],"anonymous":false},{"type":"event","name":"VersionUpdated","inputs":[{"name":"version","type":"tuple","indexed":true,"internalType":"struct ITREXImplementationAuthority.Version","components":[{"name":"major","type":"uint8","internalType":"uint8"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"patch","type":"uint8","internalType":"uint8"}]}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b50604051620024b6380380620024b683398101604081905262000034916200019b565b33806200005b57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b62000066816200012e565b50600380546001600160a81b031916841515610100600160a81b03198116919091176101006001600160a01b0386811691820292909217909355600480546001600160a01b0319169185169190911790556040805191825260208201929092527f2a6aba4ff896a38777fb29a590abf5d340a4ba64314bcadf68be9c3ee92b485a910160405180910390a16040516001600160a01b038216907f5fb25b36f93b3d8443f7502abdc1157f581f15db724459ffb2800fce6132a00890600090a2505050620001eb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200019657600080fd5b919050565b600080600060608486031215620001b157600080fd5b83518015158114620001c257600080fd5b9250620001d2602085016200017e565b9150620001e2604085016200017e565b90509250925092565b6122bb80620001fb6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80637f82a5e7116100b8578063cd24be221161007c578063cd24be2214610295578063cf49020e1461029d578063f2fde38b146102b0578063f38d2491146102c3578063fabec44a146102d6578063fedcc0521461035557600080fd5b80637f82a5e7146101e85780638da5cb5b146101fb5780639585548a1461020c5780639e3e7bb91461021f578063afce4bea1461022757600080fd5b80636df23789116100ff5780636df23789146101aa5780636ff6e83f146101bd578063709bc7f3146101c5578063715018a6146101cd57806371673bd0146101d557600080fd5b80630f3ca8ca1461013c5780631320a65a146101515780631ee9ce8b1461016c5780632c5d4f8e1461018c57806361f89825146101a2575b600080fd5b61014f61014a366004611d86565b61035d565b005b60035460ff1660405190151581526020015b60405180910390f35b610174610634565b6040516001600160a01b039091168152602001610163565b60035461010090046001600160a01b0316610174565b610174610696565b61014f6101b8366004611dbe565b6106f8565b610174610822565b610174610884565b61014f6108e3565b61014f6101e3366004611ddb565b6108f7565b61014f6101f6366004611e1c565b61090e565b6000546001600160a01b0316610174565b61014f61021a366004611ddb565b61153f565b6101746117cb565b61023a610235366004611d86565b61182d565b604051610163919081516001600160a01b03908116825260208084015182169083015260408084015182169083015260608084015182169083015260808084015182169083015260a092830151169181019190915260c00190565b6101746118e5565b61014f6102ab366004611dbe565b611963565b61014f6102be366004611dbe565b611a8b565b61014f6102d1366004611d86565b611ac9565b6103296040805160608101825260008082526020820181905291810191909152506040805160608101825260015460ff808216835261010082048116602084015262010000909104169181019190915290565b60408051825160ff90811682526020808501518216908301529282015190921690820152606001610163565b610174611c3f565b60035460ff16156103bf5760405162461bcd60e51b815260206004820152602160248201527f63616e6e6f742063616c6c206f6e207265666572656e636520636f6e747261636044820152601d60fa1b60648201526084015b60405180910390fd5b60006002816103db6103d636869003860186611e9b565b611ca1565b81526020810191909152604001600020546001600160a01b0316146104425760405162461bcd60e51b815260206004820152601760248201527f76657273696f6e206665746368656420616c726561647900000000000000000060448201526064016103b6565b61044a6118e5565b6001600160a01b031663afce4bea826040518263ffffffff1660e01b81526004016104759190611eef565b60c060405180830381865afa158015610492573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b69190611f37565b600260006104cc6103d636869003860186611e9b565b815260208082019290925260409081016000908120845181546001600160a01b03199081166001600160a01b039283161783559486015160018301805487169183169190911790559285015160028083018054871692861692909217909155606086015160038301805487169186169190911790556080860151600483018054871691861691909117905560a090950151600590910180549094169216919091179091556105826103d636859003850185611e9b565b81526020019081526020016000206040516105eb919081546001600160a01b03908116825260018301548116602083015260028301548116604083015260038301548116606083015260048301548116608083015260059092015490911660a082015260c00190565b6040518091039020816040516106019190611ff0565b604051908190038120907f5846080f2085e3dfad8cb250efdba145f8982d2e81ba7f74478da7fab659322b90600090a350565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152600090600290829061067490611ca1565b81526020810191909152604001600020600201546001600160a01b0316919050565b6040805160608101825260015460ff808216835261010082048116602084015262010000909104169181019190915260009060029082906106d690611ca1565b81526020810191909152604001600020600501546001600160a01b0316919050565b610700611cf1565b60035460ff1680156107845750306001600160a01b0316816001600160a01b0316632d5f11876040518163ffffffff1660e01b8152600401602060405180830381865afa158015610755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107799190612037565b6001600160a01b0316145b6107d05760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79207265666572656e636520636f6e74726163742063616e2063616c6c60448201526064016103b6565b60038054610100600160a81b0319166101006001600160a01b038416908102919091179091556040517ff068c7797c3b666af662a0e2f018804080dc37610a1b82b55006872b06d30ef590600090a250565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152600090600290829061086290611ca1565b81526020810191909152604001600020600101546001600160a01b0316919050565b6040805160608101825260015460ff808216835261010082048116602084015262010000909104169181019190915260009060029082906108c490611ca1565b81526020810191909152604001600020546001600160a01b0316919050565b6108eb611cf1565b6108f56000611d1e565b565b610901828261153f565b61090a82611ac9565b5050565b6001600160a01b0382166109645760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016103b6565b6001600160a01b03811615801561097e575060035460ff16155b156109de5760405162461bcd60e51b815260206004820152602a60248201527f6f6e6c79207265666572656e636520636f6e74726163742063616e206465706c6044820152696f79206e65772049417360b01b60648201526084016103b6565b6000826001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190612037565b90506000836001600160a01b0316636290865d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa89190612037565b90506000826001600160a01b031663f11abfd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0e9190612037565b90506000836001600160a01b0316633b3e12f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b749190612037565b90506000846001600160a01b031663b4f3fcb76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bda9190612037565b9050336001600160a01b0316876001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190612037565b6001600160a01b0316141580610cd15750336001600160a01b0316856001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc59190612037565b6001600160a01b031614155b80610d4f5750336001600160a01b0316846001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d439190612037565b6001600160a01b031614155b80610dcd5750336001600160a01b0316836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc19190612037565b6001600160a01b031614155b80610e4b5750336001600160a01b0316826001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3f9190612037565b6001600160a01b031614155b80610ec95750336001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd9190612037565b6001600160a01b031614155b15610f295760405162461bcd60e51b815260206004820152602a60248201527f63616c6c6572204e4f54206f776e6572206f6620616c6c20636f6e74726163746044820152691cc81a5b5c1858dd195960b21b60648201526084016103b6565b6001600160a01b038616610fb057600480546040516352f1431b60e01b81526001600160a01b038a8116938201939093529116906352f1431b906024016020604051808303816000875af1158015610f85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa99190612037565b9550611259565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152610fe890611ca1565b61104d876001600160a01b031663fabec44a6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611029573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d69190612054565b146110b55760405162461bcd60e51b815260206004820152603260248201527f76657273696f6e206f66206e65772049412068617320746f206265207468652060448201527173616d652061732063757272656e7420494160701b60648201526084016103b6565b856001600160a01b0316631320a65a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611117919061209c565b801561113c57506111266118e5565b6001600160a01b0316866001600160a01b031614155b156111895760405162461bcd60e51b815260206004820181905260248201527f6e6577204941206973204e4f54207265666572656e636520636f6e747261637460448201526064016103b6565b6004805460405163de87aeeb60e01b81526001600160a01b038981169382019390935291169063de87aeeb90602401602060405180830381865afa1580156111d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f9919061209c565b15801561121f57506112096118e5565b6001600160a01b0316866001600160a01b031614155b156112595760405162461bcd60e51b815260206004820152600a602482015269696e76616c696420494160b01b60448201526064016103b6565b6040516392dd9d6560e01b81526001600160a01b0387811660048301528816906392dd9d6590602401600060405180830381600087803b15801561129c57600080fd5b505af11580156112b0573d6000803e3d6000fd5b50506040516392dd9d6560e01b81526001600160a01b038981166004830152881692506392dd9d659150602401600060405180830381600087803b1580156112f757600080fd5b505af115801561130b573d6000803e3d6000fd5b50506040516392dd9d6560e01b81526001600160a01b038981166004830152871692506392dd9d659150602401600060405180830381600087803b15801561135257600080fd5b505af1158015611366573d6000803e3d6000fd5b50506040516392dd9d6560e01b81526001600160a01b038981166004830152851692506392dd9d659150602401600060405180830381600087803b1580156113ad57600080fd5b505af11580156113c1573d6000803e3d6000fd5b50506040516392dd9d6560e01b81526001600160a01b038981166004830152841692506392dd9d659150602401600060405180830381600087803b15801561140857600080fd5b505af115801561141c573d6000803e3d6000fd5b50505050306001600160a01b0316836001600160a01b0316632d5f11876040518163ffffffff1660e01b8152600401602060405180830381865afa158015611468573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148c9190612037565b6001600160a01b0316036114f6576040516392dd9d6560e01b81526001600160a01b0387811660048301528416906392dd9d6590602401600060405180830381600087803b1580156114dd57600080fd5b505af11580156114f1573d6000803e3d6000fd5b505050505b856001600160a01b0316876001600160a01b03167ff79ab4f8584958d3168dac16d1d96119f728316536f50639339b4202837051c860405160405180910390a350505050505050565b611547611cf1565b60035460ff166115aa5760405162461bcd60e51b815260206004820152602860248201527f4f4e4c59207265666572656e636520636f6e74726163742063616e206164642060448201526776657273696f6e7360c01b60648201526084016103b6565b60006002816115c16103d636879003870187611e9b565b81526020810191909152604001600020546001600160a01b0316146116215760405162461bcd60e51b815260206004820152601660248201527576657273696f6e20616c72656164792065786973747360501b60448201526064016103b6565b60006116336040830160208401611dbe565b6001600160a01b031614158015611663575060006116576060830160408401611dbe565b6001600160a01b031614155b80156116885750600061167c6080830160608401611dbe565b6001600160a01b031614155b80156116ad575060006116a160c0830160a08401611dbe565b6001600160a01b031614155b80156116d2575060006116c660a0830160808401611dbe565b6001600160a01b031614155b80156116f4575060006116e86020830183611dbe565b6001600160a01b031614155b6117405760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016103b6565b80600260006117576103d636879003870187611e9b565b8152602001908152602001600020818161177191906120de565b5050604051611781908290612184565b6040518091039020826040516117979190611ff0565b604051908190038120907faecad55510e8cbc2b82b73c5c6d78c169403cb719460198f517d41cf7700b71b90600090a35050565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152600090600290829061180b90611ca1565b81526020810191909152604001600020600301546001600160a01b0316919050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152600260006118756103d636869003860186611e9b565b81526020808201929092526040908101600020815160c08101835281546001600160a01b039081168252600183015481169482019490945260028201548416928101929092526003810154831660608301526004810154831660808301526005015490911660a082015292915050565b6000600360019054906101000a90046001600160a01b03166001600160a01b0316632d5f11876040518163ffffffff1660e01b8152600401602060405180830381865afa15801561193a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195e9190612037565b905090565b61196b611cf1565b60035460ff1680156119f5575060035460408051632d5f118760e01b81529051309261010090046001600160a01b031691632d5f11879160048083019260209291908290030181865afa1580156119c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ea9190612037565b6001600160a01b0316145b611a415760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79207265666572656e636520636f6e74726163742063616e2063616c6c60448201526064016103b6565b600480546001600160a01b0319166001600160a01b0383169081179091556040517f5fb25b36f93b3d8443f7502abdc1157f581f15db724459ffb2800fce6132a00890600090a250565b611a93611cf1565b6001600160a01b038116611abd57604051631e4fbdf760e01b8152600060048201526024016103b6565b611ac681611d1e565b50565b611ad1611cf1565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152611b0990611ca1565b611b1b6103d636849003840184611e9b565b03611b615760405162461bcd60e51b815260206004820152601660248201527576657273696f6e20616c726561647920696e2075736560501b60448201526064016103b6565b6000600281611b786103d636869003860186611e9b565b81526020810191909152604001600020546001600160a01b031603611bef5760405162461bcd60e51b815260206004820152602760248201527f696e76616c696420617267756d656e74202d206e6f6e206578697374696e67206044820152663b32b939b4b7b760c91b60648201526084016103b6565b806001611bfc8282612218565b5050604051611c0c908290611ff0565b604051908190038120907f0a46bc1766225d5a82bc50155575dc428902e93470e34ceaf7e0faae128fe0ab90600090a250565b6040805160608101825260015460ff80821683526101008204811660208401526201000090910416918101919091526000906002908290611c7f90611ca1565b81526020810191909152604001600020600401546001600160a01b0316919050565b805160208083015160409384015184516001600160f81b031960f895861b81168286015292851b83166021820152931b166022830152825180830360030181526023909201909252805191012090565b6000546001600160a01b031633146108f55760405163118cdaa760e01b81523360048201526024016103b6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060608284031215611d8057600080fd5b50919050565b600060608284031215611d9857600080fd5b611da28383611d6e565b9392505050565b6001600160a01b0381168114611ac657600080fd5b600060208284031215611dd057600080fd5b8135611da281611da9565b600080828403610120811215611df057600080fd5b611dfa8585611d6e565b925060c0605f1982011215611e0e57600080fd5b506060830190509250929050565b60008060408385031215611e2f57600080fd5b8235611e3a81611da9565b91506020830135611e4a81611da9565b809150509250929050565b6040516060810167ffffffffffffffff81118282101715611e8657634e487b7160e01b600052604160045260246000fd5b60405290565b60ff81168114611ac657600080fd5b600060608284031215611ead57600080fd5b611eb5611e55565b8235611ec081611e8c565b81526020830135611ed081611e8c565b60208201526040830135611ee381611e8c565b60408201529392505050565b606081018235611efe81611e8c565b60ff1682526020830135611f1181611e8c565b60ff1660208301526040830135611f2781611e8c565b60ff811660408401525092915050565b600060c08284031215611f4957600080fd5b60405160c0810181811067ffffffffffffffff82111715611f7a57634e487b7160e01b600052604160045260246000fd5b6040528251611f8881611da9565b81526020830151611f9881611da9565b60208201526040830151611fab81611da9565b60408201526060830151611fbe81611da9565b60608201526080830151611fd181611da9565b608082015260a0830151611fe481611da9565b60a08201529392505050565b60008235611ffd81611e8c565b60ff168252602083013561201081611e8c565b60ff166020830152604083013561202681611e8c565b60ff16604083015250606001919050565b60006020828403121561204957600080fd5b8151611da281611da9565b60006060828403121561206657600080fd5b61206e611e55565b825161207981611e8c565b8152602083015161208981611e8c565b60208201526040830151611ee381611e8c565b6000602082840312156120ae57600080fd5b81518015158114611da257600080fd5b80546001600160a01b0319166001600160a01b0392909216919091179055565b81356120e981611da9565b6120f381836120be565b50602082013561210281611da9565b61210f81600184016120be565b50604082013561211e81611da9565b61212b81600284016120be565b50606082013561213a81611da9565b61214781600384016120be565b50608082013561215681611da9565b61216381600484016120be565b5060a082013561217281611da9565b61217f81600584016120be565b505050565b6000823561219181611da9565b6001600160a01b0390811683526020840135906121ad82611da9565b90811660208401526040840135906121c482611da9565b90811660408401526060840135906121db82611da9565b90811660608401526080840135906121f282611da9565b908116608084015260a08401359061220982611da9565b1660a08301525060c001919050565b813561222381611e8c565b60ff8116905081548160ff198216178355602084013561224281611e8c565b61ff008160081b169050808361ffff19841617178455604085013561226681611e8c565b62ff00008160101b168462ffffff19851617831717855550505050505056fea264697066735822122068f79642f5d24a1684426b71e3cd30b9f225db39583a46ccd73265564b674e2e64736f6c63430008180033","sourceMap":"4076:10523:73:-:0;;;5235:317;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5318:10;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;794:51:165;767:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;5340:10:73::1;:28:::0;;-1:-1:-1;;;;;;5378:26:73;5340:28;::::1;;-1:-1:-1::0;;;;;;5378:26:73;;;;;;5340:28:::1;-1:-1:-1::0;;;;;5378:26:73;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;5414:10:::1;:22:::0;;-1:-1:-1;;;;;;5414:22:73::1;::::0;;::::1;::::0;;;::::1;::::0;;5451:56:::1;::::0;;1024:41:165;;;1096:2;1081:18;;1074:60;;;;5451:56:73::1;::::0;997:18:165;5451:56:73::1;;;;;;;5522:23;::::0;-1:-1:-1;;;;;5522:23:73;::::1;::::0;::::1;::::0;;;::::1;5235:317:::0;;;4076:10523;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:177:165:-;93:13;;-1:-1:-1;;;;;135:31:165;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:447::-;281:6;289;297;350:2;338:9;329:7;325:23;321:32;318:52;;;366:1;363;356:12;318:52;398:9;392:16;451:5;444:13;437:21;430:5;427:32;417:60;;473:1;470;463:12;417:60;496:5;-1:-1:-1;520:49:165;565:2;550:18;;520:49;:::i;:::-;510:59;;588:49;633:2;622:9;618:18;588:49;:::i;:::-;578:59;;196:447;;;;;:::o;856:284::-;4076:10523:73;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101375760003560e01c80637f82a5e7116100b8578063cd24be221161007c578063cd24be2214610295578063cf49020e1461029d578063f2fde38b146102b0578063f38d2491146102c3578063fabec44a146102d6578063fedcc0521461035557600080fd5b80637f82a5e7146101e85780638da5cb5b146101fb5780639585548a1461020c5780639e3e7bb91461021f578063afce4bea1461022757600080fd5b80636df23789116100ff5780636df23789146101aa5780636ff6e83f146101bd578063709bc7f3146101c5578063715018a6146101cd57806371673bd0146101d557600080fd5b80630f3ca8ca1461013c5780631320a65a146101515780631ee9ce8b1461016c5780632c5d4f8e1461018c57806361f89825146101a2575b600080fd5b61014f61014a366004611d86565b61035d565b005b60035460ff1660405190151581526020015b60405180910390f35b610174610634565b6040516001600160a01b039091168152602001610163565b60035461010090046001600160a01b0316610174565b610174610696565b61014f6101b8366004611dbe565b6106f8565b610174610822565b610174610884565b61014f6108e3565b61014f6101e3366004611ddb565b6108f7565b61014f6101f6366004611e1c565b61090e565b6000546001600160a01b0316610174565b61014f61021a366004611ddb565b61153f565b6101746117cb565b61023a610235366004611d86565b61182d565b604051610163919081516001600160a01b03908116825260208084015182169083015260408084015182169083015260608084015182169083015260808084015182169083015260a092830151169181019190915260c00190565b6101746118e5565b61014f6102ab366004611dbe565b611963565b61014f6102be366004611dbe565b611a8b565b61014f6102d1366004611d86565b611ac9565b6103296040805160608101825260008082526020820181905291810191909152506040805160608101825260015460ff808216835261010082048116602084015262010000909104169181019190915290565b60408051825160ff90811682526020808501518216908301529282015190921690820152606001610163565b610174611c3f565b60035460ff16156103bf5760405162461bcd60e51b815260206004820152602160248201527f63616e6e6f742063616c6c206f6e207265666572656e636520636f6e747261636044820152601d60fa1b60648201526084015b60405180910390fd5b60006002816103db6103d636869003860186611e9b565b611ca1565b81526020810191909152604001600020546001600160a01b0316146104425760405162461bcd60e51b815260206004820152601760248201527f76657273696f6e206665746368656420616c726561647900000000000000000060448201526064016103b6565b61044a6118e5565b6001600160a01b031663afce4bea826040518263ffffffff1660e01b81526004016104759190611eef565b60c060405180830381865afa158015610492573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b69190611f37565b600260006104cc6103d636869003860186611e9b565b815260208082019290925260409081016000908120845181546001600160a01b03199081166001600160a01b039283161783559486015160018301805487169183169190911790559285015160028083018054871692861692909217909155606086015160038301805487169186169190911790556080860151600483018054871691861691909117905560a090950151600590910180549094169216919091179091556105826103d636859003850185611e9b565b81526020019081526020016000206040516105eb919081546001600160a01b03908116825260018301548116602083015260028301548116604083015260038301548116606083015260048301548116608083015260059092015490911660a082015260c00190565b6040518091039020816040516106019190611ff0565b604051908190038120907f5846080f2085e3dfad8cb250efdba145f8982d2e81ba7f74478da7fab659322b90600090a350565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152600090600290829061067490611ca1565b81526020810191909152604001600020600201546001600160a01b0316919050565b6040805160608101825260015460ff808216835261010082048116602084015262010000909104169181019190915260009060029082906106d690611ca1565b81526020810191909152604001600020600501546001600160a01b0316919050565b610700611cf1565b60035460ff1680156107845750306001600160a01b0316816001600160a01b0316632d5f11876040518163ffffffff1660e01b8152600401602060405180830381865afa158015610755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107799190612037565b6001600160a01b0316145b6107d05760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79207265666572656e636520636f6e74726163742063616e2063616c6c60448201526064016103b6565b60038054610100600160a81b0319166101006001600160a01b038416908102919091179091556040517ff068c7797c3b666af662a0e2f018804080dc37610a1b82b55006872b06d30ef590600090a250565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152600090600290829061086290611ca1565b81526020810191909152604001600020600101546001600160a01b0316919050565b6040805160608101825260015460ff808216835261010082048116602084015262010000909104169181019190915260009060029082906108c490611ca1565b81526020810191909152604001600020546001600160a01b0316919050565b6108eb611cf1565b6108f56000611d1e565b565b610901828261153f565b61090a82611ac9565b5050565b6001600160a01b0382166109645760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016103b6565b6001600160a01b03811615801561097e575060035460ff16155b156109de5760405162461bcd60e51b815260206004820152602a60248201527f6f6e6c79207265666572656e636520636f6e74726163742063616e206465706c6044820152696f79206e65772049417360b01b60648201526084016103b6565b6000826001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190612037565b90506000836001600160a01b0316636290865d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa89190612037565b90506000826001600160a01b031663f11abfd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0e9190612037565b90506000836001600160a01b0316633b3e12f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b749190612037565b90506000846001600160a01b031663b4f3fcb76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bda9190612037565b9050336001600160a01b0316876001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190612037565b6001600160a01b0316141580610cd15750336001600160a01b0316856001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc59190612037565b6001600160a01b031614155b80610d4f5750336001600160a01b0316846001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d439190612037565b6001600160a01b031614155b80610dcd5750336001600160a01b0316836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc19190612037565b6001600160a01b031614155b80610e4b5750336001600160a01b0316826001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3f9190612037565b6001600160a01b031614155b80610ec95750336001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd9190612037565b6001600160a01b031614155b15610f295760405162461bcd60e51b815260206004820152602a60248201527f63616c6c6572204e4f54206f776e6572206f6620616c6c20636f6e74726163746044820152691cc81a5b5c1858dd195960b21b60648201526084016103b6565b6001600160a01b038616610fb057600480546040516352f1431b60e01b81526001600160a01b038a8116938201939093529116906352f1431b906024016020604051808303816000875af1158015610f85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa99190612037565b9550611259565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152610fe890611ca1565b61104d876001600160a01b031663fabec44a6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611029573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d69190612054565b146110b55760405162461bcd60e51b815260206004820152603260248201527f76657273696f6e206f66206e65772049412068617320746f206265207468652060448201527173616d652061732063757272656e7420494160701b60648201526084016103b6565b856001600160a01b0316631320a65a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611117919061209c565b801561113c57506111266118e5565b6001600160a01b0316866001600160a01b031614155b156111895760405162461bcd60e51b815260206004820181905260248201527f6e6577204941206973204e4f54207265666572656e636520636f6e747261637460448201526064016103b6565b6004805460405163de87aeeb60e01b81526001600160a01b038981169382019390935291169063de87aeeb90602401602060405180830381865afa1580156111d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f9919061209c565b15801561121f57506112096118e5565b6001600160a01b0316866001600160a01b031614155b156112595760405162461bcd60e51b815260206004820152600a602482015269696e76616c696420494160b01b60448201526064016103b6565b6040516392dd9d6560e01b81526001600160a01b0387811660048301528816906392dd9d6590602401600060405180830381600087803b15801561129c57600080fd5b505af11580156112b0573d6000803e3d6000fd5b50506040516392dd9d6560e01b81526001600160a01b038981166004830152881692506392dd9d659150602401600060405180830381600087803b1580156112f757600080fd5b505af115801561130b573d6000803e3d6000fd5b50506040516392dd9d6560e01b81526001600160a01b038981166004830152871692506392dd9d659150602401600060405180830381600087803b15801561135257600080fd5b505af1158015611366573d6000803e3d6000fd5b50506040516392dd9d6560e01b81526001600160a01b038981166004830152851692506392dd9d659150602401600060405180830381600087803b1580156113ad57600080fd5b505af11580156113c1573d6000803e3d6000fd5b50506040516392dd9d6560e01b81526001600160a01b038981166004830152841692506392dd9d659150602401600060405180830381600087803b15801561140857600080fd5b505af115801561141c573d6000803e3d6000fd5b50505050306001600160a01b0316836001600160a01b0316632d5f11876040518163ffffffff1660e01b8152600401602060405180830381865afa158015611468573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148c9190612037565b6001600160a01b0316036114f6576040516392dd9d6560e01b81526001600160a01b0387811660048301528416906392dd9d6590602401600060405180830381600087803b1580156114dd57600080fd5b505af11580156114f1573d6000803e3d6000fd5b505050505b856001600160a01b0316876001600160a01b03167ff79ab4f8584958d3168dac16d1d96119f728316536f50639339b4202837051c860405160405180910390a350505050505050565b611547611cf1565b60035460ff166115aa5760405162461bcd60e51b815260206004820152602860248201527f4f4e4c59207265666572656e636520636f6e74726163742063616e206164642060448201526776657273696f6e7360c01b60648201526084016103b6565b60006002816115c16103d636879003870187611e9b565b81526020810191909152604001600020546001600160a01b0316146116215760405162461bcd60e51b815260206004820152601660248201527576657273696f6e20616c72656164792065786973747360501b60448201526064016103b6565b60006116336040830160208401611dbe565b6001600160a01b031614158015611663575060006116576060830160408401611dbe565b6001600160a01b031614155b80156116885750600061167c6080830160608401611dbe565b6001600160a01b031614155b80156116ad575060006116a160c0830160a08401611dbe565b6001600160a01b031614155b80156116d2575060006116c660a0830160808401611dbe565b6001600160a01b031614155b80156116f4575060006116e86020830183611dbe565b6001600160a01b031614155b6117405760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016103b6565b80600260006117576103d636879003870187611e9b565b8152602001908152602001600020818161177191906120de565b5050604051611781908290612184565b6040518091039020826040516117979190611ff0565b604051908190038120907faecad55510e8cbc2b82b73c5c6d78c169403cb719460198f517d41cf7700b71b90600090a35050565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152600090600290829061180b90611ca1565b81526020810191909152604001600020600301546001600160a01b0316919050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152600260006118756103d636869003860186611e9b565b81526020808201929092526040908101600020815160c08101835281546001600160a01b039081168252600183015481169482019490945260028201548416928101929092526003810154831660608301526004810154831660808301526005015490911660a082015292915050565b6000600360019054906101000a90046001600160a01b03166001600160a01b0316632d5f11876040518163ffffffff1660e01b8152600401602060405180830381865afa15801561193a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195e9190612037565b905090565b61196b611cf1565b60035460ff1680156119f5575060035460408051632d5f118760e01b81529051309261010090046001600160a01b031691632d5f11879160048083019260209291908290030181865afa1580156119c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ea9190612037565b6001600160a01b0316145b611a415760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79207265666572656e636520636f6e74726163742063616e2063616c6c60448201526064016103b6565b600480546001600160a01b0319166001600160a01b0383169081179091556040517f5fb25b36f93b3d8443f7502abdc1157f581f15db724459ffb2800fce6132a00890600090a250565b611a93611cf1565b6001600160a01b038116611abd57604051631e4fbdf760e01b8152600060048201526024016103b6565b611ac681611d1e565b50565b611ad1611cf1565b6040805160608101825260015460ff8082168352610100820481166020840152620100009091041691810191909152611b0990611ca1565b611b1b6103d636849003840184611e9b565b03611b615760405162461bcd60e51b815260206004820152601660248201527576657273696f6e20616c726561647920696e2075736560501b60448201526064016103b6565b6000600281611b786103d636869003860186611e9b565b81526020810191909152604001600020546001600160a01b031603611bef5760405162461bcd60e51b815260206004820152602760248201527f696e76616c696420617267756d656e74202d206e6f6e206578697374696e67206044820152663b32b939b4b7b760c91b60648201526084016103b6565b806001611bfc8282612218565b5050604051611c0c908290611ff0565b604051908190038120907f0a46bc1766225d5a82bc50155575dc428902e93470e34ceaf7e0faae128fe0ab90600090a250565b6040805160608101825260015460ff80821683526101008204811660208401526201000090910416918101919091526000906002908290611c7f90611ca1565b81526020810191909152604001600020600401546001600160a01b0316919050565b805160208083015160409384015184516001600160f81b031960f895861b81168286015292851b83166021820152931b166022830152825180830360030181526023909201909252805191012090565b6000546001600160a01b031633146108f55760405163118cdaa760e01b81523360048201526024016103b6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060608284031215611d8057600080fd5b50919050565b600060608284031215611d9857600080fd5b611da28383611d6e565b9392505050565b6001600160a01b0381168114611ac657600080fd5b600060208284031215611dd057600080fd5b8135611da281611da9565b600080828403610120811215611df057600080fd5b611dfa8585611d6e565b925060c0605f1982011215611e0e57600080fd5b506060830190509250929050565b60008060408385031215611e2f57600080fd5b8235611e3a81611da9565b91506020830135611e4a81611da9565b809150509250929050565b6040516060810167ffffffffffffffff81118282101715611e8657634e487b7160e01b600052604160045260246000fd5b60405290565b60ff81168114611ac657600080fd5b600060608284031215611ead57600080fd5b611eb5611e55565b8235611ec081611e8c565b81526020830135611ed081611e8c565b60208201526040830135611ee381611e8c565b60408201529392505050565b606081018235611efe81611e8c565b60ff1682526020830135611f1181611e8c565b60ff1660208301526040830135611f2781611e8c565b60ff811660408401525092915050565b600060c08284031215611f4957600080fd5b60405160c0810181811067ffffffffffffffff82111715611f7a57634e487b7160e01b600052604160045260246000fd5b6040528251611f8881611da9565b81526020830151611f9881611da9565b60208201526040830151611fab81611da9565b60408201526060830151611fbe81611da9565b60608201526080830151611fd181611da9565b608082015260a0830151611fe481611da9565b60a08201529392505050565b60008235611ffd81611e8c565b60ff168252602083013561201081611e8c565b60ff166020830152604083013561202681611e8c565b60ff16604083015250606001919050565b60006020828403121561204957600080fd5b8151611da281611da9565b60006060828403121561206657600080fd5b61206e611e55565b825161207981611e8c565b8152602083015161208981611e8c565b60208201526040830151611ee381611e8c565b6000602082840312156120ae57600080fd5b81518015158114611da257600080fd5b80546001600160a01b0319166001600160a01b0392909216919091179055565b81356120e981611da9565b6120f381836120be565b50602082013561210281611da9565b61210f81600184016120be565b50604082013561211e81611da9565b61212b81600284016120be565b50606082013561213a81611da9565b61214781600384016120be565b50608082013561215681611da9565b61216381600484016120be565b5060a082013561217281611da9565b61217f81600584016120be565b505050565b6000823561219181611da9565b6001600160a01b0390811683526020840135906121ad82611da9565b90811660208401526040840135906121c482611da9565b90811660408401526060840135906121db82611da9565b90811660608401526080840135906121f282611da9565b908116608084015260a08401359061220982611da9565b1660a08301525060c001919050565b813561222381611e8c565b60ff8116905081548160ff198216178355602084013561224281611e8c565b61ff008160081b169050808361ffff19841617178455604085013561226681611e8c565b62ff00008160101b168462ffffff19851617831717855550505050505056fea264697066735822122068f79642f5d24a1684426b71e3cd30b9f225db39583a46ccd73265564b674e2e64736f6c63430008180033","sourceMap":"4076:10523:73:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6758:511;;;;;;:::i;:::-;;:::i;:::-;;13966:101;14050:10;;;;13966:101;;583:14:165;;576:22;558:41;;546:2;531:18;13966:101:73;;;;;;;;11522:157;;;:::i;:::-;;;-1:-1:-1;;;;;774:32:165;;;756:51;;744:2;729:18;11522:157:73;610:203:165;10820:103:73;10904:12;;;;;-1:-1:-1;;;;;10904:12:73;10820:103;;12272:157;;;:::i;5638:343::-;;;;;;:::i;:::-;;:::i;11272:159::-;;;:::i;11017:163::-;;;:::i;2293:101:141:-;;;:::i;6483:187:73:-;;;;;;:::i;:::-;;:::i;7439:2842::-;;;;;;:::i;:::-;;:::i;1638:85:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;1638:85;;12515:822:73;;;;;;:::i;:::-;;:::i;11771:159::-;;;:::i;10570:164::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;2279:13:165;;-1:-1:-1;;;;;2275:22:165;;;2257:41;;2358:4;2346:17;;;2340:24;2336:33;;2314:20;;;2307:63;2430:4;2418:17;;;2412:24;2408:33;;2386:20;;;2379:63;2502:4;2490:17;;;2484:24;2480:33;;2458:20;;;2451:63;2574:4;2562:17;;;2556:24;2552:33;;2530:20;;;2523:63;2237:3;2634:17;;;2628:24;2624:33;2602:20;;;2595:63;;;;2206:3;2191:19;;2008:656;14159:150:73;;;:::i;6065:332::-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;13423:452:73:-;;;;;;:::i;:::-;;:::i;10370:116::-;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;10457:22:73;;;;;;;;10464:15;10457:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10370:116;;;;;2889:13:165;;2904:4;2885:24;;;2867:43;;2970:4;2958:17;;;2952:24;2948:35;;2926:20;;;2919:65;3032:17;;;3026:24;3022:35;;;3000:20;;;2993:65;2855:2;2840:18;10370:116:73;2669:395:165;12022:159:73;;;:::i;6758:511::-;14050:10;;;;6843:22;6835:68;;;;-1:-1:-1;;;6835:68:73;;3271:2:165;6835:68:73;;;3253:21:165;3310:2;3290:18;;;3283:30;3349:34;3329:18;;;3322:62;-1:-1:-1;;;3400:18:165;;;3393:31;3441:19;;6835:68:73;;;;;;;;;6986:1;6917:10;6986:1;6928:25;;;;;;;;6944:8;6928:25;:::i;:::-;:15;:25::i;:::-;6917:37;;;;;;;;;;;-1:-1:-1;6917:37:73;:57;-1:-1:-1;;;;;6917:57:73;:71;6913:135;;7004:33;;-1:-1:-1;;;7004:33:73;;4762:2:165;7004:33:73;;;4744:21:165;4801:2;4781:18;;;4774:30;4840:25;4820:18;;;4813:53;4883:18;;7004:33:73;4560:347:165;6913:135:73;7134:22;:20;:22::i;:::-;-1:-1:-1;;;;;7105:65:73;;7171:8;7105:75;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7057:10;:37;7068:25;;;;;;;;7084:8;7068:25;:::i;:::-;7057:37;;;;;;;;;;;;;;-1:-1:-1;7057:37:73;;;:123;;;;-1:-1:-1;;;;;;7057:123:73;;;-1:-1:-1;;;;;7057:123:73;;;;;;;;;;-1:-1:-1;7057:123:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7235:25;;;;;;;;;;:::i;:::-;7224:37;;;;;;;;;;;7195:67;;;;;7070:13:165;;-1:-1:-1;;;;;7066:22:165;;;7054:35;;7043:1;7131:17;;7125:24;7121:33;;7114:4;7105:14;;7098:57;7207:4;7195:17;;7189:24;7185:33;;7180:2;7171:12;;7164:55;7271:4;7259:17;;7253:24;7249:33;;7244:2;7235:12;;7228:55;7336:4;7324:17;;7318:24;7314:33;;7308:3;7299:13;;7292:56;7401:4;7389:17;;;7383:24;7379:33;;;7034:3;7364:13;;7357:56;7438:3;7429:13;;6826:622;7195:67:73;;;;;;;;7214:8;7195:67;;;;;;:::i;:::-;;;;;;;;;;;;;;;6758:511;:::o;11522:157::-;11622:32;;;;;;;;11638:15;11622:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;11585:7;;11611:10;;11585:7;;11622:32;;:15;:32::i;:::-;11611:44;;;;;;;;;;;-1:-1:-1;11611:44:73;:61;;;-1:-1:-1;;;;;11611:61:73;;11522:157;-1:-1:-1;11522:157:73:o;12272:::-;12372:32;;;;;;;;12388:15;12372:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;12335:7;;12361:10;;12335:7;;12372:32;;:15;:32::i;:::-;12361:44;;;;;;;;;;;-1:-1:-1;12361:44:73;:61;;;-1:-1:-1;;;;;12361:61:73;;12272:157;-1:-1:-1;12272:157:73:o;5638:343::-;1531:13:141;:11;:13::i;:::-;14050:10:73;;;;5742:108:::1;;;;;5845:4;-1:-1:-1::0;;;;;5779:71:73::1;5792:11;-1:-1:-1::0;;;;;5779:52:73::1;;:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5779:71:73::1;;5742:108;5721:175;;;::::0;-1:-1:-1;;;5721:175:73;;8530:2:165;5721:175:73::1;::::0;::::1;8512:21:165::0;;;8549:18;;;8542:30;8608:34;8588:18;;;8581:62;8660:18;;5721:175:73::1;8328:356:165::0;5721:175:73::1;5906:12;:26:::0;;-1:-1:-1;;;;;;5906:26:73::1;;-1:-1:-1::0;;;;;5906:26:73;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;5947:27:::1;::::0;::::1;::::0;-1:-1:-1;;5947:27:73::1;5638:343:::0;:::o;11272:159::-;11373:32;;;;;;;;11389:15;11373:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;11336:7;;11362:10;;11336:7;;11373:32;;:15;:32::i;:::-;11362:44;;;;;;;;;;;-1:-1:-1;11362:44:73;:62;;;-1:-1:-1;;;;;11362:62:73;;11272:159;-1:-1:-1;11272:159:73:o;11017:163::-;11120:32;;;;;;;;11136:15;11120:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;11083:7;;11109:10;;11083:7;;11120:32;;:15;:32::i;:::-;11109:44;;;;;;;;;;;-1:-1:-1;11109:44:73;:64;-1:-1:-1;;;;;11109:64:73;;11017:163;-1:-1:-1;11017:163:73:o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;6483:187:73:-;6598:31;6613:8;6623:5;6598:14;:31::i;:::-;6639:24;6654:8;6639:14;:24::i;:::-;6483:187;;:::o;7439:2842::-;-1:-1:-1;;;;;7567:20:73;;7559:64;;;;-1:-1:-1;;;7559:64:73;;8891:2:165;7559:64:73;;;8873:21:165;8930:2;8910:18;;;8903:30;8969:33;8949:18;;;8942:61;9020:18;;7559:64:73;8689:355:165;7559:64:73;-1:-1:-1;;;;;7636:41:73;;;:67;;;;-1:-1:-1;14050:10:73;;;;7681:22;7636:67;7633:139;;;7718:52;;-1:-1:-1;;;7718:52:73;;9251:2:165;7718:52:73;;;9233:21:165;9290:2;9270:18;;;9263:30;9329:34;9309:18;;;9302:62;-1:-1:-1;;;9380:18:165;;;9373:40;9430:19;;7718:52:73;9049:406:165;7633:139:73;7782:11;7811:6;-1:-1:-1;;;;;7804:31:73;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7782:56;;7848:11;7877:6;-1:-1:-1;;;;;7870:25:73;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7848:50;;7908:12;7949:3;-1:-1:-1;;;;;7931:38:73;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7908:64;;7982:12;8023:3;-1:-1:-1;;;;;8005:37:73;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7982:63;;8055:12;8096:3;-1:-1:-1;;;;;8078:38:73;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8055:64;;8261:10;-1:-1:-1;;;;;8234:37:73;8242:6;-1:-1:-1;;;;;8234:21:73;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8234:37:73;;;:87;;;;8311:10;-1:-1:-1;;;;;8287:34:73;8295:3;-1:-1:-1;;;;;8287:18:73;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8287:34:73;;;8234:87;:137;;;;8361:10;-1:-1:-1;;;;;8337:34:73;8345:3;-1:-1:-1;;;;;8337:18:73;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8337:34:73;;;8234:137;:188;;;;8412:10;-1:-1:-1;;;;;8387:35:73;8395:4;-1:-1:-1;;;;;8387:19:73;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8387:35:73;;;8234:188;:239;;;;8463:10;-1:-1:-1;;;;;8438:35:73;8446:4;-1:-1:-1;;;;;8438:19:73;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8438:35:73;;;8234:239;:290;;;;8514:10;-1:-1:-1;;;;;8489:35:73;8497:4;-1:-1:-1;;;;;8489:19:73;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8489:35:73;;;8234:290;8218:385;;;8540:52;;-1:-1:-1;;;8540:52:73;;11094:2:165;8540:52:73;;;11076:21:165;11133:2;11113:18;;;11106:30;11172:34;11152:18;;;11145:62;-1:-1:-1;;;11223:18:165;;;11216:40;11273:19;;8540:52:73;10892:406:165;8218:385:73;-1:-1:-1;;;;;8616:41:73;;8613:928;;8714:10;;;8703:39;;-1:-1:-1;;;8703:39:73;;-1:-1:-1;;;;;774:32:165;;;8703:39:73;;;756:51:165;;;;8714:10:73;;;8703:31;;729:18:165;;8703:39:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8673:69;;8613:928;;;8915:32;;;;;;;;8931:15;8915:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;:32::i;:::-;8801:94;8846:27;-1:-1:-1;;;;;8817:75:73;;:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8801:94::-;:146;8781:261;;8967:60;;-1:-1:-1;;;8967:60:73;;12117:2:165;8967:60:73;;;12099:21:165;12156:2;12136:18;;;12129:30;12195:34;12175:18;;;12168:62;-1:-1:-1;;;12246:18:165;;;12239:48;12304:19;;8967:60:73;11915:414:165;8781:261:73;9104:27;-1:-1:-1;;;;;9075:77:73;;:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:152;;;;;9205:22;:20;:22::i;:::-;-1:-1:-1;;;;;9174:53:73;:27;-1:-1:-1;;;;;9174:53:73;;;9075:152;9055:249;;;9247:42;;-1:-1:-1;;;9247:42:73;;12818:2:165;9247:42:73;;;12800:21:165;;;12837:18;;;12830:30;12896:34;12876:18;;;12869:62;12948:18;;9247:42:73;12616:356:165;9055:249:73;9349:10;;;9338:69;;-1:-1:-1;;;9338:69:73;;-1:-1:-1;;;;;774:32:165;;;9338:69:73;;;756:51:165;;;;9349:10:73;;;9338:40;;729:18:165;;9338:69:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9337:70;:139;;;;;9454:22;:20;:22::i;:::-;-1:-1:-1;;;;;9423:53:73;:27;-1:-1:-1;;;;;9423:53:73;;;9337:139;9317:214;;;9496:20;;-1:-1:-1;;;9496:20:73;;13179:2:165;9496:20:73;;;13161:21:165;13218:2;13198:18;;;13191:30;-1:-1:-1;;;13237:18:165;;;13230:40;13287:18;;9496:20:73;12977:334:165;9317:214:73;9551:70;;-1:-1:-1;;;9551:70:73;;-1:-1:-1;;;;;774:32:165;;;9551:70:73;;;756:51:165;9551:41:73;;;;;729:18:165;;9551:70:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9631:67:73;;-1:-1:-1;;;9631:67:73;;-1:-1:-1;;;;;774:32:165;;;9631:67:73;;;756:51:165;9631:38:73;;;-1:-1:-1;9631:38:73;;-1:-1:-1;729:18:165;;9631:67:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9708:67:73;;-1:-1:-1;;;9708:67:73;;-1:-1:-1;;;;;774:32:165;;;9708:67:73;;;756:51:165;9708:38:73;;;-1:-1:-1;9708:38:73;;-1:-1:-1;729:18:165;;9708:67:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9785:68:73;;-1:-1:-1;;;9785:68:73;;-1:-1:-1;;;;;774:32:165;;;9785:68:73;;;756:51:165;9785:39:73;;;-1:-1:-1;9785:39:73;;-1:-1:-1;729:18:165;;9785:68:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9863:68:73;;-1:-1:-1;;;9863:68:73;;-1:-1:-1;;;;;774:32:165;;;9863:68:73;;;756:51:165;9863:39:73;;;-1:-1:-1;9863:39:73;;-1:-1:-1;729:18:165;;9863:68:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10093:4;-1:-1:-1;;;;;10040:58:73;10047:4;-1:-1:-1;;;;;10040:39:73;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10040:58:73;;10036:157;;10114:68;;-1:-1:-1;;;10114:68:73;;-1:-1:-1;;;;;774:32:165;;;10114:68:73;;;756:51:165;10114:39:73;;;;;729:18:165;;10114:68:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10036:157;10246:27;-1:-1:-1;;;;;10207:67:73;10238:6;-1:-1:-1;;;;;10207:67:73;;;;;;;;;;;7549:2732;;;;;7439:2842;;:::o;12515:822::-;1531:13:141;:11;:13::i;:::-;14050:10:73;;;;12632:74:::1;;;::::0;-1:-1:-1;;;12632:74:73;;13518:2:165;12632:74:73::1;::::0;::::1;13500:21:165::0;13557:2;13537:18;;;13530:30;13596:34;13576:18;;;13569:62;-1:-1:-1;;;13647:18:165;;;13640:38;13695:19;;12632:74:73::1;13316:404:165::0;12632:74:73::1;12789:1;12720:10;12789:1:::0;12731:25:::1;;;::::0;;::::1;::::0;::::1;12747:8:::0;12731:25:::1;:::i;:::-;12720:37:::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12720:37:73;:57;-1:-1:-1;;;;;12720:57:73::1;:71;12716:134;;12807:32;::::0;-1:-1:-1;;;12807:32:73;;13927:2:165;12807:32:73::1;::::0;::::1;13909:21:165::0;13966:2;13946:18;;;13939:30;-1:-1:-1;;;13985:18:165;;;13978:52;14047:18;;12807:32:73::1;13725:346:165::0;12716:134:73::1;12915:1;12880:23;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;12880:37:73::1;;;:89;;;;-1:-1:-1::0;12967:1:73::1;12933:22;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;12933:36:73::1;;;12880:89;:142;;;;-1:-1:-1::0;13020:1:73::1;12985:23;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;12985:37:73::1;;;12880:142;:194;;;;-1:-1:-1::0;13072:1:73::1;13038:22;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;13038:36:73::1;;;12880:194;:247;;;;-1:-1:-1::0;13125:1:73::1;13090:23;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;13090:37:73::1;;;12880:247;:302;;;;-1:-1:-1::0;13180:1:73::1;13143:25;;::::0;::::1;:5:::0;:25:::1;:::i;:::-;-1:-1:-1::0;;;;;13143:39:73::1;;;12880:302;12859:368;;;::::0;-1:-1:-1;;;12859:368:73;;8891:2:165;12859:368:73::1;::::0;::::1;8873:21:165::0;8930:2;8910:18;;;8903:30;8969:33;8949:18;;;8942:61;9020:18;;12859:368:73::1;8689:355:165::0;12859:368:73::1;13277:5:::0;13237:10:::1;:37;13248:25;;;::::0;;::::1;::::0;::::1;13264:8:::0;13248:25:::1;:::i;:::-;13237:37;;;;;;;;;;;:45;;;;;;:::i;:::-;-1:-1:-1::0;;13297:33:73::1;::::0;::::1;::::0;13324:5;;13297:33:::1;:::i;:::-;;;;;;;;13314:8;13297:33;;;;;;:::i;:::-;;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;12515:822:::0;;:::o;11771:159::-;11872:32;;;;;;;;11888:15;11872:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;11835:7;;11861:10;;11835:7;;11872:32;;:15;:32::i;:::-;11861:44;;;;;;;;;;;-1:-1:-1;11861:44:73;:62;;;-1:-1:-1;;;;;11861:62:73;;11771:159;-1:-1:-1;11771:159:73:o;10570:164::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10690:10:73;:37;10701:25;;;;;;;;10717:8;10701:25;:::i;:::-;10690:37;;;;;;;;;;;;;;-1:-1:-1;10690:37:73;10683:44;;;;;;;;;-1:-1:-1;;;;;10683:44:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10570:164;-1:-1:-1;;10570:164:73:o;14159:150::-;14221:7;14260:12;;;;;;;;;-1:-1:-1;;;;;14260:12:73;-1:-1:-1;;;;;14247:53:73;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14240:62;;14159:150;:::o;6065:332::-;1531:13:141;:11;:13::i;:::-;14050:10:73;;;;6165:109:::1;;;;-1:-1:-1::0;6215:12:73::1;::::0;6202:55:::1;::::0;;-1:-1:-1;;;6202:55:73;;;;6269:4:::1;::::0;6215:12:::1;::::0;::::1;-1:-1:-1::0;;;;;6215:12:73::1;::::0;6202:53:::1;::::0;:55:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;6215:12;6202:55:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6202:72:73::1;;6165:109;6144:176;;;::::0;-1:-1:-1;;;6144:176:73;;8530:2:165;6144:176:73::1;::::0;::::1;8512:21:165::0;;;8549:18;;;8542:30;8608:34;8588:18;;;8581:62;8660:18;;6144:176:73::1;8328:356:165::0;6144:176:73::1;6330:10;:22:::0;;-1:-1:-1;;;;;;6330:22:73::1;-1:-1:-1::0;;;;;6330:22:73;::::1;::::0;;::::1;::::0;;;6367:23:::1;::::0;::::1;::::0;-1:-1:-1;;6367:23:73::1;6065:332:::0;:::o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;756:51:165::0;729:18;;2672:31:141::1;610:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;13423:452:73:-;1531:13:141;:11;:13::i;:::-;13543:32:73::1;::::0;;::::1;::::0;::::1;::::0;;13559:15:::1;13543:32:::0;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;;::::0;::::1;::::0;;;;::::1;;::::0;;;;;;;::::1;::::0;:15:::1;:32::i;:::-;13514:25;;;::::0;;::::1;::::0;::::1;13530:8:::0;13514:25:::1;:::i;:::-;:61:::0;13510:124:::1;;13591:32;::::0;-1:-1:-1;;;13591:32:73;;16754:2:165;13591:32:73::1;::::0;::::1;16736:21:165::0;16793:2;16773:18;;;16766:30;-1:-1:-1;;;16812:18:165;;;16805:52;16874:18;;13591:32:73::1;16552:346:165::0;13510:124:73::1;13716:1;13647:10;13716:1:::0;13658:25:::1;;;::::0;;::::1;::::0;::::1;13674:8:::0;13658:25:::1;:::i;:::-;13647:37:::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;13647:37:73;:57;-1:-1:-1;;;;;13647:57:73::1;:71:::0;13643:151:::1;;13734:49;::::0;-1:-1:-1;;;13734:49:73;;17105:2:165;13734:49:73::1;::::0;::::1;17087:21:165::0;17144:2;17124:18;;;17117:30;17183:34;17163:18;;;17156:62;-1:-1:-1;;;17234:18:165;;;17227:37;17281:19;;13734:49:73::1;16903:403:165::0;13643:151:73::1;13821:8:::0;13803:15:::1;:26;13821:8:::0;13803:15;:26:::1;:::i;:::-;-1:-1:-1::0;;13844:24:73::1;::::0;::::1;::::0;13859:8;;13844:24:::1;:::i;:::-;;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;13423:452:::0;:::o;12022:159::-;12123:32;;;;;;;;12139:15;12123:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;12086:7;;12112:10;;12086:7;;12123:32;;:15;:32::i;:::-;12112:44;;;;;;;;;;;-1:-1:-1;12112:44:73;:62;;;-1:-1:-1;;;;;12112:62:73;;12022:159;-1:-1:-1;12022:159:73:o;14409:188::-;14541:14;;14557;;;;;14573;;;;;14524:64;;-1:-1:-1;;;;;;18241:3:165;18275:16;;;18271:25;;14524:64:73;;;18259:38:165;18330:16;;;18326:25;;18313:11;;;18306:46;18385:16;;18381:25;18368:11;;;18361:46;14524:64:73;;;;;;;;;18423:11:165;;;;14524:64:73;;;14514:75;;;;;;14409:188::o;1796:162:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;756:51:165;729:18;;1901:40:141;610:203:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:155:165:-;74:5;119:2;110:6;105:3;101:16;97:25;94:45;;;135:1;132;125:12;94:45;-1:-1:-1;157:6:165;14:155;-1:-1:-1;14:155:165:o;174:239::-;261:6;314:2;302:9;293:7;289:23;285:32;282:52;;;330:1;327;320:12;282:52;353:54;399:7;388:9;353:54;:::i;:::-;343:64;174:239;-1:-1:-1;;;174:239:165:o;818:131::-;-1:-1:-1;;;;;893:31:165;;883:42;;873:70;;939:1;936;929:12;954:247;1013:6;1066:2;1054:9;1045:7;1041:23;1037:32;1034:52;;;1082:1;1079;1072:12;1034:52;1121:9;1108:23;1140:31;1165:5;1140:31;:::i;1206:404::-;1336:6;1344;1388:9;1379:7;1375:23;1418:3;1414:2;1410:12;1407:32;;;1435:1;1432;1425:12;1407:32;1458:54;1504:7;1493:9;1458:54;:::i;:::-;1448:64;-1:-1:-1;1546:3:165;-1:-1:-1;;1528:16:165;;1524:26;1521:46;;;1563:1;1560;1553:12;1521:46;;1601:2;1590:9;1586:18;1576:28;;1206:404;;;;;:::o;1615:388::-;1683:6;1691;1744:2;1732:9;1723:7;1719:23;1715:32;1712:52;;;1760:1;1757;1750:12;1712:52;1799:9;1786:23;1818:31;1843:5;1818:31;:::i;:::-;1868:5;-1:-1:-1;1925:2:165;1910:18;;1897:32;1938:33;1897:32;1938:33;:::i;:::-;1990:7;1980:17;;;1615:388;;;;;:::o;3471:343::-;3538:2;3532:9;3580:2;3568:15;;3613:18;3598:34;;3634:22;;;3595:62;3592:185;;;3699:10;3694:3;3690:20;3687:1;3680:31;3734:4;3731:1;3724:15;3762:4;3759:1;3752:15;3592:185;3793:2;3786:22;3471:343;:::o;3819:114::-;3903:4;3896:5;3892:16;3885:5;3882:27;3872:55;;3923:1;3920;3913:12;3938:617;4023:6;4076:2;4064:9;4055:7;4051:23;4047:32;4044:52;;;4092:1;4089;4082:12;4044:52;4118:17;;:::i;:::-;4172:9;4159:23;4191:31;4214:7;4191:31;:::i;:::-;4231:22;;4305:2;4290:18;;4277:32;4318:31;4277:32;4318:31;:::i;:::-;4376:2;4365:14;;4358:31;4441:2;4426:18;;4413:32;4454:31;4413:32;4454:31;:::i;:::-;4512:2;4501:14;;4494:31;4505:5;3938:617;-1:-1:-1;;;3938:617:165:o;4912:625::-;5100:2;5085:18;;5125:20;;5154:29;5125:20;5154:29;:::i;:::-;5221:4;5210:16;5192:35;;5276:4;5264:17;;5251:31;5291;5251;5291;:::i;:::-;5373:4;5360:18;5353:4;5338:20;;5331:48;5428:4;5416:17;;5403:31;5443;5403;5443;:::i;:::-;5525:4;5516:7;5512:18;5505:4;5494:9;5490:20;5483:48;;4912:625;;;;:::o;5542:1279::-;5644:6;5697:3;5685:9;5676:7;5672:23;5668:33;5665:53;;;5714:1;5711;5704:12;5665:53;5747:2;5741:9;5789:3;5781:6;5777:16;5859:6;5847:10;5844:22;5823:18;5811:10;5808:34;5805:62;5802:185;;;5909:10;5904:3;5900:20;5897:1;5890:31;5944:4;5941:1;5934:15;5972:4;5969:1;5962:15;5802:185;6003:2;5996:22;6040:16;;6065:31;6040:16;6065:31;:::i;:::-;6105:21;;6171:2;6156:18;;6150:25;6184:33;6150:25;6184:33;:::i;:::-;6245:2;6233:15;;6226:32;6303:2;6288:18;;6282:25;6316:33;6282:25;6316:33;:::i;:::-;6377:2;6365:15;;6358:32;6435:2;6420:18;;6414:25;6448:33;6414:25;6448:33;:::i;:::-;6509:2;6497:15;;6490:32;6567:3;6552:19;;6546:26;6581:33;6546:26;6581:33;:::i;:::-;6642:3;6630:16;;6623:33;6701:3;6686:19;;6680:26;6715:33;6680:26;6715:33;:::i;:::-;6776:3;6764:16;;6757:33;6768:6;5542:1279;-1:-1:-1;;;5542:1279:165:o;7453:614::-;7618:3;7662:6;7649:20;7678:29;7701:5;7678:29;:::i;:::-;7739:4;7728:16;7716:29;;7794:4;7782:17;;7769:31;7809;7769;7809;:::i;:::-;7885:4;7872:18;7865:4;7856:14;;7849:42;7940:2;7928:15;;7915:29;7953:31;7915:29;7953:31;:::i;:::-;8027:4;8014:18;8009:2;8000:12;;7993:40;-1:-1:-1;8058:2:165;8049:12;;7453:614;-1:-1:-1;7453:614:165:o;8072:251::-;8142:6;8195:2;8183:9;8174:7;8170:23;8166:32;8163:52;;;8211:1;8208;8201:12;8163:52;8243:9;8237:16;8262:31;8287:5;8262:31;:::i;11303:607::-;11399:6;11452:2;11440:9;11431:7;11427:23;11423:32;11420:52;;;11468:1;11465;11458:12;11420:52;11494:17;;:::i;:::-;11541:9;11535:16;11560:31;11583:7;11560:31;:::i;:::-;11600:22;;11667:2;11652:18;;11646:25;11680:31;11646:25;11680:31;:::i;:::-;11738:2;11727:14;;11720:31;11796:2;11781:18;;11775:25;11809:31;11775:25;11809:31;:::i;12334:277::-;12401:6;12454:2;12442:9;12433:7;12429:23;12425:32;12422:52;;;12470:1;12467;12460:12;12422:52;12502:9;12496:16;12555:5;12548:13;12541:21;12534:5;12531:32;12521:60;;12577:1;12574;12567:12;14076:195;14180:11;;-1:-1:-1;;;;;;14176:54:165;-1:-1:-1;;;;;14232:31:165;;;;14173:91;;;;14160:105;;14076:195::o;14276:1171::-;14455:5;14442:19;14470:33;14495:7;14470:33;:::i;:::-;14512:62;14566:7;14560:4;14512:62;:::i;:::-;;14622:2;14615:5;14611:14;14598:28;14635:33;14660:7;14635:33;:::i;:::-;14677:70;14739:7;14735:1;14729:4;14725:12;14677:70;:::i;:::-;;14795:2;14788:5;14784:14;14771:28;14808:33;14833:7;14808:33;:::i;:::-;14850:70;14912:7;14908:1;14902:4;14898:12;14850:70;:::i;:::-;;14968:2;14961:5;14957:14;14944:28;14981:33;15006:7;14981:33;:::i;:::-;15023:70;15085:7;15081:1;15075:4;15071:12;15023:70;:::i;:::-;;15141:3;15134:5;15130:15;15117:29;15155:33;15180:7;15155:33;:::i;:::-;15197:70;15259:7;15255:1;15249:4;15245:12;15197:70;:::i;:::-;;15315:3;15308:5;15304:15;15291:29;15329:33;15354:7;15329:33;:::i;:::-;15371:70;15433:7;15429:1;15423:4;15419:12;15371:70;:::i;:::-;;14276:1171;;:::o;15452:1095::-;15629:3;15673:6;15660:20;15689:31;15714:5;15689:31;:::i;:::-;-1:-1:-1;;;;;15779:14:165;;;15767:27;;15843:4;15831:17;;15818:31;;15858:33;15818:31;15858:33;:::i;:::-;15923:16;;;15916:4;15907:14;;15900:40;15989:2;15977:15;;15964:29;;16002:33;15964:29;16002:33;:::i;:::-;16065:16;;;16060:2;16051:12;;16044:38;16131:2;16119:15;;16106:29;;16144:33;16106:29;16144:33;:::i;:::-;16207:16;;;16202:2;16193:12;;16186:38;16273:3;16261:16;;16248:30;;16287:33;16248:30;16287:33;:::i;:::-;16351:16;;;16345:3;16336:13;;16329:39;16417:3;16405:16;;16392:30;;16431:33;16392:30;16431:33;:::i;:::-;16495:16;16489:3;16480:13;;16473:39;-1:-1:-1;16537:3:165;16528:13;;15452:1095;-1:-1:-1;15452:1095:165:o;17311:738::-;17478:5;17465:19;17493:31;17516:7;17493:31;:::i;:::-;17556:4;17547:7;17543:18;17533:28;;17586:4;17580:11;17635:2;17628:3;17624:8;17620:2;17616:17;17613:25;17607:4;17600:39;17687:2;17680:5;17676:14;17663:28;17700:31;17723:7;17700:31;:::i;:::-;17777:5;17767:7;17764:1;17760:15;17756:27;17740:43;;17837:8;17832:2;17823:5;17819:10;17815:2;17811:19;17808:27;17805:41;17799:4;17792:55;17895:2;17888:5;17884:14;17871:28;17908:31;17931:7;17908:31;:::i;:::-;18032:8;18022:7;18018:2;18014:16;18010:31;18004:2;17992:8;17988:13;17984:2;17980:22;17977:30;17967:8;17964:44;17961:81;17955:4;17948:95;;;;;17311:738;;:::o","linkReferences":{}},"methodIdentifiers":{"addAndUseTREXVersion((uint8,uint8,uint8),(address,address,address,address,address,address))":"71673bd0","addTREXVersion((uint8,uint8,uint8),(address,address,address,address,address,address))":"9585548a","changeImplementationAuthority(address,address)":"7f82a5e7","fetchVersion((uint8,uint8,uint8))":"0f3ca8ca","getCTRImplementation()":"6ff6e83f","getContracts((uint8,uint8,uint8))":"afce4bea","getCurrentVersion()":"fabec44a","getIRImplementation()":"1ee9ce8b","getIRSImplementation()":"9e3e7bb9","getMCImplementation()":"61f89825","getReferenceContract()":"cd24be22","getTIRImplementation()":"fedcc052","getTREXFactory()":"2c5d4f8e","getTokenImplementation()":"709bc7f3","isReferenceContract()":"1320a65a","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setIAFactory(address)":"cf49020e","setTREXFactory(address)":"6df23789","transferOwnership(address)":"f2fde38b","useTREXVersion((uint8,uint8,uint8))":"f38d2491"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"referenceStatus\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"trexFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"iaFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"iaFactory\",\"type\":\"address\"}],\"name\":\"IAFactorySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newImplementationAuthority\",\"type\":\"address\"}],\"name\":\"ImplementationAuthorityChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"referenceStatus\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"trexFactory\",\"type\":\"address\"}],\"name\":\"ImplementationAuthoritySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"trexFactory\",\"type\":\"address\"}],\"name\":\"TREXFactorySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"major\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"patch\",\"type\":\"uint8\"}],\"indexed\":true,\"internalType\":\"struct ITREXImplementationAuthority.Version\",\"name\":\"version\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ctrImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irsImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tirImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mcImplementation\",\"type\":\"address\"}],\"indexed\":true,\"internalType\":\"struct ITREXImplementationAuthority.TREXContracts\",\"name\":\"trex\",\"type\":\"tuple\"}],\"name\":\"TREXVersionAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"major\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"patch\",\"type\":\"uint8\"}],\"indexed\":true,\"internalType\":\"struct ITREXImplementationAuthority.Version\",\"name\":\"version\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ctrImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irsImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tirImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mcImplementation\",\"type\":\"address\"}],\"indexed\":true,\"internalType\":\"struct ITREXImplementationAuthority.TREXContracts\",\"name\":\"trex\",\"type\":\"tuple\"}],\"name\":\"TREXVersionFetched\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"major\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"patch\",\"type\":\"uint8\"}],\"indexed\":true,\"internalType\":\"struct ITREXImplementationAuthority.Version\",\"name\":\"version\",\"type\":\"tuple\"}],\"name\":\"VersionUpdated\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"major\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"patch\",\"type\":\"uint8\"}],\"internalType\":\"struct ITREXImplementationAuthority.Version\",\"name\":\"_version\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ctrImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irsImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tirImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mcImplementation\",\"type\":\"address\"}],\"internalType\":\"struct ITREXImplementationAuthority.TREXContracts\",\"name\":\"_trex\",\"type\":\"tuple\"}],\"name\":\"addAndUseTREXVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"major\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"patch\",\"type\":\"uint8\"}],\"internalType\":\"struct ITREXImplementationAuthority.Version\",\"name\":\"_version\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ctrImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irsImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tirImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mcImplementation\",\"type\":\"address\"}],\"internalType\":\"struct ITREXImplementationAuthority.TREXContracts\",\"name\":\"_trex\",\"type\":\"tuple\"}],\"name\":\"addTREXVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newImplementationAuthority\",\"type\":\"address\"}],\"name\":\"changeImplementationAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"major\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"patch\",\"type\":\"uint8\"}],\"internalType\":\"struct ITREXImplementationAuthority.Version\",\"name\":\"_version\",\"type\":\"tuple\"}],\"name\":\"fetchVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCTRImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"major\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"patch\",\"type\":\"uint8\"}],\"internalType\":\"struct ITREXImplementationAuthority.Version\",\"name\":\"_version\",\"type\":\"tuple\"}],\"name\":\"getContracts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ctrImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irsImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tirImplementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mcImplementation\",\"type\":\"address\"}],\"internalType\":\"struct ITREXImplementationAuthority.TREXContracts\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentVersion\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"major\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"patch\",\"type\":\"uint8\"}],\"internalType\":\"struct ITREXImplementationAuthority.Version\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIRImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIRSImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMCImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReferenceContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTIRImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTREXFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReferenceContract\",\"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\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"iaFactory\",\"type\":\"address\"}],\"name\":\"setIAFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"trexFactory\",\"type\":\"address\"}],\"name\":\"setTREXFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"major\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"patch\",\"type\":\"uint8\"}],\"internalType\":\"struct ITREXImplementationAuthority.Version\",\"name\":\"_version\",\"type\":\"tuple\"}],\"name\":\"useTREXVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addAndUseTREXVersion((uint8,uint8,uint8),(address,address,address,address,address,address))\":{\"details\":\"See {ITREXImplementationAuthority-useTREXVersion}.\"},\"addTREXVersion((uint8,uint8,uint8),(address,address,address,address,address,address))\":{\"details\":\"See {ITREXImplementationAuthority-addTREXVersion}.\"},\"changeImplementationAuthority(address,address)\":{\"details\":\"See {ITREXImplementationAuthority-changeImplementationAuthority}.\"},\"constructor\":{\"details\":\"Constructor of the ImplementationAuthority contract\",\"params\":{\"iaFactory\":\"the address for the factory of IA contracts emits `ImplementationAuthoritySet` event emits a `IAFactorySet` event\",\"referenceStatus\":\"boolean value determining if the contract is the main IA or an auxiliary contract\",\"trexFactory\":\"the address of TREXFactory referencing the main IA if `referenceStatus` is true then `trexFactory` at deployment is set on zero address. In that scenario, call `setTREXFactory` post-deployment\"}},\"fetchVersion((uint8,uint8,uint8))\":{\"details\":\"See {ITREXImplementationAuthority-fetchVersionList}.\"},\"getCTRImplementation()\":{\"details\":\"See {ITREXImplementationAuthority-getCTRImplementation}.\"},\"getContracts((uint8,uint8,uint8))\":{\"details\":\"See {ITREXImplementationAuthority-getContracts}.\"},\"getCurrentVersion()\":{\"details\":\"See {ITREXImplementationAuthority-getCurrentVersion}.\"},\"getIRImplementation()\":{\"details\":\"See {ITREXImplementationAuthority-getIRImplementation}.\"},\"getIRSImplementation()\":{\"details\":\"See {ITREXImplementationAuthority-getIRSImplementation}.\"},\"getMCImplementation()\":{\"details\":\"See {ITREXImplementationAuthority-getMCImplementation}.\"},\"getReferenceContract()\":{\"details\":\"See {ITREXImplementationAuthority-getReferenceContract}.\"},\"getTIRImplementation()\":{\"details\":\"See {ITREXImplementationAuthority-getTIRImplementation}.\"},\"getTREXFactory()\":{\"details\":\"See {ITREXImplementationAuthority-getTREXFactory}.\"},\"getTokenImplementation()\":{\"details\":\"See {ITREXImplementationAuthority-getTokenImplementation}.\"},\"isReferenceContract()\":{\"details\":\"See {ITREXImplementationAuthority-isReferenceContract}.\"},\"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.\"},\"setIAFactory(address)\":{\"details\":\"See {ITREXImplementationAuthority-setIAFactory}.\"},\"setTREXFactory(address)\":{\"details\":\"See {ITREXImplementationAuthority-setTREXFactory}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"useTREXVersion((uint8,uint8,uint8))\":{\"details\":\"See {ITREXImplementationAuthority-useTREXVersion}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"IAFactorySet(address)\":{\"notice\":\"event emitted when the IA factory address is set\"},\"ImplementationAuthorityChanged(address,address)\":{\"notice\":\"event emitted when a token issuer decides to change current IA for a new one\"},\"ImplementationAuthoritySet(bool,address)\":{\"notice\":\"event emitted by the constructor when the IA is deployed\"},\"TREXFactorySet(address)\":{\"notice\":\"event emitted when the TREX factory address is set\"},\"TREXVersionAdded((uint8,uint8,uint8),(address,address,address,address,address,address))\":{\"notice\":\"event emitted when a new TREX version is added to the contract memory\"},\"TREXVersionFetched((uint8,uint8,uint8),(address,address,address,address,address,address))\":{\"notice\":\"event emitted when a new TREX version is fetched from reference contract by auxiliary contract\"},\"VersionUpdated((uint8,uint8,uint8))\":{\"notice\":\"event emitted when the current version is updated\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/proxy/authority/TREXImplementationAuthority.sol\":\"TREXImplementationAuthority\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/factory/ITREXFactory.sol\":{\"keccak256\":\"0xb95c6d68ed87b0b92621dc7f50d6c761e21fc98f5c5390e37df019127a9f6c9a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4e38726754a9d9cf0ac73961ba6f7313dd3fea9ff6ea73e33ced23418f812939\",\"dweb:/ipfs/QmQNgh8YNoDGguvSzRuTvKu7eXrqW8K53CxPkuq6RN8HnT\"]},\"contracts/erc3643/proxy/authority/IIAFactory.sol\":{\"keccak256\":\"0x380617d537e848980ebb0e37279615561daad93c77f36ca5d65db481937c76ab\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5b9e5470d367d02a3f5bcf44615fa7722a9fdc4352535c5459e556b03648d6d0\",\"dweb:/ipfs/QmSNkfeAd9soJytsK4FmY9F7559fSrLFuK22SgH5hoHohw\"]},\"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol\":{\"keccak256\":\"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa\",\"dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc\"]},\"contracts/erc3643/proxy/authority/TREXImplementationAuthority.sol\":{\"keccak256\":\"0x412a1a8abff09f73da645c7d268d763281404e0082b3fab2cee74fcbcde69e8d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a64c19fc35d1569ebfb5172e583595241e2eed223974a1bb76ab1b91c017dbe7\",\"dweb:/ipfs/QmYSQgSV4kEm5gVHgiRHyuJ2LmCzSq4pH7pFcpas7LXV4z\"]},\"contracts/erc3643/proxy/interface/IProxy.sol\":{\"keccak256\":\"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65\",\"dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bool","name":"referenceStatus","type":"bool"},{"internalType":"address","name":"trexFactory","type":"address"},{"internalType":"address","name":"iaFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"iaFactory","type":"address","indexed":true}],"type":"event","name":"IAFactorySet","anonymous":false},{"inputs":[{"internalType":"address","name":"_token","type":"address","indexed":true},{"internalType":"address","name":"_newImplementationAuthority","type":"address","indexed":true}],"type":"event","name":"ImplementationAuthorityChanged","anonymous":false},{"inputs":[{"internalType":"bool","name":"referenceStatus","type":"bool","indexed":false},{"internalType":"address","name":"trexFactory","type":"address","indexed":false}],"type":"event","name":"ImplementationAuthoritySet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"trexFactory","type":"address","indexed":true}],"type":"event","name":"TREXFactorySet","anonymous":false},{"inputs":[{"internalType":"struct ITREXImplementationAuthority.Version","name":"version","type":"tuple","components":[{"internalType":"uint8","name":"major","type":"uint8"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"patch","type":"uint8"}],"indexed":true},{"internalType":"struct ITREXImplementationAuthority.TREXContracts","name":"trex","type":"tuple","components":[{"internalType":"address","name":"tokenImplementation","type":"address"},{"internalType":"address","name":"ctrImplementation","type":"address"},{"internalType":"address","name":"irImplementation","type":"address"},{"internalType":"address","name":"irsImplementation","type":"address"},{"internalType":"address","name":"tirImplementation","type":"address"},{"internalType":"address","name":"mcImplementation","type":"address"}],"indexed":true}],"type":"event","name":"TREXVersionAdded","anonymous":false},{"inputs":[{"internalType":"struct ITREXImplementationAuthority.Version","name":"version","type":"tuple","components":[{"internalType":"uint8","name":"major","type":"uint8"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"patch","type":"uint8"}],"indexed":true},{"internalType":"struct ITREXImplementationAuthority.TREXContracts","name":"trex","type":"tuple","components":[{"internalType":"address","name":"tokenImplementation","type":"address"},{"internalType":"address","name":"ctrImplementation","type":"address"},{"internalType":"address","name":"irImplementation","type":"address"},{"internalType":"address","name":"irsImplementation","type":"address"},{"internalType":"address","name":"tirImplementation","type":"address"},{"internalType":"address","name":"mcImplementation","type":"address"}],"indexed":true}],"type":"event","name":"TREXVersionFetched","anonymous":false},{"inputs":[{"internalType":"struct ITREXImplementationAuthority.Version","name":"version","type":"tuple","components":[{"internalType":"uint8","name":"major","type":"uint8"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"patch","type":"uint8"}],"indexed":true}],"type":"event","name":"VersionUpdated","anonymous":false},{"inputs":[{"internalType":"struct ITREXImplementationAuthority.Version","name":"_version","type":"tuple","components":[{"internalType":"uint8","name":"major","type":"uint8"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"patch","type":"uint8"}]},{"internalType":"struct ITREXImplementationAuthority.TREXContracts","name":"_trex","type":"tuple","components":[{"internalType":"address","name":"tokenImplementation","type":"address"},{"internalType":"address","name":"ctrImplementation","type":"address"},{"internalType":"address","name":"irImplementation","type":"address"},{"internalType":"address","name":"irsImplementation","type":"address"},{"internalType":"address","name":"tirImplementation","type":"address"},{"internalType":"address","name":"mcImplementation","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"addAndUseTREXVersion"},{"inputs":[{"internalType":"struct ITREXImplementationAuthority.Version","name":"_version","type":"tuple","components":[{"internalType":"uint8","name":"major","type":"uint8"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"patch","type":"uint8"}]},{"internalType":"struct ITREXImplementationAuthority.TREXContracts","name":"_trex","type":"tuple","components":[{"internalType":"address","name":"tokenImplementation","type":"address"},{"internalType":"address","name":"ctrImplementation","type":"address"},{"internalType":"address","name":"irImplementation","type":"address"},{"internalType":"address","name":"irsImplementation","type":"address"},{"internalType":"address","name":"tirImplementation","type":"address"},{"internalType":"address","name":"mcImplementation","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"addTREXVersion"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_newImplementationAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeImplementationAuthority"},{"inputs":[{"internalType":"struct ITREXImplementationAuthority.Version","name":"_version","type":"tuple","components":[{"internalType":"uint8","name":"major","type":"uint8"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"patch","type":"uint8"}]}],"stateMutability":"nonpayable","type":"function","name":"fetchVersion"},{"inputs":[],"stateMutability":"view","type":"function","name":"getCTRImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct ITREXImplementationAuthority.Version","name":"_version","type":"tuple","components":[{"internalType":"uint8","name":"major","type":"uint8"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"patch","type":"uint8"}]}],"stateMutability":"view","type":"function","name":"getContracts","outputs":[{"internalType":"struct ITREXImplementationAuthority.TREXContracts","name":"","type":"tuple","components":[{"internalType":"address","name":"tokenImplementation","type":"address"},{"internalType":"address","name":"ctrImplementation","type":"address"},{"internalType":"address","name":"irImplementation","type":"address"},{"internalType":"address","name":"irsImplementation","type":"address"},{"internalType":"address","name":"tirImplementation","type":"address"},{"internalType":"address","name":"mcImplementation","type":"address"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentVersion","outputs":[{"internalType":"struct ITREXImplementationAuthority.Version","name":"","type":"tuple","components":[{"internalType":"uint8","name":"major","type":"uint8"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"patch","type":"uint8"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIRImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIRSImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMCImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getReferenceContract","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTIRImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTREXFactory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTokenImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isReferenceContract","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"iaFactory","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setIAFactory"},{"inputs":[{"internalType":"address","name":"trexFactory","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTREXFactory"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"struct ITREXImplementationAuthority.Version","name":"_version","type":"tuple","components":[{"internalType":"uint8","name":"major","type":"uint8"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"patch","type":"uint8"}]}],"stateMutability":"nonpayable","type":"function","name":"useTREXVersion"}],"devdoc":{"kind":"dev","methods":{"addAndUseTREXVersion((uint8,uint8,uint8),(address,address,address,address,address,address))":{"details":"See {ITREXImplementationAuthority-useTREXVersion}."},"addTREXVersion((uint8,uint8,uint8),(address,address,address,address,address,address))":{"details":"See {ITREXImplementationAuthority-addTREXVersion}."},"changeImplementationAuthority(address,address)":{"details":"See {ITREXImplementationAuthority-changeImplementationAuthority}."},"constructor":{"details":"Constructor of the ImplementationAuthority contract","params":{"iaFactory":"the address for the factory of IA contracts emits `ImplementationAuthoritySet` event emits a `IAFactorySet` event","referenceStatus":"boolean value determining if the contract is the main IA or an auxiliary contract","trexFactory":"the address of TREXFactory referencing the main IA if `referenceStatus` is true then `trexFactory` at deployment is set on zero address. In that scenario, call `setTREXFactory` post-deployment"}},"fetchVersion((uint8,uint8,uint8))":{"details":"See {ITREXImplementationAuthority-fetchVersionList}."},"getCTRImplementation()":{"details":"See {ITREXImplementationAuthority-getCTRImplementation}."},"getContracts((uint8,uint8,uint8))":{"details":"See {ITREXImplementationAuthority-getContracts}."},"getCurrentVersion()":{"details":"See {ITREXImplementationAuthority-getCurrentVersion}."},"getIRImplementation()":{"details":"See {ITREXImplementationAuthority-getIRImplementation}."},"getIRSImplementation()":{"details":"See {ITREXImplementationAuthority-getIRSImplementation}."},"getMCImplementation()":{"details":"See {ITREXImplementationAuthority-getMCImplementation}."},"getReferenceContract()":{"details":"See {ITREXImplementationAuthority-getReferenceContract}."},"getTIRImplementation()":{"details":"See {ITREXImplementationAuthority-getTIRImplementation}."},"getTREXFactory()":{"details":"See {ITREXImplementationAuthority-getTREXFactory}."},"getTokenImplementation()":{"details":"See {ITREXImplementationAuthority-getTokenImplementation}."},"isReferenceContract()":{"details":"See {ITREXImplementationAuthority-isReferenceContract}."},"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."},"setIAFactory(address)":{"details":"See {ITREXImplementationAuthority-setIAFactory}."},"setTREXFactory(address)":{"details":"See {ITREXImplementationAuthority-setTREXFactory}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"useTREXVersion((uint8,uint8,uint8))":{"details":"See {ITREXImplementationAuthority-useTREXVersion}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/proxy/authority/TREXImplementationAuthority.sol":"TREXImplementationAuthority"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/factory/ITREXFactory.sol":{"keccak256":"0xb95c6d68ed87b0b92621dc7f50d6c761e21fc98f5c5390e37df019127a9f6c9a","urls":["bzz-raw://4e38726754a9d9cf0ac73961ba6f7313dd3fea9ff6ea73e33ced23418f812939","dweb:/ipfs/QmQNgh8YNoDGguvSzRuTvKu7eXrqW8K53CxPkuq6RN8HnT"],"license":"GPL-3.0"},"contracts/erc3643/proxy/authority/IIAFactory.sol":{"keccak256":"0x380617d537e848980ebb0e37279615561daad93c77f36ca5d65db481937c76ab","urls":["bzz-raw://5b9e5470d367d02a3f5bcf44615fa7722a9fdc4352535c5459e556b03648d6d0","dweb:/ipfs/QmSNkfeAd9soJytsK4FmY9F7559fSrLFuK22SgH5hoHohw"],"license":"GPL-3.0"},"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol":{"keccak256":"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5","urls":["bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa","dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc"],"license":"GPL-3.0"},"contracts/erc3643/proxy/authority/TREXImplementationAuthority.sol":{"keccak256":"0x412a1a8abff09f73da645c7d268d763281404e0082b3fab2cee74fcbcde69e8d","urls":["bzz-raw://a64c19fc35d1569ebfb5172e583595241e2eed223974a1bb76ab1b91c017dbe7","dweb:/ipfs/QmYSQgSV4kEm5gVHgiRHyuJ2LmCzSq4pH7pFcpas7LXV4z"],"license":"GPL-3.0"},"contracts/erc3643/proxy/interface/IProxy.sol":{"keccak256":"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536","urls":["bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65","dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":73} \ No newline at end of file diff --git a/out/Test.sol/FoundryScript.json b/out/Test.sol/FoundryScript.json new file mode 100644 index 0000000..1871896 --- /dev/null +++ b/out/Test.sol/FoundryScript.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"IS_SCRIPT","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"run","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052600c805462ff00ff19166201000117905534801561002157600080fd5b50610365806100316000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063c04062261461003b578063f8ccbf4714610045575b600080fd5b61004361006c565b005b600c546100589062010000900460ff1681565b604051901515815260200160405180910390f35b600061007a6008601261028b565b61008e6404a817c800640290d741006102a1565b61009891906102b8565b90506100d26040518060400160405280601681526020017568626172507269636538446563696d616c733a20257360501b81525082610122565b60006100e7826806954fe21e3e8100006102b8565b905061011e604051806040016040528060138152602001726f6e65446f6c6c6172496e486261723a20257360681b81525082610122565b5050565b61011e82826040516024016101389291906102da565b60408051601f198184030181529190526020810180516001600160e01b03166309710a9d60e41b17905261016b8161016e565b50565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156101e05781600019048211156101c6576101c661018f565b808516156101d357918102915b93841c93908002906101aa565b509250929050565b6000826101f757506001610285565b8161020457506000610285565b816001811461021a576002811461022457610240565b6001915050610285565b60ff8411156102355761023561018f565b50506001821b610285565b5060208310610133831016604e8410600b8410161715610263575081810a610285565b61026d83836101a5565b80600019048211156102815761028161018f565b0290505b92915050565b600061029a60ff8416836101e8565b9392505050565b80820281158282048414176102855761028561018f565b6000826102d557634e487b7160e01b600052601260045260246000fd5b500490565b604081526000835180604084015260005b8181101561030857602081870181015160608684010152016102eb565b506000606082850101526060601f19601f830116840101915050826020830152939250505056fea26469706673582212202ec5ca933f1cc6867ec005391da8f812c83ef59def68a601ff556a0314ffb4eb64736f6c63430008180033","sourceMap":"165:554:19:-:0;;;3126:44:2;;;-1:-1:-1;;800:28:1;;;;;259:65:19;;;;;;;;;;165:554;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063c04062261461003b578063f8ccbf4714610045575b600080fd5b61004361006c565b005b600c546100589062010000900460ff1681565b604051901515815260200160405180910390f35b600061007a6008601261028b565b61008e6404a817c800640290d741006102a1565b61009891906102b8565b90506100d26040518060400160405280601681526020017568626172507269636538446563696d616c733a20257360501b81525082610122565b60006100e7826806954fe21e3e8100006102b8565b905061011e604051806040016040528060138152602001726f6e65446f6c6c6172496e486261723a20257360681b81525082610122565b5050565b61011e82826040516024016101389291906102da565b60408051601f198184030181529190526020810180516001600160e01b03166309710a9d60e41b17905261016b8161016e565b50565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156101e05781600019048211156101c6576101c661018f565b808516156101d357918102915b93841c93908002906101aa565b509250929050565b6000826101f757506001610285565b8161020457506000610285565b816001811461021a576002811461022457610240565b6001915050610285565b60ff8411156102355761023561018f565b50506001821b610285565b5060208310610133831016604e8410600b8410161715610263575081810a610285565b61026d83836101a5565b80600019048211156102815761028161018f565b0290505b92915050565b600061029a60ff8416836101e8565b9392505050565b80820281158282048414176102855761028561018f565b6000826102d557634e487b7160e01b600052601260045260246000fd5b500490565b604081526000835180604084015260005b8181101561030857602081870181015160608684010152016102eb565b506000606082850101526060601f19601f830116840101915050826020830152939250505056fea26469706673582212202ec5ca933f1cc6867ec005391da8f812c83ef59def68a601ff556a0314ffb4eb64736f6c63430008180033","sourceMap":"165:554:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;330:348;;;:::i;:::-;;800:28:1;;;;;;;;;;;;;;;179:14:20;;172:22;154:41;;142:2;127:18;800:28:1;;;;;;;330:348:19;362:26;434:28;453:7;434:2;:28;:::i;:::-;392:37;404:11;421:7;392:37;:::i;:::-;391:72;;;;:::i;:::-;362:101;;473:57;;;;;;;;;;;;;;-1:-1:-1;;;473:57:19;;;511:18;473:11;:57::i;:::-;540:23;566:44;592:18;567:21;566:44;:::i;:::-;540:70;;620:51;;;;;;;;;;;;;;-1:-1:-1;;;620:51:19;;;655:15;620:11;:51::i;:::-;352:326;;330:348::o;7032:139:10:-;7096:68;7156:2;7160;7112:51;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;7112:51:10;;;;;;;;;;;;;;-1:-1:-1;;;;;7112:51:10;-1:-1:-1;;;7112:51:10;;;479:55;526:7;505:19;479:55::i;:::-;408:133;:::o;547:380::-;645:14;;131:42;818:2;805:16;;621:21;;645:14;805:16;131:42;854:5;843:68;834:77;;771:150;;547:380;:::o;206:127:20:-;267:10;262:3;258:20;255:1;248:31;298:4;295:1;288:15;322:4;319:1;312:15;338:416;427:1;464:5;427:1;478:270;499:7;489:8;486:21;478:270;;;558:4;554:1;550:6;546:17;540:4;537:27;534:53;;;567:18;;:::i;:::-;617:7;607:8;603:22;600:55;;;637:16;;;;600:55;716:22;;;;676:15;;;;478:270;;;482:3;338:416;;;;;:::o;759:806::-;808:5;838:8;828:80;;-1:-1:-1;879:1:20;893:5;;828:80;927:4;917:76;;-1:-1:-1;964:1:20;978:5;;917:76;1009:4;1027:1;1022:59;;;;1095:1;1090:130;;;;1002:218;;1022:59;1052:1;1043:10;;1066:5;;;1090:130;1127:3;1117:8;1114:17;1111:43;;;1134:18;;:::i;:::-;-1:-1:-1;;1190:1:20;1176:16;;1205:5;;1002:218;;1304:2;1294:8;1291:16;1285:3;1279:4;1276:13;1272:36;1266:2;1256:8;1253:16;1248:2;1242:4;1239:12;1235:35;1232:77;1229:159;;;-1:-1:-1;1341:19:20;;;1373:5;;1229:159;1420:34;1445:8;1439:4;1420:34;:::i;:::-;1490:6;1486:1;1482:6;1478:19;1469:7;1466:32;1463:58;;;1501:18;;:::i;:::-;1539:20;;-1:-1:-1;759:806:20;;;;;:::o;1570:140::-;1628:5;1657:47;1698:4;1688:8;1684:19;1678:4;1657:47;:::i;:::-;1648:56;1570:140;-1:-1:-1;;;1570:140:20:o;1715:168::-;1788:9;;;1819;;1836:15;;;1830:22;;1816:37;1806:71;;1857:18;;:::i;1888:217::-;1928:1;1954;1944:132;;1998:10;1993:3;1989:20;1986:1;1979:31;2033:4;2030:1;2023:15;2061:4;2058:1;2051:15;1944:132;-1:-1:-1;2090:9:20;;1888:217::o;2110:604::-;2287:2;2276:9;2269:21;2250:4;2319:6;2313:13;2362:6;2357:2;2346:9;2342:18;2335:34;2387:1;2397:144;2411:6;2408:1;2405:13;2397:144;;;2524:4;2508:14;;;2504:25;;2498:32;2493:2;2474:17;;;2470:26;2463:68;2426:12;2397:144;;;2401:3;2590:1;2585:2;2576:6;2565:9;2561:22;2557:31;2550:42;2660:2;2653;2649:7;2644:2;2636:6;2632:15;2628:29;2617:9;2613:45;2609:54;2601:62;;;2701:6;2694:4;2683:9;2679:20;2672:36;2110:604;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_SCRIPT()":"f8ccbf47","run()":"c0406226"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"IS_SCRIPT\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"run\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/test.sol\":\"FoundryScript\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/Script.sol\":{\"keccak256\":\"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c\",\"dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x1e2c73d51d6b0d1101f3a4cf0e6def9818a891d6aa8d306f2b127943a69dca2d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ab436d74b405f890e2634c6077df15cc196b4032ec1bdabaaf021ef209e68db\",\"dweb:/ipfs/Qmbb1Qgtdn6S4aqrnpg3y9TDX7erFFcRir9GN62Y7QazaY\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8\",\"dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194\",\"dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87\",\"dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"scripts/test.sol\":{\"keccak256\":\"0x93a9f09fc1ab610ae4fe907ad24ef6b4065a9fc5831404e4882ead96b93a0a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://83ba6dcb427635f0fb7b108825b5d4ebffd1d1189672101cc8ba6cfe72837acc\",\"dweb:/ipfs/QmZnnUcr99vNHzbV415vkbkxb7TvL4ygfuWP5aSyCqJqYP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_SCRIPT","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"run"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"scripts/test.sol":"FoundryScript"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/Script.sol":{"keccak256":"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2","urls":["bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c","dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x1e2c73d51d6b0d1101f3a4cf0e6def9818a891d6aa8d306f2b127943a69dca2d","urls":["bzz-raw://0ab436d74b405f890e2634c6077df15cc196b4032ec1bdabaaf021ef209e68db","dweb:/ipfs/Qmbb1Qgtdn6S4aqrnpg3y9TDX7erFFcRir9GN62Y7QazaY"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4","urls":["bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8","dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a","urls":["bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194","dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9","urls":["bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87","dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"scripts/test.sol":{"keccak256":"0x93a9f09fc1ab610ae4fe907ad24ef6b4065a9fc5831404e4882ead96b93a0a48","urls":["bzz-raw://83ba6dcb427635f0fb7b108825b5d4ebffd1d1189672101cc8ba6cfe72837acc","dweb:/ipfs/QmZnnUcr99vNHzbV415vkbkxb7TvL4ygfuWP5aSyCqJqYP"],"license":"MIT"}},"version":1},"id":19} \ No newline at end of file diff --git a/out/Test.sol/Test.json b/out/Test.sol/Test.json new file mode 100644 index 0000000..21e67dd --- /dev/null +++ b/out/Test.sol/Test.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea26469706673582212201dcadc7434bdc0c1ae0bd5d7a93098431f5e28026e31a9b8730989aaf098610064736f6c63430008180033","sourceMap":"61:16:114:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea26469706673582212201dcadc7434bdc0c1ae0bd5d7a93098431f5e28026e31a9b8730989aaf098610064736f6c63430008180033","sourceMap":"61:16:114:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onchainid/Test.sol\":\"Test\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/onchainid/Test.sol\":{\"keccak256\":\"0x5b9bea33ed440bb3ec9ac2e74d6b0aa92905d5a9e2af21442f59554abd7fb488\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://9fe4a53e19b9f86ca04486a1e4293259259c5f93c29d11afca6af2bb43a00c73\",\"dweb:/ipfs/QmP8SvuCMfYFk73aARBVs3zkywDQvBMTs1PcJhEx6at3oM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onchainid/Test.sol":"Test"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onchainid/Test.sol":{"keccak256":"0x5b9bea33ed440bb3ec9ac2e74d6b0aa92905d5a9e2af21442f59554abd7fb488","urls":["bzz-raw://9fe4a53e19b9f86ca04486a1e4293259259c5f93c29d11afca6af2bb43a00c73","dweb:/ipfs/QmP8SvuCMfYFk73aARBVs3zkywDQvBMTs1PcJhEx6at3oM"],"license":"GPL-3.0"}},"version":1},"id":114} \ No newline at end of file diff --git a/out/TestERC20.sol/TestERC20.json b/out/TestERC20.sol/TestERC20.json new file mode 100644 index 0000000..3d81859 --- /dev/null +++ b/out/TestERC20.sol/TestERC20.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162000da338038062000da38339810160408190526200003491620001b4565b818133806200005d57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b62000068816200009c565b506004620000778382620002af565b506005620000868282620002af565b50506006805460ff19169055506200037b915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200011457600080fd5b81516001600160401b0380821115620001315762000131620000ec565b604051601f8301601f19908116603f011681019082821181831017156200015c576200015c620000ec565b81604052838152602092508660208588010111156200017a57600080fd5b600091505b838210156200019e57858201830151818301840152908201906200017f565b6000602085830101528094505050505092915050565b60008060408385031215620001c857600080fd5b82516001600160401b0380821115620001e057600080fd5b620001ee8683870162000102565b935060208501519150808211156200020557600080fd5b50620002148582860162000102565b9150509250929050565b600181811c908216806200023357607f821691505b6020821081036200025457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002aa576000816000526020600020601f850160051c81016020861015620002855750805b601f850160051c820191505b81811015620002a65782815560010162000291565b5050505b505050565b81516001600160401b03811115620002cb57620002cb620000ec565b620002e381620002dc84546200021e565b846200025a565b602080601f8311600181146200031b5760008415620003025750858301515b600019600386901b1c1916600185901b178555620002a6565b600085815260208120601f198616915b828110156200034c578886015182559484019460019091019084016200032b565b50858210156200036b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610a18806200038b6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806370a082311161009757806395d89b411161006657806395d89b41146101f6578063a9059cbb146101fe578063dd62ed3e14610211578063f2fde38b1461024a57600080fd5b806370a08231146101a2578063715018a6146101cb5780638456cb59146101d35780638da5cb5b146101db57600080fd5b8063313ce567116100d3578063313ce5671461016b5780633f4ba83a1461017a57806340c10f19146101845780635c975abb1461019757600080fd5b806306fdde0314610105578063095ea7b31461012357806318160ddd1461014657806323b872dd14610158575b600080fd5b61010d61025d565b60405161011a9190610861565b60405180910390f35b6101366101313660046108cc565b6102ef565b604051901515815260200161011a565b6003545b60405190815260200161011a565b6101366101663660046108f6565b610309565b6040516012815260200161011a565b61018261032d565b005b6101826101923660046108cc565b61033f565b60065460ff16610136565b61014a6101b0366004610932565b6001600160a01b031660009081526001602052604090205490565b610182610355565b610182610367565b6000546040516001600160a01b03909116815260200161011a565b61010d610377565b61013661020c3660046108cc565b610386565b61014a61021f366004610954565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610182610258366004610932565b610394565b60606004805461026c90610987565b80601f016020809104026020016040519081016040528092919081815260200182805461029890610987565b80156102e55780601f106102ba576101008083540402835291602001916102e5565b820191906000526020600020905b8154815290600101906020018083116102c857829003601f168201915b5050505050905090565b6000336102fd8185856103d7565b60019150505b92915050565b6000336103178582856103e9565b610322858585610467565b506001949350505050565b6103356104c6565b61033d6104f3565b565b6103476104c6565b6103518282610545565b5050565b61035d6104c6565b61033d600061057b565b61036f6104c6565b61033d6105cb565b60606005805461026c90610987565b6000336102fd818585610467565b61039c6104c6565b6001600160a01b0381166103cb57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6103d48161057b565b50565b6103e48383836001610608565b505050565b6001600160a01b038381166000908152600260209081526040808320938616835292905220546000198114610461578181101561045257604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016103c2565b61046184848484036000610608565b50505050565b6001600160a01b03831661049157604051634b637e8f60e11b8152600060048201526024016103c2565b6001600160a01b0382166104bb5760405163ec442f0560e01b8152600060048201526024016103c2565b6103e48383836106dd565b6000546001600160a01b0316331461033d5760405163118cdaa760e01b81523360048201526024016103c2565b6104fb6106f0565b6006805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b03821661056f5760405163ec442f0560e01b8152600060048201526024016103c2565b610351600083836106dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105d3610713565b6006805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586105283390565b6001600160a01b0384166106325760405163e602df0560e01b8152600060048201526024016103c2565b6001600160a01b03831661065c57604051634a1406b160e11b8152600060048201526024016103c2565b6001600160a01b038085166000908152600260209081526040808320938716835292905220829055801561046157826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106cf91815260200190565b60405180910390a350505050565b6106e5610713565b6103e4838383610737565b60065460ff1661033d57604051638dfc202b60e01b815260040160405180910390fd5b60065460ff161561033d5760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b03831661076257806003600082825461075791906109c1565b909155506107d49050565b6001600160a01b038316600090815260016020526040902054818110156107b55760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016103c2565b6001600160a01b03841660009081526001602052604090209082900390555b6001600160a01b0382166107f05760038054829003905561080f565b6001600160a01b03821660009081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161085491815260200190565b60405180910390a3505050565b60006020808352835180602085015260005b8181101561088f57858101830151858201604001528201610873565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108c757600080fd5b919050565b600080604083850312156108df57600080fd5b6108e8836108b0565b946020939093013593505050565b60008060006060848603121561090b57600080fd5b610914846108b0565b9250610922602085016108b0565b9150604084013590509250925092565b60006020828403121561094457600080fd5b61094d826108b0565b9392505050565b6000806040838503121561096757600080fd5b610970836108b0565b915061097e602084016108b0565b90509250929050565b600181811c9082168061099b57607f821691505b6020821081036109bb57634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561030357634e487b7160e01b600052601160045260246000fdfea26469706673582212207259ccd1b9a408782b308cd4fda5ff782b8e57ad4a4182a4373ce03668354f5564736f6c63430008180033","sourceMap":"3932:398:20:-:0;;;3984:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4044:4;4050:6;4066:10;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;1708:51:165;1681:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;1962:5:143;:13;1970:5;1962;:13;:::i;:::-;-1:-1:-1;1985:7:143;:17;1995:7;1985;:17;:::i;:::-;-1:-1:-1;;1231:7:153;:15;;-1:-1:-1;;1231:15:153;;;-1:-1:-1;3932:398:20;;-1:-1:-1;;3932:398:20;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:127:165:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:844;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:165;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:165;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;732:3;725:4;720:2;712:6;708:15;704:26;701:35;698:55;;;749:1;746;739:12;698:55;771:1;762:10;;781:133;795:2;792:1;789:9;781:133;;;883:14;;;879:23;;873:30;852:14;;;848:23;;841:63;806:10;;;;781:133;;;958:1;951:4;946:2;938:6;934:15;930:26;923:37;978:6;969:15;;;;;;146:844;;;;:::o;995:562::-;1094:6;1102;1155:2;1143:9;1134:7;1130:23;1126:32;1123:52;;;1171:1;1168;1161:12;1123:52;1198:16;;-1:-1:-1;;;;;1263:14:165;;;1260:34;;;1290:1;1287;1280:12;1260:34;1313:61;1366:7;1357:6;1346:9;1342:22;1313:61;:::i;:::-;1303:71;;1420:2;1409:9;1405:18;1399:25;1383:41;;1449:2;1439:8;1436:16;1433:36;;;1465:1;1462;1455:12;1433:36;;1488:63;1543:7;1532:8;1521:9;1517:24;1488:63;:::i;:::-;1478:73;;;995:562;;;;;:::o;1770:380::-;1849:1;1845:12;;;;1892;;;1913:61;;1967:4;1959:6;1955:17;1945:27;;1913:61;2020:2;2012:6;2009:14;1989:18;1986:38;1983:161;;2066:10;2061:3;2057:20;2054:1;2047:31;2101:4;2098:1;2091:15;2129:4;2126:1;2119:15;1983:161;;1770:380;;;:::o;2281:543::-;2383:2;2378:3;2375:11;2372:446;;;2419:1;2443:5;2440:1;2433:16;2487:4;2484:1;2474:18;2557:2;2545:10;2541:19;2538:1;2534:27;2528:4;2524:38;2593:4;2581:10;2578:20;2575:47;;;-1:-1:-1;2616:4:165;2575:47;2671:2;2666:3;2662:12;2659:1;2655:20;2649:4;2645:31;2635:41;;2726:82;2744:2;2737:5;2734:13;2726:82;;;2789:17;;;2770:1;2759:13;2726:82;;;2730:3;;;2372:446;2281:543;;;:::o;3000:1345::-;3120:10;;-1:-1:-1;;;;;3142:30:165;;3139:56;;;3175:18;;:::i;:::-;3204:97;3294:6;3254:38;3286:4;3280:11;3254:38;:::i;:::-;3248:4;3204:97;:::i;:::-;3356:4;;3413:2;3402:14;;3430:1;3425:663;;;;4132:1;4149:6;4146:89;;;-1:-1:-1;4201:19:165;;;4195:26;4146:89;-1:-1:-1;;2957:1:165;2953:11;;;2949:24;2945:29;2935:40;2981:1;2977:11;;;2932:57;4248:81;;3395:944;;3425:663;2228:1;2221:14;;;2265:4;2252:18;;-1:-1:-1;;3461:20:165;;;3579:236;3593:7;3590:1;3587:14;3579:236;;;3682:19;;;3676:26;3661:42;;3774:27;;;;3742:1;3730:14;;;;3609:19;;3579:236;;;3583:3;3843:6;3834:7;3831:19;3828:201;;;3904:19;;;3898:26;-1:-1:-1;;3987:1:165;3983:14;;;3999:3;3979:24;3975:37;3971:42;3956:58;3941:74;;3828:201;-1:-1:-1;;;;;4075:1:165;4059:14;;;4055:22;4042:36;;-1:-1:-1;3000:1345:165:o;:::-;3932:398:20;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101005760003560e01c806370a082311161009757806395d89b411161006657806395d89b41146101f6578063a9059cbb146101fe578063dd62ed3e14610211578063f2fde38b1461024a57600080fd5b806370a08231146101a2578063715018a6146101cb5780638456cb59146101d35780638da5cb5b146101db57600080fd5b8063313ce567116100d3578063313ce5671461016b5780633f4ba83a1461017a57806340c10f19146101845780635c975abb1461019757600080fd5b806306fdde0314610105578063095ea7b31461012357806318160ddd1461014657806323b872dd14610158575b600080fd5b61010d61025d565b60405161011a9190610861565b60405180910390f35b6101366101313660046108cc565b6102ef565b604051901515815260200161011a565b6003545b60405190815260200161011a565b6101366101663660046108f6565b610309565b6040516012815260200161011a565b61018261032d565b005b6101826101923660046108cc565b61033f565b60065460ff16610136565b61014a6101b0366004610932565b6001600160a01b031660009081526001602052604090205490565b610182610355565b610182610367565b6000546040516001600160a01b03909116815260200161011a565b61010d610377565b61013661020c3660046108cc565b610386565b61014a61021f366004610954565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610182610258366004610932565b610394565b60606004805461026c90610987565b80601f016020809104026020016040519081016040528092919081815260200182805461029890610987565b80156102e55780601f106102ba576101008083540402835291602001916102e5565b820191906000526020600020905b8154815290600101906020018083116102c857829003601f168201915b5050505050905090565b6000336102fd8185856103d7565b60019150505b92915050565b6000336103178582856103e9565b610322858585610467565b506001949350505050565b6103356104c6565b61033d6104f3565b565b6103476104c6565b6103518282610545565b5050565b61035d6104c6565b61033d600061057b565b61036f6104c6565b61033d6105cb565b60606005805461026c90610987565b6000336102fd818585610467565b61039c6104c6565b6001600160a01b0381166103cb57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6103d48161057b565b50565b6103e48383836001610608565b505050565b6001600160a01b038381166000908152600260209081526040808320938616835292905220546000198114610461578181101561045257604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016103c2565b61046184848484036000610608565b50505050565b6001600160a01b03831661049157604051634b637e8f60e11b8152600060048201526024016103c2565b6001600160a01b0382166104bb5760405163ec442f0560e01b8152600060048201526024016103c2565b6103e48383836106dd565b6000546001600160a01b0316331461033d5760405163118cdaa760e01b81523360048201526024016103c2565b6104fb6106f0565b6006805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b03821661056f5760405163ec442f0560e01b8152600060048201526024016103c2565b610351600083836106dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105d3610713565b6006805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586105283390565b6001600160a01b0384166106325760405163e602df0560e01b8152600060048201526024016103c2565b6001600160a01b03831661065c57604051634a1406b160e11b8152600060048201526024016103c2565b6001600160a01b038085166000908152600260209081526040808320938716835292905220829055801561046157826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106cf91815260200190565b60405180910390a350505050565b6106e5610713565b6103e4838383610737565b60065460ff1661033d57604051638dfc202b60e01b815260040160405180910390fd5b60065460ff161561033d5760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b03831661076257806003600082825461075791906109c1565b909155506107d49050565b6001600160a01b038316600090815260016020526040902054818110156107b55760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016103c2565b6001600160a01b03841660009081526001602052604090209082900390555b6001600160a01b0382166107f05760038054829003905561080f565b6001600160a01b03821660009081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161085491815260200190565b60405180910390a3505050565b60006020808352835180602085015260005b8181101561088f57858101830151858201604001528201610873565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108c757600080fd5b919050565b600080604083850312156108df57600080fd5b6108e8836108b0565b946020939093013593505050565b60008060006060848603121561090b57600080fd5b610914846108b0565b9250610922602085016108b0565b9150604084013590509250925092565b60006020828403121561094457600080fd5b61094d826108b0565b9392505050565b6000806040838503121561096757600080fd5b610970836108b0565b915061097e602084016108b0565b90509250929050565b600181811c9082168061099b57607f821691505b6020821081036109bb57634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561030357634e487b7160e01b600052601160045260246000fdfea26469706673582212207259ccd1b9a408782b308cd4fda5ff782b8e57ad4a4182a4373ce03668354f5564736f6c63430008180033","sourceMap":"3932:398:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89:143;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4293:186;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:165;;1162:22;1144:41;;1132:2;1117:18;4293:186:143;1004:187:165;3144:97:143;3222:12;;3144:97;;;1342:25:165;;;1330:2;1315:18;3144:97:143;1196:177:165;5039:244:143;;;;;;:::i;:::-;;:::i;3002:82::-;;;3075:2;1853:36:165;;1841:2;1826:18;3002:82:143;1711:184:165;4264:63:20;;;:::i;:::-;;4151:107;;;;;;:::i;:::-;;:::i;1850:84:153:-;1920:7;;;;1850:84;;3299:116:143;;;;;;:::i;:::-;-1:-1:-1;;;;;3390:18:143;3364:7;3390:18;;;:9;:18;;;;;;;3299:116;2293:101:141;;;:::i;4086:59:20:-;;;:::i;1638:85:141:-;1684:7;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:141;;;2237:51:165;;2225:2;2210:18;1638:85:141;2091:203:165;2276:93:143;;;:::i;3610:178::-;;;;;;:::i;:::-;;:::i;3846:140::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3952:18:143;;;3926:7;3952:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3846:140;2543:215:141;;;;;;:::i;:::-;;:::i;2074:89:143:-;2119:13;2151:5;2144:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89;:::o;4293:186::-;4366:4;735:10:152;4420:31:143;735:10:152;4436:7:143;4445:5;4420:8;:31::i;:::-;4468:4;4461:11;;;4293:186;;;;;:::o;5039:244::-;5126:4;735:10:152;5182:37:143;5198:4;735:10:152;5213:5:143;5182:15;:37::i;:::-;5229:26;5239:4;5245:2;5249:5;5229:9;:26::i;:::-;-1:-1:-1;5272:4:143;;5039:244;-1:-1:-1;;;;5039:244:143:o;4264:63:20:-;1531:13:141;:11;:13::i;:::-;4310:10:20::1;:8;:10::i;:::-;4264:63::o:0;4151:107::-;1531:13:141;:11;:13::i;:::-;4227:24:20::1;4233:9;4244:6;4227:5;:24::i;:::-;4151:107:::0;;:::o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;4086:59:20:-:0;1531:13:141;:11;:13::i;:::-;4130:8:20::1;:6;:8::i;2276:93:143:-:0;2323:13;2355:7;2348:14;;;;;:::i;3610:178::-;3679:4;735:10:152;3733:27:143;735:10:152;3750:2:143;3754:5;3733:9;:27::i;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;2237:51:165::0;2210:18;;2672:31:141::1;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;8989:128:143:-;9073:37;9082:5;9089:7;9098:5;9105:4;9073:8;:37::i;:::-;8989:128;;;:::o;10663:477::-;-1:-1:-1;;;;;3952:18:143;;;10762:24;3952:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10828:37:143;;10824:310;;10904:5;10885:16;:24;10881:130;;;10936:60;;-1:-1:-1;;;10936:60:143;;-1:-1:-1;;;;;3169:32:165;;10936:60:143;;;3151:51:165;3218:18;;;3211:34;;;3261:18;;;3254:34;;;3124:18;;10936:60:143;2949:345:165;10881:130:143;11052:57;11061:5;11068:7;11096:5;11077:16;:24;11103:5;11052:8;:57::i;:::-;10752:388;10663:477;;;:::o;5656:300::-;-1:-1:-1;;;;;5739:18:143;;5735:86;;5780:30;;-1:-1:-1;;;5780:30:143;;5807:1;5780:30;;;2237:51:165;2210:18;;5780:30:143;2091:203:165;5735:86:143;-1:-1:-1;;;;;5834:16:143;;5830:86;;5873:32;;-1:-1:-1;;;5873:32:143;;5902:1;5873:32;;;2237:51:165;2210:18;;5873:32:143;2091:203:165;5830:86:143;5925:24;5933:4;5939:2;5943:5;5925:7;:24::i;1796:162:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;2237:51:165;2210:18;;1901:40:141;2091:203:165;2710:117:153;1721:16;:14;:16::i;:::-;2768:7:::1;:15:::0;;-1:-1:-1;;2768:15:153::1;::::0;;2798:22:::1;735:10:152::0;2807:12:153::1;2798:22;::::0;-1:-1:-1;;;;;2255:32:165;;;2237:51;;2225:2;2210:18;2798:22:153::1;;;;;;;2710:117::o:0;7721:208:143:-;-1:-1:-1;;;;;7791:21:143;;7787:91;;7835:32;;-1:-1:-1;;;7835:32:143;;7864:1;7835:32;;;2237:51:165;2210:18;;7835:32:143;2091:203:165;7787:91:143;7887:35;7903:1;7907:7;7916:5;7887:7;:35::i;2912:187:141:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;2463:115:153:-;1474:19;:17;:19::i;:::-;2522:7:::1;:14:::0;;-1:-1:-1;;2522:14:153::1;2532:4;2522:14;::::0;;2551:20:::1;2558:12;735:10:152::0;;656:96;9949:432:143;-1:-1:-1;;;;;10061:19:143;;10057:89;;10103:32;;-1:-1:-1;;;10103:32:143;;10132:1;10103:32;;;2237:51:165;2210:18;;10103:32:143;2091:203:165;10057:89:143;-1:-1:-1;;;;;10159:21:143;;10155:90;;10203:31;;-1:-1:-1;;;10203:31:143;;10231:1;10203:31;;;2237:51:165;2210:18;;10203:31:143;2091:203:165;10155:90:143;-1:-1:-1;;;;;10254:18:143;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;10299:76;;;;10349:7;-1:-1:-1;;;;;10333:31:143;10342:5;-1:-1:-1;;;;;10333:31:143;;10358:5;10333:31;;;;1342:25:165;;1330:2;1315:18;;1196:177;10333:31:143;;;;;;;;9949:432;;;;:::o;1112:145:145:-;1474:19:153;:17;:19::i;:::-;1220:30:145::1;1234:4;1240:2;1244:5;1220:13;:30::i;2202:126:153:-:0;1920:7;;;;2260:62;;2296:15;;-1:-1:-1;;;2296:15:153;;;;;;;;;;;2002:128;1920:7;;;;2063:61;;;2098:15;;-1:-1:-1;;;2098:15:153;;;;;;;;;;;6271:1107:143;-1:-1:-1;;;;;6360:18:143;;6356:540;;6512:5;6496:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6356:540:143;;-1:-1:-1;6356:540:143;;-1:-1:-1;;;;;6570:15:143;;6548:19;6570:15;;;:9;:15;;;;;;6603:19;;;6599:115;;;6649:50;;-1:-1:-1;;;6649:50:143;;-1:-1:-1;;;;;3169:32:165;;6649:50:143;;;3151:51:165;3218:18;;;3211:34;;;3261:18;;;3254:34;;;3124:18;;6649:50:143;2949:345:165;6599:115:143;-1:-1:-1;;;;;6834:15:143;;;;;;:9;:15;;;;;6852:19;;;;6834:37;;6356:540;-1:-1:-1;;;;;6910:16:143;;6906:425;;7073:12;:21;;;;;;;6906:425;;;-1:-1:-1;;;;;7284:13:143;;;;;;:9;:13;;;;;:22;;;;;;6906:425;7361:2;-1:-1:-1;;;;;7346:25:143;7355:4;-1:-1:-1;;;;;7346:25:143;;7365:5;7346:25;;;;1342::165;;1330:2;1315:18;;1196:177;7346:25:143;;;;;;;;6271:1107;;;:::o;14:548:165:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:165;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:165:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:186::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;2051:29;2070:9;2051:29;:::i;:::-;2041:39;1900:186;-1:-1:-1;;;1900:186:165:o;2299:260::-;2367:6;2375;2428:2;2416:9;2407:7;2403:23;2399:32;2396:52;;;2444:1;2441;2434:12;2396:52;2467:29;2486:9;2467:29;:::i;:::-;2457:39;;2515:38;2549:2;2538:9;2534:18;2515:38;:::i;:::-;2505:48;;2299:260;;;;;:::o;2564:380::-;2643:1;2639:12;;;;2686;;;2707:61;;2761:4;2753:6;2749:17;2739:27;;2707:61;2814:2;2806:6;2803:14;2783:18;2780:38;2777:161;;2860:10;2855:3;2851:20;2848:1;2841:31;2895:4;2892:1;2885:15;2923:4;2920:1;2913:15;2777:161;;2564:380;;;:::o;3299:222::-;3364:9;;;3385:10;;;3382:133;;;3437:10;3432:3;3428:20;3425:1;3418:31;3472:4;3469:1;3462:15;3500:4;3497:1;3490:15","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"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\":\"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\":\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"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\":\"value\",\"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\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"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\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"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.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"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.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/_testContracts/TestERC20.sol\":\"TestERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/_testContracts/TestERC20.sol\":{\"keccak256\":\"0xab5f693774a9970308a821d29b4a99b67fbcf1c90c8e62be5df302bb53111c03\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://8e60917882914d5f01d55150fb7f182fc7ec8951293b5c78e4bd11a5a23f60ec\",\"dweb:/ipfs/QmZEFj8aUYkvBVZ6iQBmTV6byYmssME9kW7XzadTyrVbjK\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol\":{\"keccak256\":\"0xb18c53aecf95e53339972e3d496a56c42e6b60a03a49ce8e6a37d3bd9d5d0a67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a8e54b0924a1acd92806a843998568d6bec01798c550bc440a85cfcd9cfba99\",\"dweb:/ipfs/QmZ26Y3ibYPbCRVB65NAQrGBF1UKDEu2fB8CHHMhYbBqmV\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"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."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/_testContracts/TestERC20.sol":"TestERC20"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/_testContracts/TestERC20.sol":{"keccak256":"0xab5f693774a9970308a821d29b4a99b67fbcf1c90c8e62be5df302bb53111c03","urls":["bzz-raw://8e60917882914d5f01d55150fb7f182fc7ec8951293b5c78e4bd11a5a23f60ec","dweb:/ipfs/QmZEFj8aUYkvBVZ6iQBmTV6byYmssME9kW7XzadTyrVbjK"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80","urls":["bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229","dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol":{"keccak256":"0xb18c53aecf95e53339972e3d496a56c42e6b60a03a49ce8e6a37d3bd9d5d0a67","urls":["bzz-raw://4a8e54b0924a1acd92806a843998568d6bec01798c550bc440a85cfcd9cfba99","dweb:/ipfs/QmZ26Y3ibYPbCRVB65NAQrGBF1UKDEu2fB8CHHMhYbBqmV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Pausable.sol":{"keccak256":"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd","urls":["bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc","dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc"],"license":"MIT"}},"version":1},"id":20} \ No newline at end of file diff --git a/out/TimeExchangeLimitsModule.sol/TimeExchangeLimitsModule.json b/out/TimeExchangeLimitsModule.sol/TimeExchangeLimitsModule.json new file mode 100644 index 0000000..3ccba11 --- /dev/null +++ b/out/TimeExchangeLimitsModule.sol/TimeExchangeLimitsModule.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addExchangeID","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canComplianceBind","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getExchangeCounter","inputs":[{"name":"compliance","type":"address","internalType":"address"},{"name":"_exchangeID","type":"address","internalType":"address"},{"name":"_investorID","type":"address","internalType":"address"},{"name":"_limitTime","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct TimeExchangeLimitsModule.ExchangeTransferCounter","components":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"timer","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getExchangeLimits","inputs":[{"name":"compliance","type":"address","internalType":"address"},{"name":"_exchangeID","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct TimeExchangeLimitsModule.Limit[]","components":[{"name":"limitTime","type":"uint32","internalType":"uint32"},{"name":"limitValue","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"isComplianceBound","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isExchangeID","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPlugAndPlay","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"moduleBurnAction","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleCheck","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleMintAction","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleTransferAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeExchangeID","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setExchangeLimit","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"},{"name":"_limit","type":"tuple","internalType":"struct TimeExchangeLimitsModule.Limit","components":[{"name":"limitTime","type":"uint32","internalType":"uint32"},{"name":"limitValue","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComplianceBound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ComplianceUnbound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExchangeIDAdded","inputs":[{"name":"_newExchangeID","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExchangeIDRemoved","inputs":[{"name":"_exchangeID","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExchangeLimitUpdated","inputs":[{"name":"compliance","type":"address","indexed":true,"internalType":"address"},{"name":"_exchangeID","type":"address","indexed":false,"internalType":"address"},{"name":"_limitValue","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_limitTime","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"LimitsArraySizeExceeded","inputs":[{"name":"compliance","type":"address","internalType":"address"},{"name":"arraySize","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ONCHAINIDAlreadyTaggedAsExchange","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"}]},{"type":"error","name":"ONCHAINIDNotTaggedAsExchange","inputs":[{"name":"_exchangeID","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610098565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61151e806100a76000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806374436d97116100ad578063c9d9769a11610071578063c9d9769a14610319578063d22579fb1461032c578063e6f5e8071461033f578063f104a8c9146101c8578063f2fde38b1461034657600080fd5b806374436d97146102225780638da5cb5b14610235578063ac0dde7014610250578063b19761a814610270578063bcc210531461030557600080fd5b80632cb7e1ec116100f45780632cb7e1ec146101b5578063372491a2146101c85780634a932544146101db5780634cf4d295146101ee578063715018a61461021a57600080fd5b8063013b7ce4146101265780630694a5fb1461014e57806306fdde03146101635780632bb5e721146101a2575b600080fd5b610139610134366004611144565b610359565b60405190151581526020015b60405180910390f35b61016161015c366004611197565b610581565b005b604080518082018252601881527f54696d6545786368616e67654c696d6974734d6f64756c6500000000000000006020820152905161014591906111b4565b6101616101b0366004611197565b610680565b6101616101c3366004611203565b610715565b6101616101d6366004611244565b610794565b6101616101e9366004611197565b6107c7565b6101396101fc366004611197565b6001600160a01b031660009081526020819052604090205460ff1690565b6101616108fa565b610161610230366004611197565b61090e565b6001546040516001600160a01b039091168152602001610145565b61026361025e366004611270565b610998565b60405161014591906112a9565b6102ea61027e366004611317565b604080518082018252600080825260209182018190526001600160a01b03968716815260048252828120958716815294815281852093909516845291845281832063ffffffff919091168352835290819020815180830190925280548252600101549181019190915290565b60408051825181526020928301519281019290925201610145565b610139610313366004611197565b50600190565b610161610327366004611371565b610a2e565b61013961033a366004611197565b610ca9565b6001610139565b610161610354366004611197565b610cc7565b60006001600160a01b038516158061037657506103768286610d05565b1561038357506001610579565b600061038f8387610ddc565b905061039a81610ca9565b156103a9576001915050610579565b60006103b58487610ddc565b90506103c081610ca9565b6103cf57600192505050610579565b60005b6001600160a01b03808616600090815260036020908152604080832093861683529290522054811015610571576001600160a01b038086166000908152600360209081526040808320938616835292905220805482908110610436576104366113fa565b90600052602060002090600202016001015486111561045b5760009350505050610579565b6001600160a01b0380861660009081526003602090815260408083209386168352929052908120805483908110610494576104946113fa565b600091825260209091206002909102015463ffffffff1690506104b986848684610f0d565b15801561055657506001600160a01b0380871660009081526003602090815260408083209387168352929052208054839081106104f8576104f86113fa565b60009182526020808320600160029093020191909101546001600160a01b03808a16845260048352604080852088831686528452808520918916855290835280842063ffffffff86168552909252912054610554908990611410565b115b15610568576000945050505050610579565b506001016103d2565b506001925050505b949350505050565b3360009081526020819052604090205460ff166105b95760405162461bcd60e51b81526004016105b090611431565b60405180910390fd5b6001600160a01b03811661060f5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016105b0565b336001600160a01b038216146106375760405162461bcd60e51b81526004016105b090611468565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b610688610f59565b61069181610ca9565b156106ba576040516345d1498b60e01b81526001600160a01b03821660048201526024016105b0565b6001600160a01b038116600081815260056020908152604091829020805460ff1916600117905590519182527fca661533a567195376b79f20fcbcca20e62ceea1d43efacba5f8028329da8e6b91015b60405180910390a150565b3360009081526020819052604090205460ff166107445760405162461bcd60e51b81526004016105b090611431565b60006107503385610ddc565b9050600061075e3385610ddc565b905061076981610ca9565b801561077c575061077a3386610d05565b155b1561078d5761078d33828486610f86565b5050505050565b3360009081526020819052604090205460ff166107c35760405162461bcd60e51b81526004016105b090611431565b5050565b6001600160a01b03811661081d5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016105b0565b6001600160a01b03811660009081526020819052604090205460ff16156108865760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e64000000000000000060448201526064016105b0565b336001600160a01b038216146108ae5760405162461bcd60e51b81526004016105b090611468565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b610902610f59565b61090c6000611071565b565b610916610f59565b61091f81610ca9565b61094757604051630120783160e61b81526001600160a01b03821660048201526024016105b0565b6001600160a01b038116600081815260056020908152604091829020805460ff1916905590519182527fc59743ca46d36b7cf42c36211a2fbef12e10aec1bfc9d39eccf91b6976a260f5910161070a565b6001600160a01b0380831660009081526003602090815260408083209385168352928152828220805484518184028101840190955280855260609493919290919084015b82821015610a215760008481526020908190206040805180820190915260028502909101805463ffffffff1682526001908101548284015290835290920191016109dc565b5050505090505b92915050565b3360009081526020819052604090205460ff16610a5d5760405162461bcd60e51b81526004016105b090611431565b3360008181526002602090815260408083206001600160a01b038716808552908352818420865163ffffffff1685528352818420549484526003835281842090845290915290205460ff9091169081158015610abd575060048160ff1610155b15610ae6576040516382f520a960e01b815233600482015260ff821660248201526044016105b0565b81158015610af7575060048160ff16105b15610bb3573360008181526003602090815260408083206001600160a01b0389168085529083528184208054600180820183559186528486208a516002928302909101805463ffffffff191663ffffffff9283161781558b870151908401558451808601865292835260ff8981168488019081529888529186528487209387529285528386208a51909316865291909352922090518154935161ffff1990941690151561ff001916176101009390921692909202179055610c4b565b3360008181526003602090815260408083206001600160a01b038916808552908352818420948452600283528184209084528252808320875163ffffffff1684529091529020548154859291610100900460ff16908110610c1657610c166113fa565b6000918252602091829020835160029290920201805463ffffffff191663ffffffff9092169190911781559101516001909101555b6020838101518451604080516001600160a01b03891681529384019290925263ffffffff169082015233907fbdaa98f5444de6f9849a851f2c112d373c67c253895b3ca2c57204c0f6e1b58c9060600160405180910390a250505050565b6001600160a01b031660009081526005602052604090205460ff1690565b610ccf610f59565b6001600160a01b038116610cf957604051631e4fbdf760e01b8152600060048201526024016105b0565b610d0281611071565b50565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6991906114a9565b6040516307feec1960e21b81526001600160a01b0384811660048301529190911690631ffbb06490602401602060405180830381865afa158015610db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd591906114c6565b9392505050565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4091906114a9565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea191906114a9565b604051633c3ad79560e21b81526001600160a01b038481166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd591906114a9565b6001600160a01b03808516600090815260046020908152604080832087851684528252808320938616835292815282822063ffffffff8516835290522060010154421015949350505050565b6001546001600160a01b0316331461090c5760405163118cdaa760e01b81523360048201526024016105b0565b60005b6001600160a01b0380861660009081526003602090815260408083209388168352929052205481101561078d576001600160a01b0380861660009081526003602090815260408083209388168352929052908120805483908110610fef57610fef6113fa565b600091825260209091206002909102015463ffffffff169050611014868686846110c3565b6001600160a01b03808716600090815260046020908152604080832089851684528252808320938816835292815282822063ffffffff8516835290529081208054859290611063908490611410565b909155505050600101610f89565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6110cf84848484610f0d565b15611129576001600160a01b03808516600090815260046020908152604080832087851684528252808320938616835292815282822063ffffffff851680845291529190209061111f9042611410565b6001820155600090555b50505050565b6001600160a01b0381168114610d0257600080fd5b6000806000806080858703121561115a57600080fd5b84356111658161112f565b935060208501356111758161112f565b925060408501359150606085013561118c8161112f565b939692955090935050565b6000602082840312156111a957600080fd5b8135610dd58161112f565b60006020808352835180602085015260005b818110156111e2578581018301518582016040015282016111c6565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060006060848603121561121857600080fd5b83356112238161112f565b925060208401356112338161112f565b929592945050506040919091013590565b6000806040838503121561125757600080fd5b82356112628161112f565b946020939093013593505050565b6000806040838503121561128357600080fd5b823561128e8161112f565b9150602083013561129e8161112f565b809150509250929050565b602080825282518282018190526000919060409081850190868401855b828110156112f1578151805163ffffffff1685528601518685015292840192908501906001016112c6565b5091979650505050505050565b803563ffffffff8116811461131257600080fd5b919050565b6000806000806080858703121561132d57600080fd5b84356113388161112f565b935060208501356113488161112f565b925060408501356113588161112f565b9150611366606086016112fe565b905092959194509250565b600080828403606081121561138557600080fd5b83356113908161112f565b92506040601f19820112156113a457600080fd5b506040516040810181811067ffffffffffffffff821117156113d657634e487b7160e01b600052604160045260246000fd5b6040526113e5602085016112fe565b81526040939093013560208401525092909150565b634e487b7160e01b600052603260045260246000fd5b80820180821115610a2857634e487b7160e01b600052601160045260246000fd5b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b6000602082840312156114bb57600080fd5b8151610dd58161112f565b6000602082840312156114d857600080fd5b81518015158114610dd557600080fdfea2646970667358221220f8a98a3d3b3802f06e9045a8d63c738350b0ed2579729fb69f63bcf7efbeff8764736f6c63430008180033","sourceMap":"4039:12493:55:-:0;;;6203:36;;;;;;;;;-1:-1:-1;6225:10:55;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;160:51:165;133:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;4039:12493:55;;2912:187:141;3004:6;;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;;3052:40;;3004:6;;;3020:17;3004:6;;3052:40;;2985:16;;3052:40;2975:124;2912:187;:::o;14:203:165:-;4039:12493:55;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101215760003560e01c806374436d97116100ad578063c9d9769a11610071578063c9d9769a14610319578063d22579fb1461032c578063e6f5e8071461033f578063f104a8c9146101c8578063f2fde38b1461034657600080fd5b806374436d97146102225780638da5cb5b14610235578063ac0dde7014610250578063b19761a814610270578063bcc210531461030557600080fd5b80632cb7e1ec116100f45780632cb7e1ec146101b5578063372491a2146101c85780634a932544146101db5780634cf4d295146101ee578063715018a61461021a57600080fd5b8063013b7ce4146101265780630694a5fb1461014e57806306fdde03146101635780632bb5e721146101a2575b600080fd5b610139610134366004611144565b610359565b60405190151581526020015b60405180910390f35b61016161015c366004611197565b610581565b005b604080518082018252601881527f54696d6545786368616e67654c696d6974734d6f64756c6500000000000000006020820152905161014591906111b4565b6101616101b0366004611197565b610680565b6101616101c3366004611203565b610715565b6101616101d6366004611244565b610794565b6101616101e9366004611197565b6107c7565b6101396101fc366004611197565b6001600160a01b031660009081526020819052604090205460ff1690565b6101616108fa565b610161610230366004611197565b61090e565b6001546040516001600160a01b039091168152602001610145565b61026361025e366004611270565b610998565b60405161014591906112a9565b6102ea61027e366004611317565b604080518082018252600080825260209182018190526001600160a01b03968716815260048252828120958716815294815281852093909516845291845281832063ffffffff919091168352835290819020815180830190925280548252600101549181019190915290565b60408051825181526020928301519281019290925201610145565b610139610313366004611197565b50600190565b610161610327366004611371565b610a2e565b61013961033a366004611197565b610ca9565b6001610139565b610161610354366004611197565b610cc7565b60006001600160a01b038516158061037657506103768286610d05565b1561038357506001610579565b600061038f8387610ddc565b905061039a81610ca9565b156103a9576001915050610579565b60006103b58487610ddc565b90506103c081610ca9565b6103cf57600192505050610579565b60005b6001600160a01b03808616600090815260036020908152604080832093861683529290522054811015610571576001600160a01b038086166000908152600360209081526040808320938616835292905220805482908110610436576104366113fa565b90600052602060002090600202016001015486111561045b5760009350505050610579565b6001600160a01b0380861660009081526003602090815260408083209386168352929052908120805483908110610494576104946113fa565b600091825260209091206002909102015463ffffffff1690506104b986848684610f0d565b15801561055657506001600160a01b0380871660009081526003602090815260408083209387168352929052208054839081106104f8576104f86113fa565b60009182526020808320600160029093020191909101546001600160a01b03808a16845260048352604080852088831686528452808520918916855290835280842063ffffffff86168552909252912054610554908990611410565b115b15610568576000945050505050610579565b506001016103d2565b506001925050505b949350505050565b3360009081526020819052604090205460ff166105b95760405162461bcd60e51b81526004016105b090611431565b60405180910390fd5b6001600160a01b03811661060f5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016105b0565b336001600160a01b038216146106375760405162461bcd60e51b81526004016105b090611468565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b610688610f59565b61069181610ca9565b156106ba576040516345d1498b60e01b81526001600160a01b03821660048201526024016105b0565b6001600160a01b038116600081815260056020908152604091829020805460ff1916600117905590519182527fca661533a567195376b79f20fcbcca20e62ceea1d43efacba5f8028329da8e6b91015b60405180910390a150565b3360009081526020819052604090205460ff166107445760405162461bcd60e51b81526004016105b090611431565b60006107503385610ddc565b9050600061075e3385610ddc565b905061076981610ca9565b801561077c575061077a3386610d05565b155b1561078d5761078d33828486610f86565b5050505050565b3360009081526020819052604090205460ff166107c35760405162461bcd60e51b81526004016105b090611431565b5050565b6001600160a01b03811661081d5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016105b0565b6001600160a01b03811660009081526020819052604090205460ff16156108865760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e64000000000000000060448201526064016105b0565b336001600160a01b038216146108ae5760405162461bcd60e51b81526004016105b090611468565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b610902610f59565b61090c6000611071565b565b610916610f59565b61091f81610ca9565b61094757604051630120783160e61b81526001600160a01b03821660048201526024016105b0565b6001600160a01b038116600081815260056020908152604091829020805460ff1916905590519182527fc59743ca46d36b7cf42c36211a2fbef12e10aec1bfc9d39eccf91b6976a260f5910161070a565b6001600160a01b0380831660009081526003602090815260408083209385168352928152828220805484518184028101840190955280855260609493919290919084015b82821015610a215760008481526020908190206040805180820190915260028502909101805463ffffffff1682526001908101548284015290835290920191016109dc565b5050505090505b92915050565b3360009081526020819052604090205460ff16610a5d5760405162461bcd60e51b81526004016105b090611431565b3360008181526002602090815260408083206001600160a01b038716808552908352818420865163ffffffff1685528352818420549484526003835281842090845290915290205460ff9091169081158015610abd575060048160ff1610155b15610ae6576040516382f520a960e01b815233600482015260ff821660248201526044016105b0565b81158015610af7575060048160ff16105b15610bb3573360008181526003602090815260408083206001600160a01b0389168085529083528184208054600180820183559186528486208a516002928302909101805463ffffffff191663ffffffff9283161781558b870151908401558451808601865292835260ff8981168488019081529888529186528487209387529285528386208a51909316865291909352922090518154935161ffff1990941690151561ff001916176101009390921692909202179055610c4b565b3360008181526003602090815260408083206001600160a01b038916808552908352818420948452600283528184209084528252808320875163ffffffff1684529091529020548154859291610100900460ff16908110610c1657610c166113fa565b6000918252602091829020835160029290920201805463ffffffff191663ffffffff9092169190911781559101516001909101555b6020838101518451604080516001600160a01b03891681529384019290925263ffffffff169082015233907fbdaa98f5444de6f9849a851f2c112d373c67c253895b3ca2c57204c0f6e1b58c9060600160405180910390a250505050565b6001600160a01b031660009081526005602052604090205460ff1690565b610ccf610f59565b6001600160a01b038116610cf957604051631e4fbdf760e01b8152600060048201526024016105b0565b610d0281611071565b50565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6991906114a9565b6040516307feec1960e21b81526001600160a01b0384811660048301529190911690631ffbb06490602401602060405180830381865afa158015610db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd591906114c6565b9392505050565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4091906114a9565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea191906114a9565b604051633c3ad79560e21b81526001600160a01b038481166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd591906114a9565b6001600160a01b03808516600090815260046020908152604080832087851684528252808320938616835292815282822063ffffffff8516835290522060010154421015949350505050565b6001546001600160a01b0316331461090c5760405163118cdaa760e01b81523360048201526024016105b0565b60005b6001600160a01b0380861660009081526003602090815260408083209388168352929052205481101561078d576001600160a01b0380861660009081526003602090815260408083209388168352929052908120805483908110610fef57610fef6113fa565b600091825260209091206002909102015463ffffffff169050611014868686846110c3565b6001600160a01b03808716600090815260046020908152604080832089851684528252808320938816835292815282822063ffffffff8516835290529081208054859290611063908490611410565b909155505050600101610f89565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6110cf84848484610f0d565b15611129576001600160a01b03808516600090815260046020908152604080832087851684528252808320938616835292815282822063ffffffff851680845291529190209061111f9042611410565b6001820155600090555b50505050565b6001600160a01b0381168114610d0257600080fd5b6000806000806080858703121561115a57600080fd5b84356111658161112f565b935060208501356111758161112f565b925060408501359150606085013561118c8161112f565b939692955090935050565b6000602082840312156111a957600080fd5b8135610dd58161112f565b60006020808352835180602085015260005b818110156111e2578581018301518582016040015282016111c6565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060006060848603121561121857600080fd5b83356112238161112f565b925060208401356112338161112f565b929592945050506040919091013590565b6000806040838503121561125757600080fd5b82356112628161112f565b946020939093013593505050565b6000806040838503121561128357600080fd5b823561128e8161112f565b9150602083013561129e8161112f565b809150509250929050565b602080825282518282018190526000919060409081850190868401855b828110156112f1578151805163ffffffff1685528601518685015292840192908501906001016112c6565b5091979650505050505050565b803563ffffffff8116811461131257600080fd5b919050565b6000806000806080858703121561132d57600080fd5b84356113388161112f565b935060208501356113488161112f565b925060408501356113588161112f565b9150611366606086016112fe565b905092959194509250565b600080828403606081121561138557600080fd5b83356113908161112f565b92506040601f19820112156113a457600080fd5b506040516040810181811067ffffffffffffffff821117156113d657634e487b7160e01b600052604160045260246000fd5b6040526113e5602085016112fe565b81526040939093013560208401525092909150565b634e487b7160e01b600052603260045260246000fd5b80820180821115610a2857634e487b7160e01b600052601160045260246000fd5b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b6000602082840312156114bb57600080fd5b8151610dd58161112f565b6000602082840312156114d857600080fd5b81518015158114610dd557600080fdfea2646970667358221220f8a98a3d3b3802f06e9045a8d63c738350b0ed2579729fb69f63bcf7efbeff8764736f6c63430008180033","sourceMap":"4039:12493:55:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9650:1264;;;;;;:::i;:::-;;:::i;:::-;;;918:14:165;;911:22;893:41;;881:2;866:18;9650:1264:55;;;;;;;;5018:343:44;;;;;;:::i;:::-;;:::i;:::-;;12836:108:55;12904:33;;;;;;;;;;;;;;;;12836:108;;;;12904:33;12836:108;:::i;7788:273::-;;;;;;:::i;:::-;;:::i;8711:437::-;;;;;;:::i;:::-;;:::i;9483:105::-;;;;;;:::i;:::-;;:::i;4555:396:44:-;;;;;;:::i;:::-;;:::i;5429:139::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5532:29:44;5509:4;5532:29;;;;;;;;;;;;;;5429:139;2293:101:141;;;:::i;8365:275:55:-;;;;;;:::i;:::-;;:::i;1638:85:141:-;1710:6;;1638:85;;-1:-1:-1;;;;;1710:6:141;;;2677:51:165;;2665:2;2650:18;1638:85:141;2531:203:165;11881:171:55;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11378:263::-;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;11567:29:55;;;;;:17;:29;;;;;:42;;;;;;;;;;;:55;;;;;;;;;;;;:67;;;;;;;;;;;;;11560:74;;;;;;;;;;;;;;;;;;;;;;;11378:263;;;;;4963:13:165;;4945:32;;5033:4;5021:17;;;5015:24;4993:20;;;4986:54;;;;4918:18;11378:263:55;4715:331:165;12120:118:55;;;;;;:::i;:::-;-1:-1:-1;12227:4:55;;12120:118;6587:899;;;;;;:::i;:::-;;:::i;12663:118::-;;;;;;:::i;:::-;;:::i;12302:91::-;12382:4;12302:91;;2543:215:141;;;;;;:::i;:::-;;:::i;9650:1264:55:-;9806:4;-1:-1:-1;;;;;9826:19:55;;;;:56;;;9849:33;9863:11;9876:5;9849:13;:33::i;:::-;9822:98;;;-1:-1:-1;9905:4:55;9898:11;;9822:98;9930:22;9955:32;9968:11;9981:5;9955:12;:32::i;:::-;9930:57;;10001:28;10014:14;10001:12;:28::i;:::-;9997:70;;;10052:4;10045:11;;;;;9997:70;10077:24;10104:30;10117:11;10130:3;10104:12;:30::i;:::-;10077:57;;10149:30;10162:16;10149:12;:30::i;:::-;10144:73;;10202:4;10195:11;;;;;;10144:73;10232:9;10227:659;-1:-1:-1;;;;;10251:28:55;;;;;;;:15;:28;;;;;;;;:46;;;;;;;;;:53;10247:57;;10227:659;;;-1:-1:-1;;;;;10338:28:55;;;;;;;:15;:28;;;;;;;;:46;;;;;;;;;:49;;10385:1;;10338:49;;;;;;:::i;:::-;;;;;;;;;;;:60;;;10329:6;:69;10325:120;;;10425:5;10418:12;;;;;;;10325:120;-1:-1:-1;;;;;10478:28:55;;;10459:16;10478:28;;;:15;:28;;;;;;;;:46;;;;;;;;;;;:49;;10525:1;;10478:49;;;;;;:::i;:::-;;;;;;;;;;;;;;:59;;;;-1:-1:-1;10556:84:55;10583:11;10596:16;10614:14;10478:59;10556:26;:84::i;:::-;10555:85;:274;;;;-1:-1:-1;;;;;;10769:28:55;;;;;;;:15;:28;;;;;;;;:46;;;;;;;;;:49;;10816:1;;10769:49;;;;;;:::i;:::-;;;;;;;;;:60;:49;;;;;:60;;;;;-1:-1:-1;;;;;10660:30:55;;;;;:17;:30;;;;;;:48;;;;;;;;;;:64;;;;;;;;;;;:75;;;;;;;;;;:81;:90;;10744:6;;10660:90;:::i;:::-;:169;10555:274;10551:325;;;10856:5;10849:12;;;;;;;;10551:325;-1:-1:-1;10306:3:55;;10227:659;;;;10903:4;10896:11;;;;9650:1264;;;;;;;:::o;5018:343:44:-;4426:10;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5120:25:44;::::1;5112:69;;;::::0;-1:-1:-1;;;5112:69:44;;6801:2:165;5112:69:44::1;::::0;::::1;6783:21:165::0;6840:2;6820:18;;;6813:30;6879:33;6859:18;;;6852:61;6930:18;;5112:69:44::1;6599:355:165::0;5112:69:44::1;5199:10;-1:-1:-1::0;;;;;5199:25:44;::::1;;5191:71;;;;-1:-1:-1::0;;;5191:71:44::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5272:29:44;::::1;5304:5;5272:29:::0;;;::::1;::::0;;;;;;;:37;;-1:-1:-1;;5272:37:44::1;::::0;;5324:30;::::1;::::0;5304:5;5324:30:::1;5018:343:::0;:::o;7788:273:55:-;1531:13:141;:11;:13::i;:::-;7865:25:55::1;7878:11;7865:12;:25::i;:::-;7861:108;;;7913:45;::::0;-1:-1:-1;;;7913:45:55;;-1:-1:-1;;;;;2695:32:165;;7913:45:55::1;::::0;::::1;2677:51:165::0;2650:18;;7913:45:55::1;2531:203:165::0;7861:108:55::1;-1:-1:-1::0;;;;;7979:25:55;::::1;;::::0;;;:12:::1;:25;::::0;;;;;;;;:32;;-1:-1:-1;;7979:32:55::1;8007:4;7979:32;::::0;;8026:28;;2677:51:165;;;8026:28:55::1;::::0;2650:18:165;8026:28:55::1;;;;;;;;7788:273:::0;:::o;8711:437::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;8832:22:55::1;8857:31;8870:10;8882:5;8857:12;:31::i;:::-;8832:56;;8898:24;8925:29;8938:10;8950:3;8925:12;:29::i;:::-;8898:56;;8969:30;8982:16;8969:12;:30::i;:::-;:67;;;;;9004:32;9018:10;9030:5;9004:13;:32::i;:::-;9003:33;8969:67;8965:177;;;9052:79;9078:10;9090:16;9108:14;9124:6;9052:25;:79::i;:::-;8822:326;;8711:437:::0;;;:::o;9483:105::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;9483:105:55;;:::o;4555:396:44:-;-1:-1:-1;;;;;4636:25:44;;4628:69;;;;-1:-1:-1;;;4628:69:44;;6801:2:165;4628:69:44;;;6783:21:165;6840:2;6820:18;;;6813:30;6879:33;6859:18;;;6852:61;6930:18;;4628:69:44;6599:355:165;4628:69:44;-1:-1:-1;;;;;4716:29:44;;:16;:29;;;;;;;;;;;;;4715:30;4707:67;;;;-1:-1:-1;;;4707:67:44;;7563:2:165;4707:67:44;;;7545:21:165;7602:2;7582:18;;;7575:30;7641:26;7621:18;;;7614:54;7685:18;;4707:67:44;7361:348:165;4707:67:44;4792:10;-1:-1:-1;;;;;4792:25:44;;;4784:71;;;;-1:-1:-1;;;4784:71:44;;;;;;;:::i;:::-;-1:-1:-1;;;;;4865:29:44;;:16;:29;;;;;;;;;;;:36;;-1:-1:-1;;4865:36:44;4897:4;4865:36;;;4916:28;;;4865:16;4916:28;4555:396;:::o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;8365:275:55:-;1531:13:141;:11;:13::i;:::-;8446:25:55::1;8459:11;8446:12;:25::i;:::-;8441:105;;8494:41;::::0;-1:-1:-1;;;8494:41:55;;-1:-1:-1;;;;;2695:32:165;;8494:41:55::1;::::0;::::1;2677:51:165::0;2650:18;;8494:41:55::1;2531:203:165::0;8441:105:55::1;-1:-1:-1::0;;;;;8555:25:55;::::1;8583:5;8555:25:::0;;;:12:::1;:25;::::0;;;;;;;;:33;;-1:-1:-1;;8555:33:55::1;::::0;;8603:30;;2677:51:165;;;8603:30:55::1;::::0;2650:18:165;8603:30:55::1;2531:203:165::0;11881:171:55;-1:-1:-1;;;;;12005:27:55;;;;;;;:15;:27;;;;;;;;:40;;;;;;;;;;;11998:47;;;;;;;;;;;;;;;;;11972:14;;11998:47;12005:40;;11998:47;;12005:27;11998:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11881:171;;;;;:::o;6587:899::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;6731:10:55::1;6693:22;6718:24:::0;;;:12:::1;:24;::::0;;;;;;;-1:-1:-1;;;;;6718:37:55;::::1;::::0;;;;;;;;;6756:16;;6718:55:::1;;::::0;;;;;;;:71;6824:27;;;:15:::1;:27:::0;;;;;:40;;;;;;;;:47;6718:71:::1;::::0;;::::1;::::0;6886:18;::::1;:37:::0;::::1;;;;6922:1;6908:10;:15;;;;6886:37;6882:122;;;6946:47;::::0;-1:-1:-1;;;6946:47:55;;6970:10:::1;6946:47;::::0;::::1;7886:51:165::0;7985:4;7973:17;;7953:18;;;7946:45;7859:18;;6946:47:55::1;7714:283:165::0;6882:122:55::1;7019:17;7018:18;:36;;;;;7053:1;7040:10;:14;;;7018:36;7014:368;;;7086:10;7070:27;::::0;;;:15:::1;:27;::::0;;;;;;;-1:-1:-1;;;;;7070:40:55;::::1;::::0;;;;;;;;;:53;;::::1;::::0;;::::1;::::0;;;;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;7070:53:55::1;;::::0;;::::1;;::::0;;;;::::1;::::0;;;::::1;::::0;7195:28;;;;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;7137:24;;;;;;;;;:37;;;;;;;;;7175:16;;7137:55;;::::1;::::0;;;;;;;;:86;;;;;;-1:-1:-1;;7137:86:55;;;;::::1;;-1:-1:-1::0;;7137:86:55;;7070:53:::1;7137:86:::0;;;::::1;::::0;;;::::1;;::::0;;7014:368:::1;;;7270:10;7254:27;::::0;;;:15:::1;:27;::::0;;;;;;;-1:-1:-1;;;;;7254:40:55;::::1;::::0;;;;;;;;;7295:24;;;:12:::1;:24:::0;;;;;:37;;;;;;;;7333:16;;7295:55:::1;;::::0;;;;;;;:66;7254:108;;7333:16;;7254:40;7295:66:::1;::::0;::::1;;;::::0;7254:108;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;:117;;:108:::1;::::0;;;::::1;;:117:::0;;-1:-1:-1;;7254:117:55::1;;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;7254:117:55;;::::1;::::0;7014:368:::1;7443:17;::::0;;::::1;::::0;7462:16;;7397:82:::1;::::0;;-1:-1:-1;;;;;8220:32:165;;8202:51;;8269:18;;;8262:34;;;;8344:10;8332:23;8312:18;;;8305:51;7418:10:55::1;::::0;7397:82:::1;::::0;8190:2:165;8175:18;7397:82:55::1;;;;;;;6683:803;;6587:899:::0;;:::o;12663:118::-;-1:-1:-1;;;;;12749:25:55;12727:4;12749:25;;;:12;:25;;;;;;;;;12663:118::o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;2677:51:165::0;2650:18;;2672:31:141::1;2531:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;15862:197:55:-;15950:4;16002:10;-1:-1:-1;;;;;15983:44:55;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15973:79;;-1:-1:-1;;;15973:79:55;;-1:-1:-1;;;;;2695:32:165;;;15973:79:55;;;2677:51:165;15973:65:55;;;;;;;2650:18:165;;15973:79:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15966:86;15862:197;-1:-1:-1;;;15862:197:55:o;16290:240::-;16378:7;16438:11;-1:-1:-1;;;;;16419:45:55;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16412:72:55;;:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:110;;-1:-1:-1;;;16412:110:55;;-1:-1:-1;;;;;2695:32:165;;;16412:110:55;;;2677:51:165;16412:83:55;;;;;;;2650:18:165;;16412:110:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15289:264::-;-1:-1:-1;;;;;15455:30:55;;;15432:4;15455:30;;;:17;:30;;;;;;;;:43;;;;;;;;;;:54;;;;;;;;;;;:66;;;;;;;;:72;;;15531:15;-1:-1:-1;15455:91:55;15289:264;;;;;;:::o;1796:162:141:-;1710:6;;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;2677:51:165;2650:18;;1901:40:141;2531:203:165;13448:499:55;13585:9;13580:361;-1:-1:-1;;;;;13604:27:55;;;;;;;:15;:27;;;;;;;;:40;;;;;;;;;:47;13600:51;;13580:361;;;-1:-1:-1;;;;;13691:27:55;;;13672:16;13691:27;;;:15;:27;;;;;;;;:40;;;;;;;;;;;:43;;13732:1;;13691:43;;;;;;:::i;:::-;;;;;;;;;;;;;;:53;;;;-1:-1:-1;13758:76:55;13786:10;13798:11;13811;13691:53;13758:27;:76::i;:::-;-1:-1:-1;;;;;13848:29:55;;;;;;;:17;:29;;;;;;;;:42;;;;;;;;;;:55;;;;;;;;;;;:66;;;;;;;;;;:82;;13924:6;;13848:29;:82;;13924:6;;13848:82;:::i;:::-;;;;-1:-1:-1;;;13653:3:55;;13580:361;;2912:187:141;3004:6;;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;;3052:40;;3004:6;;;3020:17;3004:6;;3052:40;;2985:16;;3052:40;2975:124;2912:187;:::o;14358:473:55:-;14507:76;14534:10;14546:11;14559;14572:10;14507:26;:76::i;:::-;14503:322;;;-1:-1:-1;;;;;14657:29:55;;;14599:39;14657:29;;;:17;:29;;;;;;;;:42;;;;;;;;;;:55;;;;;;;;;;;:67;;;;;;;;;;;;14755:28;;:15;:28;:::i;:::-;14739:13;;;:44;14813:1;14797:17;;14503:322;14358:473;;;;:::o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;150:598;236:6;244;252;260;313:3;301:9;292:7;288:23;284:33;281:53;;;330:1;327;320:12;281:53;369:9;356:23;388:31;413:5;388:31;:::i;:::-;438:5;-1:-1:-1;495:2:165;480:18;;467:32;508:33;467:32;508:33;:::i;:::-;560:7;-1:-1:-1;614:2:165;599:18;;586:32;;-1:-1:-1;670:2:165;655:18;;642:32;683:33;642:32;683:33;:::i;:::-;150:598;;;;-1:-1:-1;150:598:165;;-1:-1:-1;;150:598:165:o;945:247::-;1004:6;1057:2;1045:9;1036:7;1032:23;1028:32;1025:52;;;1073:1;1070;1063:12;1025:52;1112:9;1099:23;1131:31;1156:5;1131:31;:::i;1197:548::-;1309:4;1338:2;1367;1356:9;1349:21;1399:6;1393:13;1442:6;1437:2;1426:9;1422:18;1415:34;1467:1;1477:140;1491:6;1488:1;1485:13;1477:140;;;1586:14;;;1582:23;;1576:30;1552:17;;;1571:2;1548:26;1541:66;1506:10;;1477:140;;;1481:3;1666:1;1661:2;1652:6;1641:9;1637:22;1633:31;1626:42;1736:2;1729;1725:7;1720:2;1712:6;1708:15;1704:29;1693:9;1689:45;1685:54;1677:62;;;;1197:548;;;;:::o;1750:456::-;1827:6;1835;1843;1896:2;1884:9;1875:7;1871:23;1867:32;1864:52;;;1912:1;1909;1902:12;1864:52;1951:9;1938:23;1970:31;1995:5;1970:31;:::i;:::-;2020:5;-1:-1:-1;2077:2:165;2062:18;;2049:32;2090:33;2049:32;2090:33;:::i;:::-;1750:456;;2142:7;;-1:-1:-1;;;2196:2:165;2181:18;;;;2168:32;;1750:456::o;2211:315::-;2279:6;2287;2340:2;2328:9;2319:7;2315:23;2311:32;2308:52;;;2356:1;2353;2346:12;2308:52;2395:9;2382:23;2414:31;2439:5;2414:31;:::i;:::-;2464:5;2516:2;2501:18;;;;2488:32;;-1:-1:-1;;;2211:315:165:o;2739:388::-;2807:6;2815;2868:2;2856:9;2847:7;2843:23;2839:32;2836:52;;;2884:1;2881;2874:12;2836:52;2923:9;2910:23;2942:31;2967:5;2942:31;:::i;:::-;2992:5;-1:-1:-1;3049:2:165;3034:18;;3021:32;3062:33;3021:32;3062:33;:::i;:::-;3114:7;3104:17;;;2739:388;;;;;:::o;3132:803::-;3351:2;3403:21;;;3473:13;;3376:18;;;3495:22;;;3322:4;;3351:2;3536;;3554:18;;;;3595:15;;;3322:4;3638:271;3652:6;3649:1;3646:13;3638:271;;;3711:13;;3753:9;;3764:10;3749:26;3737:39;;3816:11;;3810:18;3796:12;;;3789:40;3849:12;;;;3884:15;;;;3674:1;3667:9;3638:271;;;-1:-1:-1;3926:3:165;;3132:803;-1:-1:-1;;;;;;;3132:803:165:o;3940:163::-;4007:20;;4067:10;4056:22;;4046:33;;4036:61;;4093:1;4090;4083:12;4036:61;3940:163;;;:::o;4108:602::-;4193:6;4201;4209;4217;4270:3;4258:9;4249:7;4245:23;4241:33;4238:53;;;4287:1;4284;4277:12;4238:53;4326:9;4313:23;4345:31;4370:5;4345:31;:::i;:::-;4395:5;-1:-1:-1;4452:2:165;4437:18;;4424:32;4465:33;4424:32;4465:33;:::i;:::-;4517:7;-1:-1:-1;4576:2:165;4561:18;;4548:32;4589:33;4548:32;4589:33;:::i;:::-;4641:7;-1:-1:-1;4667:37:165;4700:2;4685:18;;4667:37;:::i;:::-;4657:47;;4108:602;;;;;;;:::o;5051:825::-;5143:6;5151;5195:9;5186:7;5182:23;5225:2;5221;5217:11;5214:31;;;5241:1;5238;5231:12;5214:31;5280:9;5267:23;5299:31;5324:5;5299:31;:::i;:::-;5349:5;-1:-1:-1;5388:4:165;-1:-1:-1;;5370:16:165;;5366:27;5363:47;;;5406:1;5403;5396:12;5363:47;;5439:4;5433:11;5483:4;5475:6;5471:17;5554:6;5542:10;5539:22;5518:18;5506:10;5503:34;5500:62;5497:185;;;5604:10;5599:3;5595:20;5592:1;5585:31;5639:4;5636:1;5629:15;5667:4;5664:1;5657:15;5497:185;5698:4;5691:24;5739:37;5772:2;5757:18;;5739:37;:::i;:::-;5724:53;;5838:4;5823:20;;;;5810:34;5805:2;5793:15;;5786:59;-1:-1:-1;5051:825:165;5731:6;;-1:-1:-1;5051:825:165:o;5881:127::-;5942:10;5937:3;5933:20;5930:1;5923:31;5973:4;5970:1;5963:15;5997:4;5994:1;5987:15;6013:222;6078:9;;;6099:10;;;6096:133;;;6151:10;6146:3;6142:20;6139:1;6132:31;6186:4;6183:1;6176:15;6214:4;6211:1;6204:15;6240:354;6442:2;6424:21;;;6481:2;6461:18;;;6454:30;6520:32;6515:2;6500:18;;6493:60;6585:2;6570:18;;6240:354::o;6959:397::-;7161:2;7143:21;;;7200:2;7180:18;;;7173:30;7239:34;7234:2;7219:18;;7212:62;-1:-1:-1;;;7305:2:165;7290:18;;7283:31;7346:3;7331:19;;6959:397::o;8367:251::-;8437:6;8490:2;8478:9;8469:7;8465:23;8461:32;8458:52;;;8506:1;8503;8496:12;8458:52;8538:9;8532:16;8557:31;8582:5;8557:31;:::i;8623:277::-;8690:6;8743:2;8731:9;8722:7;8718:23;8714:32;8711:52;;;8759:1;8756;8749:12;8711:52;8791:9;8785:16;8844:5;8837:13;8830:21;8823:5;8820:32;8810:60;;8866:1;8863;8856:12","linkReferences":{}},"methodIdentifiers":{"addExchangeID(address)":"2bb5e721","bindCompliance(address)":"4a932544","canComplianceBind(address)":"bcc21053","getExchangeCounter(address,address,address,uint32)":"b19761a8","getExchangeLimits(address,address)":"ac0dde70","isComplianceBound(address)":"4cf4d295","isExchangeID(address)":"d22579fb","isPlugAndPlay()":"e6f5e807","moduleBurnAction(address,uint256)":"372491a2","moduleCheck(address,address,uint256,address)":"013b7ce4","moduleMintAction(address,uint256)":"f104a8c9","moduleTransferAction(address,address,uint256)":"2cb7e1ec","name()":"06fdde03","owner()":"8da5cb5b","removeExchangeID(address)":"74436d97","renounceOwnership()":"715018a6","setExchangeLimit(address,(uint32,uint256))":"c9d9769a","transferOwnership(address)":"f2fde38b","unbindCompliance(address)":"0694a5fb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"compliance\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"arraySize\",\"type\":\"uint256\"}],\"name\":\"LimitsArraySizeExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"ONCHAINIDAlreadyTaggedAsExchange\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"ONCHAINIDNotTaggedAsExchange\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newExchangeID\",\"type\":\"address\"}],\"name\":\"ExchangeIDAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"ExchangeIDRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"compliance\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_limitValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"_limitTime\",\"type\":\"uint32\"}],\"name\":\"ExchangeLimitUpdated\",\"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\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"addExchangeID\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"bindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"canComplianceBind\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"compliance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_investorID\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_limitTime\",\"type\":\"uint32\"}],\"name\":\"getExchangeCounter\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timer\",\"type\":\"uint256\"}],\"internalType\":\"struct TimeExchangeLimitsModule.ExchangeTransferCounter\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"compliance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"getExchangeLimits\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"limitTime\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"limitValue\",\"type\":\"uint256\"}],\"internalType\":\"struct TimeExchangeLimitsModule.Limit[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"isComplianceBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"isExchangeID\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPlugAndPlay\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"moduleBurnAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"moduleCheck\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"moduleMintAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleTransferAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"}],\"name\":\"removeExchangeID\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_exchangeID\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"limitTime\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"limitValue\",\"type\":\"uint256\"}],\"internalType\":\"struct TimeExchangeLimitsModule.Limit\",\"name\":\"_limit\",\"type\":\"tuple\"}],\"name\":\"setExchangeLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"unbindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addExchangeID(address)\":{\"details\":\"tags the ONCHAINID as being an exchange ID\",\"params\":{\"_exchangeID\":\"ONCHAINID to be tagged Function can be called only by the owner of this module Cannot be called on an address already tagged as being an exchange emits an `ExchangeIDAdded` event\"}},\"bindCompliance(address)\":{\"details\":\"See {IModule-bindCompliance}.\"},\"canComplianceBind(address)\":{\"details\":\"See {IModule-canComplianceBind}.\"},\"getExchangeCounter(address,address,address,uint32)\":{\"details\":\"getter for `exchangeCounters` variable on the timer parameter of the ExchangeTransferCounter struct\",\"params\":{\"_exchangeID\":\"the ONCHAINID of the exchange\",\"_investorID\":\"the ONCHAINID of the investor to be checked\",\"_limitTime\":\"limit time frame returns the counter of the given `_limitTime`, `_investorID`, and `exchangeID`\",\"compliance\":\"the compliance smart contract address to be checked\"}},\"getExchangeLimits(address,address)\":{\"details\":\"getter for `exchangeLimit` variable\",\"params\":{\"_exchangeID\":\"exchange ONCHAINID returns the array of limits set for that exchange\",\"compliance\":\"the Compliance smart contract to be checked\"}},\"isComplianceBound(address)\":{\"details\":\"See {IModule-isComplianceBound}.\"},\"isExchangeID(address)\":{\"details\":\"getter for `_exchangeIDs` variable tells to the caller if an ONCHAINID belongs to an exchange or not\",\"params\":{\"_exchangeID\":\"ONCHAINID to be checked returns TRUE if the address corresponds to an exchange, FALSE otherwise\"}},\"isPlugAndPlay()\":{\"details\":\"See {IModule-isPlugAndPlay}.\"},\"moduleBurnAction(address,uint256)\":{\"details\":\"See {IModule-moduleBurnAction}.\"},\"moduleCheck(address,address,uint256,address)\":{\"details\":\"See {IModule-moduleCheck}.\"},\"moduleMintAction(address,uint256)\":{\"details\":\"See {IModule-moduleMintAction}.\"},\"moduleTransferAction(address,address,uint256)\":{\"details\":\"See {IModule-moduleTransferAction}.\"},\"name()\":{\"details\":\"See {IModule-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeExchangeID(address)\":{\"details\":\"untags the ONCHAINID as being an exchange ID\",\"params\":{\"_exchangeID\":\"ONCHAINID to be untagged Function can be called only by the owner of this module Cannot be called on an address not tagged as being an exchange emits an `ExchangeIDRemoved` event\"}},\"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.\"},\"setExchangeLimit(address,(uint32,uint256))\":{\"details\":\"Sets the limit of tokens allowed to be transferred to the given exchangeID in a given period of time\",\"params\":{\"_exchangeID\":\"ONCHAINID of the exchange\",\"_limit\":\"The limit time and value Only the Compliance smart contract can call this function emits an `ExchangeLimitUpdated` event\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unbindCompliance(address)\":{\"details\":\"See {IModule-unbindCompliance}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ComplianceBound(address)\":{\"notice\":\"this event is emitted when the compliance contract is bound to the module. the event is emitted by the bindCompliance function `_compliance` is the address of the compliance contract being bound\"},\"ComplianceUnbound(address)\":{\"notice\":\"this event is emitted when the compliance contract is unbound from the module. the event is emitted by the unbindCompliance function `_compliance` is the address of the compliance contract being unbound\"},\"ExchangeIDAdded(address)\":{\"notice\":\"this event is emitted whenever an ONCHAINID is tagged as an exchange ID. the event is emitted by 'addExchangeID'. `_newExchangeID` is the ONCHAINID address of the exchange to add.\"},\"ExchangeIDRemoved(address)\":{\"notice\":\"this event is emitted whenever an ONCHAINID is untagged as belonging to an exchange. the event is emitted by 'removeExchangeID'. `_exchangeID` is the ONCHAINID being untagged as an exchange ID.\"},\"ExchangeLimitUpdated(address,address,uint256,uint32)\":{\"notice\":\"this event is emitted whenever an exchange limit is updated for the given compliance address the event is emitted by 'setExchangeLimit'. compliance`is the compliance contract address _exchangeID is the ONCHAINID of the exchange _limitValue is the new limit value for the given limit time _limitTime is the period of time of the limit\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/modular/modules/TimeExchangeLimitsModule.sol\":\"TimeExchangeLimitsModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/compliance/modular/modules/AbstractModule.sol\":{\"keccak256\":\"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8\",\"dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu\"]},\"contracts/erc3643/compliance/modular/modules/IModule.sol\":{\"keccak256\":\"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c\",\"dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk\"]},\"contracts/erc3643/compliance/modular/modules/TimeExchangeLimitsModule.sol\":{\"keccak256\":\"0x3d172b788d50371b7e78f6edfc140c785c8326829dfa098da52558bf536c7266\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a58f5cf340777e72cedcb639edfd19e1aafbabc030d5c80fe894e4dbc5bb88fe\",\"dweb:/ipfs/QmPaGemqQQV9CBSBWEQ3S5Pocz5edxULiQwdx7H1JMvBQ1\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"compliance","type":"address"},{"internalType":"uint256","name":"arraySize","type":"uint256"}],"type":"error","name":"LimitsArraySizeExceeded"},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"}],"type":"error","name":"ONCHAINIDAlreadyTaggedAsExchange"},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"}],"type":"error","name":"ONCHAINIDNotTaggedAsExchange"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_newExchangeID","type":"address","indexed":false}],"type":"event","name":"ExchangeIDAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address","indexed":false}],"type":"event","name":"ExchangeIDRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"compliance","type":"address","indexed":true},{"internalType":"address","name":"_exchangeID","type":"address","indexed":false},{"internalType":"uint256","name":"_limitValue","type":"uint256","indexed":false},{"internalType":"uint32","name":"_limitTime","type":"uint32","indexed":false}],"type":"event","name":"ExchangeLimitUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addExchangeID"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindCompliance"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"canComplianceBind","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"compliance","type":"address"},{"internalType":"address","name":"_exchangeID","type":"address"},{"internalType":"address","name":"_investorID","type":"address"},{"internalType":"uint32","name":"_limitTime","type":"uint32"}],"stateMutability":"view","type":"function","name":"getExchangeCounter","outputs":[{"internalType":"struct TimeExchangeLimitsModule.ExchangeTransferCounter","name":"","type":"tuple","components":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"timer","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"compliance","type":"address"},{"internalType":"address","name":"_exchangeID","type":"address"}],"stateMutability":"view","type":"function","name":"getExchangeLimits","outputs":[{"internalType":"struct TimeExchangeLimitsModule.Limit[]","name":"","type":"tuple[]","components":[{"internalType":"uint32","name":"limitTime","type":"uint32"},{"internalType":"uint256","name":"limitValue","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"}],"stateMutability":"view","type":"function","name":"isExchangeID","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPlugAndPlay","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleBurnAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"moduleCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleMintAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleTransferAction"},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeExchangeID"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_exchangeID","type":"address"},{"internalType":"struct TimeExchangeLimitsModule.Limit","name":"_limit","type":"tuple","components":[{"internalType":"uint32","name":"limitTime","type":"uint32"},{"internalType":"uint256","name":"limitValue","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"setExchangeLimit"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindCompliance"}],"devdoc":{"kind":"dev","methods":{"addExchangeID(address)":{"details":"tags the ONCHAINID as being an exchange ID","params":{"_exchangeID":"ONCHAINID to be tagged Function can be called only by the owner of this module Cannot be called on an address already tagged as being an exchange emits an `ExchangeIDAdded` event"}},"bindCompliance(address)":{"details":"See {IModule-bindCompliance}."},"canComplianceBind(address)":{"details":"See {IModule-canComplianceBind}."},"getExchangeCounter(address,address,address,uint32)":{"details":"getter for `exchangeCounters` variable on the timer parameter of the ExchangeTransferCounter struct","params":{"_exchangeID":"the ONCHAINID of the exchange","_investorID":"the ONCHAINID of the investor to be checked","_limitTime":"limit time frame returns the counter of the given `_limitTime`, `_investorID`, and `exchangeID`","compliance":"the compliance smart contract address to be checked"}},"getExchangeLimits(address,address)":{"details":"getter for `exchangeLimit` variable","params":{"_exchangeID":"exchange ONCHAINID returns the array of limits set for that exchange","compliance":"the Compliance smart contract to be checked"}},"isComplianceBound(address)":{"details":"See {IModule-isComplianceBound}."},"isExchangeID(address)":{"details":"getter for `_exchangeIDs` variable tells to the caller if an ONCHAINID belongs to an exchange or not","params":{"_exchangeID":"ONCHAINID to be checked returns TRUE if the address corresponds to an exchange, FALSE otherwise"}},"isPlugAndPlay()":{"details":"See {IModule-isPlugAndPlay}."},"moduleBurnAction(address,uint256)":{"details":"See {IModule-moduleBurnAction}."},"moduleCheck(address,address,uint256,address)":{"details":"See {IModule-moduleCheck}."},"moduleMintAction(address,uint256)":{"details":"See {IModule-moduleMintAction}."},"moduleTransferAction(address,address,uint256)":{"details":"See {IModule-moduleTransferAction}."},"name()":{"details":"See {IModule-name}."},"owner()":{"details":"Returns the address of the current owner."},"removeExchangeID(address)":{"details":"untags the ONCHAINID as being an exchange ID","params":{"_exchangeID":"ONCHAINID to be untagged Function can be called only by the owner of this module Cannot be called on an address not tagged as being an exchange emits an `ExchangeIDRemoved` event"}},"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."},"setExchangeLimit(address,(uint32,uint256))":{"details":"Sets the limit of tokens allowed to be transferred to the given exchangeID in a given period of time","params":{"_exchangeID":"ONCHAINID of the exchange","_limit":"The limit time and value Only the Compliance smart contract can call this function emits an `ExchangeLimitUpdated` event"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unbindCompliance(address)":{"details":"See {IModule-unbindCompliance}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/modular/modules/TimeExchangeLimitsModule.sol":"TimeExchangeLimitsModule"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/AbstractModule.sol":{"keccak256":"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3","urls":["bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8","dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/IModule.sol":{"keccak256":"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02","urls":["bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c","dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/TimeExchangeLimitsModule.sol":{"keccak256":"0x3d172b788d50371b7e78f6edfc140c785c8326829dfa098da52558bf536c7266","urls":["bzz-raw://a58f5cf340777e72cedcb639edfd19e1aafbabc030d5c80fe894e4dbc5bb88fe","dweb:/ipfs/QmPaGemqQQV9CBSBWEQ3S5Pocz5edxULiQwdx7H1JMvBQ1"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":55} \ No newline at end of file diff --git a/out/TimeTransfersLimitsModule.sol/TimeTransfersLimitsModule.json b/out/TimeTransfersLimitsModule.sol/TimeTransfersLimitsModule.json new file mode 100644 index 0000000..cad375e --- /dev/null +++ b/out/TimeTransfersLimitsModule.sol/TimeTransfersLimitsModule.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"bindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canComplianceBind","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getTimeTransferLimits","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"limits","type":"tuple[]","internalType":"struct TimeTransfersLimitsModule.Limit[]","components":[{"name":"limitTime","type":"uint32","internalType":"uint32"},{"name":"limitValue","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"isComplianceBound","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPlugAndPlay","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"limitValues","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"attributedLimit","type":"bool","internalType":"bool"},{"name":"limitIndex","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"moduleBurnAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleCheck","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleMintAction","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleTransferAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"setTimeTransferLimit","inputs":[{"name":"_limit","type":"tuple","internalType":"struct TimeTransfersLimitsModule.Limit","components":[{"name":"limitTime","type":"uint32","internalType":"uint32"},{"name":"limitValue","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferLimits","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"limitTime","type":"uint32","internalType":"uint32"},{"name":"limitValue","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"unbindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"usersCounters","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"timer","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ComplianceBound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ComplianceUnbound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TimeTransferLimitUpdated","inputs":[{"name":"compliance","type":"address","indexed":true,"internalType":"address"},{"name":"limitTime","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"limitValue","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"LimitsArraySizeExceeded","inputs":[{"name":"compliance","type":"address","internalType":"address"},{"name":"arraySize","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50611213806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063388ebb1511610097578063bcc2105311610066578063bcc21053146102c7578063d09b3be0146102db578063e6f5e807146102ee578063f104a8c91461022657600080fd5b8063388ebb15146102395780634a932544146102595780634cf4d2951461026c57806353ccd57d1461029857600080fd5b8063189fa403116100d3578063189fa403146101765780632cb7e1ec146101c35780632f6bbc5d146101d6578063372491a21461022657600080fd5b8063013b7ce4146100fa5780630694a5fb1461012257806306fdde0314610137575b600080fd5b61010d610108366004610e6f565b6102f5565b60405190151581526020015b60405180910390f35b610135610130366004610ec2565b6104e0565b005b604080518082018252601981527f54696d655472616e73666572734c696d6974734d6f64756c6500000000000000602082015290516101199190610ee6565b6101ae610184366004610f47565b60036020908152600093845260408085208252928452828420905282529020805460019091015482565b60408051928352602083019190915201610119565b6101356101d1366004610f92565b6105df565b61020d6101e4366004610fd3565b600160209081526000928352604080842090915290825290205460ff8082169161010090041682565b60408051921515835260ff909116602083015201610119565b61013561023436600461100c565b61061e565b61024c610247366004610ec2565b610651565b6040516101199190611038565b610135610267366004610ec2565b6106d9565b61010d61027a366004610ec2565b6001600160a01b031660009081526020819052604090205460ff1690565b6102ab6102a636600461100c565b61080c565b6040805163ffffffff9093168352602083019190915201610119565b61010d6102d5366004610ec2565b50600190565b6101356102e936600461108d565b61084f565b600161010d565b60006001600160a01b03851661030d575060016104d8565b6103178286610a95565b15610324575060016104d8565b60006103308387610b6e565b905060005b6001600160a01b0384166000908152600260205260409020548110156104d1576001600160a01b038416600090815260026020526040902080548290811061037f5761037f6110a5565b9060005260206000209060020201600101548511156103a3576000925050506104d8565b6103fa848360026000886001600160a01b03166001600160a01b0316815260200190815260200160002084815481106103de576103de6110a5565b600091825260209091206002909102015463ffffffff16610c9f565b1580156104b957506001600160a01b038416600090815260026020526040902080548290811061042c5761042c6110a5565b60009182526020808320600292830201600101546001600160a01b038881168086526003845260408087209289168752918452818620908652939092529083208054919389939290919086908110610486576104866110a5565b6000918252602080832060029092029091015463ffffffff1683528201929092526040019020546104b791906110bb565b115b156104c9576000925050506104d8565b600101610335565b5060019150505b949350505050565b3360009081526020819052604090205460ff166105185760405162461bcd60e51b815260040161050f906110dc565b60405180910390fd5b6001600160a01b03811661056e5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161050f565b336001600160a01b038216146105965760405162461bcd60e51b815260040161050f90611113565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff1661060e5760405162461bcd60e51b815260040161050f906110dc565b610619338483610cdf565b505050565b3360009081526020819052604090205460ff1661064d5760405162461bcd60e51b815260040161050f906110dc565b5050565b6001600160a01b0381166000908152600260209081526040808320805482518185028101850190935280835260609492939192909184015b828210156106ce5760008481526020908190206040805180820190915260028502909101805463ffffffff168252600190810154828401529083529092019101610689565b505050509050919050565b6001600160a01b03811661072f5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161050f565b6001600160a01b03811660009081526020819052604090205460ff16156107985760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e640000000000000000604482015260640161050f565b336001600160a01b038216146107c05760405162461bcd60e51b815260040161050f90611113565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b6002602052816000526040600020818154811061082857600080fd5b60009182526020909120600290910201805460019091015463ffffffff9091169250905082565b3360009081526020819052604090205460ff1661087e5760405162461bcd60e51b815260040161050f906110dc565b336000908152600160209081526040822090829061089e90850185611154565b63ffffffff16815260208082019290925260409081016000908120543382526002909352205460ff9091169150811580156108dd575060048160ff1610155b15610906576040516382f520a960e01b815233600482015260ff8216602482015260440161050f565b81158015610917575060048160ff16105b156109c65733600090815260026020818152604083208054600181018255908452922085929091020161094a8282611171565b5050604080518082018252600180825260ff8416602080840191909152336000908152918152928120919261098190870187611154565b63ffffffff16815260208082019290925260400160002082518154939092015160ff166101000261ff00199215159290921661ffff1990931692909217179055610a40565b33600090815260026020908152604080832060018352908320869391929091906109f290850185611154565b63ffffffff168152602081019190915260400160002054815461010090910460ff16908110610a2357610a236110a5565b90600052602060002090600202018181610a3d9190611171565b50505b337f172f792abfbfd784dac801573197a4dc27fe914e9bb2756ff598a68a359c29c2610a6f6020860186611154565b6040805163ffffffff9092168252602080880135908301520160405180910390a2505050565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ad5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af9919061119e565b6040516307feec1960e21b81526001600160a01b0384811660048301529190911690631ffbb06490602401602060405180830381865afa158015610b41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6591906111bb565b90505b92915050565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd2919061119e565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c33919061119e565b604051633c3ad79560e21b81526001600160a01b038481166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b65919061119e565b6001600160a01b03928316600090815260036020908152604080832094909516825292835283812063ffffffff9290921681529152206001015442101590565b6000610ceb8484610b6e565b905060005b6001600160a01b038516600090815260026020526040902054811015610df157610d67858360026000896001600160a01b03166001600160a01b031681526020019081526020016000208481548110610d4b57610d4b6110a5565b600091825260209091206002909102015463ffffffff16610df8565b6001600160a01b03808616600081815260036020908152604080832094871683529381528382209282526002905291822080548693919085908110610dae57610dae6110a5565b6000918252602080832060029092029091015463ffffffff16835282019290925260400181208054909190610de49084906110bb565b9091555050600101610cf0565b5050505050565b610e03838383610c9f565b15610619576001600160a01b038084166000908152600360209081526040808320938616835292815282822063ffffffff8516808452915291902090610e4990426110bb565b600182015560009055505050565b6001600160a01b0381168114610e6c57600080fd5b50565b60008060008060808587031215610e8557600080fd5b8435610e9081610e57565b93506020850135610ea081610e57565b9250604085013591506060850135610eb781610e57565b939692955090935050565b600060208284031215610ed457600080fd5b8135610edf81610e57565b9392505050565b60006020808352835180602085015260005b81811015610f1457858101830151858201604001528201610ef8565b506000604082860101526040601f19601f8301168501019250505092915050565b63ffffffff81168114610e6c57600080fd5b600080600060608486031215610f5c57600080fd5b8335610f6781610e57565b92506020840135610f7781610e57565b91506040840135610f8781610f35565b809150509250925092565b600080600060608486031215610fa757600080fd5b8335610fb281610e57565b92506020840135610fc281610e57565b929592945050506040919091013590565b60008060408385031215610fe657600080fd5b8235610ff181610e57565b9150602083013561100181610f35565b809150509250929050565b6000806040838503121561101f57600080fd5b823561102a81610e57565b946020939093013593505050565b602080825282518282018190526000919060409081850190868401855b82811015611080578151805163ffffffff168552860151868501529284019290850190600101611055565b5091979650505050505050565b60006040828403121561109f57600080fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b80820180821115610b6857634e487b7160e01b600052601160045260246000fd5b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b60006020828403121561116657600080fd5b8135610edf81610f35565b813561117c81610f35565b63ffffffff811663ffffffff1983541617825550602082013560018201555050565b6000602082840312156111b057600080fd5b8151610edf81610e57565b6000602082840312156111cd57600080fd5b81518015158114610edf57600080fdfea2646970667358221220a610bc76533423f948567069641724f57df2b47e37d3f576f8a668c35118a02e64736f6c63430008180033","sourceMap":"3985:7907:56:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063388ebb1511610097578063bcc2105311610066578063bcc21053146102c7578063d09b3be0146102db578063e6f5e807146102ee578063f104a8c91461022657600080fd5b8063388ebb15146102395780634a932544146102595780634cf4d2951461026c57806353ccd57d1461029857600080fd5b8063189fa403116100d3578063189fa403146101765780632cb7e1ec146101c35780632f6bbc5d146101d6578063372491a21461022657600080fd5b8063013b7ce4146100fa5780630694a5fb1461012257806306fdde0314610137575b600080fd5b61010d610108366004610e6f565b6102f5565b60405190151581526020015b60405180910390f35b610135610130366004610ec2565b6104e0565b005b604080518082018252601981527f54696d655472616e73666572734c696d6974734d6f64756c6500000000000000602082015290516101199190610ee6565b6101ae610184366004610f47565b60036020908152600093845260408085208252928452828420905282529020805460019091015482565b60408051928352602083019190915201610119565b6101356101d1366004610f92565b6105df565b61020d6101e4366004610fd3565b600160209081526000928352604080842090915290825290205460ff8082169161010090041682565b60408051921515835260ff909116602083015201610119565b61013561023436600461100c565b61061e565b61024c610247366004610ec2565b610651565b6040516101199190611038565b610135610267366004610ec2565b6106d9565b61010d61027a366004610ec2565b6001600160a01b031660009081526020819052604090205460ff1690565b6102ab6102a636600461100c565b61080c565b6040805163ffffffff9093168352602083019190915201610119565b61010d6102d5366004610ec2565b50600190565b6101356102e936600461108d565b61084f565b600161010d565b60006001600160a01b03851661030d575060016104d8565b6103178286610a95565b15610324575060016104d8565b60006103308387610b6e565b905060005b6001600160a01b0384166000908152600260205260409020548110156104d1576001600160a01b038416600090815260026020526040902080548290811061037f5761037f6110a5565b9060005260206000209060020201600101548511156103a3576000925050506104d8565b6103fa848360026000886001600160a01b03166001600160a01b0316815260200190815260200160002084815481106103de576103de6110a5565b600091825260209091206002909102015463ffffffff16610c9f565b1580156104b957506001600160a01b038416600090815260026020526040902080548290811061042c5761042c6110a5565b60009182526020808320600292830201600101546001600160a01b038881168086526003845260408087209289168752918452818620908652939092529083208054919389939290919086908110610486576104866110a5565b6000918252602080832060029092029091015463ffffffff1683528201929092526040019020546104b791906110bb565b115b156104c9576000925050506104d8565b600101610335565b5060019150505b949350505050565b3360009081526020819052604090205460ff166105185760405162461bcd60e51b815260040161050f906110dc565b60405180910390fd5b6001600160a01b03811661056e5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161050f565b336001600160a01b038216146105965760405162461bcd60e51b815260040161050f90611113565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff1661060e5760405162461bcd60e51b815260040161050f906110dc565b610619338483610cdf565b505050565b3360009081526020819052604090205460ff1661064d5760405162461bcd60e51b815260040161050f906110dc565b5050565b6001600160a01b0381166000908152600260209081526040808320805482518185028101850190935280835260609492939192909184015b828210156106ce5760008481526020908190206040805180820190915260028502909101805463ffffffff168252600190810154828401529083529092019101610689565b505050509050919050565b6001600160a01b03811661072f5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161050f565b6001600160a01b03811660009081526020819052604090205460ff16156107985760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e640000000000000000604482015260640161050f565b336001600160a01b038216146107c05760405162461bcd60e51b815260040161050f90611113565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b6002602052816000526040600020818154811061082857600080fd5b60009182526020909120600290910201805460019091015463ffffffff9091169250905082565b3360009081526020819052604090205460ff1661087e5760405162461bcd60e51b815260040161050f906110dc565b336000908152600160209081526040822090829061089e90850185611154565b63ffffffff16815260208082019290925260409081016000908120543382526002909352205460ff9091169150811580156108dd575060048160ff1610155b15610906576040516382f520a960e01b815233600482015260ff8216602482015260440161050f565b81158015610917575060048160ff16105b156109c65733600090815260026020818152604083208054600181018255908452922085929091020161094a8282611171565b5050604080518082018252600180825260ff8416602080840191909152336000908152918152928120919261098190870187611154565b63ffffffff16815260208082019290925260400160002082518154939092015160ff166101000261ff00199215159290921661ffff1990931692909217179055610a40565b33600090815260026020908152604080832060018352908320869391929091906109f290850185611154565b63ffffffff168152602081019190915260400160002054815461010090910460ff16908110610a2357610a236110a5565b90600052602060002090600202018181610a3d9190611171565b50505b337f172f792abfbfd784dac801573197a4dc27fe914e9bb2756ff598a68a359c29c2610a6f6020860186611154565b6040805163ffffffff9092168252602080880135908301520160405180910390a2505050565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ad5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af9919061119e565b6040516307feec1960e21b81526001600160a01b0384811660048301529190911690631ffbb06490602401602060405180830381865afa158015610b41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6591906111bb565b90505b92915050565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd2919061119e565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c33919061119e565b604051633c3ad79560e21b81526001600160a01b038481166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b65919061119e565b6001600160a01b03928316600090815260036020908152604080832094909516825292835283812063ffffffff9290921681529152206001015442101590565b6000610ceb8484610b6e565b905060005b6001600160a01b038516600090815260026020526040902054811015610df157610d67858360026000896001600160a01b03166001600160a01b031681526020019081526020016000208481548110610d4b57610d4b6110a5565b600091825260209091206002909102015463ffffffff16610df8565b6001600160a01b03808616600081815260036020908152604080832094871683529381528382209282526002905291822080548693919085908110610dae57610dae6110a5565b6000918252602080832060029092029091015463ffffffff16835282019290925260400181208054909190610de49084906110bb565b9091555050600101610cf0565b5050505050565b610e03838383610c9f565b15610619576001600160a01b038084166000908152600360209081526040808320938616835292815282822063ffffffff8516808452915291902090610e4990426110bb565b600182015560009055505050565b6001600160a01b0381168114610e6c57600080fd5b50565b60008060008060808587031215610e8557600080fd5b8435610e9081610e57565b93506020850135610ea081610e57565b9250604085013591506060850135610eb781610e57565b939692955090935050565b600060208284031215610ed457600080fd5b8135610edf81610e57565b9392505050565b60006020808352835180602085015260005b81811015610f1457858101830151858201604001528201610ef8565b506000604082860101526040601f19601f8301168501019250505092915050565b63ffffffff81168114610e6c57600080fd5b600080600060608486031215610f5c57600080fd5b8335610f6781610e57565b92506020840135610f7781610e57565b91506040840135610f8781610f35565b809150509250925092565b600080600060608486031215610fa757600080fd5b8335610fb281610e57565b92506020840135610fc281610e57565b929592945050506040919091013590565b60008060408385031215610fe657600080fd5b8235610ff181610e57565b9150602083013561100181610f35565b809150509250929050565b6000806040838503121561101f57600080fd5b823561102a81610e57565b946020939093013593505050565b602080825282518282018190526000919060409081850190868401855b82811015611080578151805163ffffffff168552860151868501529284019290850190600101611055565b5091979650505050505050565b60006040828403121561109f57600080fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b80820180821115610b6857634e487b7160e01b600052601160045260246000fd5b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b60006020828403121561116657600080fd5b8135610edf81610f35565b813561117c81610f35565b63ffffffff811663ffffffff1983541617825550602082013560018201555050565b6000602082840312156111b057600080fd5b8151610edf81610e57565b6000602082840312156111cd57600080fd5b81518015158114610edf57600080fdfea2646970667358221220a610bc76533423f948567069641724f57df2b47e37d3f576f8a668c35118a02e64736f6c63430008180033","sourceMap":"3985:7907:56:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6953:959;;;;;;:::i;:::-;;:::i;:::-;;;918:14:165;;911:22;893:41;;881:2;866:18;6953:959:56;;;;;;;;5018:343:44;;;;;;:::i;:::-;;:::i;:::-;;8628:109:56;8696:34;;;;;;;;;;;;;;;;8628:109;;;;8696:34;8628:109;:::i;4571:95::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2582:25:165;;;2638:2;2623:18;;2616:34;;;;2555:18;4571:95:56;2408:248:165;6293:176:56;;;;;;:::i;:::-;;:::i;4367:68::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3702:14:165;;3695:22;3677:41;;3766:4;3754:17;;;3749:2;3734:18;;3727:45;3650:18;4367:68:56;3513:265:165;6795:96:56;;;;;;:::i;:::-;;:::i;8083:149::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4555:396:44:-;;;;;;:::i;:::-;;:::i;5429:139::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5532:29:44;5509:4;5532:29;;;;;;;;;;;;;;5429:139;4480:49:56;;;;;;:::i;:::-;;:::i;:::-;;;;5113:10:165;5101:23;;;5083:42;;5156:2;5141:18;;5134:34;;;;5056:18;4480:49:56;4911:263:165;8300:118:56;;;;;;:::i;:::-;-1:-1:-1;8407:4:56;;8300:118;5432:790;;;;;;:::i;:::-;;:::i;8482:91::-;8562:4;8482:91;;6953:959;7113:4;-1:-1:-1;;;;;7133:19:56;;7129:61;;-1:-1:-1;7175:4:56;7168:11;;7129:61;7204:33;7218:11;7231:5;7204:13;:33::i;:::-;7200:75;;;-1:-1:-1;7260:4:56;7253:11;;7200:75;7285:22;7310:32;7323:11;7336:5;7310:12;:32::i;:::-;7285:57;;7357:9;7352:532;-1:-1:-1;;;;;7376:27:56;;;;;;:14;:27;;;;;:34;7372:38;;7352:532;;;-1:-1:-1;;;;;7444:27:56;;;;;;:14;:27;;;;;:30;;7472:1;;7444:30;;;;;;:::i;:::-;;;;;;;;;;;:41;;;7435:6;:50;7431:101;;;7512:5;7505:12;;;;;;7431:101;7551:93;7574:11;7587:14;7603;:27;7618:11;-1:-1:-1;;;;;7603:27:56;-1:-1:-1;;;;;7603:27:56;;;;;;;;;;;;7631:1;7603:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:40;;;7551:22;:93::i;:::-;7550:94;:277;;;;-1:-1:-1;;;;;;7786:27:56;;;;;;:14;:27;;;;;:30;;7814:1;;7786:30;;;;;;:::i;:::-;;;;;;;;;;;;;;:41;;;-1:-1:-1;;;;;7664:26:56;;;;;;:13;:26;;;;;;:42;;;;;;;;;;;7707:27;;;;;;;;;;:30;;7786:41;;7757:6;;7664:42;7786:30;;7707:27;7735:1;;7707:30;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:40;;;7664:84;;;;;;;;;;;;:90;:99;;;;:::i;:::-;:163;7550:277;7546:328;;;7854:5;7847:12;;;;;;7546:328;7412:3;;7352:532;;;;7901:4;7894:11;;;6953:959;;;;;;;:::o;5018:343:44:-;4426:10;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5120:25:44;::::1;5112:69;;;::::0;-1:-1:-1;;;5112:69:44;;6296:2:165;5112:69:44::1;::::0;::::1;6278:21:165::0;6335:2;6315:18;;;6308:30;6374:33;6354:18;;;6347:61;6425:18;;5112:69:44::1;6094:355:165::0;5112:69:44::1;5199:10;-1:-1:-1::0;;;;;5199:25:44;::::1;;5191:71;;;;-1:-1:-1::0;;;5191:71:44::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5272:29:44;::::1;5304:5;5272:29:::0;;;::::1;::::0;;;;;;;:37;;-1:-1:-1;;5272:37:44::1;::::0;;5324:30;::::1;::::0;5304:5;5324:30:::1;5018:343:::0;:::o;6293:176:56:-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;6418:44:56::1;6436:10;6448:5;6455:6;6418:17;:44::i;:::-;6293:176:::0;;;:::o;6795:96::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;6795:96:56;;:::o;8083:149::-;-1:-1:-1;;;;;8198:27:56;;;;;;:14;:27;;;;;;;;8191:34;;;;;;;;;;;;;;;;;8158:21;;8191:34;;8198:27;;8191:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8083:149;;;:::o;4555:396:44:-;-1:-1:-1;;;;;4636:25:44;;4628:69;;;;-1:-1:-1;;;4628:69:44;;6296:2:165;4628:69:44;;;6278:21:165;6335:2;6315:18;;;6308:30;6374:33;6354:18;;;6347:61;6425:18;;4628:69:44;6094:355:165;4628:69:44;-1:-1:-1;;;;;4716:29:44;;:16;:29;;;;;;;;;;;;;4715:30;4707:67;;;;-1:-1:-1;;;4707:67:44;;7058:2:165;4707:67:44;;;7040:21:165;7097:2;7077:18;;;7070:30;7136:26;7116:18;;;7109:54;7180:18;;4707:67:44;6856:348:165;4707:67:44;4792:10;-1:-1:-1;;;;;4792:25:44;;;4784:71;;;;-1:-1:-1;;;4784:71:44;;;;;;;:::i;:::-;-1:-1:-1;;;;;4865:29:44;;:16;:29;;;;;;;;;;;:36;;-1:-1:-1;;4865:36:44;4897:4;4865:36;;;4916:28;;;4865:16;4916:28;4555:396;:::o;4480:49:56:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4480:49:56;-1:-1:-1;4480:49:56;:::o;5432:790::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;5560:10:56::1;5523:22;5548:23:::0;;;:11:::1;:23;::::0;;;;;;;5523:22;;5572:16:::1;::::0;;::::1;:6:::0;:16:::1;:::i;:::-;5548:41;;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;5548:41:56;;;:57;5655:10:::1;5640:26:::0;;:14:::1;:26:::0;;;;:33;5548:57:::1;::::0;;::::1;::::0;-1:-1:-1;5688:18:56;::::1;:37:::0;::::1;;;;5724:1;5710:10;:15;;;;5688:37;5684:122;;;5748:47;::::0;-1:-1:-1;;;5748:47:56;;5772:10:::1;5748:47;::::0;::::1;7631:51:165::0;7730:4;7718:17;;7698:18;;;7691:45;7604:18;;5748:47:56::1;7459:283:165::0;5684:122:56::1;5820:17;5819:18;:36;;;;;5854:1;5841:10;:14;;;5819:36;5815:312;;;5886:10;5871:26;::::0;;;:14:::1;:26;::::0;;;;;;:39;;::::1;::::0;::::1;::::0;;;;;;;5903:6;;5871:39;;::::1;;;5903:6:::0;5871:39;::::1;:::i;:::-;-1:-1:-1::0;;5968:28:56::1;::::0;;;;::::1;::::0;;5979:4:::1;5968:28:::0;;;::::1;::::0;::::1;;::::0;;::::1;::::0;;;;5936:10:::1;-1:-1:-1::0;5924:23:56;;;;;;;;;5968:28;;5948:16:::1;::::0;;::::1;:6:::0;:16:::1;:::i;:::-;5924:41;;::::0;;::::1;::::0;;::::1;::::0;;;;;;-1:-1:-1;5924:41:56;:72;;;;;;;::::1;::::0;::::1;;;;-1:-1:-1::0;;5924:72:56;::::1;;::::0;;;;-1:-1:-1;;5924:72:56;;;;;;;::::1;::::0;;5815:312:::1;;;6042:10;6027:26;::::0;;;:14:::1;:26;::::0;;;;;;;6054:11:::1;:23:::0;;;;;6110:6;;6027:26;;6054:23;;6027:26;6078:16:::1;::::0;;::::1;6110:6:::0;6078:16:::1;:::i;:::-;6054:41;;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;6054:41:56;:52;6027:80;;6054:52:::1;::::0;;::::1;;;::::0;6027:80;::::1;;;;;:::i;:::-;;;;;;;;;;;:89;;;;;;:::i;:::-;-1:-1:-1::0;;5815:312:56::1;6167:10;6142:73;6179:16;;::::0;::::1;:6:::0;:16:::1;:::i;:::-;6142:73;::::0;;5113:10:165;5101:23;;;5083:42;;6197:17:56::1;::::0;;::::1;;5141:18:165::0;;;5134:34;5056:18;6142:73:56::1;;;;;;;5513:709;;5432:790:::0;:::o;11693:197::-;11781:4;11833:10;-1:-1:-1;;;;;11814:44:56;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11804:79;;-1:-1:-1;;;11804:79:56;;-1:-1:-1;;;;;8533:32:165;;;11804:79:56;;;8515:51:165;11804:65:56;;;;;;;8488:18:165;;11804:79:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11797:86;;11693:197;;;;;:::o;11144:240::-;11232:7;11292:11;-1:-1:-1;;;;;11273:45:56;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11266:72:56;;:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:110;;-1:-1:-1;;;11266:110:56;;-1:-1:-1;;;;;8533:32:165;;;11266:110:56;;;8515:51:165;11266:83:56;;;;;;;8488:18:165;;11266:110:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10694:218::-;-1:-1:-1;;;;;10831:26:56;;;10808:4;10831:26;;;:13;:26;;;;;;;;:37;;;;;;;;;;;;:49;;;;;;;;;;:55;;;10890:15;-1:-1:-1;10831:74:56;;10694:218::o;9117:459::-;9222:16;9241:39;9254:11;9267:12;9241;:39::i;:::-;9222:58;;9295:9;9290:280;-1:-1:-1;;;;;9314:27:56;;;;;;:14;:27;;;;;:34;9310:38;;9290:280;;;9369:82;9387:11;9400:8;9410:14;:27;9425:11;-1:-1:-1;;;;;9410:27:56;-1:-1:-1;;;;;9410:27:56;;;;;;;;;;;;9438:1;9410:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:40;;;9369:17;:82::i;:::-;-1:-1:-1;;;;;9465:26:56;;;;;;;:13;:26;;;;;;;;:36;;;;;;;;;;;9502:27;;;:14;:27;;;;;:30;;9553:6;;9465:26;9502:27;9530:1;;9502:30;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:40;;;9465:78;;;;;;;;;;;;:94;;:78;;9502:30;9465:94;;;;;:::i;:::-;;;;-1:-1:-1;;9350:3:56;;9290:280;;;;9212:364;9117:459;;;:::o;9929:372::-;10038:58;10061:11;10074:9;10085:10;10038:22;:58::i;:::-;10034:261;;;-1:-1:-1;;;;;10146:26:56;;;10112:31;10146:26;;;:13;:26;;;;;;;;:37;;;;;;;;;;;:49;;;;;;;;;;;;10225:28;;:15;:28;:::i;:::-;10209:13;;;:44;10283:1;10267:17;;9929:372;;;:::o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:598::-;236:6;244;252;260;313:3;301:9;292:7;288:23;284:33;281:53;;;330:1;327;320:12;281:53;369:9;356:23;388:31;413:5;388:31;:::i;:::-;438:5;-1:-1:-1;495:2:165;480:18;;467:32;508:33;467:32;508:33;:::i;:::-;560:7;-1:-1:-1;614:2:165;599:18;;586:32;;-1:-1:-1;670:2:165;655:18;;642:32;683:33;642:32;683:33;:::i;:::-;150:598;;;;-1:-1:-1;150:598:165;;-1:-1:-1;;150:598:165:o;945:247::-;1004:6;1057:2;1045:9;1036:7;1032:23;1028:32;1025:52;;;1073:1;1070;1063:12;1025:52;1112:9;1099:23;1131:31;1156:5;1131:31;:::i;:::-;1181:5;945:247;-1:-1:-1;;;945:247:165:o;1197:548::-;1309:4;1338:2;1367;1356:9;1349:21;1399:6;1393:13;1442:6;1437:2;1426:9;1422:18;1415:34;1467:1;1477:140;1491:6;1488:1;1485:13;1477:140;;;1586:14;;;1582:23;;1576:30;1552:17;;;1571:2;1548:26;1541:66;1506:10;;1477:140;;;1481:3;1666:1;1661:2;1652:6;1641:9;1637:22;1633:31;1626:42;1736:2;1729;1725:7;1720:2;1712:6;1708:15;1704:29;1693:9;1689:45;1685:54;1677:62;;;;1197:548;;;;:::o;1750:121::-;1835:10;1828:5;1824:22;1817:5;1814:33;1804:61;;1861:1;1858;1851:12;1876:527;1952:6;1960;1968;2021:2;2009:9;2000:7;1996:23;1992:32;1989:52;;;2037:1;2034;2027:12;1989:52;2076:9;2063:23;2095:31;2120:5;2095:31;:::i;:::-;2145:5;-1:-1:-1;2202:2:165;2187:18;;2174:32;2215:33;2174:32;2215:33;:::i;:::-;2267:7;-1:-1:-1;2326:2:165;2311:18;;2298:32;2339;2298;2339;:::i;:::-;2390:7;2380:17;;;1876:527;;;;;:::o;2661:456::-;2738:6;2746;2754;2807:2;2795:9;2786:7;2782:23;2778:32;2775:52;;;2823:1;2820;2813:12;2775:52;2862:9;2849:23;2881:31;2906:5;2881:31;:::i;:::-;2931:5;-1:-1:-1;2988:2:165;2973:18;;2960:32;3001:33;2960:32;3001:33;:::i;:::-;2661:456;;3053:7;;-1:-1:-1;;;3107:2:165;3092:18;;;;3079:32;;2661:456::o;3122:386::-;3189:6;3197;3250:2;3238:9;3229:7;3225:23;3221:32;3218:52;;;3266:1;3263;3256:12;3218:52;3305:9;3292:23;3324:31;3349:5;3324:31;:::i;:::-;3374:5;-1:-1:-1;3431:2:165;3416:18;;3403:32;3444;3403;3444;:::i;:::-;3495:7;3485:17;;;3122:386;;;;;:::o;3783:315::-;3851:6;3859;3912:2;3900:9;3891:7;3887:23;3883:32;3880:52;;;3928:1;3925;3918:12;3880:52;3967:9;3954:23;3986:31;4011:5;3986:31;:::i;:::-;4036:5;4088:2;4073:18;;;;4060:32;;-1:-1:-1;;;3783:315:165:o;4103:803::-;4322:2;4374:21;;;4444:13;;4347:18;;;4466:22;;;4293:4;;4322:2;4507;;4525:18;;;;4566:15;;;4293:4;4609:271;4623:6;4620:1;4617:13;4609:271;;;4682:13;;4724:9;;4735:10;4720:26;4708:39;;4787:11;;4781:18;4767:12;;;4760:40;4820:12;;;;4855:15;;;;4645:1;4638:9;4609:271;;;-1:-1:-1;4897:3:165;;4103:803;-1:-1:-1;;;;;;;4103:803:165:o;5179:192::-;5264:6;5317:2;5305:9;5296:7;5292:23;5288:32;5285:52;;;5333:1;5330;5323:12;5285:52;-1:-1:-1;5356:9:165;5179:192;-1:-1:-1;5179:192:165:o;5376:127::-;5437:10;5432:3;5428:20;5425:1;5418:31;5468:4;5465:1;5458:15;5492:4;5489:1;5482:15;5508:222;5573:9;;;5594:10;;;5591:133;;;5646:10;5641:3;5637:20;5634:1;5627:31;5681:4;5678:1;5671:15;5709:4;5706:1;5699:15;5735:354;5937:2;5919:21;;;5976:2;5956:18;;;5949:30;6015:32;6010:2;5995:18;;5988:60;6080:2;6065:18;;5735:354::o;6454:397::-;6656:2;6638:21;;;6695:2;6675:18;;;6668:30;6734:34;6729:2;6714:18;;6707:62;-1:-1:-1;;;6800:2:165;6785:18;;6778:31;6841:3;6826:19;;6454:397::o;7209:245::-;7267:6;7320:2;7308:9;7299:7;7295:23;7291:32;7288:52;;;7336:1;7333;7326:12;7288:52;7375:9;7362:23;7394:30;7418:5;7394:30;:::i;7747:361::-;7910:5;7897:19;7925:32;7949:7;7925:32;:::i;:::-;8030:10;8021:7;8017:24;8003:10;7999:15;7992:4;7986:11;7982:33;7979:63;7973:4;7966:77;;8097:2;8090:5;8086:14;8073:28;8069:1;8063:4;8059:12;8052:50;7747:361;;:::o;8113:251::-;8183:6;8236:2;8224:9;8215:7;8211:23;8207:32;8204:52;;;8252:1;8249;8242:12;8204:52;8284:9;8278:16;8303:31;8328:5;8303:31;:::i;8577:277::-;8644:6;8697:2;8685:9;8676:7;8672:23;8668:32;8665:52;;;8713:1;8710;8703:12;8665:52;8745:9;8739:16;8798:5;8791:13;8784:21;8777:5;8774:32;8764:60;;8820:1;8817;8810:12","linkReferences":{}},"methodIdentifiers":{"bindCompliance(address)":"4a932544","canComplianceBind(address)":"bcc21053","getTimeTransferLimits(address)":"388ebb15","isComplianceBound(address)":"4cf4d295","isPlugAndPlay()":"e6f5e807","limitValues(address,uint32)":"2f6bbc5d","moduleBurnAction(address,uint256)":"372491a2","moduleCheck(address,address,uint256,address)":"013b7ce4","moduleMintAction(address,uint256)":"f104a8c9","moduleTransferAction(address,address,uint256)":"2cb7e1ec","name()":"06fdde03","setTimeTransferLimit((uint32,uint256))":"d09b3be0","transferLimits(address,uint256)":"53ccd57d","unbindCompliance(address)":"0694a5fb","usersCounters(address,address,uint32)":"189fa403"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"compliance\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"arraySize\",\"type\":\"uint256\"}],\"name\":\"LimitsArraySizeExceeded\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"compliance\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"limitTime\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limitValue\",\"type\":\"uint256\"}],\"name\":\"TimeTransferLimitUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"bindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"canComplianceBind\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"getTimeTransferLimits\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"limitTime\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"limitValue\",\"type\":\"uint256\"}],\"internalType\":\"struct TimeTransfersLimitsModule.Limit[]\",\"name\":\"limits\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"isComplianceBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPlugAndPlay\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"limitValues\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"attributedLimit\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"limitIndex\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleBurnAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"moduleCheck\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleMintAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleTransferAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"limitTime\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"limitValue\",\"type\":\"uint256\"}],\"internalType\":\"struct TimeTransfersLimitsModule.Limit\",\"name\":\"_limit\",\"type\":\"tuple\"}],\"name\":\"setTimeTransferLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"transferLimits\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"limitTime\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"limitValue\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"unbindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"usersCounters\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timer\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"bindCompliance(address)\":{\"details\":\"See {IModule-bindCompliance}.\"},\"canComplianceBind(address)\":{\"details\":\"See {IModule-canComplianceBind}.\"},\"getTimeTransferLimits(address)\":{\"details\":\"getter for `transferLimits` variable\",\"params\":{\"_compliance\":\"the Compliance smart contract to be checked returns array of Limits\"}},\"isComplianceBound(address)\":{\"details\":\"See {IModule-isComplianceBound}.\"},\"isPlugAndPlay()\":{\"details\":\"See {IModule-isPlugAndPlay}.\"},\"moduleBurnAction(address,uint256)\":{\"details\":\"See {IModule-moduleBurnAction}.\"},\"moduleCheck(address,address,uint256,address)\":{\"details\":\"See {IModule-moduleCheck}.\"},\"moduleMintAction(address,uint256)\":{\"details\":\"See {IModule-moduleMintAction}.\"},\"moduleTransferAction(address,address,uint256)\":{\"details\":\"See {IModule-moduleTransferAction}.\"},\"name()\":{\"details\":\"See {IModule-name}.\"},\"setTimeTransferLimit((uint32,uint256))\":{\"details\":\"Sets the limit of tokens allowed to be transferred in the given time frame.\",\"params\":{\"_limit\":\"The limit time and value Only the owner of the Compliance smart contract can call this function\"}},\"unbindCompliance(address)\":{\"details\":\"See {IModule-unbindCompliance}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ComplianceBound(address)\":{\"notice\":\"this event is emitted when the compliance contract is bound to the module. the event is emitted by the bindCompliance function `_compliance` is the address of the compliance contract being bound\"},\"ComplianceUnbound(address)\":{\"notice\":\"this event is emitted when the compliance contract is unbound from the module. the event is emitted by the unbindCompliance function `_compliance` is the address of the compliance contract being unbound\"},\"TimeTransferLimitUpdated(address,uint32,uint256)\":{\"notice\":\"this event is emitted whenever a transfer limit is updated for the given compliance address and limit time the event is emitted by 'setTimeTransferLimit'. compliance`is the compliance contract address _limitValue is the new limit value for the given limit time _limitTime is the period of time of the limit\"}},\"kind\":\"user\",\"methods\":{\"transferLimits(address,uint256)\":{\"notice\":\"Mapping for limit time frames\"},\"usersCounters(address,address,uint32)\":{\"notice\":\"Mapping for users Counters\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/modular/modules/TimeTransfersLimitsModule.sol\":\"TimeTransfersLimitsModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/compliance/modular/modules/AbstractModule.sol\":{\"keccak256\":\"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8\",\"dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu\"]},\"contracts/erc3643/compliance/modular/modules/IModule.sol\":{\"keccak256\":\"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c\",\"dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk\"]},\"contracts/erc3643/compliance/modular/modules/TimeTransfersLimitsModule.sol\":{\"keccak256\":\"0x0f47bab70117e602702eed2d160785947c7fd9c2d9572d658f3fa80a7f4d3910\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dbae2ecfde469f6c09939e245dc110952cc06b222666cf74bcd6287e9737e3e0\",\"dweb:/ipfs/QmeigMN6TFmsMdtEJWgsDgyKKsjs6ekLnscFXZDHNqLVh1\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"compliance","type":"address"},{"internalType":"uint256","name":"arraySize","type":"uint256"}],"type":"error","name":"LimitsArraySizeExceeded"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"compliance","type":"address","indexed":true},{"internalType":"uint32","name":"limitTime","type":"uint32","indexed":false},{"internalType":"uint256","name":"limitValue","type":"uint256","indexed":false}],"type":"event","name":"TimeTransferLimitUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindCompliance"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"canComplianceBind","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"getTimeTransferLimits","outputs":[{"internalType":"struct TimeTransfersLimitsModule.Limit[]","name":"limits","type":"tuple[]","components":[{"internalType":"uint32","name":"limitTime","type":"uint32"},{"internalType":"uint256","name":"limitValue","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPlugAndPlay","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function","name":"limitValues","outputs":[{"internalType":"bool","name":"attributedLimit","type":"bool"},{"internalType":"uint8","name":"limitIndex","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleBurnAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"moduleCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleMintAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleTransferAction"},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[{"internalType":"struct TimeTransfersLimitsModule.Limit","name":"_limit","type":"tuple","components":[{"internalType":"uint32","name":"limitTime","type":"uint32"},{"internalType":"uint256","name":"limitValue","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"setTimeTransferLimit"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"transferLimits","outputs":[{"internalType":"uint32","name":"limitTime","type":"uint32"},{"internalType":"uint256","name":"limitValue","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindCompliance"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function","name":"usersCounters","outputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"timer","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"bindCompliance(address)":{"details":"See {IModule-bindCompliance}."},"canComplianceBind(address)":{"details":"See {IModule-canComplianceBind}."},"getTimeTransferLimits(address)":{"details":"getter for `transferLimits` variable","params":{"_compliance":"the Compliance smart contract to be checked returns array of Limits"}},"isComplianceBound(address)":{"details":"See {IModule-isComplianceBound}."},"isPlugAndPlay()":{"details":"See {IModule-isPlugAndPlay}."},"moduleBurnAction(address,uint256)":{"details":"See {IModule-moduleBurnAction}."},"moduleCheck(address,address,uint256,address)":{"details":"See {IModule-moduleCheck}."},"moduleMintAction(address,uint256)":{"details":"See {IModule-moduleMintAction}."},"moduleTransferAction(address,address,uint256)":{"details":"See {IModule-moduleTransferAction}."},"name()":{"details":"See {IModule-name}."},"setTimeTransferLimit((uint32,uint256))":{"details":"Sets the limit of tokens allowed to be transferred in the given time frame.","params":{"_limit":"The limit time and value Only the owner of the Compliance smart contract can call this function"}},"unbindCompliance(address)":{"details":"See {IModule-unbindCompliance}."}},"version":1},"userdoc":{"kind":"user","methods":{"transferLimits(address,uint256)":{"notice":"Mapping for limit time frames"},"usersCounters(address,address,uint32)":{"notice":"Mapping for users Counters"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/modular/modules/TimeTransfersLimitsModule.sol":"TimeTransfersLimitsModule"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/AbstractModule.sol":{"keccak256":"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3","urls":["bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8","dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/IModule.sol":{"keccak256":"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02","urls":["bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c","dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/TimeTransfersLimitsModule.sol":{"keccak256":"0x0f47bab70117e602702eed2d160785947c7fd9c2d9572d658f3fa80a7f4d3910","urls":["bzz-raw://dbae2ecfde469f6c09939e245dc110952cc06b222666cf74bcd6287e9737e3e0","dweb:/ipfs/QmeigMN6TFmsMdtEJWgsDgyKKsjs6ekLnscFXZDHNqLVh1"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":56} \ No newline at end of file diff --git a/out/Token.sol/Token.json b/out/Token.sol/Token.json new file mode 100644 index 0000000..1064437 --- /dev/null +++ b/out/Token.sol/Token.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"_spender","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"batchBurn","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchForcedTransfer","inputs":[{"name":"_fromList","type":"address[]","internalType":"address[]"},{"name":"_toList","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchFreezePartialTokens","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchMint","inputs":[{"name":"_toList","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchSetAddressFrozen","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_freeze","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchTransfer","inputs":[{"name":"_toList","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchUnfreezePartialTokens","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burn","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"compliance","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IModularCompliance"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"_spender","type":"address","internalType":"address"},{"name":"_subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"forcedTransfer","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"freezePartialTokens","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getFrozenTokens","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"identityRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IIdentityRegistry"}],"stateMutability":"view"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"_spender","type":"address","internalType":"address"},{"name":"_addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"init","inputs":[{"name":"_identityRegistry","type":"address","internalType":"address"},{"name":"_compliance","type":"address","internalType":"address"},{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_decimals","type":"uint8","internalType":"uint8"},{"name":"_onchainID","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isFrozen","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"onchainID","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"recoveryAddress","inputs":[{"name":"_lostWallet","type":"address","internalType":"address"},{"name":"_newWallet","type":"address","internalType":"address"},{"name":"_investorOnchainID","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeAgent","inputs":[{"name":"_agent","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAddressFrozen","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_freeze","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIdentityRegistry","inputs":[{"name":"_identityRegistry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setName","inputs":[{"name":"_name","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOnchainID","inputs":[{"name":"_onchainID","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSymbol","inputs":[{"name":"_symbol","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unfreezePartialTokens","inputs":[{"name":"_userAddress","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"event","name":"AddressFrozen","inputs":[{"name":"_userAddress","type":"address","indexed":true,"internalType":"address"},{"name":"_isFrozen","type":"bool","indexed":true,"internalType":"bool"},{"name":"_owner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentAdded","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AgentRemoved","inputs":[{"name":"_agent","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ComplianceAdded","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"IdentityRegistryAdded","inputs":[{"name":"_identityRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"_userAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RecoverySuccess","inputs":[{"name":"_lostWallet","type":"address","indexed":true,"internalType":"address"},{"name":"_newWallet","type":"address","indexed":true,"internalType":"address"},{"name":"_investorOnchainID","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokensFrozen","inputs":[{"name":"_userAddress","type":"address","indexed":true,"internalType":"address"},{"name":"_amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TokensUnfrozen","inputs":[{"name":"_userAddress","type":"address","indexed":true,"internalType":"address"},{"name":"_amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"_userAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UpdatedTokenInformation","inputs":[{"name":"_newName","type":"string","indexed":true,"internalType":"string"},{"name":"_newSymbol","type":"string","indexed":true,"internalType":"string"},{"name":"_newDecimals","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"_newVersion","type":"string","indexed":false,"internalType":"string"},{"name":"_newOnchainID","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60806040526009805460ff1916905534801561001a57600080fd5b506136d28061002a6000396000f3fe608060405234801561001057600080fd5b506004361061028a5760003560e01c8063715018a61161015c578063a9059cbb116100ce578063dd62ed3e11610087578063dd62ed3e146105a6578063e5839836146105df578063f2fde38b1461060b578063f89817891461061e578063f91b619c14610631578063fc7e5fa81461064457600080fd5b8063a9059cbb14610531578063aba6370514610544578063b84c82461461055a578063c47f00271461056d578063c69c09cf14610580578063cbf3f8611461059357600080fd5b80639285948a116101205780639285948a146104ca57806395d89b41146104dd57806397a6278e146104e55780639dc29fac146104f85780639fc1d0e71461050b578063a457c2d71461051e57600080fd5b8063715018a61461048c5780638456cb591461049457806384e798421461049c57806388d695b2146104af5780638da5cb5b146104c257600080fd5b806339509351116102005780634a6cc677116101b95780634a6cc6771461041657806354fd4d50146104295780635c975abb1461044a5780636290865d14610455578063685731071461046657806370a082311461047957600080fd5b806339509351146103af5780633d1ddc5b146103c25780633f4ba83a146103d557806340c10f19146103dd57806342a47abc146103f05780634710362d1461040357600080fd5b806318160ddd1161025257806318160ddd146103465780631a7af3791461034e5780631fe56f7d146103615780631ffbb0641461037457806323b872dd14610387578063313ce5671461039a57600080fd5b806306fdde031461028f578063095ea7b3146102ad578063125c4a33146102d0578063134e18f4146102e5578063158b1a571461030f575b600080fd5b610297610657565b6040516102a49190612d98565b60405180910390f35b6102c06102bb366004612dc7565b6106e9565b60405190151581526020016102a4565b6102e36102de366004612dc7565b610700565b005b60095461010090046001600160a01b03165b6040516001600160a01b0390911681526020016102a4565b61033861031d366004612df1565b6001600160a01b031660009081526008602052604090205490565b6040519081526020016102a4565b600354610338565b6102e361035c366004612e58565b61082f565b6102e361036f366004612dc7565b61089a565b6102c0610382366004612df1565b6109c3565b6102c0610395366004612ec4565b6109cf565b60065460405160ff90911681526020016102a4565b6102c06103bd366004612dc7565b610cd9565b6102e36103d0366004612df1565b610d10565b6102e3610dce565b6102e36103eb366004612dc7565b610e7c565b6102e36103fe366004612f00565b611097565b6102e3610411366004612e58565b611123565b6102e3610424366004612e58565b61117e565b604080518082019091526005815264342e312e3360d81b6020820152610297565b60095460ff166102c0565b600a546001600160a01b03166102f7565b6102e3610474366004612e58565b6111d9565b610338610487366004612df1565b611234565b6102e361124f565b6102e3611263565b6102e36104aa366004612df1565b6112e8565b6102e36104bd366004612e58565b611358565b6102f76113b4565b6102c06104d8366004612f9a565b6113e2565b610297611751565b6102e36104f3366004612df1565b611760565b6102e3610506366004612dc7565b6117d0565b6102c0610519366004612ec4565b61197b565b6102c061052c366004612dc7565b611ba9565b6102c061053f366004612dc7565b611be0565b60065461010090046001600160a01b03166102f7565b6102e3610568366004612fdd565b611e57565b6102e361057b366004612fdd565b611f83565b6102e361058e36600461305d565b61200f565b6102e36105a1366004612df1565b612089565b6103386105b4366004613094565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6102c06105ed366004612df1565b6001600160a01b031660009081526007602052604090205460ff1690565b6102e3610619366004612df1565b6120e3565b6102e361062c366004612df1565b612121565b6102e361063f36600461316a565b61223b565b6102e3610652366004612e58565b612605565b60606004805461066690613217565b80601f016020809104026020016040519081016040528092919081815260200182805461069290613217565b80156106df5780601f106106b4576101008083540402835291602001916106df565b820191906000526020600020905b8154815290600101906020018083116106c257829003601f168201915b5050505050905090565b60006106f6338484612660565b5060015b92915050565b610709336109c3565b61072e5760405162461bcd60e51b815260040161072590613251565b60405180910390fd5b600061073983611234565b6001600160a01b0384166000908152600860205260409020549091506107609083906132b5565b8110156107af5760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206578636565647320617661696c61626c652062616c616e63656044820152606401610725565b6001600160a01b0383166000908152600860205260409020546107d39083906132b5565b6001600160a01b038416600081815260086020526040908190209290925590517fa065e63c631c86f1b9f66a4a2f63f2093bf1c2168d23290259dbd969e0222a45906108229085815260200190565b60405180910390a2505050565b60005b838110156108935761088b85858381811061084f5761084f6132c8565b90506020020160208101906108649190612df1565b848484818110610876576108766132c8565b905060200201602081019061058e91906132de565b600101610832565b5050505050565b6108a3336109c3565b6108bf5760405162461bcd60e51b815260040161072590613251565b6001600160a01b0382166000908152600860205260409020548111156109445760405162461bcd60e51b815260206004820152603460248201527f416d6f756e742073686f756c64206265206c657373207468616e206f7220657160448201527375616c20746f2066726f7a656e20746f6b656e7360601b6064820152608401610725565b6001600160a01b0382166000908152600860205260409020546109689082906132fb565b6001600160a01b038316600081815260086020526040908190209290925590517f9bed35cb62ad0dba04f9d5bfee4b5bc91443e77da8a65c4c84834c51bb08b0d6906109b79084815260200190565b60405180910390a25050565b60006106fa8183612785565b60095460009060ff16156109f55760405162461bcd60e51b81526004016107259061330e565b6001600160a01b03831660009081526007602052604090205460ff16158015610a3757506001600160a01b03841660009081526007602052604090205460ff16155b610a765760405162461bcd60e51b815260206004820152601060248201526f3bb0b63632ba1034b990333937bd32b760811b6044820152606401610725565b6001600160a01b038416600090815260086020526040902054610a9885611234565b610aa291906132fb565b821115610ae85760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610725565b60095460405163b9209e3360e01b81526001600160a01b0385811660048301526101009092049091169063b9209e3390602401602060405180830381865afa158015610b38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5c9190613338565b8015610bd85750600a546040516372331c7360e11b81526001600160a01b039091169063e46638e690610b9790879087908790600401613355565b602060405180830381865afa158015610bb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd89190613338565b15610c92576001600160a01b038416600090815260026020908152604080832033808552925290912054610c18918691610c139086906132fb565b612660565b610c23848484612808565b600a546040516322ebca6d60e21b81526001600160a01b0390911690638baf29b490610c5790879087908790600401613355565b600060405180830381600087803b158015610c7157600080fd5b505af1158015610c85573d6000803e3d6000fd5b5050505060019050610cd2565b60405162461bcd60e51b81526020600482015260156024820152745472616e73666572206e6f7420706f737369626c6560581b6044820152606401610725565b9392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916106f6918590610c139086906132b5565b610d18612976565b60068054610100600160a81b0319166101006001600160a01b038481168202929092179283905560405192041690610d5290600590613379565b60405180910390206004604051610d699190613379565b6040805191829003822060065483830183526005845264342e312e3360d81b6020850152915190927f6a1105ac8148a3c319adbc369f9072573e8a11d3a3d195e067e7c40767ec54d192610dc39260ff90911691906133ef565b60405180910390a450565b610dd7336109c3565b610df35760405162461bcd60e51b815260040161072590613251565b60095460ff16610e3c5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610725565b6009805460ff191690556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b610e85336109c3565b610ea15760405162461bcd60e51b815260040161072590613251565b60095460405163b9209e3360e01b81526001600160a01b0384811660048301526101009092049091169063b9209e3390602401602060405180830381865afa158015610ef1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f159190613338565b610f615760405162461bcd60e51b815260206004820152601960248201527f4964656e74697479206973206e6f742076657269666965642e000000000000006044820152606401610725565b600a546040516372331c7360e11b81526001600160a01b039091169063e46638e690610f969060009086908690600401613355565b602060405180830381865afa158015610fb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd79190613338565b6110235760405162461bcd60e51b815260206004820152601760248201527f436f6d706c69616e6365206e6f7420666f6c6c6f7765640000000000000000006044820152606401610725565b61102d82826129a8565b600a54604051635f8dead360e01b81526001600160a01b0384811660048301526024820184905290911690635f8dead390604401600060405180830381600087803b15801561107b57600080fd5b505af115801561108f573d6000803e3d6000fd5b505050505050565b60005b8581101561111a576111118787838181106110b7576110b76132c8565b90506020020160208101906110cc9190612df1565b8686848181106110de576110de6132c8565b90506020020160208101906110f39190612df1565b858585818110611105576111056132c8565b9050602002013561197b565b5060010161109a565b50505050505050565b60005b8381101561089357611176858583818110611143576111436132c8565b90506020020160208101906111589190612df1565b84848481811061116a5761116a6132c8565b9050602002013561089a565b600101611126565b60005b83811015610893576111d185858381811061119e5761119e6132c8565b90506020020160208101906111b39190612df1565b8484848181106111c5576111c56132c8565b905060200201356117d0565b600101611181565b60005b838110156108935761122c8585838181106111f9576111f96132c8565b905060200201602081019061120e9190612df1565b848484818110611220576112206132c8565b90506020020135610e7c565b6001016111dc565b6001600160a01b031660009081526001602052604090205490565b611257612976565b6112616000612a90565b565b61126c336109c3565b6112885760405162461bcd60e51b815260040161072590613251565b60095460ff16156112ab5760405162461bcd60e51b81526004016107259061330e565b6009805460ff191660011790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610e72565b6112f0612976565b6001600160a01b0381166113165760405162461bcd60e51b815260040161072590613413565b611321600082612b01565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b60005b83811015610893576113ab858583818110611378576113786132c8565b905060200201602081019061138d9190612df1565b84848481811061139f5761139f6132c8565b90506020020135611be0565b5060010161135b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b60006113ed336109c3565b6114095760405162461bcd60e51b815260040161072590613251565b61141284611234565b6000036114585760405162461bcd60e51b81526020600482015260146024820152733737903a37b5b2b739903a37903932b1b7bb32b960611b6044820152606401610725565b604080516001600160a01b038516602082015283916000910160408051808303601f1901815290829052805160209091012063d202158d60e01b8252600482018190526001602483015291506001600160a01b0383169063d202158d90604401602060405180830381865afa1580156114d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f99190613338565b1561171157600061150987611234565b6001600160a01b0388811660008181526008602052604090819020546009549151637e42683b60e01b8152600481019390935293945061010090049091169063454a03e090899087908490637e42683b90602401602060405180830381865afa15801561157a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159e919061344a565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015261ffff166044820152606401600060405180830381600087803b1580156115f157600080fd5b505af1158015611605573d6000803e3d6000fd5b5050505061161488888461197b565b508015611625576116258782610700565b6001600160a01b03881660009081526007602052604090205460ff1615156001036116555761165587600161200f565b60095460405163a8d29d1d60e01b81526001600160a01b038a811660048301526101009092049091169063a8d29d1d90602401600060405180830381600087803b1580156116a257600080fd5b505af11580156116b6573d6000803e3d6000fd5b50505050856001600160a01b0316876001600160a01b0316896001600160a01b03167ff0c9129a94f30f1caaceb63e44b9811d0a3edf1d6c23757f346093af5553fed060405160405180910390a46001945050505050610cd2565b60405162461bcd60e51b81526020600482015260156024820152745265636f76657279206e6f7420706f737369626c6560581b6044820152606401610725565b60606005805461066690613217565b611768612976565b6001600160a01b03811661178e5760405162461bcd60e51b815260040161072590613413565b611799600082612b7d565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6117d9336109c3565b6117f55760405162461bcd60e51b815260040161072590613251565b806117ff83611234565b101561184d5760405162461bcd60e51b815260206004820152601d60248201527f63616e6e6f74206275726e206d6f7265207468616e2062616c616e63650000006044820152606401610725565b6001600160a01b03821660009081526008602052604081205461186f84611234565b61187991906132fb565b90508082111561190f57600061188f82846132fb565b6001600160a01b0385166000908152600860205260409020549091506118b69082906132fb565b6001600160a01b038516600081815260086020526040908190209290925590517f9bed35cb62ad0dba04f9d5bfee4b5bc91443e77da8a65c4c84834c51bb08b0d6906119059084815260200190565b60405180910390a2505b6119198383612bff565b600a5460405163469753b960e11b81526001600160a01b0385811660048301526024820185905290911690638d2ea77290604401600060405180830381600087803b15801561196757600080fd5b505af115801561111a573d6000803e3d6000fd5b6000611986336109c3565b6119a25760405162461bcd60e51b815260040161072590613251565b816119ac85611234565b10156119f35760405162461bcd60e51b815260206004820152601660248201527573656e6465722062616c616e636520746f6f206c6f7760501b6044820152606401610725565b6001600160a01b038416600090815260086020526040812054611a1586611234565b611a1f91906132fb565b905080831115611ab5576000611a3582856132fb565b6001600160a01b038716600090815260086020526040902054909150611a5c9082906132fb565b6001600160a01b038716600081815260086020526040908190209290925590517f9bed35cb62ad0dba04f9d5bfee4b5bc91443e77da8a65c4c84834c51bb08b0d690611aab9084815260200190565b60405180910390a2505b60095460405163b9209e3360e01b81526001600160a01b0386811660048301526101009092049091169063b9209e3390602401602060405180830381865afa158015611b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b299190613338565b15610c9257611b39858585612808565b600a546040516322ebca6d60e21b81526001600160a01b0390911690638baf29b490611b6d90889088908890600401613355565b600060405180830381600087803b158015611b8757600080fd5b505af1158015611b9b573d6000803e3d6000fd5b505050506001915050610cd2565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916106f6918590610c139086906132fb565b60095460009060ff1615611c065760405162461bcd60e51b81526004016107259061330e565b6001600160a01b03831660009081526007602052604090205460ff16158015611c3f57503360009081526007602052604090205460ff16155b611c7e5760405162461bcd60e51b815260206004820152601060248201526f3bb0b63632ba1034b990333937bd32b760811b6044820152606401610725565b3360008181526008602052604090205490611c9890611234565b611ca291906132fb565b821115611ce85760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610725565b60095460405163b9209e3360e01b81526001600160a01b0385811660048301526101009092049091169063b9209e3390602401602060405180830381865afa158015611d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5c9190613338565b8015611dd85750600a546040516372331c7360e11b81526001600160a01b039091169063e46638e690611d9790339087908790600401613355565b602060405180830381865afa158015611db4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd89190613338565b15610c9257611de8338484612808565b600a546040516322ebca6d60e21b81526001600160a01b0390911690638baf29b490611e1c90339087908790600401613355565b600060405180830381600087803b158015611e3657600080fd5b505af1158015611e4a573d6000803e3d6000fd5b50505050600190506106fa565b611e5f612976565b604051602001611e7a90602080825260009082015260400190565b604051602081830303815290604052805190602001208282604051602001611ea392919061346e565b6040516020818303038152906040528051906020012003611ed65760405162461bcd60e51b81526004016107259061349d565b6005611ee382848361351c565b506006546040516101009091046001600160a01b031690611f0690600590613379565b60405180910390206004604051611f1d9190613379565b6040805191829003822060065483830183526005845264342e312e3360d81b6020850152915190927f6a1105ac8148a3c319adbc369f9072573e8a11d3a3d195e067e7c40767ec54d192611f779260ff90911691906133ef565b60405180910390a45050565b611f8b612976565b604051602001611fa690602080825260009082015260400190565b604051602081830303815290604052805190602001208282604051602001611fcf92919061346e565b60405160208183030381529060405280519060200120036120025760405162461bcd60e51b81526004016107259061349d565b6004611ee382848361351c565b612018336109c3565b6120345760405162461bcd60e51b815260040161072590613251565b6001600160a01b038216600081815260076020526040808220805460ff19168515159081179091559051339391927f7fa523c84ab8d7fc5b72f08b9e46dbbf10c39e119a075b3e317002d14bc9f43691a45050565b612091612976565b60098054610100600160a81b0319166101006001600160a01b038416908102919091179091556040517fd2be862d755bca7e0d39772b2cab3a5578da9c285f69199f4c063c2294a7f36c90600090a250565b6120eb612976565b6001600160a01b03811661211557604051631e4fbdf760e01b815260006004820152602401610725565b61211e81612a90565b50565b612129612976565b600a546001600160a01b03161561219857600a5460405163040db3b560e41b81523060048201526001600160a01b03909116906340db3b5090602401600060405180830381600087803b15801561217f57600080fd5b505af1158015612193573d6000803e3d6000fd5b505050505b600a80546001600160a01b0319166001600160a01b038316908117909155604051631ffad50160e11b8152306004820152633ff5aa0290602401600060405180830381600087803b1580156121ec57600080fd5b505af1158015612200573d6000803e3d6000fd5b50506040516001600160a01b03841692507f7f3a888862559648ec01d97deb7b5012bff86dc91e654a1de397170db40e35b69150600090a250565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156122815750825b905060008267ffffffffffffffff16600114801561229e5750303b155b9050811580156122ac575080155b156122ca5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156122f457845460ff60401b1916600160401b1785555b60006122fe6113b4565b6001600160a01b03161461234a5760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610725565b6001600160a01b038b161580159061236a57506001600160a01b038a1615155b6123865760405162461bcd60e51b815260040161072590613413565b6040516020016123a190602080825260009082015260400190565b60405160208183030381529060405280519060200120896040516020016123c89190612d98565b6040516020818303038152906040528051906020012014158015612442575060405160200161240290602080825260009082015260400190565b60405160208183030381529060405280519060200120886040516020016124299190612d98565b6040516020818303038152906040528051906020012014155b61245e5760405162461bcd60e51b81526004016107259061349d565b60128760ff1611156124b25760405162461bcd60e51b815260206004820152601960248201527f646563696d616c73206265747765656e203020616e64203138000000000000006044820152606401610725565b6124bb33612ceb565b60046124c78a826135dc565b5060056124d489826135dc565b50600680546001600160a01b038816610100026001600160a81b031990911660ff8a16171790556009805460ff1916905561250e8b612089565b6125178a612121565b6006546040516101009091046001600160a01b03169061253990600590613379565b604051809103902060046040516125509190613379565b6040805191829003822060065483830183526005845264342e312e3360d81b6020850152915190927f6a1105ac8148a3c319adbc369f9072573e8a11d3a3d195e067e7c40767ec54d1926125aa9260ff90911691906133ef565b60405180910390a483156125f857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050565b60005b8381101561089357612658858583818110612625576126256132c8565b905060200201602081019061263a9190612df1565b84848481811061264c5761264c6132c8565b90506020020135610700565b600101612608565b6001600160a01b0383166126c25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610725565b6001600160a01b0382166127235760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610725565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0382166127e85760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610725565b506001600160a01b03166000908152602091909152604090205460ff1690565b6001600160a01b03831661286c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610725565b6001600160a01b0382166128ce5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610725565b6001600160a01b0383166000908152600160205260409020546128f29082906132fb565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546129229082906132b5565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906127789085815260200190565b3361297f6113b4565b6001600160a01b0316146112615760405163118cdaa760e01b8152336004820152602401610725565b6001600160a01b0382166129fe5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610725565b80600354612a0c91906132b5565b6003556001600160a01b038216600090815260016020526040902054612a339082906132b5565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612a849085815260200190565b60405180910390a35050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b612b0b8282612785565b15612b585760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610725565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b612b878282612785565b612bdd5760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610725565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b038216612c5f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610725565b6001600160a01b038216600090815260016020526040902054612c839082906132fb565b6001600160a01b038316600090815260016020526040902055600354612caa9082906132fb565b6003556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001612a84565b612cf3612d01565b61211e81612d4a565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661126157604051631afcd79f60e31b815260040160405180910390fd5b6120eb612d01565b6000815180845260005b81811015612d7857602081850181015186830182015201612d5c565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610cd26020830184612d52565b80356001600160a01b0381168114612dc257600080fd5b919050565b60008060408385031215612dda57600080fd5b612de383612dab565b946020939093013593505050565b600060208284031215612e0357600080fd5b610cd282612dab565b60008083601f840112612e1e57600080fd5b50813567ffffffffffffffff811115612e3657600080fd5b6020830191508360208260051b8501011115612e5157600080fd5b9250929050565b60008060008060408587031215612e6e57600080fd5b843567ffffffffffffffff80821115612e8657600080fd5b612e9288838901612e0c565b90965094506020870135915080821115612eab57600080fd5b50612eb887828801612e0c565b95989497509550505050565b600080600060608486031215612ed957600080fd5b612ee284612dab565b9250612ef060208501612dab565b9150604084013590509250925092565b60008060008060008060608789031215612f1957600080fd5b863567ffffffffffffffff80821115612f3157600080fd5b612f3d8a838b01612e0c565b90985096506020890135915080821115612f5657600080fd5b612f628a838b01612e0c565b90965094506040890135915080821115612f7b57600080fd5b50612f8889828a01612e0c565b979a9699509497509295939492505050565b600080600060608486031215612faf57600080fd5b612fb884612dab565b9250612fc660208501612dab565b9150612fd460408501612dab565b90509250925092565b60008060208385031215612ff057600080fd5b823567ffffffffffffffff8082111561300857600080fd5b818501915085601f83011261301c57600080fd5b81358181111561302b57600080fd5b86602082850101111561303d57600080fd5b60209290920196919550909350505050565b801515811461211e57600080fd5b6000806040838503121561307057600080fd5b61307983612dab565b915060208301356130898161304f565b809150509250929050565b600080604083850312156130a757600080fd5b6130b083612dab565b91506130be60208401612dab565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126130ee57600080fd5b813567ffffffffffffffff80821115613109576131096130c7565b604051601f8301601f19908116603f01168101908282118183101715613131576131316130c7565b8160405283815286602085880101111561314a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c0878903121561318357600080fd5b61318c87612dab565b955061319a60208801612dab565b9450604087013567ffffffffffffffff808211156131b757600080fd5b6131c38a838b016130dd565b955060608901359150808211156131d957600080fd5b506131e689828a016130dd565b935050608087013560ff811681146131fd57600080fd5b915061320b60a08801612dab565b90509295509295509295565b600181811c9082168061322b57607f821691505b60208210810361324b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4167656e74526f6c653a2063616c6c657220646f6573206e6f7420686176652060408201526d746865204167656e7420726f6c6560901b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156106fa576106fa61329f565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156132f057600080fd5b8135610cd28161304f565b818103818111156106fa576106fa61329f565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60006020828403121561334a57600080fd5b8151610cd28161304f565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600080835461338781613217565b6001828116801561339f57600181146133b4576133e3565b60ff19841687528215158302870194506133e3565b8760005260208060002060005b858110156133da5781548a8201529084019082016133c1565b50505082870194505b50929695505050505050565b60ff8316815260406020820152600061340b6040830184612d52565b949350505050565b6020808252601f908201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604082015260600190565b60006020828403121561345c57600080fd5b815161ffff81168114610cd257600080fd5b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b6020808252601f908201527f696e76616c696420617267756d656e74202d20656d70747920737472696e6700604082015260600190565b601f821115612cfc576000816000526020600020601f850160051c810160208610156134fd5750805b601f850160051c820191505b8181101561108f57828155600101613509565b67ffffffffffffffff831115613534576135346130c7565b613548836135428354613217565b836134d4565b6000601f84116001811461357c57600085156135645750838201355b600019600387901b1c1916600186901b178355610893565b600083815260209020601f19861690835b828110156135ad578685013582556020948501946001909201910161358d565b50868210156135ca5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b815167ffffffffffffffff8111156135f6576135f66130c7565b61360a816136048454613217565b846134d4565b602080601f83116001811461363f57600084156136275750858301515b600019600386901b1c1916600185901b17855561108f565b600085815260208120601f198616915b8281101561366e5788860151825594840194600190910190840161364f565b508582101561368c5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea2646970667358221220481ae105784ef06e30d762ffa0535a2605fee4abc7ff027c926e2a8b5b05244364736f6c63430008180033","sourceMap":"3990:18753:97:-:0;;;4560:34:98;;;-1:-1:-1;;4560:34:98;;;3990:18753:97;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061028a5760003560e01c8063715018a61161015c578063a9059cbb116100ce578063dd62ed3e11610087578063dd62ed3e146105a6578063e5839836146105df578063f2fde38b1461060b578063f89817891461061e578063f91b619c14610631578063fc7e5fa81461064457600080fd5b8063a9059cbb14610531578063aba6370514610544578063b84c82461461055a578063c47f00271461056d578063c69c09cf14610580578063cbf3f8611461059357600080fd5b80639285948a116101205780639285948a146104ca57806395d89b41146104dd57806397a6278e146104e55780639dc29fac146104f85780639fc1d0e71461050b578063a457c2d71461051e57600080fd5b8063715018a61461048c5780638456cb591461049457806384e798421461049c57806388d695b2146104af5780638da5cb5b146104c257600080fd5b806339509351116102005780634a6cc677116101b95780634a6cc6771461041657806354fd4d50146104295780635c975abb1461044a5780636290865d14610455578063685731071461046657806370a082311461047957600080fd5b806339509351146103af5780633d1ddc5b146103c25780633f4ba83a146103d557806340c10f19146103dd57806342a47abc146103f05780634710362d1461040357600080fd5b806318160ddd1161025257806318160ddd146103465780631a7af3791461034e5780631fe56f7d146103615780631ffbb0641461037457806323b872dd14610387578063313ce5671461039a57600080fd5b806306fdde031461028f578063095ea7b3146102ad578063125c4a33146102d0578063134e18f4146102e5578063158b1a571461030f575b600080fd5b610297610657565b6040516102a49190612d98565b60405180910390f35b6102c06102bb366004612dc7565b6106e9565b60405190151581526020016102a4565b6102e36102de366004612dc7565b610700565b005b60095461010090046001600160a01b03165b6040516001600160a01b0390911681526020016102a4565b61033861031d366004612df1565b6001600160a01b031660009081526008602052604090205490565b6040519081526020016102a4565b600354610338565b6102e361035c366004612e58565b61082f565b6102e361036f366004612dc7565b61089a565b6102c0610382366004612df1565b6109c3565b6102c0610395366004612ec4565b6109cf565b60065460405160ff90911681526020016102a4565b6102c06103bd366004612dc7565b610cd9565b6102e36103d0366004612df1565b610d10565b6102e3610dce565b6102e36103eb366004612dc7565b610e7c565b6102e36103fe366004612f00565b611097565b6102e3610411366004612e58565b611123565b6102e3610424366004612e58565b61117e565b604080518082019091526005815264342e312e3360d81b6020820152610297565b60095460ff166102c0565b600a546001600160a01b03166102f7565b6102e3610474366004612e58565b6111d9565b610338610487366004612df1565b611234565b6102e361124f565b6102e3611263565b6102e36104aa366004612df1565b6112e8565b6102e36104bd366004612e58565b611358565b6102f76113b4565b6102c06104d8366004612f9a565b6113e2565b610297611751565b6102e36104f3366004612df1565b611760565b6102e3610506366004612dc7565b6117d0565b6102c0610519366004612ec4565b61197b565b6102c061052c366004612dc7565b611ba9565b6102c061053f366004612dc7565b611be0565b60065461010090046001600160a01b03166102f7565b6102e3610568366004612fdd565b611e57565b6102e361057b366004612fdd565b611f83565b6102e361058e36600461305d565b61200f565b6102e36105a1366004612df1565b612089565b6103386105b4366004613094565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6102c06105ed366004612df1565b6001600160a01b031660009081526007602052604090205460ff1690565b6102e3610619366004612df1565b6120e3565b6102e361062c366004612df1565b612121565b6102e361063f36600461316a565b61223b565b6102e3610652366004612e58565b612605565b60606004805461066690613217565b80601f016020809104026020016040519081016040528092919081815260200182805461069290613217565b80156106df5780601f106106b4576101008083540402835291602001916106df565b820191906000526020600020905b8154815290600101906020018083116106c257829003601f168201915b5050505050905090565b60006106f6338484612660565b5060015b92915050565b610709336109c3565b61072e5760405162461bcd60e51b815260040161072590613251565b60405180910390fd5b600061073983611234565b6001600160a01b0384166000908152600860205260409020549091506107609083906132b5565b8110156107af5760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206578636565647320617661696c61626c652062616c616e63656044820152606401610725565b6001600160a01b0383166000908152600860205260409020546107d39083906132b5565b6001600160a01b038416600081815260086020526040908190209290925590517fa065e63c631c86f1b9f66a4a2f63f2093bf1c2168d23290259dbd969e0222a45906108229085815260200190565b60405180910390a2505050565b60005b838110156108935761088b85858381811061084f5761084f6132c8565b90506020020160208101906108649190612df1565b848484818110610876576108766132c8565b905060200201602081019061058e91906132de565b600101610832565b5050505050565b6108a3336109c3565b6108bf5760405162461bcd60e51b815260040161072590613251565b6001600160a01b0382166000908152600860205260409020548111156109445760405162461bcd60e51b815260206004820152603460248201527f416d6f756e742073686f756c64206265206c657373207468616e206f7220657160448201527375616c20746f2066726f7a656e20746f6b656e7360601b6064820152608401610725565b6001600160a01b0382166000908152600860205260409020546109689082906132fb565b6001600160a01b038316600081815260086020526040908190209290925590517f9bed35cb62ad0dba04f9d5bfee4b5bc91443e77da8a65c4c84834c51bb08b0d6906109b79084815260200190565b60405180910390a25050565b60006106fa8183612785565b60095460009060ff16156109f55760405162461bcd60e51b81526004016107259061330e565b6001600160a01b03831660009081526007602052604090205460ff16158015610a3757506001600160a01b03841660009081526007602052604090205460ff16155b610a765760405162461bcd60e51b815260206004820152601060248201526f3bb0b63632ba1034b990333937bd32b760811b6044820152606401610725565b6001600160a01b038416600090815260086020526040902054610a9885611234565b610aa291906132fb565b821115610ae85760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610725565b60095460405163b9209e3360e01b81526001600160a01b0385811660048301526101009092049091169063b9209e3390602401602060405180830381865afa158015610b38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5c9190613338565b8015610bd85750600a546040516372331c7360e11b81526001600160a01b039091169063e46638e690610b9790879087908790600401613355565b602060405180830381865afa158015610bb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd89190613338565b15610c92576001600160a01b038416600090815260026020908152604080832033808552925290912054610c18918691610c139086906132fb565b612660565b610c23848484612808565b600a546040516322ebca6d60e21b81526001600160a01b0390911690638baf29b490610c5790879087908790600401613355565b600060405180830381600087803b158015610c7157600080fd5b505af1158015610c85573d6000803e3d6000fd5b5050505060019050610cd2565b60405162461bcd60e51b81526020600482015260156024820152745472616e73666572206e6f7420706f737369626c6560581b6044820152606401610725565b9392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916106f6918590610c139086906132b5565b610d18612976565b60068054610100600160a81b0319166101006001600160a01b038481168202929092179283905560405192041690610d5290600590613379565b60405180910390206004604051610d699190613379565b6040805191829003822060065483830183526005845264342e312e3360d81b6020850152915190927f6a1105ac8148a3c319adbc369f9072573e8a11d3a3d195e067e7c40767ec54d192610dc39260ff90911691906133ef565b60405180910390a450565b610dd7336109c3565b610df35760405162461bcd60e51b815260040161072590613251565b60095460ff16610e3c5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610725565b6009805460ff191690556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b610e85336109c3565b610ea15760405162461bcd60e51b815260040161072590613251565b60095460405163b9209e3360e01b81526001600160a01b0384811660048301526101009092049091169063b9209e3390602401602060405180830381865afa158015610ef1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f159190613338565b610f615760405162461bcd60e51b815260206004820152601960248201527f4964656e74697479206973206e6f742076657269666965642e000000000000006044820152606401610725565b600a546040516372331c7360e11b81526001600160a01b039091169063e46638e690610f969060009086908690600401613355565b602060405180830381865afa158015610fb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd79190613338565b6110235760405162461bcd60e51b815260206004820152601760248201527f436f6d706c69616e6365206e6f7420666f6c6c6f7765640000000000000000006044820152606401610725565b61102d82826129a8565b600a54604051635f8dead360e01b81526001600160a01b0384811660048301526024820184905290911690635f8dead390604401600060405180830381600087803b15801561107b57600080fd5b505af115801561108f573d6000803e3d6000fd5b505050505050565b60005b8581101561111a576111118787838181106110b7576110b76132c8565b90506020020160208101906110cc9190612df1565b8686848181106110de576110de6132c8565b90506020020160208101906110f39190612df1565b858585818110611105576111056132c8565b9050602002013561197b565b5060010161109a565b50505050505050565b60005b8381101561089357611176858583818110611143576111436132c8565b90506020020160208101906111589190612df1565b84848481811061116a5761116a6132c8565b9050602002013561089a565b600101611126565b60005b83811015610893576111d185858381811061119e5761119e6132c8565b90506020020160208101906111b39190612df1565b8484848181106111c5576111c56132c8565b905060200201356117d0565b600101611181565b60005b838110156108935761122c8585838181106111f9576111f96132c8565b905060200201602081019061120e9190612df1565b848484818110611220576112206132c8565b90506020020135610e7c565b6001016111dc565b6001600160a01b031660009081526001602052604090205490565b611257612976565b6112616000612a90565b565b61126c336109c3565b6112885760405162461bcd60e51b815260040161072590613251565b60095460ff16156112ab5760405162461bcd60e51b81526004016107259061330e565b6009805460ff191660011790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610e72565b6112f0612976565b6001600160a01b0381166113165760405162461bcd60e51b815260040161072590613413565b611321600082612b01565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b60005b83811015610893576113ab858583818110611378576113786132c8565b905060200201602081019061138d9190612df1565b84848481811061139f5761139f6132c8565b90506020020135611be0565b5060010161135b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b60006113ed336109c3565b6114095760405162461bcd60e51b815260040161072590613251565b61141284611234565b6000036114585760405162461bcd60e51b81526020600482015260146024820152733737903a37b5b2b739903a37903932b1b7bb32b960611b6044820152606401610725565b604080516001600160a01b038516602082015283916000910160408051808303601f1901815290829052805160209091012063d202158d60e01b8252600482018190526001602483015291506001600160a01b0383169063d202158d90604401602060405180830381865afa1580156114d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f99190613338565b1561171157600061150987611234565b6001600160a01b0388811660008181526008602052604090819020546009549151637e42683b60e01b8152600481019390935293945061010090049091169063454a03e090899087908490637e42683b90602401602060405180830381865afa15801561157a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159e919061344a565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015261ffff166044820152606401600060405180830381600087803b1580156115f157600080fd5b505af1158015611605573d6000803e3d6000fd5b5050505061161488888461197b565b508015611625576116258782610700565b6001600160a01b03881660009081526007602052604090205460ff1615156001036116555761165587600161200f565b60095460405163a8d29d1d60e01b81526001600160a01b038a811660048301526101009092049091169063a8d29d1d90602401600060405180830381600087803b1580156116a257600080fd5b505af11580156116b6573d6000803e3d6000fd5b50505050856001600160a01b0316876001600160a01b0316896001600160a01b03167ff0c9129a94f30f1caaceb63e44b9811d0a3edf1d6c23757f346093af5553fed060405160405180910390a46001945050505050610cd2565b60405162461bcd60e51b81526020600482015260156024820152745265636f76657279206e6f7420706f737369626c6560581b6044820152606401610725565b60606005805461066690613217565b611768612976565b6001600160a01b03811661178e5760405162461bcd60e51b815260040161072590613413565b611799600082612b7d565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6117d9336109c3565b6117f55760405162461bcd60e51b815260040161072590613251565b806117ff83611234565b101561184d5760405162461bcd60e51b815260206004820152601d60248201527f63616e6e6f74206275726e206d6f7265207468616e2062616c616e63650000006044820152606401610725565b6001600160a01b03821660009081526008602052604081205461186f84611234565b61187991906132fb565b90508082111561190f57600061188f82846132fb565b6001600160a01b0385166000908152600860205260409020549091506118b69082906132fb565b6001600160a01b038516600081815260086020526040908190209290925590517f9bed35cb62ad0dba04f9d5bfee4b5bc91443e77da8a65c4c84834c51bb08b0d6906119059084815260200190565b60405180910390a2505b6119198383612bff565b600a5460405163469753b960e11b81526001600160a01b0385811660048301526024820185905290911690638d2ea77290604401600060405180830381600087803b15801561196757600080fd5b505af115801561111a573d6000803e3d6000fd5b6000611986336109c3565b6119a25760405162461bcd60e51b815260040161072590613251565b816119ac85611234565b10156119f35760405162461bcd60e51b815260206004820152601660248201527573656e6465722062616c616e636520746f6f206c6f7760501b6044820152606401610725565b6001600160a01b038416600090815260086020526040812054611a1586611234565b611a1f91906132fb565b905080831115611ab5576000611a3582856132fb565b6001600160a01b038716600090815260086020526040902054909150611a5c9082906132fb565b6001600160a01b038716600081815260086020526040908190209290925590517f9bed35cb62ad0dba04f9d5bfee4b5bc91443e77da8a65c4c84834c51bb08b0d690611aab9084815260200190565b60405180910390a2505b60095460405163b9209e3360e01b81526001600160a01b0386811660048301526101009092049091169063b9209e3390602401602060405180830381865afa158015611b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b299190613338565b15610c9257611b39858585612808565b600a546040516322ebca6d60e21b81526001600160a01b0390911690638baf29b490611b6d90889088908890600401613355565b600060405180830381600087803b158015611b8757600080fd5b505af1158015611b9b573d6000803e3d6000fd5b505050506001915050610cd2565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916106f6918590610c139086906132fb565b60095460009060ff1615611c065760405162461bcd60e51b81526004016107259061330e565b6001600160a01b03831660009081526007602052604090205460ff16158015611c3f57503360009081526007602052604090205460ff16155b611c7e5760405162461bcd60e51b815260206004820152601060248201526f3bb0b63632ba1034b990333937bd32b760811b6044820152606401610725565b3360008181526008602052604090205490611c9890611234565b611ca291906132fb565b821115611ce85760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610725565b60095460405163b9209e3360e01b81526001600160a01b0385811660048301526101009092049091169063b9209e3390602401602060405180830381865afa158015611d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5c9190613338565b8015611dd85750600a546040516372331c7360e11b81526001600160a01b039091169063e46638e690611d9790339087908790600401613355565b602060405180830381865afa158015611db4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd89190613338565b15610c9257611de8338484612808565b600a546040516322ebca6d60e21b81526001600160a01b0390911690638baf29b490611e1c90339087908790600401613355565b600060405180830381600087803b158015611e3657600080fd5b505af1158015611e4a573d6000803e3d6000fd5b50505050600190506106fa565b611e5f612976565b604051602001611e7a90602080825260009082015260400190565b604051602081830303815290604052805190602001208282604051602001611ea392919061346e565b6040516020818303038152906040528051906020012003611ed65760405162461bcd60e51b81526004016107259061349d565b6005611ee382848361351c565b506006546040516101009091046001600160a01b031690611f0690600590613379565b60405180910390206004604051611f1d9190613379565b6040805191829003822060065483830183526005845264342e312e3360d81b6020850152915190927f6a1105ac8148a3c319adbc369f9072573e8a11d3a3d195e067e7c40767ec54d192611f779260ff90911691906133ef565b60405180910390a45050565b611f8b612976565b604051602001611fa690602080825260009082015260400190565b604051602081830303815290604052805190602001208282604051602001611fcf92919061346e565b60405160208183030381529060405280519060200120036120025760405162461bcd60e51b81526004016107259061349d565b6004611ee382848361351c565b612018336109c3565b6120345760405162461bcd60e51b815260040161072590613251565b6001600160a01b038216600081815260076020526040808220805460ff19168515159081179091559051339391927f7fa523c84ab8d7fc5b72f08b9e46dbbf10c39e119a075b3e317002d14bc9f43691a45050565b612091612976565b60098054610100600160a81b0319166101006001600160a01b038416908102919091179091556040517fd2be862d755bca7e0d39772b2cab3a5578da9c285f69199f4c063c2294a7f36c90600090a250565b6120eb612976565b6001600160a01b03811661211557604051631e4fbdf760e01b815260006004820152602401610725565b61211e81612a90565b50565b612129612976565b600a546001600160a01b03161561219857600a5460405163040db3b560e41b81523060048201526001600160a01b03909116906340db3b5090602401600060405180830381600087803b15801561217f57600080fd5b505af1158015612193573d6000803e3d6000fd5b505050505b600a80546001600160a01b0319166001600160a01b038316908117909155604051631ffad50160e11b8152306004820152633ff5aa0290602401600060405180830381600087803b1580156121ec57600080fd5b505af1158015612200573d6000803e3d6000fd5b50506040516001600160a01b03841692507f7f3a888862559648ec01d97deb7b5012bff86dc91e654a1de397170db40e35b69150600090a250565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156122815750825b905060008267ffffffffffffffff16600114801561229e5750303b155b9050811580156122ac575080155b156122ca5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156122f457845460ff60401b1916600160401b1785555b60006122fe6113b4565b6001600160a01b03161461234a5760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610725565b6001600160a01b038b161580159061236a57506001600160a01b038a1615155b6123865760405162461bcd60e51b815260040161072590613413565b6040516020016123a190602080825260009082015260400190565b60405160208183030381529060405280519060200120896040516020016123c89190612d98565b6040516020818303038152906040528051906020012014158015612442575060405160200161240290602080825260009082015260400190565b60405160208183030381529060405280519060200120886040516020016124299190612d98565b6040516020818303038152906040528051906020012014155b61245e5760405162461bcd60e51b81526004016107259061349d565b60128760ff1611156124b25760405162461bcd60e51b815260206004820152601960248201527f646563696d616c73206265747765656e203020616e64203138000000000000006044820152606401610725565b6124bb33612ceb565b60046124c78a826135dc565b5060056124d489826135dc565b50600680546001600160a01b038816610100026001600160a81b031990911660ff8a16171790556009805460ff1916905561250e8b612089565b6125178a612121565b6006546040516101009091046001600160a01b03169061253990600590613379565b604051809103902060046040516125509190613379565b6040805191829003822060065483830183526005845264342e312e3360d81b6020850152915190927f6a1105ac8148a3c319adbc369f9072573e8a11d3a3d195e067e7c40767ec54d1926125aa9260ff90911691906133ef565b60405180910390a483156125f857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050565b60005b8381101561089357612658858583818110612625576126256132c8565b905060200201602081019061263a9190612df1565b84848481811061264c5761264c6132c8565b90506020020135610700565b600101612608565b6001600160a01b0383166126c25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610725565b6001600160a01b0382166127235760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610725565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0382166127e85760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610725565b506001600160a01b03166000908152602091909152604090205460ff1690565b6001600160a01b03831661286c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610725565b6001600160a01b0382166128ce5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610725565b6001600160a01b0383166000908152600160205260409020546128f29082906132fb565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546129229082906132b5565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906127789085815260200190565b3361297f6113b4565b6001600160a01b0316146112615760405163118cdaa760e01b8152336004820152602401610725565b6001600160a01b0382166129fe5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610725565b80600354612a0c91906132b5565b6003556001600160a01b038216600090815260016020526040902054612a339082906132b5565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612a849085815260200190565b60405180910390a35050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b612b0b8282612785565b15612b585760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610725565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b612b878282612785565b612bdd5760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610725565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b038216612c5f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610725565b6001600160a01b038216600090815260016020526040902054612c839082906132fb565b6001600160a01b038316600090815260016020526040902055600354612caa9082906132fb565b6003556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001612a84565b612cf3612d01565b61211e81612d4a565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661126157604051631afcd79f60e31b815260040160405180910390fd5b6120eb612d01565b6000815180845260005b81811015612d7857602081850181015186830182015201612d5c565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610cd26020830184612d52565b80356001600160a01b0381168114612dc257600080fd5b919050565b60008060408385031215612dda57600080fd5b612de383612dab565b946020939093013593505050565b600060208284031215612e0357600080fd5b610cd282612dab565b60008083601f840112612e1e57600080fd5b50813567ffffffffffffffff811115612e3657600080fd5b6020830191508360208260051b8501011115612e5157600080fd5b9250929050565b60008060008060408587031215612e6e57600080fd5b843567ffffffffffffffff80821115612e8657600080fd5b612e9288838901612e0c565b90965094506020870135915080821115612eab57600080fd5b50612eb887828801612e0c565b95989497509550505050565b600080600060608486031215612ed957600080fd5b612ee284612dab565b9250612ef060208501612dab565b9150604084013590509250925092565b60008060008060008060608789031215612f1957600080fd5b863567ffffffffffffffff80821115612f3157600080fd5b612f3d8a838b01612e0c565b90985096506020890135915080821115612f5657600080fd5b612f628a838b01612e0c565b90965094506040890135915080821115612f7b57600080fd5b50612f8889828a01612e0c565b979a9699509497509295939492505050565b600080600060608486031215612faf57600080fd5b612fb884612dab565b9250612fc660208501612dab565b9150612fd460408501612dab565b90509250925092565b60008060208385031215612ff057600080fd5b823567ffffffffffffffff8082111561300857600080fd5b818501915085601f83011261301c57600080fd5b81358181111561302b57600080fd5b86602082850101111561303d57600080fd5b60209290920196919550909350505050565b801515811461211e57600080fd5b6000806040838503121561307057600080fd5b61307983612dab565b915060208301356130898161304f565b809150509250929050565b600080604083850312156130a757600080fd5b6130b083612dab565b91506130be60208401612dab565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126130ee57600080fd5b813567ffffffffffffffff80821115613109576131096130c7565b604051601f8301601f19908116603f01168101908282118183101715613131576131316130c7565b8160405283815286602085880101111561314a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c0878903121561318357600080fd5b61318c87612dab565b955061319a60208801612dab565b9450604087013567ffffffffffffffff808211156131b757600080fd5b6131c38a838b016130dd565b955060608901359150808211156131d957600080fd5b506131e689828a016130dd565b935050608087013560ff811681146131fd57600080fd5b915061320b60a08801612dab565b90509295509295509295565b600181811c9082168061322b57607f821691505b60208210810361324b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4167656e74526f6c653a2063616c6c657220646f6573206e6f7420686176652060408201526d746865204167656e7420726f6c6560901b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156106fa576106fa61329f565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156132f057600080fd5b8135610cd28161304f565b818103818111156106fa576106fa61329f565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60006020828403121561334a57600080fd5b8151610cd28161304f565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600080835461338781613217565b6001828116801561339f57600181146133b4576133e3565b60ff19841687528215158302870194506133e3565b8760005260208060002060005b858110156133da5781548a8201529084019082016133c1565b50505082870194505b50929695505050505050565b60ff8316815260406020820152600061340b6040830184612d52565b949350505050565b6020808252601f908201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604082015260600190565b60006020828403121561345c57600080fd5b815161ffff81168114610cd257600080fd5b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b6020808252601f908201527f696e76616c696420617267756d656e74202d20656d70747920737472696e6700604082015260600190565b601f821115612cfc576000816000526020600020601f850160051c810160208610156134fd5750805b601f850160051c820191505b8181101561108f57828155600101613509565b67ffffffffffffffff831115613534576135346130c7565b613548836135428354613217565b836134d4565b6000601f84116001811461357c57600085156135645750838201355b600019600387901b1c1916600186901b178355610893565b600083815260209020601f19861690835b828110156135ad578685013582556020948501946001909201910161358d565b50868210156135ca5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b815167ffffffffffffffff8111156135f6576135f66130c7565b61360a816136048454613217565b846134d4565b602080601f83116001811461363f57600084156136275750858301515b600019600386901b1c1916600185901b17855561108f565b600085815260208120601f198616915b8281101561366e5788860151825594840194600190910190840161364f565b508582101561368c5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea2646970667358221220481ae105784ef06e30d762ffa0535a2605fee4abc7ff027c926e2a8b5b05244364736f6c63430008180033","sourceMap":"3990:18753:97:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15080:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6646:170;;;;;;:::i;:::-;;:::i;:::-;;;1269:14:165;;1262:22;1244:41;;1232:2;1217:18;6646:170:97;1104:187:165;18962:384:97;;;;;;:::i;:::-;;:::i;:::-;;14039:125;14135:22;;;;;-1:-1:-1;;;;;14135:22:97;14039:125;;;-1:-1:-1;;;;;1487:32:165;;;1469:51;;1457:2;1442:18;14039:125:97;1296:230:165;14732:139:97;;;;;;:::i;:::-;-1:-1:-1;;;;;14837:27:97;14811:7;14837:27;;;:13;:27;;;;;;;14732:139;;;;1868:25:165;;;1856:2;1841:18;14732:139:97;1722:177:165;13659:100:97;13740:12;;13659:100;;11411:249;;;;;;:::i;:::-;;:::i;19417:347::-;;;;;;:::i;:::-;;:::i;4703:103:88:-;;;;;;:::i;:::-;;:::i;9717:692:97:-;;;;;;:::i;:::-;;:::i;14929:97::-;15005:14;;14929:97;;15005:14;;;;3526:36:165;;3514:2;3499:18;14929:97:97;3384:184:165;6882:217:97;;;;;;:::i;:::-;;:::i;8322:228::-;;;;;;:::i;:::-;;:::i;8790:130::-;;;:::i;17611:340::-;;;;;;:::i;:::-;;:::i;10478:305::-;;;;;;:::i;:::-;;:::i;12070:264::-;;;;;;:::i;:::-;;:::i;11110:230::-;;;;;;:::i;:::-;;:::i;15551:104::-;15634:14;;;;;;;;;;;;-1:-1:-1;;;15634:14:97;;;;15551:104;;14394:92;14467:12;;;;14394:92;;14224:114;14315:16;;-1:-1:-1;;;;;14315:16:97;14224:114;;10842:209;;;;;;:::i;:::-;;:::i;20523:127::-;;;;;;:::i;:::-;;:::i;3155:101:136:-;;;:::i;8605:128:97:-;;;:::i;4295:194:88:-;;;;;;:::i;:::-;;:::i;8983:217:97:-;;;;;;:::i;:::-;;:::i;2441:144:136:-;;;:::i;12399:1199:97:-;;;;;;:::i;:::-;;:::i;15393:101::-;;;:::i;4495:202:88:-;;;;;;:::i;:::-;;:::i;18005:622:97:-;;;;;;:::i;:::-;;:::i;16781:776::-;;;;;;:::i;:::-;;:::i;7165:225::-;;;;;;:::i;:::-;;:::i;16131:586::-;;;;;;:::i;:::-;;:::i;15236:101::-;15315:15;;;;;-1:-1:-1;;;;;15315:15:97;15236:101;;7833:337;;;;;;:::i;:::-;;:::i;7447:327::-;;;;;;:::i;:::-;;:::i;18693:200::-;;;;;;:::i;:::-;;:::i;19833:215::-;;;;;;:::i;:::-;;:::i;13818:155::-;;;;;;:::i;:::-;-1:-1:-1;;;;;13937:19:97;;;13911:7;13937:19;;;:11;:19;;;;;;;;:29;;;;;;;;;;;;;13818:155;14544:123;;;;;;:::i;:::-;-1:-1:-1;;;;;14639:21:97;14616:4;14639:21;;;:7;:21;;;;;;;;;14544:123;3405:215:136;;;;;;:::i;:::-;;:::i;20111:353:97:-;;;;;;:::i;:::-;;:::i;5121:1468::-;;;;;;:::i;:::-;;:::i;11734:260::-;;;;;;:::i;:::-;;:::i;15080:97::-;15128:13;15160:10;15153:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15080:97;:::o;6646:170::-;6733:4;6749:39;6758:10;6770:8;6780:7;6749:8;:39::i;:::-;-1:-1:-1;6805:4:97;6646:170;;;;;:::o;18962:384::-;4201:19:88;4209:10;4201:7;:19::i;:::-;4193:78;;;;-1:-1:-1;;;4193:78:88;;;;;;;:::i;:::-;;;;;;;;;19066:15:97::1;19084:23;19094:12;19084:9;:23::i;:::-;-1:-1:-1::0;;;;;19136:27:97;::::1;;::::0;;;:13:::1;:27;::::0;;;;;19066:41;;-1:-1:-1;19136:37:97::1;::::0;19166:7;;19136:37:::1;:::i;:::-;19125:7;:48;;19117:93;;;::::0;-1:-1:-1;;;19117:93:97;;10582:2:165;19117:93:97::1;::::0;::::1;10564:21:165::0;;;10601:18;;;10594:30;10660:34;10640:18;;;10633:62;10712:18;;19117:93:97::1;10380:356:165::0;19117:93:97::1;-1:-1:-1::0;;;;;19250:27:97;::::1;;::::0;;;:13:::1;:27;::::0;;;;;:39:::1;::::0;19281:7;;19250:39:::1;:::i;:::-;-1:-1:-1::0;;;;;19220:27:97;::::1;;::::0;;;:13:::1;:27;::::0;;;;;;:69;;;;19304:35;;::::1;::::0;::::1;::::0;19331:7;1868:25:165;;1856:2;1841:18;;1722:177;19304:35:97::1;;;;;;;;19056:290;18962:384:::0;;:::o;11411:249::-;11535:9;11530:124;11550:25;;;11530:124;;;11596:47;11613:14;;11628:1;11613:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11632:7;;11640:1;11632:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;11596:47::-;11577:3;;11530:124;;;;11411:249;;;;:::o;19417:347::-;4201:19:88;4209:10;4201:7;:19::i;:::-;4193:78;;;;-1:-1:-1;;;4193:78:88;;;;;;;:::i;:::-;-1:-1:-1;;;;;19531:27:97;::::1;;::::0;;;:13:::1;:27;::::0;;;;;:38;-1:-1:-1;19531:38:97::1;19523:103;;;::::0;-1:-1:-1;;;19523:103:97;;11321:2:165;19523:103:97::1;::::0;::::1;11303:21:165::0;11360:2;11340:18;;;11333:30;11399:34;11379:18;;;11372:62;-1:-1:-1;;;11450:18:165;;;11443:50;11510:19;;19523:103:97::1;11119:416:165::0;19523:103:97::1;-1:-1:-1::0;;;;;19666:27:97;::::1;;::::0;;;:13:::1;:27;::::0;;;;;:39:::1;::::0;19697:7;;19666:39:::1;:::i;:::-;-1:-1:-1::0;;;;;19636:27:97;::::1;;::::0;;;:13:::1;:27;::::0;;;;;;:69;;;;19720:37;;::::1;::::0;::::1;::::0;19749:7;1868:25:165;;1856:2;1841:18;;1722:177;19720:37:97::1;;;;;;;;19417:347:::0;;:::o;4703:103:88:-;4757:4;4780:19;4757:4;4792:6;4780:11;:19::i;9717:692:97:-;4209:12;;9855:4;;4209:12;;4208:13;4200:42;;;;-1:-1:-1;;;4200:42:97;;;;;;;:::i;:::-;-1:-1:-1;;;;;9880:12:97;::::1;;::::0;;;:7:::1;:12;::::0;;;;;::::1;;9879:13;:32:::0;::::1;;;-1:-1:-1::0;;;;;;9897:14:97;::::1;;::::0;;;:7:::1;:14;::::0;;;;;::::1;;9896:15;9879:32;9871:61;;;::::0;-1:-1:-1;;;9871:61:97;;12220:2:165;9871:61:97::1;::::0;::::1;12202:21:165::0;12259:2;12239:18;;;12232:30;-1:-1:-1;;;12278:18:165;;;12271:46;12334:18;;9871:61:97::1;12018:340:165::0;9871:61:97::1;-1:-1:-1::0;;;;;9981:20:97;::::1;;::::0;;;:13:::1;:20;::::0;;;;;9961:16:::1;9995:5:::0;9961:9:::1;:16::i;:::-;:41;;;;:::i;:::-;9950:7;:52;;9942:85;;;::::0;-1:-1:-1;;;9942:85:97;;12565:2:165;9942:85:97::1;::::0;::::1;12547:21:165::0;12604:2;12584:18;;;12577:30;-1:-1:-1;;;12623:18:165;;;12616:50;12683:18;;9942:85:97::1;12363:344:165::0;9942:85:97::1;10041:22;::::0;:38:::1;::::0;-1:-1:-1;;;10041:38:97;;-1:-1:-1;;;;;1487:32:165;;;10041:38:97::1;::::0;::::1;1469:51:165::0;10041:22:97::1;::::0;;::::1;::::0;;::::1;::::0;:33:::1;::::0;1442:18:165;;10041:38:97::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:91;;;;-1:-1:-1::0;10083:16:97::1;::::0;:49:::1;::::0;-1:-1:-1;;;10083:49:97;;-1:-1:-1;;;;;10083:16:97;;::::1;::::0;:28:::1;::::0;:49:::1;::::0;10112:5;;10119:3;;10124:7;;10083:49:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10037:325;;;-1:-1:-1::0;;;;;10176:18:97;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;10164:10:::1;10176:30:::0;;;;;;;;;10148:71:::1;::::0;10157:5;;10176:42:::1;::::0;10210:7;;10176:42:::1;:::i;:::-;10148:8;:71::i;:::-;10233:30;10243:5;10250:3;10255:7;10233:9;:30::i;:::-;10277:16;::::0;:49:::1;::::0;-1:-1:-1;;;10277:49:97;;-1:-1:-1;;;;;10277:16:97;;::::1;::::0;:28:::1;::::0;:49:::1;::::0;10306:5;;10313:3;;10318:7;;10277:49:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10347:4;10340:11;;;;10037:325;10371:31;::::0;-1:-1:-1;;;10371:31:97;;13544:2:165;10371:31:97::1;::::0;::::1;13526:21:165::0;13583:2;13563:18;;;13556:30;-1:-1:-1;;;13602:18:165;;;13595:51;13663:18;;10371:31:97::1;13342:345:165::0;4252:1:97::1;9717:692:::0;;;;;:::o;6882:217::-;6999:10;6974:4;7021:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7021:33:97;;;;;;;;;;6974:4;;6990:81;;7011:8;;7021:49;;7058:11;;7021:49;:::i;8322:228::-;2334:13:136;:11;:13::i;:::-;8402:15:97::1;:28:::0;;-1:-1:-1;;;;;;8402:28:97::1;;-1:-1:-1::0;;;;;8402:28:97;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;8445:98:::1;::::0;8527:15;::::1;;::::0;8445:98:::1;::::0;8481:12:::1;::::0;8445:98:::1;:::i;:::-;;;;;;;;8469:10;8445:98;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;8495:14:::1;::::0;8511;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;8511:14:97::1;::::0;::::1;::::0;8445:98;;;;::::1;::::0;::::1;::::0;8495:14:::1;::::0;;::::1;::::0;8445:98;::::1;:::i;:::-;;;;;;;;8322:228:::0;:::o;8790:130::-;4201:19:88;4209:10;4201:7;:19::i;:::-;4193:78;;;;-1:-1:-1;;;4193:78:88;;;;;;;:::i;:::-;4390:12:97::1;::::0;::::1;;4382:45;;;::::0;-1:-1:-1;;;4382:45:97;;15171:2:165;4382:45:97::1;::::0;::::1;15153:21:165::0;15210:2;15190:18;;;15183:30;-1:-1:-1;;;15229:18:165;;;15222:50;15289:18;;4382:45:97::1;14969:344:165::0;4382:45:97::1;8858:12:::2;:20:::0;;-1:-1:-1;;8858:20:97::2;::::0;;8893::::2;::::0;8902:10:::2;1469:51:165::0;;8893:20:97::2;::::0;1457:2:165;1442:18;8893:20:97::2;;;;;;;;8790:130::o:0;17611:340::-;4201:19:88;4209:10;4201:7;:19::i;:::-;4193:78;;;;-1:-1:-1;;;4193:78:88;;;;;;;:::i;:::-;17699:22:97::1;::::0;:38:::1;::::0;-1:-1:-1;;;17699:38:97;;-1:-1:-1;;;;;1487:32:165;;;17699:38:97::1;::::0;::::1;1469:51:165::0;17699:22:97::1;::::0;;::::1;::::0;;::::1;::::0;:33:::1;::::0;1442:18:165;;17699:38:97::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17691:76;;;::::0;-1:-1:-1;;;17691:76:97;;15520:2:165;17691:76:97::1;::::0;::::1;15502:21:165::0;15559:2;15539:18;;;15532:30;15598:27;15578:18;;;15571:55;15643:18;;17691:76:97::1;15318:349:165::0;17691:76:97::1;17785:16;::::0;:54:::1;::::0;-1:-1:-1;;;17785:54:97;;-1:-1:-1;;;;;17785:16:97;;::::1;::::0;:28:::1;::::0;:54:::1;::::0;:16:::1;::::0;17826:3;;17831:7;;17785:54:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17777:90;;;::::0;-1:-1:-1;;;17777:90:97;;15874:2:165;17777:90:97::1;::::0;::::1;15856:21:165::0;15913:2;15893:18;;;15886:30;15952:25;15932:18;;;15925:53;15995:18;;17777:90:97::1;15672:347:165::0;17777:90:97::1;17877:19;17883:3;17888:7;17877:5;:19::i;:::-;17906:16;::::0;:38:::1;::::0;-1:-1:-1;;;17906:38:97;;-1:-1:-1;;;;;16216:32:165;;;17906:38:97::1;::::0;::::1;16198:51:165::0;16265:18;;;16258:34;;;17906:16:97;;::::1;::::0;:24:::1;::::0;16171:18:165;;17906:38:97::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17611:340:::0;;:::o;10478:305::-;10657:9;10652:125;10672:20;;;10652:125;;;10713:53;10728:9;;10738:1;10728:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;10742:7;;10750:1;10742:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;10754:8;;10763:1;10754:11;;;;;;;:::i;:::-;;;;;;;10713:14;:53::i;:::-;-1:-1:-1;10694:3:97;;10652:125;;;;10478:305;;;;;;:::o;12070:264::-;12203:9;12198:130;12218:25;;;12198:130;;;12264:53;12286:14;;12301:1;12286:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;12305:8;;12314:1;12305:11;;;;;;;:::i;:::-;;;;;;;12264:21;:53::i;:::-;12245:3;;12198:130;;11110:230;11226:9;11221:113;11241:25;;;11221:113;;;11287:36;11292:14;;11307:1;11292:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11311:8;;11320:1;11311:11;;;;;;;:::i;:::-;;;;;;;11287:4;:36::i;:::-;11268:3;;11221:113;;10842:209;10951:9;10946:99;10966:18;;;10946:99;;;11005:29;11010:7;;11018:1;11010:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11022:8;;11031:1;11022:11;;;;;;;:::i;:::-;;;;;;;11005:4;:29::i;:::-;10986:3;;10946:99;;20523:127;-1:-1:-1;;;;;20620:23:97;20594:7;20620:23;;;:9;:23;;;;;;;20523:127::o;3155:101:136:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;8605:128:97:-;4201:19:88;4209:10;4201:7;:19::i;:::-;4193:78;;;;-1:-1:-1;;;4193:78:88;;;;;;;:::i;:::-;4209:12:97::1;::::0;::::1;;4208:13;4200:42;;;;-1:-1:-1::0;;;4200:42:97::1;;;;;;;:::i;:::-;8674:12:::2;:19:::0;;-1:-1:-1;;8674:19:97::2;8689:4;8674:19;::::0;;8708:18:::2;::::0;8715:10:::2;1469:51:165::0;;8708:18:97::2;::::0;1457:2:165;1442:18;8708::97::2;1296:230:165::0;4295:194:88;2334:13:136;:11;:13::i;:::-;-1:-1:-1;;;;;4364:20:88;::::1;4356:64;;;;-1:-1:-1::0;;;4356:64:88::1;;;;;;;:::i;:::-;4430:19;:7;4442:6:::0;4430:11:::1;:19::i;:::-;4464:18;::::0;-1:-1:-1;;;;;4464:18:88;::::1;::::0;::::1;::::0;;;::::1;4295:194:::0;:::o;8983:217:97:-;9096:9;9091:103;9111:18;;;9091:103;;;9150:33;9159:7;;9167:1;9159:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9171:8;;9180:1;9171:11;;;;;;;:::i;:::-;;;;;;;9150:8;:33::i;:::-;-1:-1:-1;9131:3:97;;9091:103;;2441:144:136;1313:22;2570:8;-1:-1:-1;;;;;2570:8:136;;2441:144::o;12399:1199:97:-;12560:4;4201:19:88;4209:10;4201:7;:19::i;:::-;4193:78;;;;-1:-1:-1;;;4193:78:88;;;;;;;:::i;:::-;12584:22:97::1;12594:11;12584:9;:22::i;:::-;12610:1;12584:27:::0;12576:60:::1;;;::::0;-1:-1:-1;;;12576:60:97;;16865:2:165;12576:60:97::1;::::0;::::1;16847:21:165::0;16904:2;16884:18;;;16877:30;-1:-1:-1;;;16923:18:165;;;16916:50;16983:18;;12576:60:97::1;16663:344:165::0;12576:60:97::1;12733:22;::::0;;-1:-1:-1;;;;;1487:32:165;;12733:22:97::1;::::0;::::1;1469:51:165::0;12679:18:97;;12646:20:::1;::::0;1442:18:165;12733:22:97::1;::::0;;;;::::1;-1:-1:-1::0;;12733:22:97;;;;;;;12723:33;;12733:22:::1;12723:33:::0;;::::1;::::0;-1:-1:-1;;;12770:33:97;;::::1;::::0;::::1;17194:25:165::0;;;12801:1:97::1;17235:18:165::0;;;17228:34;12723:33:97;-1:-1:-1;;;;;;12770:24:97;::::1;::::0;::::1;::::0;17167:18:165;;12770:33:97::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12766:785;;;12819:22;12844;12854:11;12844:9;:22::i;:::-;-1:-1:-1::0;;;;;12903:26:97;;::::1;12880:20;12903:26:::0;;;:13:::1;:26;::::0;;;;;;;12943:22:::1;::::0;13007:68;;-1:-1:-1;;;13007:68:97;;::::1;::::0;::::1;1469:51:165::0;;;;12819:47:97;;-1:-1:-1;12943:22:97::1;::::0;::::1;::::0;;::::1;::::0;:39:::1;::::0;12983:10;;12995;;12943:22;;13007:38:::1;::::0;1442:18:165;;13007:68:97::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12943:133;::::0;-1:-1:-1;;;;;;12943:133:97::1;::::0;;;;;;-1:-1:-1;;;;;17829:15:165;;;12943:133:97::1;::::0;::::1;17811:34:165::0;17881:15;;;;17861:18;;;17854:43;17945:6;17933:19;17913:18;;;17906:47;17746:18;;12943:133:97::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13090:55;13105:11;13118:10;13130:14;13090;:55::i;:::-;-1:-1:-1::0;13163:16:97;;13159:100:::1;;13199:45;13219:10;13231:12;13199:19;:45::i;:::-;-1:-1:-1::0;;;;;13276:20:97;::::1;;::::0;;;:7:::1;:20;::::0;;;;;::::1;;:28;;:20:::0;:28;13272:101:::1;;13324:34;13341:10;13353:4;13324:16;:34::i;:::-;13386:22;::::0;:50:::1;::::0;-1:-1:-1;;;13386:50:97;;-1:-1:-1;;;;;1487:32:165;;;13386:50:97::1;::::0;::::1;1469:51:165::0;13386:22:97::1;::::0;;::::1;::::0;;::::1;::::0;:37:::1;::::0;1442:18:165;;13386:50:97::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13496:18;-1:-1:-1::0;;;;;13455:60:97::1;13484:10;-1:-1:-1::0;;;;;13455:60:97::1;13471:11;-1:-1:-1::0;;;;;13455:60:97::1;;;;;;;;;;;13536:4;13529:11;;;;;;;;12766:785;13560:31;::::0;-1:-1:-1;;;13560:31:97;;18166:2:165;13560:31:97::1;::::0;::::1;18148:21:165::0;18205:2;18185:18;;;18178:30;-1:-1:-1;;;18224:18:165;;;18217:51;18285:18;;13560:31:97::1;17964:345:165::0;15393:101:97;15443:13;15475:12;15468:19;;;;;:::i;4495:202:88:-;2334:13:136;:11;:13::i;:::-;-1:-1:-1;;;;;4567:20:88;::::1;4559:64;;;;-1:-1:-1::0;;;4559:64:88::1;;;;;;;:::i;:::-;4633:22;:7;4648:6:::0;4633:14:::1;:22::i;:::-;4670:20;::::0;-1:-1:-1;;;;;4670:20:88;::::1;::::0;::::1;::::0;;;::::1;4495:202:::0;:::o;18005:622:97:-;4201:19:88;4209:10;4201:7;:19::i;:::-;4193:78;;;;-1:-1:-1;;;4193:78:88;;;;;;;:::i;:::-;18129:7:97::1;18102:23;18112:12;18102:9;:23::i;:::-;:34;;18094:76;;;::::0;-1:-1:-1;;;18094:76:97;;18516:2:165;18094:76:97::1;::::0;::::1;18498:21:165::0;18555:2;18535:18;;;18528:30;18594:31;18574:18;;;18567:59;18643:18;;18094:76:97::1;18314:353:165::0;18094:76:97::1;-1:-1:-1::0;;;;;18228:27:97;::::1;18180:19;18228:27:::0;;;:13:::1;:27;::::0;;;;;18202:23:::1;18242:12:::0;18202:9:::1;:23::i;:::-;:53;;;;:::i;:::-;18180:75;;18279:11;18269:7;:21;18265:259;;;18306:24;18333:23;18344:11:::0;18333:7;:23:::1;:::i;:::-;-1:-1:-1::0;;;;;18400:27:97;::::1;;::::0;;;:13:::1;:27;::::0;;;;;18306:50;;-1:-1:-1;18400:48:97::1;::::0;18306:50;;18400:48:::1;:::i;:::-;-1:-1:-1::0;;;;;18370:27:97;::::1;;::::0;;;:13:::1;:27;::::0;;;;;;:78;;;;18467:46;;::::1;::::0;::::1;::::0;18496:16;1868:25:165;;1856:2;1841:18;;1722:177;18467:46:97::1;;;;;;;;18292:232;18265:259;18533:28;18539:12;18553:7;18533:5;:28::i;:::-;18571:16;::::0;:49:::1;::::0;-1:-1:-1;;;18571:49:97;;-1:-1:-1;;;;;16216:32:165;;;18571:49:97::1;::::0;::::1;16198:51:165::0;16265:18;;;16258:34;;;18571:16:97;;::::1;::::0;:26:::1;::::0;16171:18:165;;18571:49:97::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;16781:776:::0;16915:4;4201:19:88;4209:10;4201:7;:19::i;:::-;4193:78;;;;-1:-1:-1;;;4193:78:88;;;;;;;:::i;:::-;16959:7:97::1;16939:16;16949:5;16939:9;:16::i;:::-;:27;;16931:62;;;::::0;-1:-1:-1;;;16931:62:97;;18874:2:165;16931:62:97::1;::::0;::::1;18856:21:165::0;18913:2;18893:18;;;18886:30;-1:-1:-1;;;18932:18:165;;;18925:52;18994:18;;16931:62:97::1;18672:346:165::0;16931:62:97::1;-1:-1:-1::0;;;;;17045:20:97;::::1;17003:19;17045:20:::0;;;:13:::1;:20;::::0;;;;;17025:16:::1;17059:5:::0;17025:9:::1;:16::i;:::-;:41;;;;:::i;:::-;17003:63;;17090:11;17080:7;:21;17076:238;;;17117:24;17144:23;17155:11:::0;17144:7;:23:::1;:::i;:::-;-1:-1:-1::0;;;;;17204:20:97;::::1;;::::0;;;:13:::1;:20;::::0;;;;;17117:50;;-1:-1:-1;17204:41:97::1;::::0;17117:50;;17204:41:::1;:::i;:::-;-1:-1:-1::0;;;;;17181:20:97;::::1;;::::0;;;:13:::1;:20;::::0;;;;;;:64;;;;17264:39;;::::1;::::0;::::1;::::0;17286:16;1868:25:165;;1856:2;1841:18;;1722:177;17264:39:97::1;;;;;;;;17103:211;17076:238;17327:22;::::0;:38:::1;::::0;-1:-1:-1;;;17327:38:97;;-1:-1:-1;;;;;1487:32:165;;;17327:38:97::1;::::0;::::1;1469:51:165::0;17327:22:97::1;::::0;;::::1;::::0;;::::1;::::0;:33:::1;::::0;1442:18:165;;17327:38:97::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17323:187;;;17381:30;17391:5;17398:3;17403:7;17381:9;:30::i;:::-;17425:16;::::0;:49:::1;::::0;-1:-1:-1;;;17425:49:97;;-1:-1:-1;;;;;17425:16:97;;::::1;::::0;:28:::1;::::0;:49:::1;::::0;17454:5;;17461:3;;17466:7;;17425:49:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17495:4;17488:11;;;;;7165:225:::0;7287:10;7262:4;7309:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7309:33:97;;;;;;;;;;7262:4;;7278:84;;7299:8;;7309:52;;7345:16;;7309:52;:::i;16131:586::-;4209:12;;16218:4;;4209:12;;4208:13;4200:42;;;;-1:-1:-1;;;4200:42:97;;;;;;;:::i;:::-;-1:-1:-1;;;;;16243:12:97;::::1;;::::0;;;:7:::1;:12;::::0;;;;;::::1;;16242:13;:37:::0;::::1;;;-1:-1:-1::0;16268:10:97::1;16260:19;::::0;;;:7:::1;:19;::::0;;;;;::::1;;16259:20;16242:37;16234:66;;;::::0;-1:-1:-1;;;16234:66:97;;12220:2:165;16234:66:97::1;::::0;::::1;12202:21:165::0;12259:2;12239:18;;;12232:30;-1:-1:-1;;;12278:18:165;;;12271:46;12334:18;;16234:66:97::1;12018:340:165::0;16234:66:97::1;16368:10;16354:25;::::0;;;:13:::1;:25;::::0;;;;;;16329:21:::1;::::0;:9:::1;:21::i;:::-;:51;;;;:::i;:::-;16318:7;:62;;16310:95;;;::::0;-1:-1:-1;;;16310:95:97;;12565:2:165;16310:95:97::1;::::0;::::1;12547:21:165::0;12604:2;12584:18;;;12577:30;-1:-1:-1;;;12623:18:165;;;12616:50;12683:18;;16310:95:97::1;12363:344:165::0;16310:95:97::1;16419:22;::::0;:38:::1;::::0;-1:-1:-1;;;16419:38:97;;-1:-1:-1;;;;;1487:32:165;;;16419:38:97::1;::::0;::::1;1469:51:165::0;16419:22:97::1;::::0;;::::1;::::0;;::::1;::::0;:33:::1;::::0;1442:18:165;;16419:38:97::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:96;;;;-1:-1:-1::0;16461:16:97::1;::::0;:54:::1;::::0;-1:-1:-1;;;16461:54:97;;-1:-1:-1;;;;;16461:16:97;;::::1;::::0;:28:::1;::::0;:54:::1;::::0;16490:10:::1;::::0;16502:3;;16507:7;;16461:54:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16415:255;;;16531:35;16541:10;16553:3;16558:7;16531:9;:35::i;:::-;16580:16;::::0;:54:::1;::::0;-1:-1:-1;;;16580:54:97;;-1:-1:-1;;;;;16580:16:97;;::::1;::::0;:28:::1;::::0;:54:::1;::::0;16609:10:::1;::::0;16621:3;;16626:7;;16580:54:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16655:4;16648:11;;;;7833:337:::0;2334:13:136;:11;:13::i;:::-;7967:14:97::1;;;;;;19225:2:165::0;19207:21;;;19264:1;19244:18;;;19237:29;19298:2;19283:18;;19023:284;7967:14:97::1;;;;;;;;;;;;;7957:25;;;;;;7944:7;;7933:19;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7923:30;;;;;;:59:::0;7915:103:::1;;;;-1:-1:-1::0;;;7915:103:97::1;;;;;;;:::i;:::-;8028:12;:22;8043:7:::0;;8028:12;:22:::1;:::i;:::-;-1:-1:-1::0;8147:15:97::1;::::0;8065:98:::1;::::0;8147:15:::1;::::0;;::::1;-1:-1:-1::0;;;;;8147:15:97::1;::::0;8065:98:::1;::::0;8101:12:::1;::::0;8065:98:::1;:::i;:::-;;;;;;;;8089:10;8065:98;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;8115:14:::1;::::0;8131;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;8131:14:97::1;::::0;::::1;::::0;8065:98;;;;::::1;::::0;::::1;::::0;8115:14:::1;::::0;;::::1;::::0;8065:98;::::1;:::i;:::-;;;;;;;;7833:337:::0;;:::o;7447:327::-;2334:13:136;:11;:13::i;:::-;7575:14:97::1;;;;;;19225:2:165::0;19207:21;;;19264:1;19244:18;;;19237:29;19298:2;19283:18;;19023:284;7575:14:97::1;;;;;;;;;;;;;7565:25;;;;;;7554:5;;7543:17;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7533:28;;;;;;:57:::0;7525:101:::1;;;;-1:-1:-1::0;;;7525:101:97::1;;;;;;;:::i;:::-;7636:10;:18;7649:5:::0;;7636:10;:18:::1;:::i;18693:200::-:0;4201:19:88;4209:10;4201:7;:19::i;:::-;4193:78;;;;-1:-1:-1;;;4193:78:88;;;;;;;:::i;:::-;-1:-1:-1;;;;;18791:21:97;::::1;;::::0;;;:7:::1;:21;::::0;;;;;:31;;-1:-1:-1;;18791:31:97::1;::::0;::::1;;::::0;;::::1;::::0;;;18838:48;;18875:10:::1;::::0;18791:31;;18838:48:::1;::::0;::::1;18693:200:::0;;:::o;19833:215::-;2334:13:136;:11;:13::i;:::-;19925:22:97::1;:61:::0;;-1:-1:-1;;;;;;19925:61:97::1;;-1:-1:-1::0;;;;;19925:61:97;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;20001:40:::1;::::0;::::1;::::0;-1:-1:-1;;20001:40:97::1;19833:215:::0;:::o;3405::136:-;2334:13;:11;:13::i;:::-;-1:-1:-1;;;;;3489:22:136;::::1;3485:91;;3534:31;::::0;-1:-1:-1;;;3534:31:136;;3562:1:::1;3534:31;::::0;::::1;1469:51:165::0;1442:18;;3534:31:136::1;1296:230:165::0;3485:91:136::1;3585:28;3604:8;3585:18;:28::i;:::-;3405:215:::0;:::o;20111:353:97:-;2334:13:136;:11;:13::i;:::-;20203:16:97::1;::::0;-1:-1:-1;;;;;20203:16:97::1;20195:39:::0;20191:113:::1;;20250:16;::::0;:43:::1;::::0;-1:-1:-1;;;20250:43:97;;20287:4:::1;20250:43;::::0;::::1;1469:51:165::0;-1:-1:-1;;;;;20250:16:97;;::::1;::::0;:28:::1;::::0;1442:18:165;;20250:43:97::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20191:113;20313:16;:50:::0;;-1:-1:-1;;;;;;20313:50:97::1;-1:-1:-1::0;;;;;20313:50:97;::::1;::::0;;::::1;::::0;;;20373:41:::1;::::0;-1:-1:-1;;;20373:41:97;;20408:4:::1;20373:41;::::0;::::1;1469:51:165::0;20373:26:97::1;::::0;1442:18:165;;20373:41:97::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;20429:28:97::1;::::0;-1:-1:-1;;;;;20429:28:97;::::1;::::0;-1:-1:-1;20429:28:97::1;::::0;-1:-1:-1;20429:28:97;;::::1;20111:353:::0;:::o;5121:1468::-;8870:21:137;4302:15;;-1:-1:-1;;;4302:15:137;;;;4301:16;;4348:14;;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;:16;;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:137;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:137;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:137;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:137;-1:-1:-1;;;5013:22:137;;;4979:67;5722:1:97::1;5703:7;:5;:7::i;:::-;-1:-1:-1::0;;;;;5703:21:97::1;;5695:53;;;::::0;-1:-1:-1;;;5695:53:97;;22199:2:165;5695:53:97::1;::::0;::::1;22181:21:165::0;22238:2;22218:18;;;22211:30;-1:-1:-1;;;22257:18:165;;;22250:49;22316:18;;5695:53:97::1;21997:343:165::0;5695:53:97::1;-1:-1:-1::0;;;;;5779:31:97;::::1;::::0;;::::1;::::0;:72:::1;;-1:-1:-1::0;;;;;;5826:25:97;::::1;::::0;::::1;5779:72;5758:138;;;;-1:-1:-1::0;;;5758:138:97::1;;;;;;;:::i;:::-;5969:14;;;;;;19225:2:165::0;19207:21;;;19264:1;19244:18;;;19237:29;19298:2;19283:18;;19023:284;5969:14:97::1;;;;;;;;;;;;;5959:25;;;;;;5948:5;5937:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;5927:28;;;;;;:57;;:132;;;;;6044:14;;;;;;19225:2:165::0;19207:21;;;19264:1;19244:18;;;19237:29;19298:2;19283:18;;19023:284;6044:14:97::1;;;;;;;;;;;;;6034:25;;;;;;6021:7;6010:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;6000:30;;;;;;:59;;5927:132;5906:198;;;;-1:-1:-1::0;;;5906:198:97::1;;;;;;;:::i;:::-;6153:2;6140:9;:15;;;;6114:71;;;::::0;-1:-1:-1;;;6114:71:97;;22547:2:165;6114:71:97::1;::::0;::::1;22529:21:165::0;22586:2;22566:18;;;22559:30;22625:27;22605:18;;;22598:55;22670:18;;6114:71:97::1;22345:349:165::0;6114:71:97::1;6195:26;6210:10;6195:14;:26::i;:::-;6231:10;:18;6244:5:::0;6231:10;:18:::1;:::i;:::-;-1:-1:-1::0;6259:12:97::1;:22;6274:7:::0;6259:12;:22:::1;:::i;:::-;-1:-1:-1::0;6291:14:97::1;:26:::0;;-1:-1:-1;;;;;6327:28:97;::::1;6291:26;6327:28;-1:-1:-1::0;;;;;;6327:28:97;;;6291:26:::1;::::0;::::1;6327:28:::0;::::1;::::0;;6365:12:::1;:20:::0;;-1:-1:-1;;6365:20:97::1;::::0;;6395:38:::1;6415:17:::0;6395:19:::1;:38::i;:::-;6443:26;6457:11;6443:13;:26::i;:::-;6566:15;::::0;6484:98:::1;::::0;6566:15:::1;::::0;;::::1;-1:-1:-1::0;;;;;6566:15:97::1;::::0;6484:98:::1;::::0;6520:12:::1;::::0;6484:98:::1;:::i;:::-;;;;;;;;6508:10;6484:98;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;6534:14:::1;::::0;6550;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6550:14:97::1;::::0;::::1;::::0;6484:98;;;;::::1;::::0;::::1;::::0;6534:14:::1;::::0;;::::1;::::0;6484:98;::::1;:::i;:::-;;;;;;;;5070:14:137::0;5066:101;;;5100:23;;-1:-1:-1;;;;5100:23:137;;;5142:14;;-1:-1:-1;24202:50:165;;5142:14:137;;24190:2:165;24175:18;5142:14:137;;;;;;;5066:101;4092:1081;;;;;5121:1468:97;;;;;;:::o;11734:260::-;11865:9;11860:128;11880:25;;;11860:128;;;11926:51;11946:14;;11961:1;11946:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11965:8;;11974:1;11965:11;;;;;;;:::i;:::-;;;;;;;11926:19;:51::i;:::-;11907:3;;11860:128;;22148:381;-1:-1:-1;;;;;22282:20:97;;22274:69;;;;-1:-1:-1;;;22274:69:97;;24465:2:165;22274:69:97;;;24447:21:165;24504:2;24484:18;;;24477:30;24543:34;24523:18;;;24516:62;-1:-1:-1;;;24594:18:165;;;24587:34;24638:19;;22274:69:97;24263:400:165;22274:69:97;-1:-1:-1;;;;;22361:22:97;;22353:69;;;;-1:-1:-1;;;22353:69:97;;24870:2:165;22353:69:97;;;24852:21:165;24909:2;24889:18;;;24882:30;24948:34;24928:18;;;24921:62;-1:-1:-1;;;24999:18:165;;;24992:32;25041:19;;22353:69:97;24668:398:165;22353:69:97;-1:-1:-1;;;;;22433:19:97;;;;;;;:11;:19;;;;;;;;:29;;;;;;;;;;;;;:39;;;22487:35;;1868:25:165;;;22487:35:97;;1841:18:165;22487:35:97;;;;;;;;22148:381;;;:::o;4596:200:89:-;4668:4;-1:-1:-1;;;;;4692:21:89;;4684:68;;;;-1:-1:-1;;;4684:68:89;;25273:2:165;4684:68:89;;;25255:21:165;25312:2;25292:18;;;25285:30;25351:34;25331:18;;;25324:62;-1:-1:-1;;;25402:18:165;;;25395:32;25444:19;;4684:68:89;25071:398:165;4684:68:89;-1:-1:-1;;;;;;4769:20:89;:11;:20;;;;;;;;;;;;;;;4596:200::o;20708:475:97:-;-1:-1:-1;;;;;20837:19:97;;20829:69;;;;-1:-1:-1;;;20829:69:97;;25676:2:165;20829:69:97;;;25658:21:165;25715:2;25695:18;;;25688:30;25754:34;25734:18;;;25727:62;-1:-1:-1;;;25805:18:165;;;25798:35;25850:19;;20829:69:97;25474:401:165;20829:69:97;-1:-1:-1;;;;;20916:17:97;;20908:65;;;;-1:-1:-1;;;20908:65:97;;26082:2:165;20908:65:97;;;26064:21:165;26121:2;26101:18;;;26094:30;26160:34;26140:18;;;26133:62;-1:-1:-1;;;26211:18:165;;;26204:33;26254:19;;20908:65:97;25880:399:165;20908:65:97;-1:-1:-1;;;;;21055:16:97;;;;;;:9;:16;;;;;;:26;;21074:7;;21055:26;:::i;:::-;-1:-1:-1;;;;;21036:16:97;;;;;;;:9;:16;;;;;;:45;;;;21108:14;;;;;;;:24;;21125:7;;21108:24;:::i;:::-;-1:-1:-1;;;;;21091:14:97;;;;;;;:9;:14;;;;;;;:41;;;;21147:29;;;;;;;;;;21168:7;1868:25:165;;1856:2;1841:18;;1722:177;2658:162:136;966:10:138;2717:7:136;:5;:7::i;:::-;-1:-1:-1;;;;;2717:23:136;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:136;;966:10:138;2763:40:136;;;1469:51:165;1442:18;;2763:40:136;1296:230:165;21237:399:97;-1:-1:-1;;;;;21326:26:97;;21318:70;;;;-1:-1:-1;;;21318:70:97;;26486:2:165;21318:70:97;;;26468:21:165;26525:2;26505:18;;;26498:30;26564:33;26544:18;;;26537:61;26615:18;;21318:70:97;26284:355:165;21318:70:97;21495:7;21480:12;;:22;;;;:::i;:::-;21465:12;:37;-1:-1:-1;;;;;21538:23:97;;;;;;:9;:23;;;;;;:33;;21564:7;;21538:33;:::i;:::-;-1:-1:-1;;;;;21512:23:97;;;;;;:9;:23;;;;;;:59;;;;21586:43;;21512:23;;;21586:43;;;;21621:7;1868:25:165;;1856:2;1841:18;;1722:177;21586:43:97;;;;;;;;21237:399;;:::o;3774:248:136:-;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:136;;-1:-1:-1;;;;;3941:19:136;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;4077:175:89:-;4154:18;4158:4;4164:7;4154:3;:18::i;:::-;4153:19;4145:63;;;;-1:-1:-1;;;4145:63:89;;26846:2:165;4145:63:89;;;26828:21:165;26885:2;26865:18;;;26858:30;26924:33;26904:18;;;26897:61;26975:18;;4145:63:89;26644:355:165;4145:63:89;-1:-1:-1;;;;;4218:20:89;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4218:27:89;4241:4;4218:27;;;4077:175::o;4327:180::-;4406:18;4410:4;4416:7;4406:3;:18::i;:::-;4398:64;;;;-1:-1:-1;;;4398:64:89;;27206:2:165;4398:64:89;;;27188:21:165;27245:2;27225:18;;;27218:30;27284:34;27264:18;;;27257:62;-1:-1:-1;;;27335:18:165;;;27328:31;27376:19;;4398:64:89;27004:397:165;4398:64:89;-1:-1:-1;;;;;4472:20:89;4495:5;4472:20;;;;;;;;;;;:28;;-1:-1:-1;;4472:28:89;;;4327:180::o;21690:401:97:-;-1:-1:-1;;;;;21779:26:97;;21771:72;;;;-1:-1:-1;;;21771:72:97;;27608:2:165;21771:72:97;;;27590:21:165;27647:2;27627:18;;;27620:30;27686:34;27666:18;;;27659:62;-1:-1:-1;;;27737:18:165;;;27730:31;27778:19;;21771:72:97;27406:397:165;21771:72:97;-1:-1:-1;;;;;21946:23:97;;;;;;:9;:23;;;;;;:33;;21972:7;;21946:33;:::i;:::-;-1:-1:-1;;;;;21920:23:97;;;;;;:9;:23;;;;;:59;22004:12;;:22;;22019:7;;22004:22;:::i;:::-;21989:12;:37;22041:43;;1868:25:165;;;22072:1:97;;-1:-1:-1;;;;;22041:43:97;;;;;1856:2:165;1841:18;22041:43:97;1722:177:165;1847:127:136;6931:20:137;:18;:20::i;:::-;1929:38:136::1;1954:12;1929:24;:38::i;22647:94:97:-:0;;;;:::o;7084:141:137:-;8870:21;8560:40;-1:-1:-1;;;8560:40:137;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:137;;;;;;;;;;;1980:235:136;6931:20:137;:18;:20::i;14:423:165:-;56:3;94:5;88:12;121:6;116:3;109:19;146:1;156:162;170:6;167:1;164:13;156:162;;;232:4;288:13;;;284:22;;278:29;260:11;;;256:20;;249:59;185:12;156:162;;;160:3;363:1;356:4;347:6;342:3;338:16;334:27;327:38;426:4;419:2;415:7;410:2;402:6;398:15;394:29;389:3;385:39;381:50;374:57;;;14:423;;;;:::o;442:220::-;591:2;580:9;573:21;554:4;611:45;652:2;641:9;637:18;629:6;611:45;:::i;667:173::-;735:20;;-1:-1:-1;;;;;784:31:165;;774:42;;764:70;;830:1;827;820:12;764:70;667:173;;;:::o;845:254::-;913:6;921;974:2;962:9;953:7;949:23;945:32;942:52;;;990:1;987;980:12;942:52;1013:29;1032:9;1013:29;:::i;:::-;1003:39;1089:2;1074:18;;;;1061:32;;-1:-1:-1;;;845:254:165:o;1531:186::-;1590:6;1643:2;1631:9;1622:7;1618:23;1614:32;1611:52;;;1659:1;1656;1649:12;1611:52;1682:29;1701:9;1682:29;:::i;1904:367::-;1967:8;1977:6;2031:3;2024:4;2016:6;2012:17;2008:27;1998:55;;2049:1;2046;2039:12;1998:55;-1:-1:-1;2072:20:165;;2115:18;2104:30;;2101:50;;;2147:1;2144;2137:12;2101:50;2184:4;2176:6;2172:17;2160:29;;2244:3;2237:4;2227:6;2224:1;2220:14;2212:6;2208:27;2204:38;2201:47;2198:67;;;2261:1;2258;2251:12;2198:67;1904:367;;;;;:::o;2276:770::-;2395:6;2403;2411;2419;2472:2;2460:9;2451:7;2447:23;2443:32;2440:52;;;2488:1;2485;2478:12;2440:52;2528:9;2515:23;2557:18;2598:2;2590:6;2587:14;2584:34;;;2614:1;2611;2604:12;2584:34;2653:70;2715:7;2706:6;2695:9;2691:22;2653:70;:::i;:::-;2742:8;;-1:-1:-1;2627:96:165;-1:-1:-1;2830:2:165;2815:18;;2802:32;;-1:-1:-1;2846:16:165;;;2843:36;;;2875:1;2872;2865:12;2843:36;;2914:72;2978:7;2967:8;2956:9;2952:24;2914:72;:::i;:::-;2276:770;;;;-1:-1:-1;3005:8:165;-1:-1:-1;;;;2276:770:165:o;3051:328::-;3128:6;3136;3144;3197:2;3185:9;3176:7;3172:23;3168:32;3165:52;;;3213:1;3210;3203:12;3165:52;3236:29;3255:9;3236:29;:::i;:::-;3226:39;;3284:38;3318:2;3307:9;3303:18;3284:38;:::i;:::-;3274:48;;3369:2;3358:9;3354:18;3341:32;3331:42;;3051:328;;;;;:::o;3573:1088::-;3731:6;3739;3747;3755;3763;3771;3824:2;3812:9;3803:7;3799:23;3795:32;3792:52;;;3840:1;3837;3830:12;3792:52;3880:9;3867:23;3909:18;3950:2;3942:6;3939:14;3936:34;;;3966:1;3963;3956:12;3936:34;4005:70;4067:7;4058:6;4047:9;4043:22;4005:70;:::i;:::-;4094:8;;-1:-1:-1;3979:96:165;-1:-1:-1;4182:2:165;4167:18;;4154:32;;-1:-1:-1;4198:16:165;;;4195:36;;;4227:1;4224;4217:12;4195:36;4266:72;4330:7;4319:8;4308:9;4304:24;4266:72;:::i;:::-;4357:8;;-1:-1:-1;4240:98:165;-1:-1:-1;4445:2:165;4430:18;;4417:32;;-1:-1:-1;4461:16:165;;;4458:36;;;4490:1;4487;4480:12;4458:36;;4529:72;4593:7;4582:8;4571:9;4567:24;4529:72;:::i;:::-;3573:1088;;;;-1:-1:-1;3573:1088:165;;-1:-1:-1;3573:1088:165;;4620:8;;3573:1088;-1:-1:-1;;;3573:1088:165:o;5888:334::-;5965:6;5973;5981;6034:2;6022:9;6013:7;6009:23;6005:32;6002:52;;;6050:1;6047;6040:12;6002:52;6073:29;6092:9;6073:29;:::i;:::-;6063:39;;6121:38;6155:2;6144:9;6140:18;6121:38;:::i;:::-;6111:48;;6178:38;6212:2;6201:9;6197:18;6178:38;:::i;:::-;6168:48;;5888:334;;;;;:::o;6227:592::-;6298:6;6306;6359:2;6347:9;6338:7;6334:23;6330:32;6327:52;;;6375:1;6372;6365:12;6327:52;6415:9;6402:23;6444:18;6485:2;6477:6;6474:14;6471:34;;;6501:1;6498;6491:12;6471:34;6539:6;6528:9;6524:22;6514:32;;6584:7;6577:4;6573:2;6569:13;6565:27;6555:55;;6606:1;6603;6596:12;6555:55;6646:2;6633:16;6672:2;6664:6;6661:14;6658:34;;;6688:1;6685;6678:12;6658:34;6733:7;6728:2;6719:6;6715:2;6711:15;6707:24;6704:37;6701:57;;;6754:1;6751;6744:12;6701:57;6785:2;6777:11;;;;;6807:6;;-1:-1:-1;6227:592:165;;-1:-1:-1;;;;6227:592:165:o;6824:118::-;6910:5;6903:13;6896:21;6889:5;6886:32;6876:60;;6932:1;6929;6922:12;6947:315;7012:6;7020;7073:2;7061:9;7052:7;7048:23;7044:32;7041:52;;;7089:1;7086;7079:12;7041:52;7112:29;7131:9;7112:29;:::i;:::-;7102:39;;7191:2;7180:9;7176:18;7163:32;7204:28;7226:5;7204:28;:::i;:::-;7251:5;7241:15;;;6947:315;;;;;:::o;7267:260::-;7335:6;7343;7396:2;7384:9;7375:7;7371:23;7367:32;7364:52;;;7412:1;7409;7402:12;7364:52;7435:29;7454:9;7435:29;:::i;:::-;7425:39;;7483:38;7517:2;7506:9;7502:18;7483:38;:::i;:::-;7473:48;;7267:260;;;;;:::o;7532:127::-;7593:10;7588:3;7584:20;7581:1;7574:31;7624:4;7621:1;7614:15;7648:4;7645:1;7638:15;7664:719;7707:5;7760:3;7753:4;7745:6;7741:17;7737:27;7727:55;;7778:1;7775;7768:12;7727:55;7814:6;7801:20;7840:18;7877:2;7873;7870:10;7867:36;;;7883:18;;:::i;:::-;7958:2;7952:9;7926:2;8012:13;;-1:-1:-1;;8008:22:165;;;8032:2;8004:31;8000:40;7988:53;;;8056:18;;;8076:22;;;8053:46;8050:72;;;8102:18;;:::i;:::-;8142:10;8138:2;8131:22;8177:2;8169:6;8162:18;8223:3;8216:4;8211:2;8203:6;8199:15;8195:26;8192:35;8189:55;;;8240:1;8237;8230:12;8189:55;8304:2;8297:4;8289:6;8285:17;8278:4;8270:6;8266:17;8253:54;8351:1;8344:4;8339:2;8331:6;8327:15;8323:26;8316:37;8371:6;8362:15;;;;;;7664:719;;;;:::o;8388:925::-;8510:6;8518;8526;8534;8542;8550;8603:3;8591:9;8582:7;8578:23;8574:33;8571:53;;;8620:1;8617;8610:12;8571:53;8643:29;8662:9;8643:29;:::i;:::-;8633:39;;8691:38;8725:2;8714:9;8710:18;8691:38;:::i;:::-;8681:48;;8780:2;8769:9;8765:18;8752:32;8803:18;8844:2;8836:6;8833:14;8830:34;;;8860:1;8857;8850:12;8830:34;8883:50;8925:7;8916:6;8905:9;8901:22;8883:50;:::i;:::-;8873:60;;8986:2;8975:9;8971:18;8958:32;8942:48;;9015:2;9005:8;9002:16;8999:36;;;9031:1;9028;9021:12;8999:36;;9054:52;9098:7;9087:8;9076:9;9072:24;9054:52;:::i;:::-;9044:62;;;9156:3;9145:9;9141:19;9128:33;9201:4;9194:5;9190:16;9183:5;9180:27;9170:55;;9221:1;9218;9211:12;9170:55;9244:5;-1:-1:-1;9268:39:165;9302:3;9287:19;;9268:39;:::i;:::-;9258:49;;8388:925;;;;;;;;:::o;9318:380::-;9397:1;9393:12;;;;9440;;;9461:61;;9515:4;9507:6;9503:17;9493:27;;9461:61;9568:2;9560:6;9557:14;9537:18;9534:38;9531:161;;9614:10;9609:3;9605:20;9602:1;9595:31;9649:4;9646:1;9639:15;9677:4;9674:1;9667:15;9531:161;;9318:380;;;:::o;9703:410::-;9905:2;9887:21;;;9944:2;9924:18;;;9917:30;9983:34;9978:2;9963:18;;9956:62;-1:-1:-1;;;10049:2:165;10034:18;;10027:44;10103:3;10088:19;;9703:410::o;10118:127::-;10179:10;10174:3;10170:20;10167:1;10160:31;10210:4;10207:1;10200:15;10234:4;10231:1;10224:15;10250:125;10315:9;;;10336:10;;;10333:36;;;10349:18;;:::i;10741:127::-;10802:10;10797:3;10793:20;10790:1;10783:31;10833:4;10830:1;10823:15;10857:4;10854:1;10847:15;10873:241;10929:6;10982:2;10970:9;10961:7;10957:23;10953:32;10950:52;;;10998:1;10995;10988:12;10950:52;11037:9;11024:23;11056:28;11078:5;11056:28;:::i;11540:128::-;11607:9;;;11628:11;;;11625:37;;;11642:18;;:::i;11673:340::-;11875:2;11857:21;;;11914:2;11894:18;;;11887:30;-1:-1:-1;;;11948:2:165;11933:18;;11926:46;12004:2;11989:18;;11673:340::o;12712:245::-;12779:6;12832:2;12820:9;12811:7;12807:23;12803:32;12800:52;;;12848:1;12845;12838:12;12800:52;12880:9;12874:16;12899:28;12921:5;12899:28;:::i;12962:375::-;-1:-1:-1;;;;;13220:15:165;;;13202:34;;13272:15;;;;13267:2;13252:18;;13245:43;13319:2;13304:18;;13297:34;;;;13152:2;13137:18;;12962:375::o;13818:843::-;13946:3;13975:1;14008:6;14002:13;14038:36;14064:9;14038:36;:::i;:::-;14093:1;14110:17;;;14136:133;;;;14283:1;14278:358;;;;14103:533;;14136:133;-1:-1:-1;;14169:24:165;;14157:37;;14242:14;;14235:22;14223:35;;14214:45;;;-1:-1:-1;14136:133:165;;14278:358;14309:6;14306:1;14299:17;14339:4;14384;14381:1;14371:18;14411:1;14425:165;14439:6;14436:1;14433:13;14425:165;;;14517:14;;14504:11;;;14497:35;14560:16;;;;14454:10;;14425:165;;;14429:3;;;14619:6;14614:3;14610:16;14603:23;;14103:533;-1:-1:-1;14652:3:165;;13818:843;-1:-1:-1;;;;;;13818:843:165:o;14666:298::-;14851:4;14843:6;14839:17;14828:9;14821:36;14893:2;14888;14877:9;14873:18;14866:30;14802:4;14913:45;14954:2;14943:9;14939:18;14931:6;14913:45;:::i;:::-;14905:53;14666:298;-1:-1:-1;;;;14666:298:165:o;16303:355::-;16505:2;16487:21;;;16544:2;16524:18;;;16517:30;16583:33;16578:2;16563:18;;16556:61;16649:2;16634:18;;16303:355::o;17273:276::-;17342:6;17395:2;17383:9;17374:7;17370:23;17366:32;17363:52;;;17411:1;17408;17401:12;17363:52;17443:9;17437:16;17493:6;17486:5;17482:18;17475:5;17472:29;17462:57;;17515:1;17512;17505:12;19312:390;19471:2;19460:9;19453:21;19510:6;19505:2;19494:9;19490:18;19483:34;19567:6;19559;19554:2;19543:9;19539:18;19526:48;19623:1;19594:22;;;19618:2;19590:31;;;19583:42;;;;19686:2;19665:15;;;-1:-1:-1;;19661:29:165;19646:45;19642:54;;19312:390;-1:-1:-1;19312:390:165:o;19707:355::-;19909:2;19891:21;;;19948:2;19928:18;;;19921:30;19987:33;19982:2;19967:18;;19960:61;20053:2;20038:18;;19707:355::o;20067:543::-;20169:2;20164:3;20161:11;20158:446;;;20205:1;20229:5;20226:1;20219:16;20273:4;20270:1;20260:18;20343:2;20331:10;20327:19;20324:1;20320:27;20314:4;20310:38;20379:4;20367:10;20364:20;20361:47;;;-1:-1:-1;20402:4:165;20361:47;20457:2;20452:3;20448:12;20445:1;20441:20;20435:4;20431:31;20421:41;;20512:82;20530:2;20523:5;20520:13;20512:82;;;20575:17;;;20556:1;20545:13;20512:82;;20786:1206;20910:18;20905:3;20902:27;20899:53;;;20932:18;;:::i;:::-;20961:94;21051:3;21011:38;21043:4;21037:11;21011:38;:::i;:::-;21005:4;20961:94;:::i;:::-;21081:1;21106:2;21101:3;21098:11;21123:1;21118:616;;;;21778:1;21795:3;21792:93;;;-1:-1:-1;21851:19:165;;;21838:33;21792:93;-1:-1:-1;;20743:1:165;20739:11;;;20735:24;20731:29;20721:40;20767:1;20763:11;;;20718:57;21898:78;;21091:895;;21118:616;13765:1;13758:14;;;13802:4;13789:18;;-1:-1:-1;;21154:17:165;;;21255:9;21277:229;21291:7;21288:1;21285:14;21277:229;;;21380:19;;;21367:33;21352:49;;21487:4;21472:20;;;;21440:1;21428:14;;;;21307:12;21277:229;;;21281:3;21534;21525:7;21522:16;21519:159;;;21658:1;21654:6;21648:3;21642;21639:1;21635:11;21631:21;21627:34;21623:39;21610:9;21605:3;21601:19;21588:33;21584:79;21576:6;21569:95;21519:159;;;21721:1;21715:3;21712:1;21708:11;21704:19;21698:4;21691:33;21091:895;;20786:1206;;;:::o;22699:1345::-;22825:3;22819:10;22852:18;22844:6;22841:30;22838:56;;;22874:18;;:::i;:::-;22903:97;22993:6;22953:38;22985:4;22979:11;22953:38;:::i;:::-;22947:4;22903:97;:::i;:::-;23055:4;;23112:2;23101:14;;23129:1;23124:663;;;;23831:1;23848:6;23845:89;;;-1:-1:-1;23900:19:165;;;23894:26;23845:89;-1:-1:-1;;20743:1:165;20739:11;;;20735:24;20731:29;20721:40;20767:1;20763:11;;;20718:57;23947:81;;23094:944;;23124:663;13765:1;13758:14;;;13802:4;13789:18;;-1:-1:-1;;23160:20:165;;;23278:236;23292:7;23289:1;23286:14;23278:236;;;23381:19;;;23375:26;23360:42;;23473:27;;;;23441:1;23429:14;;;;23308:19;;23278:236;;;23282:3;23542:6;23533:7;23530:19;23527:201;;;23603:19;;;23597:26;-1:-1:-1;;23686:1:165;23682:14;;;23698:3;23678:24;23674:37;23670:42;23655:58;23640:74;;23527:201;-1:-1:-1;;;;;23774:1:165;23758:14;;;23754:22;23741:36;;-1:-1:-1;22699:1345:165:o","linkReferences":{}},"methodIdentifiers":{"addAgent(address)":"84e79842","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","batchBurn(address[],uint256[])":"4a6cc677","batchForcedTransfer(address[],address[],uint256[])":"42a47abc","batchFreezePartialTokens(address[],uint256[])":"fc7e5fa8","batchMint(address[],uint256[])":"68573107","batchSetAddressFrozen(address[],bool[])":"1a7af379","batchTransfer(address[],uint256[])":"88d695b2","batchUnfreezePartialTokens(address[],uint256[])":"4710362d","burn(address,uint256)":"9dc29fac","compliance()":"6290865d","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","forcedTransfer(address,address,uint256)":"9fc1d0e7","freezePartialTokens(address,uint256)":"125c4a33","getFrozenTokens(address)":"158b1a57","identityRegistry()":"134e18f4","increaseAllowance(address,uint256)":"39509351","init(address,address,string,string,uint8,address)":"f91b619c","isAgent(address)":"1ffbb064","isFrozen(address)":"e5839836","mint(address,uint256)":"40c10f19","name()":"06fdde03","onchainID()":"aba63705","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","recoveryAddress(address,address,address)":"9285948a","removeAgent(address)":"97a6278e","renounceOwnership()":"715018a6","setAddressFrozen(address,bool)":"c69c09cf","setCompliance(address)":"f8981789","setIdentityRegistry(address)":"cbf3f861","setName(string)":"c47f0027","setOnchainID(address)":"3d1ddc5b","setSymbol(string)":"b84c8246","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","unfreezePartialTokens(address,uint256)":"1fe56f7d","unpause()":"3f4ba83a","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"_isFrozen\",\"type\":\"bool\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"AddressFrozen\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"AgentRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_identityRegistry\",\"type\":\"address\"}],\"name\":\"IdentityRegistryAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_lostWallet\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newWallet\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_investorOnchainID\",\"type\":\"address\"}],\"name\":\"RecoverySuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"TokensFrozen\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"TokensUnfrozen\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"_newName\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"_newSymbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_newDecimals\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_newVersion\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newOnchainID\",\"type\":\"address\"}],\"name\":\"UpdatedTokenInformation\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"addAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchBurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_fromList\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_toList\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchForcedTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchFreezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_toList\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"_freeze\",\"type\":\"bool[]\"}],\"name\":\"batchSetAddressFrozen\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_toList\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchUnfreezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"compliance\",\"outputs\":[{\"internalType\":\"contract IModularCompliance\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"forcedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"freezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"getFrozenTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identityRegistry\",\"outputs\":[{\"internalType\":\"contract IIdentityRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identityRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"isAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"isFrozen\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onchainID\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":[{\"internalType\":\"address\",\"name\":\"_lostWallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newWallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_investorOnchainID\",\"type\":\"address\"}],\"name\":\"recoveryAddress\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"removeAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_freeze\",\"type\":\"bool\"}],\"name\":\"setAddressFrozen\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"setCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identityRegistry\",\"type\":\"address\"}],\"name\":\"setIdentityRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"setName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"name\":\"setOnchainID\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"name\":\"setSymbol\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"unfreezePartialTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"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.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"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\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"batchBurn(address[],uint256[])\":{\"details\":\"See {IToken-batchBurn}.\"},\"batchForcedTransfer(address[],address[],uint256[])\":{\"details\":\"See {IToken-batchForcedTransfer}.\"},\"batchFreezePartialTokens(address[],uint256[])\":{\"details\":\"See {IToken-batchFreezePartialTokens}.\"},\"batchMint(address[],uint256[])\":{\"details\":\"See {IToken-batchMint}.\"},\"batchSetAddressFrozen(address[],bool[])\":{\"details\":\"See {IToken-batchSetAddressFrozen}.\"},\"batchTransfer(address[],uint256[])\":{\"details\":\"See {IToken-batchTransfer}.\"},\"batchUnfreezePartialTokens(address[],uint256[])\":{\"details\":\"See {IToken-batchUnfreezePartialTokens}.\"},\"burn(address,uint256)\":{\"details\":\"See {IToken-burn}.\"},\"compliance()\":{\"details\":\"See {IToken-compliance}.\"},\"decimals()\":{\"details\":\"See {IToken-decimals}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"See {ERC20-decreaseAllowance}.\"},\"forcedTransfer(address,address,uint256)\":{\"details\":\"See {IToken-forcedTransfer}.\"},\"freezePartialTokens(address,uint256)\":{\"details\":\"See {IToken-freezePartialTokens}.\"},\"getFrozenTokens(address)\":{\"details\":\"See {IToken-getFrozenTokens}.\"},\"identityRegistry()\":{\"details\":\"See {IToken-identityRegistry}.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"See {ERC20-increaseAllowance}.\"},\"init(address,address,string,string,uint8,address)\":{\"details\":\"the constructor initiates the token contract msg.sender is set automatically as the owner of the smart contract\",\"params\":{\"_compliance\":\"the address of the compliance contract linked to the token\",\"_decimals\":\"the decimals of the token\",\"_identityRegistry\":\"the address of the Identity registry linked to the token\",\"_name\":\"the name of the token\",\"_onchainID\":\"the address of the onchainID of the token emits an `UpdatedTokenInformation` event emits an `IdentityRegistryAdded` event emits a `ComplianceAdded` event\",\"_symbol\":\"the symbol of the token\"}},\"isFrozen(address)\":{\"details\":\"See {IToken-isFrozen}.\"},\"mint(address,uint256)\":{\"details\":\"See {IToken-mint}.\"},\"name()\":{\"details\":\"See {IToken-name}.\"},\"onchainID()\":{\"details\":\"See {IToken-onchainID}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"details\":\"See {IToken-pause}.\"},\"paused()\":{\"details\":\"See {IToken-paused}.\"},\"recoveryAddress(address,address,address)\":{\"details\":\"See {IToken-recoveryAddress}.\"},\"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.\"},\"setAddressFrozen(address,bool)\":{\"details\":\"See {IToken-setAddressFrozen}.\"},\"setCompliance(address)\":{\"details\":\"See {IToken-setCompliance}.\"},\"setIdentityRegistry(address)\":{\"details\":\"See {IToken-setIdentityRegistry}.\"},\"setName(string)\":{\"details\":\"See {IToken-setName}.\"},\"setOnchainID(address)\":{\"details\":\"See {IToken-setOnchainID}. if _onchainID is set at zero address it means no ONCHAINID is bound to this token\"},\"setSymbol(string)\":{\"details\":\"See {IToken-setSymbol}.\"},\"symbol()\":{\"details\":\"See {IToken-symbol}.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"params\":{\"_amount\":\"The number of tokens to transfer\",\"_to\":\"The address of the receiver\"},\"returns\":{\"_0\":\"`true` if successful and revert if unsuccessful\"}},\"transferFrom(address,address,uint256)\":{\"params\":{\"_amount\":\"The number of tokens to transfer\",\"_from\":\"The address of the sender\",\"_to\":\"The address of the receiver\"},\"returns\":{\"_0\":\"`true` if successful and revert if unsuccessful\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unfreezePartialTokens(address,uint256)\":{\"details\":\"See {IToken-unfreezePartialTokens}.\"},\"unpause()\":{\"details\":\"See {IToken-unpause}.\"},\"version()\":{\"details\":\"See {IToken-version}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"AddressFrozen(address,bool,address)\":{\"notice\":\"this event is emitted when the wallet of an investor is frozen or unfrozen the event is emitted by setAddressFrozen and batchSetAddressFrozen functions `_userAddress` is the wallet of the investor that is concerned by the freezing status `_isFrozen` is the freezing status of the wallet if `_isFrozen` equals `true` the wallet is frozen after emission of the event if `_isFrozen` equals `false` the wallet is unfrozen after emission of the event `_owner` is the address of the agent who called the function to freeze the wallet\"},\"ComplianceAdded(address)\":{\"notice\":\"this event is emitted when the Compliance has been set for the token the event is emitted by the token constructor and by the setCompliance function `_compliance` is the address of the Compliance contract of the token\"},\"IdentityRegistryAdded(address)\":{\"notice\":\"this event is emitted when the IdentityRegistry has been set for the token the event is emitted by the token constructor and by the setIdentityRegistry function `_identityRegistry` is the address of the Identity Registry of the token\"},\"Paused(address)\":{\"notice\":\"this event is emitted when the token is paused the event is emitted by the pause function `_userAddress` is the address of the wallet that called the pause function\"},\"RecoverySuccess(address,address,address)\":{\"notice\":\"this event is emitted when an investor successfully recovers his tokens the event is emitted by the recoveryAddress function `_lostWallet` is the address of the wallet that the investor lost access to `_newWallet` is the address of the wallet that the investor provided for the recovery `_investorOnchainID` is the address of the onchainID of the investor who asked for a recovery\"},\"TokensFrozen(address,uint256)\":{\"notice\":\"this event is emitted when a certain amount of tokens is frozen on a wallet the event is emitted by freezePartialTokens and batchFreezePartialTokens functions `_userAddress` is the wallet of the investor that is concerned by the freezing status `_amount` is the amount of tokens that are frozen\"},\"TokensUnfrozen(address,uint256)\":{\"notice\":\"this event is emitted when a certain amount of tokens is unfrozen on a wallet the event is emitted by unfreezePartialTokens and batchUnfreezePartialTokens functions `_userAddress` is the wallet of the investor that is concerned by the freezing status `_amount` is the amount of tokens that are unfrozen\"},\"Unpaused(address)\":{\"notice\":\"this event is emitted when the token is unpaused the event is emitted by the unpause function `_userAddress` is the address of the wallet that called the unpause function\"},\"UpdatedTokenInformation(string,string,uint8,string,address)\":{\"notice\":\"this event is emitted when the token information is updated. the event is emitted by the token init function and by the setTokenInformation function `_newName` is the name of the token `_newSymbol` is the symbol of the token `_newDecimals` is the decimals of the token `_newVersion` is the version of the token, current version is 3.0 `_newOnchainID` is the address of the onchainID of the token\"}},\"kind\":\"user\",\"methods\":{\"transfer(address,uint256)\":{\"notice\":\"ERC-20 overridden function that include logic to check for trade validity. Require that the msg.sender and to addresses are not frozen. Require that the value should not exceed available balance . Require that the to address is a verified address\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"ERC-20 overridden function that include logic to check for trade validity. Require that the from and to addresses are not frozen. Require that the value should not exceed available balance . Require that the to address is a verified address\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/token/Token.sol\":\"Token\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRoleUpgradeable.sol\":{\"keccak256\":\"0x621b1a88ff1637e2d14b1dd27cbd8cc5d1feba549be25cad7c57fb22a4d6a2b1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e81b966250d80f55c179eff2d28fc9a5322ba8d09230b8a4744e77f97ad53c8a\",\"dweb:/ipfs/QmTAB51L4yRgQdh3becJKXMHaAMR9vnpjjdpFs4LQ5kWKT\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/erc3643/token/Token.sol\":{\"keccak256\":\"0xc8f70314703ee1d870d5a4b7356f1c00e96d19a97f730479c3e421ce4a54bdb6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://17d48f488a4fa20e39e5d8e029d2466a5aa30eabe66367e8df4e62455f2d75bb\",\"dweb:/ipfs/QmVh2jswL9jR9ZrdjPgL86GS8rePruR9XDyjVc7AY1DBhv\"]},\"contracts/erc3643/token/TokenStorage.sol\":{\"keccak256\":\"0x895eb11289509a4d4568a627346ca7dc9a583c81ab66192339d0430007de8596\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c0575fd7707d21295e5de8f8083b90ddd48cd33e336051dd8456d93e4fa401b9\",\"dweb:/ipfs/QmTqZy9bs7iycGR4ZejVfDsFcLzupQLwURhJeRhkGc1yfh\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":true},{"internalType":"bool","name":"_isFrozen","type":"bool","indexed":true},{"internalType":"address","name":"_owner","type":"address","indexed":true}],"type":"event","name":"AddressFrozen","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address","indexed":true}],"type":"event","name":"AgentRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_identityRegistry","type":"address","indexed":true}],"type":"event","name":"IdentityRegistryAdded","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"_lostWallet","type":"address","indexed":true},{"internalType":"address","name":"_newWallet","type":"address","indexed":true},{"internalType":"address","name":"_investorOnchainID","type":"address","indexed":true}],"type":"event","name":"RecoverySuccess","anonymous":false},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":true},{"internalType":"uint256","name":"_amount","type":"uint256","indexed":false}],"type":"event","name":"TokensFrozen","anonymous":false},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":true},{"internalType":"uint256","name":"_amount","type":"uint256","indexed":false}],"type":"event","name":"TokensUnfrozen","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"string","name":"_newName","type":"string","indexed":true},{"internalType":"string","name":"_newSymbol","type":"string","indexed":true},{"internalType":"uint8","name":"_newDecimals","type":"uint8","indexed":false},{"internalType":"string","name":"_newVersion","type":"string","indexed":false},{"internalType":"address","name":"_newOnchainID","type":"address","indexed":true}],"type":"event","name":"UpdatedTokenInformation","anonymous":false},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addAgent"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchBurn"},{"inputs":[{"internalType":"address[]","name":"_fromList","type":"address[]"},{"internalType":"address[]","name":"_toList","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchForcedTransfer"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchFreezePartialTokens"},{"inputs":[{"internalType":"address[]","name":"_toList","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchMint"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"bool[]","name":"_freeze","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"batchSetAddressFrozen"},{"inputs":[{"internalType":"address[]","name":"_toList","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchTransfer"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"batchUnfreezePartialTokens"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"compliance","outputs":[{"internalType":"contract IModularCompliance","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_subtractedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"forcedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"freezePartialTokens"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getFrozenTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"identityRegistry","outputs":[{"internalType":"contract IIdentityRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_identityRegistry","type":"address"},{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"address","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"init"},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"view","type":"function","name":"isAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isFrozen","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"onchainID","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_lostWallet","type":"address"},{"internalType":"address","name":"_newWallet","type":"address"},{"internalType":"address","name":"_investorOnchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recoveryAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_agent","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAgent"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"bool","name":"_freeze","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setAddressFrozen"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setCompliance"},{"inputs":[{"internalType":"address","name":"_identityRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setIdentityRegistry"},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setName"},{"inputs":[{"internalType":"address","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOnchainID"},{"inputs":[{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setSymbol"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unfreezePartialTokens"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[],"stateMutability":"pure","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"batchBurn(address[],uint256[])":{"details":"See {IToken-batchBurn}."},"batchForcedTransfer(address[],address[],uint256[])":{"details":"See {IToken-batchForcedTransfer}."},"batchFreezePartialTokens(address[],uint256[])":{"details":"See {IToken-batchFreezePartialTokens}."},"batchMint(address[],uint256[])":{"details":"See {IToken-batchMint}."},"batchSetAddressFrozen(address[],bool[])":{"details":"See {IToken-batchSetAddressFrozen}."},"batchTransfer(address[],uint256[])":{"details":"See {IToken-batchTransfer}."},"batchUnfreezePartialTokens(address[],uint256[])":{"details":"See {IToken-batchUnfreezePartialTokens}."},"burn(address,uint256)":{"details":"See {IToken-burn}."},"compliance()":{"details":"See {IToken-compliance}."},"decimals()":{"details":"See {IToken-decimals}."},"decreaseAllowance(address,uint256)":{"details":"See {ERC20-decreaseAllowance}."},"forcedTransfer(address,address,uint256)":{"details":"See {IToken-forcedTransfer}."},"freezePartialTokens(address,uint256)":{"details":"See {IToken-freezePartialTokens}."},"getFrozenTokens(address)":{"details":"See {IToken-getFrozenTokens}."},"identityRegistry()":{"details":"See {IToken-identityRegistry}."},"increaseAllowance(address,uint256)":{"details":"See {ERC20-increaseAllowance}."},"init(address,address,string,string,uint8,address)":{"details":"the constructor initiates the token contract msg.sender is set automatically as the owner of the smart contract","params":{"_compliance":"the address of the compliance contract linked to the token","_decimals":"the decimals of the token","_identityRegistry":"the address of the Identity registry linked to the token","_name":"the name of the token","_onchainID":"the address of the onchainID of the token emits an `UpdatedTokenInformation` event emits an `IdentityRegistryAdded` event emits a `ComplianceAdded` event","_symbol":"the symbol of the token"}},"isFrozen(address)":{"details":"See {IToken-isFrozen}."},"mint(address,uint256)":{"details":"See {IToken-mint}."},"name()":{"details":"See {IToken-name}."},"onchainID()":{"details":"See {IToken-onchainID}."},"owner()":{"details":"Returns the address of the current owner."},"pause()":{"details":"See {IToken-pause}."},"paused()":{"details":"See {IToken-paused}."},"recoveryAddress(address,address,address)":{"details":"See {IToken-recoveryAddress}."},"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."},"setAddressFrozen(address,bool)":{"details":"See {IToken-setAddressFrozen}."},"setCompliance(address)":{"details":"See {IToken-setCompliance}."},"setIdentityRegistry(address)":{"details":"See {IToken-setIdentityRegistry}."},"setName(string)":{"details":"See {IToken-setName}."},"setOnchainID(address)":{"details":"See {IToken-setOnchainID}. if _onchainID is set at zero address it means no ONCHAINID is bound to this token"},"setSymbol(string)":{"details":"See {IToken-setSymbol}."},"symbol()":{"details":"See {IToken-symbol}."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"params":{"_amount":"The number of tokens to transfer","_to":"The address of the receiver"},"returns":{"_0":"`true` if successful and revert if unsuccessful"}},"transferFrom(address,address,uint256)":{"params":{"_amount":"The number of tokens to transfer","_from":"The address of the sender","_to":"The address of the receiver"},"returns":{"_0":"`true` if successful and revert if unsuccessful"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unfreezePartialTokens(address,uint256)":{"details":"See {IToken-unfreezePartialTokens}."},"unpause()":{"details":"See {IToken-unpause}."},"version()":{"details":"See {IToken-version}."}},"version":1},"userdoc":{"kind":"user","methods":{"transfer(address,uint256)":{"notice":"ERC-20 overridden function that include logic to check for trade validity. Require that the msg.sender and to addresses are not frozen. Require that the value should not exceed available balance . Require that the to address is a verified address"},"transferFrom(address,address,uint256)":{"notice":"ERC-20 overridden function that include logic to check for trade validity. Require that the from and to addresses are not frozen. Require that the value should not exceed available balance . Require that the to address is a verified address"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/token/Token.sol":"Token"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRoleUpgradeable.sol":{"keccak256":"0x621b1a88ff1637e2d14b1dd27cbd8cc5d1feba549be25cad7c57fb22a4d6a2b1","urls":["bzz-raw://e81b966250d80f55c179eff2d28fc9a5322ba8d09230b8a4744e77f97ad53c8a","dweb:/ipfs/QmTAB51L4yRgQdh3becJKXMHaAMR9vnpjjdpFs4LQ5kWKT"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/erc3643/token/Token.sol":{"keccak256":"0xc8f70314703ee1d870d5a4b7356f1c00e96d19a97f730479c3e421ce4a54bdb6","urls":["bzz-raw://17d48f488a4fa20e39e5d8e029d2466a5aa30eabe66367e8df4e62455f2d75bb","dweb:/ipfs/QmVh2jswL9jR9ZrdjPgL86GS8rePruR9XDyjVc7AY1DBhv"],"license":"GPL-3.0"},"contracts/erc3643/token/TokenStorage.sol":{"keccak256":"0x895eb11289509a4d4568a627346ca7dc9a583c81ab66192339d0430007de8596","urls":["bzz-raw://c0575fd7707d21295e5de8f8083b90ddd48cd33e336051dd8456d93e4fa401b9","dweb:/ipfs/QmTqZy9bs7iycGR4ZejVfDsFcLzupQLwURhJeRhkGc1yfh"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"}},"version":1},"id":97} \ No newline at end of file diff --git a/out/TokenBalancer.sol/TokenBalancer.json b/out/TokenBalancer.sol/TokenBalancer.json new file mode 100644 index 0000000..747c29c --- /dev/null +++ b/out/TokenBalancer.sol/TokenBalancer.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"_getPrice","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"oneDollarInHbar","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_rebalance","inputs":[{"name":"_tokenPrices","type":"uint256[]","internalType":"uint256[]"},{"name":"_rewardTokens","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"_swapExtraRewardSupplyToTransitionToken","inputs":[{"name":"_rewardTokens","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"priceIds","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"priceId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"pyth","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPyth"}],"stateMutability":"view"},{"type":"function","name":"rebalance","inputs":[{"name":"_rewardTokens","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"saucerSwap","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISaucerSwap"}],"stateMutability":"view"},{"type":"function","name":"setTargetPercentage","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"percentage","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"swapPaths","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"tokenPrices","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"update","inputs":[{"name":"pythPriceUpdate","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","_getPrice(address)":"695135ec","_rebalance(uint256[],address[])":"490a0af9","_swapExtraRewardSupplyToTransitionToken(address[])":"b5be920d","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","priceIds(address)":"db7a6828","pyth()":"f98d06f0","rebalance(address[])":"bea9db6d","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","saucerSwap()":"88a320fe","setTargetPercentage(address,uint256)":"eb4e1593","supportsInterface(bytes4)":"01ffc9a7","swapPaths(address,uint256)":"db8bb3a1","tokenPrices(address)":"204120bc","update(bytes[])":"f52a3468"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"_getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"oneDollarInHbar\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_tokenPrices\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"_rewardTokens\",\"type\":\"address[]\"}],\"name\":\"_rebalance\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_rewardTokens\",\"type\":\"address[]\"}],\"name\":\"_swapExtraRewardSupplyToTransitionToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"priceIds\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"priceId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pyth\",\"outputs\":[{\"internalType\":\"contract IPyth\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_rewardTokens\",\"type\":\"address[]\"}],\"name\":\"rebalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"saucerSwap\",\"outputs\":[{\"internalType\":\"contract ISaucerSwap\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"}],\"name\":\"setTargetPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"swapPaths\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenPrices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"pythPriceUpdate\",\"type\":\"bytes[]\"}],\"name\":\"update\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"_getPrice(address)\":{\"details\":\"Gets token price and calculate one dollar in any token.\",\"params\":{\"token\":\"The token address.\"}},\"_swapExtraRewardSupplyToTransitionToken(address[])\":{\"details\":\"Swaps extra reward balance to WHBAR token for future rebalance.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"rebalance(address[])\":{\"details\":\"Rebalances reward balances.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"update(bytes[])\":{\"details\":\"Updates price.\",\"params\":{\"pythPriceUpdate\":\"The pyth price update.\"}}},\"title\":\"Token Balancer The contract that helps to maintain reward token balances.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc4626/TokenBalancer.sol\":\"TokenBalancer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/safe-HTS/HederaResponseCodes.sol\":{\"keccak256\":\"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca\",\"dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G\"]},\"contracts/common/safe-HTS/IHederaTokenService.sol\":{\"keccak256\":\"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786\",\"dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W\"]},\"contracts/common/safe-HTS/SafeHTS.sol\":{\"keccak256\":\"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe\",\"dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7\"]},\"contracts/erc4626/TokenBalancer.sol\":{\"keccak256\":\"0x0d9b336e2a4d5120571e4f6b92512ea364980664cddda180fadc93991b9a5f25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb414c1eb9d58392ef05ea0ee6545e858aed7c6b8f28cd177db76e6869ac1132\",\"dweb:/ipfs/Qmc6y1DcHNLBhQdvy4DGcedrMChj6JSMXWYM9a8UhuqyYt\"]},\"contracts/erc4626/interfaces/ISaucerSwap.sol\":{\"keccak256\":\"0xa7bb2678e1375e9973578dbdc07d82bc838d360256bb974e1382ed60fc3be3c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94f426b7f3c149e2d7f25a1734f877494ab15a55fd641b84d9a88def7705a761\",\"dweb:/ipfs/QmZa5XUCWyFkeaDBcFZ6czUaaKmdwahVeL7Z3ssxopfDC2\"]},\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@pythnetwork/pyth-sdk-solidity/IPyth.sol\":{\"keccak256\":\"0xe06dbd61ccf409fffc0a2449eb8bb6c2d245609698c3c6eddad7cd0f3822d215\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://62867dd9f8a439d091da28c4d6cbd6f4d4ec0606291cdea7b70841e37c43e0da\",\"dweb:/ipfs/Qme4kF7yC3k2zxC87k9b6rhEbSjPNWZ5kLZCBdKqk43FbE\"]},\"node_modules/@pythnetwork/pyth-sdk-solidity/IPythEvents.sol\":{\"keccak256\":\"0x7ca8e03315d4516d6833c425a52c43e8cacf2077492074d2d36ae5c17899c9c8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ad1c69d157eccb09ce248e1ec021f2e58b61dd36160f5be3973a7bea4a899f64\",\"dweb:/ipfs/QmW1yXsDrMsuQKxtZanSZXpyUW2QwnCKVoCjS5fC3NoSVY\"]},\"node_modules/@pythnetwork/pyth-sdk-solidity/PythStructs.sol\":{\"keccak256\":\"0xade221177dda98ebd194c363f264ceea125bde0e6a7a72f7b54da3ac60316894\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a404dbbc64183995326c345cae27601d37c783b3d9030c8dc0ab4943fa2bf1da\",\"dweb:/ipfs/QmfNFesQffYisafmJFbKHxVFSD8fY49X1z9f8N7qtfW8AX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"_getPrice","outputs":[{"internalType":"uint256","name":"oneDollarInHbar","type":"uint256"}]},{"inputs":[{"internalType":"uint256[]","name":"_tokenPrices","type":"uint256[]"},{"internalType":"address[]","name":"_rewardTokens","type":"address[]"}],"stateMutability":"view","type":"function","name":"_rebalance","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address[]","name":"_rewardTokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"_swapExtraRewardSupplyToTransitionToken"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"priceIds","outputs":[{"internalType":"bytes32","name":"priceId","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pyth","outputs":[{"internalType":"contract IPyth","name":"","type":"address"}]},{"inputs":[{"internalType":"address[]","name":"_rewardTokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"rebalance"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[],"stateMutability":"view","type":"function","name":"saucerSwap","outputs":[{"internalType":"contract ISaucerSwap","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"percentage","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setTargetPercentage"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"swapPaths","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"tokenPrices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes[]","name":"pythPriceUpdate","type":"bytes[]"}],"stateMutability":"payable","type":"function","name":"update"}],"devdoc":{"kind":"dev","methods":{"_getPrice(address)":{"details":"Gets token price and calculate one dollar in any token.","params":{"token":"The token address."}},"_swapExtraRewardSupplyToTransitionToken(address[])":{"details":"Swaps extra reward balance to WHBAR token for future rebalance."},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"rebalance(address[])":{"details":"Rebalances reward balances."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"update(bytes[])":{"details":"Updates price.","params":{"pythPriceUpdate":"The pyth price update."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc4626/TokenBalancer.sol":"TokenBalancer"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/safe-HTS/HederaResponseCodes.sol":{"keccak256":"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324","urls":["bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca","dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G"],"license":"Apache-2.0"},"contracts/common/safe-HTS/IHederaTokenService.sol":{"keccak256":"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735","urls":["bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786","dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W"],"license":"Apache-2.0"},"contracts/common/safe-HTS/SafeHTS.sol":{"keccak256":"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10","urls":["bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe","dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7"],"license":"Apache-2.0"},"contracts/erc4626/TokenBalancer.sol":{"keccak256":"0x0d9b336e2a4d5120571e4f6b92512ea364980664cddda180fadc93991b9a5f25","urls":["bzz-raw://eb414c1eb9d58392ef05ea0ee6545e858aed7c6b8f28cd177db76e6869ac1132","dweb:/ipfs/Qmc6y1DcHNLBhQdvy4DGcedrMChj6JSMXWYM9a8UhuqyYt"],"license":"MIT"},"contracts/erc4626/interfaces/ISaucerSwap.sol":{"keccak256":"0xa7bb2678e1375e9973578dbdc07d82bc838d360256bb974e1382ed60fc3be3c9","urls":["bzz-raw://94f426b7f3c149e2d7f25a1734f877494ab15a55fd641b84d9a88def7705a761","dweb:/ipfs/QmZa5XUCWyFkeaDBcFZ6czUaaKmdwahVeL7Z3ssxopfDC2"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@pythnetwork/pyth-sdk-solidity/IPyth.sol":{"keccak256":"0xe06dbd61ccf409fffc0a2449eb8bb6c2d245609698c3c6eddad7cd0f3822d215","urls":["bzz-raw://62867dd9f8a439d091da28c4d6cbd6f4d4ec0606291cdea7b70841e37c43e0da","dweb:/ipfs/Qme4kF7yC3k2zxC87k9b6rhEbSjPNWZ5kLZCBdKqk43FbE"],"license":"Apache-2.0"},"node_modules/@pythnetwork/pyth-sdk-solidity/IPythEvents.sol":{"keccak256":"0x7ca8e03315d4516d6833c425a52c43e8cacf2077492074d2d36ae5c17899c9c8","urls":["bzz-raw://ad1c69d157eccb09ce248e1ec021f2e58b61dd36160f5be3973a7bea4a899f64","dweb:/ipfs/QmW1yXsDrMsuQKxtZanSZXpyUW2QwnCKVoCjS5fC3NoSVY"],"license":"Apache-2.0"},"node_modules/@pythnetwork/pyth-sdk-solidity/PythStructs.sol":{"keccak256":"0xade221177dda98ebd194c363f264ceea125bde0e6a7a72f7b54da3ac60316894","urls":["bzz-raw://a404dbbc64183995326c345cae27601d37c783b3d9030c8dc0ab4943fa2bf1da","dweb:/ipfs/QmfNFesQffYisafmJFbKHxVFSD8fY49X1z9f8N7qtfW8AX"],"license":"Apache-2.0"}},"version":1},"id":101} \ No newline at end of file diff --git a/out/TokenProxy.sol/TokenProxy.json b/out/TokenProxy.sol/TokenProxy.json new file mode 100644 index 0000000..a4fc7f7 --- /dev/null +++ b/out/TokenProxy.sol/TokenProxy.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"implementationAuthority","type":"address","internalType":"address"},{"name":"_identityRegistry","type":"address","internalType":"address"},{"name":"_compliance","type":"address","internalType":"address"},{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_decimals","type":"uint8","internalType":"uint8"},{"name":"_onchainID","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"getImplementationAuthority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setImplementationAuthority","inputs":[{"name":"_newImplementationAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ImplementationAuthoritySet","inputs":[{"name":"_implementationAuthority","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162000d0538038062000d058339810160408190526200003491620004dd565b6001600160a01b038716158015906200005557506001600160a01b03861615155b80156200006a57506001600160a01b03851615155b620000bc5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b604051602001620000d890602080825260009082015260400190565b6040516020818303038152906040528051906020012084604051602001620001019190620005da565b60405160208183030381529060405280519060200120141580156200017f57506040516020016200013d90602080825260009082015260400190565b6040516020818303038152906040528051906020012083604051602001620001669190620005da565b6040516020818303038152906040528051906020012014155b620001cd5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d20656d70747920737472696e67006044820152606401620000b3565b60128260ff161115620002235760405162461bcd60e51b815260206004820152601960248201527f646563696d616c73206265747765656e203020616e64203138000000000000006044820152606401620000b3565b6200023b8760008051602062000ce583398151915255565b6040516001600160a01b038816907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a260006200028960008051602062000ce58339815191525490565b6001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ed9190620005f6565b90506000816001600160a01b0316888888888888604051602401620003189695949392919062000614565b60408051601f198184030181529181526020820180516001600160e01b0316633e46d86760e21b179052516200034f919062000673565b600060405180830381855af49150503d80600081146200038c576040519150601f19603f3d011682016040523d82523d6000602084013e62000391565b606091505b5050905080620003e45760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e000000000000000000006044820152606401620000b3565b50505050505050505062000691565b80516001600160a01b03811681146200040b57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200044357818101518382015260200162000429565b50506000910152565b600082601f8301126200045e57600080fd5b81516001600160401b03808211156200047b576200047b62000410565b604051601f8301601f19908116603f01168101908282118183101715620004a657620004a662000410565b81604052838152866020858801011115620004c057600080fd5b620004d384602083016020890162000426565b9695505050505050565b600080600080600080600060e0888a031215620004f957600080fd5b6200050488620003f3565b96506200051460208901620003f3565b95506200052460408901620003f3565b60608901519095506001600160401b03808211156200054257600080fd5b620005508b838c016200044c565b955060808a01519150808211156200056757600080fd5b50620005768a828b016200044c565b93505060a088015160ff811681146200058e57600080fd5b91506200059e60c08901620003f3565b905092959891949750929550565b60008151808452620005c681602086016020860162000426565b601f01601f19169290920160200192915050565b602081526000620005ef6020830184620005ac565b9392505050565b6000602082840312156200060957600080fd5b620005ef82620003f3565b600060018060a01b038089168352808816602084015260c060408401526200064060c0840188620005ac565b8381036060850152620006548188620005ac565b60ff969096166080850152509290921660a09091015250949350505050565b600082516200068781846020870162000426565b9190910192915050565b61064480620006a16000396000f3fe6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca2646970667358221220097922edd211735e90a207527b386ae7265be6fe3958af597f2c8cab1eb70dc664736f6c63430008180033821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc","sourceMap":"3873:2338:68:-:0;;;3917:1587;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4300:37:68;;;;;;:84;;-1:-1:-1;;;;;;4353:31:68;;;;4300:84;:125;;;;-1:-1:-1;;;;;;4400:25:68;;;;4300:125;4279:191;;;;-1:-1:-1;;;4279:191:68;;2550:2:165;4279:191:68;;;2532:21:165;2589:2;2569:18;;;2562:30;2628:33;2608:18;;;2601:61;2679:18;;4279:191:68;;;;;;;;;4543:14;;;;;;2910:2:165;2892:21;;;2949:1;2929:18;;;2922:29;2983:2;2968:18;;2708:284;4543:14:68;;;;;;;;;;;;;4533:25;;;;;;4522:5;4511:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;4501:28;;;;;;:57;;:132;;;;;4618:14;;;;;;2910:2:165;2892:21;;;2949:1;2929:18;;;2922:29;2983:2;2968:18;;2708:284;4618:14:68;;;;;;;;;;;;;4608:25;;;;;;4595:7;4584:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;4574:30;;;;;;:59;;4501:132;4480:198;;;;-1:-1:-1;;;4480:198:68;;3700:2:165;4480:198:68;;;3682:21:165;3739:2;3719:18;;;3712:30;3778:33;3758:18;;;3751:61;3829:18;;4480:198:68;3498:355:165;4480:198:68;4727:2;4714:9;:15;;;;4688:71;;;;-1:-1:-1;;;4688:71:68;;4060:2:165;4688:71:68;;;4042:21:165;4099:2;4079:18;;;4072:30;4138:27;4118:18;;;4111:55;4183:18;;4688:71:68;3858:349:165;4688:71:68;4769:54;4799:23;-1:-1:-1;;;;;;;;;;;6099:99:63;5929:285;4769:54:68;4838:51;;-1:-1:-1;;;;;4838:51:68;;;;;;;;4900:13;4946:28;-1:-1:-1;;;;;;;;;;;5598:73:63;;5391:323;4946:28:68;-1:-1:-1;;;;;4916:83:68;;:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4900:101;;5072:12;5090:5;-1:-1:-1;;;;;5090:18:68;5244:17;5283:11;5316:5;5343:7;5372:9;5403:10;5126:305;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5126:305:68;;;;;;;;;;;;;;-1:-1:-1;;;;;5126:305:68;-1:-1:-1;;;5126:305:68;;;5090:355;;;5126:305;5090:355;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5071:374;;;5463:7;5455:42;;;;-1:-1:-1;;;5455:42:68;;5667:2:165;5455:42:68;;;5649:21:165;5706:2;5686:18;;;5679:30;5745:24;5725:18;;;5718:52;5787:18;;5455:42:68;5465:346:165;5455:42:68;4269:1235;;3917:1587;;;;;;;3873:2338;;14:177:165;93:13;;-1:-1:-1;;;;;135:31:165;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:250;413:1;423:113;437:6;434:1;431:13;423:113;;;513:11;;;507:18;494:11;;;487:39;459:2;452:10;423:113;;;-1:-1:-1;;570:1:165;552:16;;545:27;328:250::o;583:699::-;637:5;690:3;683:4;675:6;671:17;667:27;657:55;;708:1;705;698:12;657:55;731:13;;-1:-1:-1;;;;;793:10:165;;;790:36;;;806:18;;:::i;:::-;881:2;875:9;849:2;935:13;;-1:-1:-1;;931:22:165;;;955:2;927:31;923:40;911:53;;;979:18;;;999:22;;;976:46;973:72;;;1025:18;;:::i;:::-;1065:10;1061:2;1054:22;1100:2;1092:6;1085:18;1146:3;1139:4;1134:2;1126:6;1122:15;1118:26;1115:35;1112:55;;;1163:1;1160;1153:12;1112:55;1176:76;1249:2;1242:4;1234:6;1230:17;1223:4;1215:6;1211:17;1176:76;:::i;:::-;1270:6;583:699;-1:-1:-1;;;;;;583:699:165:o;1287:1056::-;1429:6;1437;1445;1453;1461;1469;1477;1530:3;1518:9;1509:7;1505:23;1501:33;1498:53;;;1547:1;1544;1537:12;1498:53;1570:40;1600:9;1570:40;:::i;:::-;1560:50;;1629:49;1674:2;1663:9;1659:18;1629:49;:::i;:::-;1619:59;;1697:49;1742:2;1731:9;1727:18;1697:49;:::i;:::-;1790:2;1775:18;;1769:25;1687:59;;-1:-1:-1;;;;;;1843:14:165;;;1840:34;;;1870:1;1867;1860:12;1840:34;1893:61;1946:7;1937:6;1926:9;1922:22;1893:61;:::i;:::-;1883:71;;2000:3;1989:9;1985:19;1979:26;1963:42;;2030:2;2020:8;2017:16;2014:36;;;2046:1;2043;2036:12;2014:36;;2069:63;2124:7;2113:8;2102:9;2098:24;2069:63;:::i;:::-;2059:73;;;2175:3;2164:9;2160:19;2154:26;2220:4;2213:5;2209:16;2202:5;2199:27;2189:55;;2240:1;2237;2230:12;2189:55;2263:5;-1:-1:-1;2287:50:165;2332:3;2317:19;;2287:50;:::i;:::-;2277:60;;1287:1056;;;;;;;;;;:::o;2997:271::-;3039:3;3077:5;3071:12;3104:6;3099:3;3092:19;3120:76;3189:6;3182:4;3177:3;3173:14;3166:4;3159:5;3155:16;3120:76;:::i;:::-;3250:2;3229:15;-1:-1:-1;;3225:29:165;3216:39;;;;3257:4;3212:50;;2997:271;-1:-1:-1;;2997:271:165:o;3273:220::-;3422:2;3411:9;3404:21;3385:4;3442:45;3483:2;3472:9;3468:18;3460:6;3442:45;:::i;:::-;3434:53;3273:220;-1:-1:-1;;;3273:220:165:o;4212:208::-;4282:6;4335:2;4323:9;4314:7;4310:23;4306:32;4303:52;;;4351:1;4348;4341:12;4303:52;4374:40;4404:9;4374:40;:::i;4425:743::-;4693:4;4739:1;4735;4730:3;4726:11;4722:19;4780:2;4772:6;4768:15;4757:9;4750:34;4832:2;4824:6;4820:15;4815:2;4804:9;4800:18;4793:43;4872:3;4867:2;4856:9;4852:18;4845:31;4899:46;4940:3;4929:9;4925:19;4917:6;4899:46;:::i;:::-;4993:9;4985:6;4981:22;4976:2;4965:9;4961:18;4954:50;5021:33;5047:6;5039;5021:33;:::i;:::-;5103:4;5091:17;;;;5085:3;5070:19;;5063:46;-1:-1:-1;5146:15:165;;;;5140:3;5125:19;;;5118:44;-1:-1:-1;5013:41:165;4425:743;-1:-1:-1;;;;4425:743:165:o;5173:287::-;5302:3;5340:6;5334:13;5356:66;5415:6;5410:3;5403:4;5395:6;5391:17;5356:66;:::i;:::-;5438:16;;;;;5173:287;-1:-1:-1;;5173:287:165:o;5465:346::-;3873:2338:68;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca2646970667358221220097922edd211735e90a207527b386ae7265be6fe3958af597f2c8cab1eb70dc664736f6c63430008180033","sourceMap":"3873:2338:68:-:0;;;;;;;;;;;;;;;;;;;;;;;5601:13;5647:28;-1:-1:-1;;;;;;;;;;;5598:73:63;;5391:323;5647:28:68;-1:-1:-1;;;;;5617:83:68;;:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5601:101;;5815:14;5810:3;5805;5792:38;5921:1;5918;5902:14;5897:3;5890:5;5882;5875;5871:17;5858:65;5949:16;5999:5;5996:1;5993;5978:27;6025:7;6049:63;;;;6169:5;6166:1;6159:16;6049:63;6088:5;6085:1;6078:16;6018:175;;5391:323:63;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;5598:73:63;5391:323;;-1:-1:-1;;;;;570:32:165;;;552:51;;540:2;525:18;5391:323:63;;;;;;;4141:1174;;;;;;;;;;-1:-1:-1;4141:1174:63;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;5598:73:63;-1:-1:-1;;;;;4250:42:63;:10;-1:-1:-1;;;;;4250:42:63;;4242:100;;;;-1:-1:-1;;;4242:100:63;;1068:2:165;4242:100:63;;;1050:21:165;1107:2;1087:18;;;1080:30;1146:34;1126:18;;;1119:62;-1:-1:-1;;;1197:18:165;;;1190:43;1250:19;;4242:100:63;;;;;;;;;-1:-1:-1;;;;;4360:41:63;;4352:85;;;;-1:-1:-1;;;4352:85:63;;1482:2:165;4352:85:63;;;1464:21:165;1521:2;1501:18;;;1494:30;1560:33;1540:18;;;1533:61;1611:18;;4352:85:63;1280:355:165;4352:85:63;4564:1;-1:-1:-1;;;;;4468:98:63;4498:27;-1:-1:-1;;;;;4468:82:63;;:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4468:98:63;;;:210;;;;;4676:1;-1:-1:-1;;;;;4582:96:63;4612:27;-1:-1:-1;;;;;4582:80:63;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4582:96:63;;;4468:210;:321;;;;;4787:1;-1:-1:-1;;;;;4694:95:63;4724:27;-1:-1:-1;;;;;4694:79:63;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4694:95:63;;;4468:321;:433;;;;;4899:1;-1:-1:-1;;;;;4805:96:63;4835:27;-1:-1:-1;;;;;4805:80:63;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4805:96:63;;;4468:433;:544;;;;;5010:1;-1:-1:-1;;;;;4917:95:63;4947:27;-1:-1:-1;;;;;4917:79:63;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4917:95:63;;;4468:544;:656;;;;;5122:1;-1:-1:-1;;;;;5028:96:63;5058:27;-1:-1:-1;;;;;5028:80:63;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5028:96:63;;;4468:656;4447:723;;;;-1:-1:-1;;;4447:723:63;;1842:2:165;4447:723:63;;;1824:21:165;;;1861:18;;;1854:30;1920:34;1900:18;;;1893:62;1972:18;;4447:723:63;1640:356:165;4447:723:63;5180:58;5210:27;-1:-1:-1;;;;;;;;;;;6099:99:63;5929:285;5180:58;5253:55;;-1:-1:-1;;;;;5253:55:63;;;;;;;;4141:1174;:::o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:251::-;220:6;273:2;261:9;252:7;248:23;244:32;241:52;;;289:1;286;279:12;241:52;321:9;315:16;340:31;365:5;340:31;:::i;:::-;390:5;150:251;-1:-1:-1;;;150:251:165:o;614:247::-;673:6;726:2;714:9;705:7;701:23;697:32;694:52;;;742:1;739;732:12;694:52;781:9;768:23;800:31;825:5;800:31;:::i","linkReferences":{}},"methodIdentifiers":{"getImplementationAuthority()":"2d5f1187","setImplementationAuthority(address)":"92dd9d65"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementationAuthority\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_identityRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"_onchainID\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_implementationAuthority\",\"type\":\"address\"}],\"name\":\"ImplementationAuthoritySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"getImplementationAuthority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newImplementationAuthority\",\"type\":\"address\"}],\"name\":\"setImplementationAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"getImplementationAuthority()\":{\"details\":\"See {IProxy-getImplementationAuthority}.\"},\"setImplementationAuthority(address)\":{\"details\":\"See {IProxy-setImplementationAuthority}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ImplementationAuthoritySet(address)\":{\"notice\":\"events\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/proxy/TokenProxy.sol\":\"TokenProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/proxy/AbstractProxy.sol\":{\"keccak256\":\"0x25dca1861c6dd72695b0b509da29cfb0fcce7c1ac1df0a0266f444596affc3f4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://221fb9fd02e0db96ff0ce584de79edefeb3b66a820c4dfab788147c0d32743fc\",\"dweb:/ipfs/QmcTatYqxSryAPkrqpvy3A9eFNoa13WjE48jitjBYwB7wq\"]},\"contracts/erc3643/proxy/TokenProxy.sol\":{\"keccak256\":\"0x5768c099cd01c78a2153fd566d8066dde02b7197ce093175e85f4bcdd72b2475\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://905cacdac7296cab659f702babbc7baaeaf5f9eb6ee70cb86af8cee0bc112026\",\"dweb:/ipfs/Qmf2wUMLcYVRZBKntZpq8Pfzy7AXYaymE7nzNSqZYed3Tn\"]},\"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol\":{\"keccak256\":\"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa\",\"dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc\"]},\"contracts/erc3643/proxy/interface/IProxy.sol\":{\"keccak256\":\"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65\",\"dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"implementationAuthority","type":"address"},{"internalType":"address","name":"_identityRegistry","type":"address"},{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"address","name":"_onchainID","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"_implementationAuthority","type":"address","indexed":true}],"type":"event","name":"ImplementationAuthoritySet","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"getImplementationAuthority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_newImplementationAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setImplementationAuthority"}],"devdoc":{"kind":"dev","methods":{"getImplementationAuthority()":{"details":"See {IProxy-getImplementationAuthority}."},"setImplementationAuthority(address)":{"details":"See {IProxy-setImplementationAuthority}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/proxy/TokenProxy.sol":"TokenProxy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/proxy/AbstractProxy.sol":{"keccak256":"0x25dca1861c6dd72695b0b509da29cfb0fcce7c1ac1df0a0266f444596affc3f4","urls":["bzz-raw://221fb9fd02e0db96ff0ce584de79edefeb3b66a820c4dfab788147c0d32743fc","dweb:/ipfs/QmcTatYqxSryAPkrqpvy3A9eFNoa13WjE48jitjBYwB7wq"],"license":"GPL-3.0"},"contracts/erc3643/proxy/TokenProxy.sol":{"keccak256":"0x5768c099cd01c78a2153fd566d8066dde02b7197ce093175e85f4bcdd72b2475","urls":["bzz-raw://905cacdac7296cab659f702babbc7baaeaf5f9eb6ee70cb86af8cee0bc112026","dweb:/ipfs/Qmf2wUMLcYVRZBKntZpq8Pfzy7AXYaymE7nzNSqZYed3Tn"],"license":"GPL-3.0"},"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol":{"keccak256":"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5","urls":["bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa","dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc"],"license":"GPL-3.0"},"contracts/erc3643/proxy/interface/IProxy.sol":{"keccak256":"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536","urls":["bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65","dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"}},"version":1},"id":68} \ No newline at end of file diff --git a/out/TokenStorage.sol/TokenStorage.json b/out/TokenStorage.sol/TokenStorage.json new file mode 100644 index 0000000..eb3b476 --- /dev/null +++ b/out/TokenStorage.sol/TokenStorage.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60806040526008805460ff19169055348015601957600080fd5b50603f8060276000396000f3fe6080604052600080fdfea264697066735822122090e0bb4dfb9f9150a89d92625569ab72b216f929db70d4526282da8b9404e60064736f6c63430008180033","sourceMap":"3952:1112:98:-:0;;;4560:34;;;-1:-1:-1;;4560:34:98;;;3952:1112;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea264697066735822122090e0bb4dfb9f9150a89d92625569ab72b216f929db70d4526282da8b9404e60064736f6c63430008180033","sourceMap":"3952:1112:98:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"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.\"},\"_balances\":{\"details\":\"ERC20 basic variables\"},\"_frozen\":{\"details\":\"Variables of freeze and pause functions\"},\"_tokenCompliance\":{\"details\":\"Compliance contract linked to the onchain validator system\"},\"_tokenIdentityRegistry\":{\"details\":\"Identity Registry contract used by the onchain validator system\"},\"_tokenName\":{\"details\":\"Token information\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/token/TokenStorage.sol\":\"TokenStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/token/TokenStorage.sol\":{\"keccak256\":\"0x895eb11289509a4d4568a627346ca7dc9a583c81ab66192339d0430007de8596\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c0575fd7707d21295e5de8f8083b90ddd48cd33e336051dd8456d93e4fa401b9\",\"dweb:/ipfs/QmTqZy9bs7iycGR4ZejVfDsFcLzupQLwURhJeRhkGc1yfh\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/token/TokenStorage.sol":"TokenStorage"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/token/TokenStorage.sol":{"keccak256":"0x895eb11289509a4d4568a627346ca7dc9a583c81ab66192339d0430007de8596","urls":["bzz-raw://c0575fd7707d21295e5de8f8083b90ddd48cd33e336051dd8456d93e4fa401b9","dweb:/ipfs/QmTqZy9bs7iycGR4ZejVfDsFcLzupQLwURhJeRhkGc1yfh"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"}},"version":1},"id":98} \ No newline at end of file diff --git a/out/TransferFeesModule.sol/TransferFeesModule.json b/out/TransferFeesModule.sol/TransferFeesModule.json new file mode 100644 index 0000000..dab3cce --- /dev/null +++ b/out/TransferFeesModule.sol/TransferFeesModule.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canComplianceBind","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getFee","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct TransferFeesModule.Fee","components":[{"name":"rate","type":"uint256","internalType":"uint256"},{"name":"collector","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"isComplianceBound","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPlugAndPlay","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"moduleBurnAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleCheck","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleMintAction","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleTransferAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFee","inputs":[{"name":"_rate","type":"uint256","internalType":"uint256"},{"name":"_collector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unbindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComplianceBound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ComplianceUnbound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FeeUpdated","inputs":[{"name":"compliance","type":"address","indexed":true,"internalType":"address"},{"name":"_rate","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_collector","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"CollectorAddressIsNotVerified","inputs":[{"name":"compliance","type":"address","internalType":"address"},{"name":"collector","type":"address","internalType":"address"}]},{"type":"error","name":"FeeRateIsOutOfRange","inputs":[{"name":"compliance","type":"address","internalType":"address"},{"name":"rate","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610098565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610f31806100a76000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063715018a611610097578063bcc2105311610066578063bcc2105314610284578063e6f5e80714610297578063f104a8c914610183578063f2fde38b1461029e57600080fd5b8063715018a6146101d55780638da5cb5b146101dd578063b4f2e8b8146101f8578063b88c91481461020b57600080fd5b80632cb7e1ec116100d35780632cb7e1ec14610170578063372491a2146101835780634a932544146101965780634cf4d295146101a957600080fd5b8063013b7ce4146100fa5780630694a5fb1461012757806306fdde031461013c575b600080fd5b610112610108366004610ca1565b6001949350505050565b60405190151581526020015b60405180910390f35b61013a610135366004610cf4565b6102b1565b005b60408051808201825260128152715472616e73666572466565734d6f64756c6560701b6020820152905161011e9190610d11565b61013a61017e366004610d60565b6103b0565b61013a610191366004610da1565b610614565b61013a6101a4366004610cf4565b610647565b6101126101b7366004610cf4565b6001600160a01b031660009081526020819052604090205460ff1690565b61013a61077a565b6001546040516001600160a01b03909116815260200161011e565b61013a610206366004610dcd565b61078e565b610260610219366004610cf4565b604080518082018252600080825260209182018190526001600160a01b03938416815260028252829020825180840190935280548352600101549092169181019190915290565b60408051825181526020928301516001600160a01b0316928101929092520161011e565b610112610292366004610cf4565b6109be565b6000610112565b61013a6102ac366004610cf4565b610a95565b3360009081526020819052604090205460ff166102e95760405162461bcd60e51b81526004016102e090610dfd565b60405180910390fd5b6001600160a01b03811661033f5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016102e0565b336001600160a01b038216146103675760405162461bcd60e51b81526004016102e090610e34565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166103df5760405162461bcd60e51b81526004016102e090610dfd565b60006103eb3385610ad3565b905060006103f93385610ad3565b9050806001600160a01b0316826001600160a01b03160361041b575050505050565b33600090815260026020908152604091829020825180840190935280548084526001909101546001600160a01b0316918301919091521580610472575080602001516001600160a01b0316866001600160a01b0316145b80610492575080602001516001600160a01b0316856001600160a01b0316145b1561049f57505050505050565b8051600090612710906104b29087610e75565b6104bc9190610e9a565b9050806000036104cf5750505050505050565b6000336001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa15801561050f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105339190610ebc565b6020840151604051639fc1d0e760e01b81526001600160a01b038a8116600483015291821660248201526044810185905291925060009190831690639fc1d0e7906064016020604051808303816000875af1158015610596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ba9190610ed9565b9050806106095760405162461bcd60e51b815260206004820152601e60248201527f7472616e736665722066656520636f6c6c656374696f6e206661696c6564000060448201526064016102e0565b505050505050505050565b3360009081526020819052604090205460ff166106435760405162461bcd60e51b81526004016102e090610dfd565b5050565b6001600160a01b03811661069d5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016102e0565b6001600160a01b03811660009081526020819052604090205460ff16156107065760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e64000000000000000060448201526064016102e0565b336001600160a01b0382161461072e5760405162461bcd60e51b81526004016102e090610e34565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b610782610c0d565b61078c6000610c3a565b565b3360009081526020819052604090205460ff166107bd5760405162461bcd60e51b81526004016102e090610dfd565b6000336001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108219190610ebc565b905061271083111561084f57604051630e33b43d60e01b8152336004820152602481018490526044016102e0565b6000816001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b39190610ebc565b60405163b9209e3360e01b81526001600160a01b0385811660048301529192509082169063b9209e3390602401602060405180830381865afa1580156108fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109219190610ed9565b61094f57604051639bca970d60e01b81523360048201526001600160a01b03841660248201526044016102e0565b3360008181526002602090815260409182902087815560010180546001600160a01b0319166001600160a01b0388169081179091558251888152918201527f47b231849a3ba3af6f4ec32a2da80e3106ab81fb5eca9ffde8b33ed2901af2b6910160405180910390a250505050565b600080826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a239190610ebc565b6040516307feec1960e21b81523060048201529091506001600160a01b03821690631ffbb06490602401602060405180830381865afa158015610a6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8e9190610ed9565b9392505050565b610a9d610c0d565b6001600160a01b038116610ac757604051631e4fbdf760e01b8152600060048201526024016102e0565b610ad081610c3a565b50565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b379190610ebc565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b989190610ebc565b604051633c3ad79560e21b81526001600160a01b038481166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c049190610ebc565b90505b92915050565b6001546001600160a01b0316331461078c5760405163118cdaa760e01b81523360048201526024016102e0565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0381168114610ad057600080fd5b60008060008060808587031215610cb757600080fd5b8435610cc281610c8c565b93506020850135610cd281610c8c565b9250604085013591506060850135610ce981610c8c565b939692955090935050565b600060208284031215610d0657600080fd5b8135610a8e81610c8c565b60006020808352835180602085015260005b81811015610d3f57858101830151858201604001528201610d23565b506000604082860101526040601f19601f8301168501019250505092915050565b600080600060608486031215610d7557600080fd5b8335610d8081610c8c565b92506020840135610d9081610c8c565b929592945050506040919091013590565b60008060408385031215610db457600080fd5b8235610dbf81610c8c565b946020939093013593505050565b60008060408385031215610de057600080fd5b823591506020830135610df281610c8c565b809150509250929050565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b8082028115828204841417610c0757634e487b7160e01b600052601160045260246000fd5b600082610eb757634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215610ece57600080fd5b8151610a8e81610c8c565b600060208284031215610eeb57600080fd5b81518015158114610a8e57600080fdfea264697066735822122063fc98a0b7a7b5055be26a2388c7083cd716712a1e40118ef51c9859e58409f464736f6c63430008180033","sourceMap":"4039:4786:57:-:0;;;4898:36;;;;;;;;;-1:-1:-1;4920:10:57;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;160:51:165;133:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;4039:4786:57;;2912:187:141;3004:6;;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;;3052:40;;3004:6;;;3020:17;3004:6;;3052:40;;2985:16;;3052:40;2975:124;2912:187;:::o;14:203:165:-;4039:4786:57;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063715018a611610097578063bcc2105311610066578063bcc2105314610284578063e6f5e80714610297578063f104a8c914610183578063f2fde38b1461029e57600080fd5b8063715018a6146101d55780638da5cb5b146101dd578063b4f2e8b8146101f8578063b88c91481461020b57600080fd5b80632cb7e1ec116100d35780632cb7e1ec14610170578063372491a2146101835780634a932544146101965780634cf4d295146101a957600080fd5b8063013b7ce4146100fa5780630694a5fb1461012757806306fdde031461013c575b600080fd5b610112610108366004610ca1565b6001949350505050565b60405190151581526020015b60405180910390f35b61013a610135366004610cf4565b6102b1565b005b60408051808201825260128152715472616e73666572466565734d6f64756c6560701b6020820152905161011e9190610d11565b61013a61017e366004610d60565b6103b0565b61013a610191366004610da1565b610614565b61013a6101a4366004610cf4565b610647565b6101126101b7366004610cf4565b6001600160a01b031660009081526020819052604090205460ff1690565b61013a61077a565b6001546040516001600160a01b03909116815260200161011e565b61013a610206366004610dcd565b61078e565b610260610219366004610cf4565b604080518082018252600080825260209182018190526001600160a01b03938416815260028252829020825180840190935280548352600101549092169181019190915290565b60408051825181526020928301516001600160a01b0316928101929092520161011e565b610112610292366004610cf4565b6109be565b6000610112565b61013a6102ac366004610cf4565b610a95565b3360009081526020819052604090205460ff166102e95760405162461bcd60e51b81526004016102e090610dfd565b60405180910390fd5b6001600160a01b03811661033f5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016102e0565b336001600160a01b038216146103675760405162461bcd60e51b81526004016102e090610e34565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166103df5760405162461bcd60e51b81526004016102e090610dfd565b60006103eb3385610ad3565b905060006103f93385610ad3565b9050806001600160a01b0316826001600160a01b03160361041b575050505050565b33600090815260026020908152604091829020825180840190935280548084526001909101546001600160a01b0316918301919091521580610472575080602001516001600160a01b0316866001600160a01b0316145b80610492575080602001516001600160a01b0316856001600160a01b0316145b1561049f57505050505050565b8051600090612710906104b29087610e75565b6104bc9190610e9a565b9050806000036104cf5750505050505050565b6000336001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa15801561050f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105339190610ebc565b6020840151604051639fc1d0e760e01b81526001600160a01b038a8116600483015291821660248201526044810185905291925060009190831690639fc1d0e7906064016020604051808303816000875af1158015610596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ba9190610ed9565b9050806106095760405162461bcd60e51b815260206004820152601e60248201527f7472616e736665722066656520636f6c6c656374696f6e206661696c6564000060448201526064016102e0565b505050505050505050565b3360009081526020819052604090205460ff166106435760405162461bcd60e51b81526004016102e090610dfd565b5050565b6001600160a01b03811661069d5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016102e0565b6001600160a01b03811660009081526020819052604090205460ff16156107065760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e64000000000000000060448201526064016102e0565b336001600160a01b0382161461072e5760405162461bcd60e51b81526004016102e090610e34565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b610782610c0d565b61078c6000610c3a565b565b3360009081526020819052604090205460ff166107bd5760405162461bcd60e51b81526004016102e090610dfd565b6000336001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108219190610ebc565b905061271083111561084f57604051630e33b43d60e01b8152336004820152602481018490526044016102e0565b6000816001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b39190610ebc565b60405163b9209e3360e01b81526001600160a01b0385811660048301529192509082169063b9209e3390602401602060405180830381865afa1580156108fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109219190610ed9565b61094f57604051639bca970d60e01b81523360048201526001600160a01b03841660248201526044016102e0565b3360008181526002602090815260409182902087815560010180546001600160a01b0319166001600160a01b0388169081179091558251888152918201527f47b231849a3ba3af6f4ec32a2da80e3106ab81fb5eca9ffde8b33ed2901af2b6910160405180910390a250505050565b600080826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a239190610ebc565b6040516307feec1960e21b81523060048201529091506001600160a01b03821690631ffbb06490602401602060405180830381865afa158015610a6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8e9190610ed9565b9392505050565b610a9d610c0d565b6001600160a01b038116610ac757604051631e4fbdf760e01b8152600060048201526024016102e0565b610ad081610c3a565b50565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b379190610ebc565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b989190610ebc565b604051633c3ad79560e21b81526001600160a01b038481166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c049190610ebc565b90505b92915050565b6001546001600160a01b0316331461078c5760405163118cdaa760e01b81523360048201526024016102e0565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0381168114610ad057600080fd5b60008060008060808587031215610cb757600080fd5b8435610cc281610c8c565b93506020850135610cd281610c8c565b9250604085013591506060850135610ce981610c8c565b939692955090935050565b600060208284031215610d0657600080fd5b8135610a8e81610c8c565b60006020808352835180602085015260005b81811015610d3f57858101830151858201604001528201610d23565b506000604082860101526040601f19601f8301168501019250505092915050565b600080600060608486031215610d7557600080fd5b8335610d8081610c8c565b92506020840135610d9081610c8c565b929592945050506040919091013590565b60008060408385031215610db457600080fd5b8235610dbf81610c8c565b946020939093013593505050565b60008060408385031215610de057600080fd5b823591506020830135610df281610c8c565b809150509250929050565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b8082028115828204841417610c0757634e487b7160e01b600052601160045260246000fd5b600082610eb757634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215610ece57600080fd5b8151610a8e81610c8c565b600060208284031215610eeb57600080fd5b81518015158114610a8e57600080fdfea264697066735822122063fc98a0b7a7b5055be26a2388c7083cd716712a1e40118ef51c9859e58409f464736f6c63430008180033","sourceMap":"4039:4786:57:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7336:152;;;;;;:::i;:::-;7477:4;7336:152;;;;;;;;;;918:14:165;;911:22;893:41;;881:2;866:18;7336:152:57;;;;;;;;5018:343:44;;;;;;:::i;:::-;;:::i;:::-;;8253:102:57;8321:27;;;;;;;;;;;-1:-1:-1;;;8321:27:57;;;;8253:102;;;;8321:27;8253:102;:::i;5992:813::-;;;;;;:::i;:::-;;:::i;7130:96::-;;;;;;:::i;:::-;;:::i;4555:396:44:-;;;;;;:::i;:::-;;:::i;5429:139::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5532:29:44;5509:4;5532:29;;;;;;;;;;;;;;5429:139;2293:101:141;;;:::i;1638:85::-;1710:6;;1638:85;;-1:-1:-1;;;;;1710:6:141;;;2677:51:165;;2665:2;2650:18;1638:85:141;2531:203:165;5286:637:57;;;;;;:::i;:::-;;:::i;7642:113::-;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;7730:18:57;;;;;:5;:18;;;;;7723:25;;;;;;;;;;;;;;;;;;;;;;;;;;7642:113;;;;;3267:13:165;;3249:32;;3341:4;3329:17;;;3323:24;-1:-1:-1;;;;;3319:50:165;3297:20;;;3290:80;;;;3222:18;7642:113:57;3059:317:165;7823:227:57;;;;;;:::i;:::-;;:::i;8115:83::-;8163:4;8115:83;;2543:215:141;;;;;;:::i;:::-;;:::i;5018:343:44:-;4426:10;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5120:25:44;::::1;5112:69;;;::::0;-1:-1:-1;;;5112:69:44;;3942:2:165;5112:69:44::1;::::0;::::1;3924:21:165::0;3981:2;3961:18;;;3954:30;4020:33;4000:18;;;3993:61;4071:18;;5112:69:44::1;3740:355:165::0;5112:69:44::1;5199:10;-1:-1:-1::0;;;;;5199:25:44;::::1;;5191:71;;;;-1:-1:-1::0;;;5191:71:44::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5272:29:44;::::1;5304:5;5272:29:::0;;;::::1;::::0;;;;;;;:37;;-1:-1:-1;;5272:37:44::1;::::0;;5324:30;::::1;::::0;5304:5;5324:30:::1;5018:343:::0;:::o;5992:813:57:-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;6113:22:57::1;6138:31;6151:10;6163:5;6138:12;:31::i;:::-;6113:56;;6179:24;6206:29;6219:10;6231:3;6206:12;:29::i;:::-;6179:56;;6268:16;-1:-1:-1::0;;;;;6250:34:57::1;:14;-1:-1:-1::0;;;;;6250:34:57::1;::::0;6246:71:::1;;6300:7;;5992:813:::0;;;:::o;6246:71::-:1;6350:10;6327:14;6344:17:::0;;;:5:::1;:17;::::0;;;;;;;;6327:34;;;;::::1;::::0;;;;;;;;::::1;::::0;;::::1;::::0;-1:-1:-1;;;;;6327:34:57::1;::::0;;::::1;::::0;;;;6375:13;;:39:::1;;;6401:3;:13;;;-1:-1:-1::0;;;;;6392:22:57::1;:5;-1:-1:-1::0;;;;;6392:22:57::1;;6375:39;:63;;;;6425:3;:13;;;-1:-1:-1::0;;;;;6418:20:57::1;:3;-1:-1:-1::0;;;;;6418:20:57::1;;6375:63;6371:100;;;6454:7;;;5992:813:::0;;;:::o;6371:100::-:1;6511:8:::0;;6481:17:::1;::::0;6523:5:::1;::::0;6502:17:::1;::::0;:6;:17:::1;:::i;:::-;6501:27;;;;:::i;:::-;6481:47;;6542:9;6555:1;6542:14:::0;6538:51:::1;;6572:7;;;;5992:813:::0;;;:::o;6538:51::-:1;6599:12;6640:10;-1:-1:-1::0;;;;;6621:44:57::1;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6716:13;::::0;::::1;::::0;6690:51:::1;::::0;-1:-1:-1;;;6690:51:57;;-1:-1:-1;;;;;5508:15:165;;;6690:51:57::1;::::0;::::1;5490:34:165::0;5560:15;;;5540:18;;;5533:43;5592:18;;;5585:34;;;6599:69:57;;-1:-1:-1;6678:9:57::1;::::0;6690:20;;::::1;::::0;::::1;::::0;5425:18:165;;6690:51:57::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6678:63;;6759:4;6751:47;;;::::0;-1:-1:-1;;;6751:47:57;;6114:2:165;6751:47:57::1;::::0;::::1;6096:21:165::0;6153:2;6133:18;;;6126:30;6192:32;6172:18;;;6165:60;6242:18;;6751:47:57::1;5912:354:165::0;6751:47:57::1;6103:702;;;;;;5992:813:::0;;;:::o;7130:96::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;7130:96:57;;:::o;4555:396:44:-;-1:-1:-1;;;;;4636:25:44;;4628:69;;;;-1:-1:-1;;;4628:69:44;;3942:2:165;4628:69:44;;;3924:21:165;3981:2;3961:18;;;3954:30;4020:33;4000:18;;;3993:61;4071:18;;4628:69:44;3740:355:165;4628:69:44;-1:-1:-1;;;;;4716:29:44;;:16;:29;;;;;;;;;;;;;4715:30;4707:67;;;;-1:-1:-1;;;4707:67:44;;6473:2:165;4707:67:44;;;6455:21:165;6512:2;6492:18;;;6485:30;6551:26;6531:18;;;6524:54;6595:18;;4707:67:44;6271:348:165;4707:67:44;4792:10;-1:-1:-1;;;;;4792:25:44;;;4784:71;;;;-1:-1:-1;;;4784:71:44;;;;;;;:::i;:::-;-1:-1:-1;;;;;4865:29:44;;:16;:29;;;;;;;;;;;:36;;-1:-1:-1;;4865:36:44;4897:4;4865:36;;;4916:28;;;4865:16;4916:28;4555:396;:::o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;5286:637:57:-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;5375:20:57::1;5417:10;-1:-1:-1::0;;;;;5398:44:57::1;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5375:69;;5466:5;5458;:13;5454:89;;;5494:38;::::0;-1:-1:-1;;;5494:38:57;;5514:10:::1;5494:38;::::0;::::1;6798:51:165::0;6865:18;;;6858:34;;;6771:18;;5494:38:57::1;6624:274:165::0;5454:89:57::1;5553:34;5597:12;-1:-1:-1::0;;;;;5590:37:57::1;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5644;::::0;-1:-1:-1;;;5644:39:57;;-1:-1:-1;;;;;2695:32:165;;;5644:39:57::1;::::0;::::1;2677:51:165::0;5553:76:57;;-1:-1:-1;5644:27:57;;::::1;::::0;::::1;::::0;2650:18:165;;5644:39:57::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5639:131;;5706:53;::::0;-1:-1:-1;;;5706:53:57;;5736:10:::1;5706:53;::::0;::::1;7398:34:165::0;-1:-1:-1;;;;;7468:15:165;;7448:18;;;7441:43;7333:18;;5706:53:57::1;7186:304:165::0;5639:131:57::1;5786:10;5780:17;::::0;;;:5:::1;:17;::::0;;;;;;;;:30;;;5820:27:::1;;:40:::0;;-1:-1:-1;;;;;;5820:40:57::1;-1:-1:-1::0;;;;;5820:40:57;::::1;::::0;;::::1;::::0;;;5875:41;;7669:25:165;;;7710:18;;;7703:60;5875:41:57::1;::::0;7642:18:165;5875:41:57::1;;;;;;;5365:558;;5286:637:::0;;:::o;7823:227::-;7894:4;7910:20;7952:11;-1:-1:-1;;;;;7933:45:57;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7997:46;;-1:-1:-1;;;7997:46:57;;8037:4;7997:46;;;2677:51:165;7910:70:57;;-1:-1:-1;;;;;;7997:31:57;;;;;2650:18:165;;7997:46:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7990:53;7823:227;-1:-1:-1;;;7823:227:57:o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;2677:51:165::0;2650:18;;2672:31:141::1;2531:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;8587:236:57:-;8675:7;8735:11;-1:-1:-1;;;;;8716:45:57;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8709:72:57;;:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:106;;-1:-1:-1;;;8709:106:57;;-1:-1:-1;;;;;2695:32:165;;;8709:106:57;;;2677:51:165;8709:83:57;;;;;;;2650:18:165;;8709:106:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8694:122;;8587:236;;;;;:::o;1796:162:141:-;1710:6;;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;2677:51:165;2650:18;;1901:40:141;2531:203:165;2912:187:141;3004:6;;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;;3052:40;;3004:6;;;3020:17;3004:6;;3052:40;;2985:16;;3052:40;2975:124;2912:187;:::o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;150:598;236:6;244;252;260;313:3;301:9;292:7;288:23;284:33;281:53;;;330:1;327;320:12;281:53;369:9;356:23;388:31;413:5;388:31;:::i;:::-;438:5;-1:-1:-1;495:2:165;480:18;;467:32;508:33;467:32;508:33;:::i;:::-;560:7;-1:-1:-1;614:2:165;599:18;;586:32;;-1:-1:-1;670:2:165;655:18;;642:32;683:33;642:32;683:33;:::i;:::-;150:598;;;;-1:-1:-1;150:598:165;;-1:-1:-1;;150:598:165:o;945:247::-;1004:6;1057:2;1045:9;1036:7;1032:23;1028:32;1025:52;;;1073:1;1070;1063:12;1025:52;1112:9;1099:23;1131:31;1156:5;1131:31;:::i;1197:548::-;1309:4;1338:2;1367;1356:9;1349:21;1399:6;1393:13;1442:6;1437:2;1426:9;1422:18;1415:34;1467:1;1477:140;1491:6;1488:1;1485:13;1477:140;;;1586:14;;;1582:23;;1576:30;1552:17;;;1571:2;1548:26;1541:66;1506:10;;1477:140;;;1481:3;1666:1;1661:2;1652:6;1641:9;1637:22;1633:31;1626:42;1736:2;1729;1725:7;1720:2;1712:6;1708:15;1704:29;1693:9;1689:45;1685:54;1677:62;;;;1197:548;;;;:::o;1750:456::-;1827:6;1835;1843;1896:2;1884:9;1875:7;1871:23;1867:32;1864:52;;;1912:1;1909;1902:12;1864:52;1951:9;1938:23;1970:31;1995:5;1970:31;:::i;:::-;2020:5;-1:-1:-1;2077:2:165;2062:18;;2049:32;2090:33;2049:32;2090:33;:::i;:::-;1750:456;;2142:7;;-1:-1:-1;;;2196:2:165;2181:18;;;;2168:32;;1750:456::o;2211:315::-;2279:6;2287;2340:2;2328:9;2319:7;2315:23;2311:32;2308:52;;;2356:1;2353;2346:12;2308:52;2395:9;2382:23;2414:31;2439:5;2414:31;:::i;:::-;2464:5;2516:2;2501:18;;;;2488:32;;-1:-1:-1;;;2211:315:165:o;2739:::-;2807:6;2815;2868:2;2856:9;2847:7;2843:23;2839:32;2836:52;;;2884:1;2881;2874:12;2836:52;2920:9;2907:23;2897:33;;2980:2;2969:9;2965:18;2952:32;2993:31;3018:5;2993:31;:::i;:::-;3043:5;3033:15;;;2739:315;;;;;:::o;3381:354::-;3583:2;3565:21;;;3622:2;3602:18;;;3595:30;3661:32;3656:2;3641:18;;3634:60;3726:2;3711:18;;3381:354::o;4100:397::-;4302:2;4284:21;;;4341:2;4321:18;;;4314:30;4380:34;4375:2;4360:18;;4353:62;-1:-1:-1;;;4446:2:165;4431:18;;4424:31;4487:3;4472:19;;4100:397::o;4502:265::-;4575:9;;;4606;;4623:15;;;4617:22;;4603:37;4593:168;;4683:10;4678:3;4674:20;4671:1;4664:31;4718:4;4715:1;4708:15;4746:4;4743:1;4736:15;4772:217;4812:1;4838;4828:132;;4882:10;4877:3;4873:20;4870:1;4863:31;4917:4;4914:1;4907:15;4945:4;4942:1;4935:15;4828:132;-1:-1:-1;4974:9:165;;4772:217::o;4994:251::-;5064:6;5117:2;5105:9;5096:7;5092:23;5088:32;5085:52;;;5133:1;5130;5123:12;5085:52;5165:9;5159:16;5184:31;5209:5;5184:31;:::i;5630:277::-;5697:6;5750:2;5738:9;5729:7;5725:23;5721:32;5718:52;;;5766:1;5763;5756:12;5718:52;5798:9;5792:16;5851:5;5844:13;5837:21;5830:5;5827:32;5817:60;;5873:1;5870;5863:12","linkReferences":{}},"methodIdentifiers":{"bindCompliance(address)":"4a932544","canComplianceBind(address)":"bcc21053","getFee(address)":"b88c9148","isComplianceBound(address)":"4cf4d295","isPlugAndPlay()":"e6f5e807","moduleBurnAction(address,uint256)":"372491a2","moduleCheck(address,address,uint256,address)":"013b7ce4","moduleMintAction(address,uint256)":"f104a8c9","moduleTransferAction(address,address,uint256)":"2cb7e1ec","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setFee(uint256,address)":"b4f2e8b8","transferOwnership(address)":"f2fde38b","unbindCompliance(address)":"0694a5fb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"compliance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"}],\"name\":\"CollectorAddressIsNotVerified\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"compliance\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rate\",\"type\":\"uint256\"}],\"name\":\"FeeRateIsOutOfRange\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"compliance\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_rate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_collector\",\"type\":\"address\"}],\"name\":\"FeeUpdated\",\"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\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"bindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"canComplianceBind\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"getFee\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"rate\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"}],\"internalType\":\"struct TransferFeesModule.Fee\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"isComplianceBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPlugAndPlay\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleBurnAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"moduleCheck\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleMintAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleTransferAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rate\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_collector\",\"type\":\"address\"}],\"name\":\"setFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"unbindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"bindCompliance(address)\":{\"details\":\"See {IModule-bindCompliance}.\"},\"canComplianceBind(address)\":{\"details\":\"See {IModule-canComplianceBind}.\"},\"getFee(address)\":{\"details\":\"getter for `_fees` variable\",\"params\":{\"_compliance\":\"the Compliance smart contract to be checked returns the Fee\"}},\"isComplianceBound(address)\":{\"details\":\"See {IModule-isComplianceBound}.\"},\"isPlugAndPlay()\":{\"details\":\"See {IModule-isPlugAndPlay}.\"},\"moduleBurnAction(address,uint256)\":{\"details\":\"See {IModule-moduleBurnAction}.\"},\"moduleCheck(address,address,uint256,address)\":{\"details\":\"See {IModule-moduleCheck}.\"},\"moduleMintAction(address,uint256)\":{\"details\":\"See {IModule-moduleMintAction}.\"},\"moduleTransferAction(address,address,uint256)\":{\"details\":\"See {IModule-moduleTransferAction}.\"},\"name()\":{\"details\":\"See {IModule-name}.\"},\"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.\"},\"setFee(uint256,address)\":{\"details\":\"Sets the fee rate and collector of the given compliance\",\"params\":{\"_collector\":\"is the collector wallet address Only the owner of the Compliance smart contract can call this function Collector wallet address must be verified\",\"_rate\":\"is the rate of the fee (0.01% = 1, 1% = 100, 100% = 10000)\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unbindCompliance(address)\":{\"details\":\"See {IModule-unbindCompliance}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ComplianceBound(address)\":{\"notice\":\"this event is emitted when the compliance contract is bound to the module. the event is emitted by the bindCompliance function `_compliance` is the address of the compliance contract being bound\"},\"ComplianceUnbound(address)\":{\"notice\":\"this event is emitted when the compliance contract is unbound from the module. the event is emitted by the unbindCompliance function `_compliance` is the address of the compliance contract being unbound\"},\"FeeUpdated(address,uint256,address)\":{\"notice\":\"this event is emitted whenever a fee definition is updated for the given compliance address the event is emitted by 'setFee'. compliance is the compliance contract address _rate is the rate of the fee (0.01% = 1, 1% = 100, 100% = 10000) _collector is the collector wallet address\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/modular/modules/TransferFeesModule.sol\":\"TransferFeesModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/IModularCompliance.sol\":{\"keccak256\":\"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e\",\"dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh\"]},\"contracts/erc3643/compliance/modular/modules/AbstractModule.sol\":{\"keccak256\":\"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8\",\"dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu\"]},\"contracts/erc3643/compliance/modular/modules/IModule.sol\":{\"keccak256\":\"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c\",\"dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk\"]},\"contracts/erc3643/compliance/modular/modules/TransferFeesModule.sol\":{\"keccak256\":\"0x7b8372c667e44d05d27980fdeed0875758b1e965a7aa747b60dd68fc26f274de\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://31ac6a596c3a7dabfe7b1ed5a680c38d8dda89f2766a1de2be9b88f7cefc51be\",\"dweb:/ipfs/QmaFNegTeUEi2SWeKSAjCWRfEiwdHqjCD1J8egJvsouMs3\"]},\"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76\",\"dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D\"]},\"contracts/erc3643/registry/interface/IIdentityRegistry.sol\":{\"keccak256\":\"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4\",\"dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q\"]},\"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4\",\"dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/roles/AgentRole.sol\":{\"keccak256\":\"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab\",\"dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub\"]},\"contracts/erc3643/roles/Roles.sol\":{\"keccak256\":\"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932\",\"dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ\"]},\"contracts/erc3643/token/IToken.sol\":{\"keccak256\":\"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b\",\"dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"compliance","type":"address"},{"internalType":"address","name":"collector","type":"address"}],"type":"error","name":"CollectorAddressIsNotVerified"},{"inputs":[{"internalType":"address","name":"compliance","type":"address"},{"internalType":"uint256","name":"rate","type":"uint256"}],"type":"error","name":"FeeRateIsOutOfRange"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"compliance","type":"address","indexed":true},{"internalType":"uint256","name":"_rate","type":"uint256","indexed":false},{"internalType":"address","name":"_collector","type":"address","indexed":false}],"type":"event","name":"FeeUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindCompliance"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"canComplianceBind","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"getFee","outputs":[{"internalType":"struct TransferFeesModule.Fee","name":"","type":"tuple","components":[{"internalType":"uint256","name":"rate","type":"uint256"},{"internalType":"address","name":"collector","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPlugAndPlay","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleBurnAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"moduleCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleMintAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleTransferAction"},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"_rate","type":"uint256"},{"internalType":"address","name":"_collector","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFee"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindCompliance"}],"devdoc":{"kind":"dev","methods":{"bindCompliance(address)":{"details":"See {IModule-bindCompliance}."},"canComplianceBind(address)":{"details":"See {IModule-canComplianceBind}."},"getFee(address)":{"details":"getter for `_fees` variable","params":{"_compliance":"the Compliance smart contract to be checked returns the Fee"}},"isComplianceBound(address)":{"details":"See {IModule-isComplianceBound}."},"isPlugAndPlay()":{"details":"See {IModule-isPlugAndPlay}."},"moduleBurnAction(address,uint256)":{"details":"See {IModule-moduleBurnAction}."},"moduleCheck(address,address,uint256,address)":{"details":"See {IModule-moduleCheck}."},"moduleMintAction(address,uint256)":{"details":"See {IModule-moduleMintAction}."},"moduleTransferAction(address,address,uint256)":{"details":"See {IModule-moduleTransferAction}."},"name()":{"details":"See {IModule-name}."},"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."},"setFee(uint256,address)":{"details":"Sets the fee rate and collector of the given compliance","params":{"_collector":"is the collector wallet address Only the owner of the Compliance smart contract can call this function Collector wallet address must be verified","_rate":"is the rate of the fee (0.01% = 1, 1% = 100, 100% = 10000)"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unbindCompliance(address)":{"details":"See {IModule-unbindCompliance}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/modular/modules/TransferFeesModule.sol":"TransferFeesModule"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/IModularCompliance.sol":{"keccak256":"0x9c89818ac589c0f96a3c14e89e2f9a3cc49c9778e57e17f17606d4876cbc55cc","urls":["bzz-raw://1f0c848de216953f353ceb9cf77d29b20e1b6df865e215d3b5f3ea78fd9f947e","dweb:/ipfs/QmZ8iLcSyVaqQZ2MRJVLj5WAqtfMeMNZ4nbJrfDxfjyEQh"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/AbstractModule.sol":{"keccak256":"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3","urls":["bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8","dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/IModule.sol":{"keccak256":"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02","urls":["bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c","dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/TransferFeesModule.sol":{"keccak256":"0x7b8372c667e44d05d27980fdeed0875758b1e965a7aa747b60dd68fc26f274de","urls":["bzz-raw://31ac6a596c3a7dabfe7b1ed5a680c38d8dda89f2766a1de2be9b88f7cefc51be","dweb:/ipfs/QmaFNegTeUEi2SWeKSAjCWRfEiwdHqjCD1J8egJvsouMs3"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IClaimTopicsRegistry.sol":{"keccak256":"0xc34dc3406974c37153a0bd2eaea0f75feac7bdfbdf0f6b1ea72109d90ce8045a","urls":["bzz-raw://54652046bde3b67d35e6c5f742e2890abdf8d6d2bd70b0b1177cb5e5ce1b8c76","dweb:/ipfs/QmRq7r9F3sWwG8TsXETbSCLbs5PKfzqZQzP5kiUWGVHD8D"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistry.sol":{"keccak256":"0x87d69fbbc00a557aeddbee2ff223f08587f985259e9b32cf457751b745bb4daa","urls":["bzz-raw://351ac974e5a6147969d311ee7463f3389374e8bb9dbe4fd9d5d69c6c8b3335c4","dweb:/ipfs/Qmcvn6Uh4tVmEdkGiubVV2DdDeaf5wjRqvTQJvMrhbsv5q"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/IIdentityRegistryStorage.sol":{"keccak256":"0xcb8963165583f3c481cc8892db91eeb0747235442564b53642550fd85eb8eb53","urls":["bzz-raw://6511f488da510e77328deed472caa34dd4079727ee21f44dbfff3714d8e60ce4","dweb:/ipfs/QmcfsaezSMYczaRVTyNHbwdbHv5fATLtFvHWeBZGL4xdro"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/roles/AgentRole.sol":{"keccak256":"0x6211e127a7a989c7ce3beffa30faa4c82332e2d59f036ccd8154592fad564e2d","urls":["bzz-raw://6101e76c8604e4687efb3b790aa7f11f98cfd6894c79253c3e1924de7b0677ab","dweb:/ipfs/QmXAtm7iWmASgb7hdbmFZPgAJXRW22iXrzwbDfLNBfRLub"],"license":"GPL-3.0"},"contracts/erc3643/roles/Roles.sol":{"keccak256":"0xa2bffc2258fc3ea2f22ec9efb4d3800a41ac71dc0dea19dfb889665a779e9bd9","urls":["bzz-raw://0bec6495a1f920f7740082aa6786a293db9182b681da4f8e8db0785da7ea9932","dweb:/ipfs/QmQ9iyKHPv45JWWAPNCQpcTcTWJjXMe9JsSm31XvZPAEoZ"],"license":"GPL-3.0"},"contracts/erc3643/token/IToken.sol":{"keccak256":"0xe3ac078b49e5eefaa27679bab52f47b226ebb60810e809a3377e9d9859402b85","urls":["bzz-raw://0c673c792d14f0c937f9914d98e60bde8c220381d9363294bce8f6e6531c959b","dweb:/ipfs/QmWPaGCb5Ay92uarbwnBFiYfrryXBtP7WzBWpvAy8WVaJR"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":57} \ No newline at end of file diff --git a/out/TransferRestrictModule.sol/TransferRestrictModule.json b/out/TransferRestrictModule.sol/TransferRestrictModule.json new file mode 100644 index 0000000..baa8248 --- /dev/null +++ b/out/TransferRestrictModule.sol/TransferRestrictModule.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"allowUser","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchAllowUsers","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchDisallowUsers","inputs":[{"name":"_userAddresses","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canComplianceBind","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"disallowUser","inputs":[{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isComplianceBound","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPlugAndPlay","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"isUserAllowed","inputs":[{"name":"_compliance","type":"address","internalType":"address"},{"name":"_userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleBurnAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleCheck","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleMintAction","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"moduleTransferAction","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"unbindCompliance","inputs":[{"name":"_compliance","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComplianceBound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ComplianceUnbound","inputs":[{"name":"_compliance","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UserAllowed","inputs":[{"name":"_compliance","type":"address","indexed":false,"internalType":"address"},{"name":"_userAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UserDisallowed","inputs":[{"name":"_compliance","type":"address","indexed":false,"internalType":"address"},{"name":"_userAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610b4c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80634cf4d29511610097578063a9fb3b3511610066578063a9fb3b3514610220578063bcc210531461025c578063e6f5e80714610270578063f104a8c91461019557600080fd5b80634cf4d295146101bb57806358591fb7146101e7578063726bb465146101fa578063771c456f1461020d57600080fd5b80632cb7e1ec116100d35780632cb7e1ec1461016f57806332bb1f1614610182578063372491a2146101955780634a932544146101a857600080fd5b8063013b7ce4146100fa5780630694a5fb1461012257806306fdde0314610137575b600080fd5b61010d610108366004610856565b610277565b60405190151581526020015b60405180910390f35b6101356101303660046108a3565b6102e2565b005b60408051808201825260168152755472616e7366657252657374726963744d6f64756c6560501b6020820152905161011991906108c5565b61013561017d366004610914565b6103e1565b610135610190366004610966565b610415565b6101356101a3366004610a2b565b6104dc565b6101356101b63660046108a3565b61050f565b61010d6101c93660046108a3565b6001600160a01b031660009081526020819052604090205460ff1690565b6101356101f53660046108a3565b610642565b610135610208366004610966565b6106da565b61013561021b3660046108a3565b6107a6565b61010d61022e366004610a55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b61010d61026a3660046108a3565b50600190565b600161010d565b6001600160a01b03808216600090815260016020908152604080832093881683529290529081205460ff16156102af575060016102da565b506001600160a01b0380821660009081526001602090815260408083209387168352929052205460ff165b949350505050565b3360009081526020819052604090205460ff1661031a5760405162461bcd60e51b815260040161031190610a88565b60405180910390fd5b6001600160a01b0381166103705760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610311565b336001600160a01b038216146103985760405162461bcd60e51b815260040161031190610abf565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166104105760405162461bcd60e51b815260040161031190610a88565b505050565b3360009081526020819052604090205460ff166104445760405162461bcd60e51b815260040161031190610a88565b805160005b8181101561041057600083828151811061046557610465610b00565b6020908102919091018101513360008181526001845260408082206001600160a01b03851680845290865291819020805460ff191690558051928352938201529092507fe9ab2574b9b111f06f42baaa274030c7228b1dad45b248037101cd11de348240910160405180910390a150600101610449565b3360009081526020819052604090205460ff1661050b5760405162461bcd60e51b815260040161031190610a88565b5050565b6001600160a01b0381166105655760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610311565b6001600160a01b03811660009081526020819052604090205460ff16156105ce5760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e6400000000000000006044820152606401610311565b336001600160a01b038216146105f65760405162461bcd60e51b815260040161031190610abf565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b3360009081526020819052604090205460ff166106715760405162461bcd60e51b815260040161031190610a88565b3360008181526001602090815260408083206001600160a01b03861680855290835292819020805460ff191690558051938452908301919091527fe9ab2574b9b111f06f42baaa274030c7228b1dad45b248037101cd11de34824091015b60405180910390a150565b3360009081526020819052604090205460ff166107095760405162461bcd60e51b815260040161031190610a88565b805160005b8181101561041057600083828151811061072a5761072a610b00565b602090810291909101810151336000818152600180855260408083206001600160a01b03861680855290875292819020805460ff19169092179091558051928352938201529092507f767240d3c58c1058ed268ca225eb1cc93d85cf46b6e85d8d120b39921475b1c1910160405180910390a15060010161070e565b3360009081526020819052604090205460ff166107d55760405162461bcd60e51b815260040161031190610a88565b3360008181526001602081815260408084206001600160a01b03871680865290835293819020805460ff191690931790925581519384528301919091527f767240d3c58c1058ed268ca225eb1cc93d85cf46b6e85d8d120b39921475b1c191016106cf565b80356001600160a01b038116811461085157600080fd5b919050565b6000806000806080858703121561086c57600080fd5b6108758561083a565b93506108836020860161083a565b9250604085013591506108986060860161083a565b905092959194509250565b6000602082840312156108b557600080fd5b6108be8261083a565b9392505050565b60006020808352835180602085015260005b818110156108f3578581018301518582016040015282016108d7565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060006060848603121561092957600080fd5b6109328461083a565b92506109406020850161083a565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561097957600080fd5b823567ffffffffffffffff8082111561099157600080fd5b818501915085601f8301126109a557600080fd5b8135818111156109b7576109b7610950565b8060051b604051601f19603f830116810181811085821117156109dc576109dc610950565b6040529182528482019250838101850191888311156109fa57600080fd5b938501935b82851015610a1f57610a108561083a565b845293850193928501926109ff565b98975050505050505050565b60008060408385031215610a3e57600080fd5b610a478361083a565b946020939093013593505050565b60008060408385031215610a6857600080fd5b610a718361083a565b9150610a7f6020840161083a565b90509250929050565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b634e487b7160e01b600052603260045260246000fdfea264697066735822122090d09d7327dae6dc10689f3973696964be74282ec0466eb403227819d83d36f964736f6c63430008180033","sourceMap":"3875:4922:58:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80634cf4d29511610097578063a9fb3b3511610066578063a9fb3b3514610220578063bcc210531461025c578063e6f5e80714610270578063f104a8c91461019557600080fd5b80634cf4d295146101bb57806358591fb7146101e7578063726bb465146101fa578063771c456f1461020d57600080fd5b80632cb7e1ec116100d35780632cb7e1ec1461016f57806332bb1f1614610182578063372491a2146101955780634a932544146101a857600080fd5b8063013b7ce4146100fa5780630694a5fb1461012257806306fdde0314610137575b600080fd5b61010d610108366004610856565b610277565b60405190151581526020015b60405180910390f35b6101356101303660046108a3565b6102e2565b005b60408051808201825260168152755472616e7366657252657374726963744d6f64756c6560501b6020820152905161011991906108c5565b61013561017d366004610914565b6103e1565b610135610190366004610966565b610415565b6101356101a3366004610a2b565b6104dc565b6101356101b63660046108a3565b61050f565b61010d6101c93660046108a3565b6001600160a01b031660009081526020819052604090205460ff1690565b6101356101f53660046108a3565b610642565b610135610208366004610966565b6106da565b61013561021b3660046108a3565b6107a6565b61010d61022e366004610a55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b61010d61026a3660046108a3565b50600190565b600161010d565b6001600160a01b03808216600090815260016020908152604080832093881683529290529081205460ff16156102af575060016102da565b506001600160a01b0380821660009081526001602090815260408083209387168352929052205460ff165b949350505050565b3360009081526020819052604090205460ff1661031a5760405162461bcd60e51b815260040161031190610a88565b60405180910390fd5b6001600160a01b0381166103705760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610311565b336001600160a01b038216146103985760405162461bcd60e51b815260040161031190610abf565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166104105760405162461bcd60e51b815260040161031190610a88565b505050565b3360009081526020819052604090205460ff166104445760405162461bcd60e51b815260040161031190610a88565b805160005b8181101561041057600083828151811061046557610465610b00565b6020908102919091018101513360008181526001845260408082206001600160a01b03851680845290865291819020805460ff191690558051928352938201529092507fe9ab2574b9b111f06f42baaa274030c7228b1dad45b248037101cd11de348240910160405180910390a150600101610449565b3360009081526020819052604090205460ff1661050b5760405162461bcd60e51b815260040161031190610a88565b5050565b6001600160a01b0381166105655760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610311565b6001600160a01b03811660009081526020819052604090205460ff16156105ce5760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e6400000000000000006044820152606401610311565b336001600160a01b038216146105f65760405162461bcd60e51b815260040161031190610abf565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b3360009081526020819052604090205460ff166106715760405162461bcd60e51b815260040161031190610a88565b3360008181526001602090815260408083206001600160a01b03861680855290835292819020805460ff191690558051938452908301919091527fe9ab2574b9b111f06f42baaa274030c7228b1dad45b248037101cd11de34824091015b60405180910390a150565b3360009081526020819052604090205460ff166107095760405162461bcd60e51b815260040161031190610a88565b805160005b8181101561041057600083828151811061072a5761072a610b00565b602090810291909101810151336000818152600180855260408083206001600160a01b03861680855290875292819020805460ff19169092179091558051928352938201529092507f767240d3c58c1058ed268ca225eb1cc93d85cf46b6e85d8d120b39921475b1c1910160405180910390a15060010161070e565b3360009081526020819052604090205460ff166107d55760405162461bcd60e51b815260040161031190610a88565b3360008181526001602081815260408084206001600160a01b03871680865290835293819020805460ff191690931790925581519384528301919091527f767240d3c58c1058ed268ca225eb1cc93d85cf46b6e85d8d120b39921475b1c191016106cf565b80356001600160a01b038116811461085157600080fd5b919050565b6000806000806080858703121561086c57600080fd5b6108758561083a565b93506108836020860161083a565b9250604085013591506108986060860161083a565b905092959194509250565b6000602082840312156108b557600080fd5b6108be8261083a565b9392505050565b60006020808352835180602085015260005b818110156108f3578581018301518582016040015282016108d7565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060006060848603121561092957600080fd5b6109328461083a565b92506109406020850161083a565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561097957600080fd5b823567ffffffffffffffff8082111561099157600080fd5b818501915085601f8301126109a557600080fd5b8135818111156109b7576109b7610950565b8060051b604051601f19603f830116810181811085821117156109dc576109dc610950565b6040529182528482019250838101850191888311156109fa57600080fd5b938501935b82851015610a1f57610a108561083a565b845293850193928501926109ff565b98975050505050505050565b60008060408385031215610a3e57600080fd5b610a478361083a565b946020939093013593505050565b60008060408385031215610a6857600080fd5b610a718361083a565b9150610a7f6020840161083a565b90509250929050565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b634e487b7160e01b600052603260045260246000fdfea264697066735822122090d09d7327dae6dc10689f3973696964be74282ec0466eb403227819d83d36f964736f6c63430008180033","sourceMap":"3875:4922:58:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7546:321;;;;;;:::i;:::-;;:::i;:::-;;;765:14:165;;758:22;740:41;;728:2;713:18;7546:321:58;;;;;;;;5018:343:44;;;;;;:::i;:::-;;:::i;:::-;;8689:106:58;8757:31;;;;;;;;;;;-1:-1:-1;;;8757:31:58;;;;8689:106;;;;8757:31;8689:106;:::i;6882:104::-;;;;;;:::i;:::-;;:::i;6328:383::-;;;;;;:::i;:::-;;:::i;7397:87::-;;;;;;:::i;:::-;;:::i;4555:396:44:-;;;;;;:::i;:::-;;:::i;5429:139::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5532:29:44;5509:4;5532:29;;;;;;;;;;;;;;5429:139;5867:199:58;;;;;;:::i;:::-;;:::i;5243:376::-;;;;;;:::i;:::-;;:::i;4794:192::-;;;;;;:::i;:::-;;:::i;8126:167::-;;;;;;:::i;:::-;-1:-1:-1;;;;;8238:34:58;;;8215:4;8238:34;;;:21;:34;;;;;;;;:48;;;;;;;;;;;;;;;8126:167;8361:118;;;;;;:::i;:::-;-1:-1:-1;8468:4:58;;8361:118;8543:91;8623:4;8543:91;;7546:321;-1:-1:-1;;;;;7725:34:58;;;7706:4;7725:34;;;:21;:34;;;;;;;;:41;;;;;;;;;;;;;;7722:82;;;-1:-1:-1;7789:4:58;7782:11;;7722:82;-1:-1:-1;;;;;;7821:34:58;;;;;;;:21;:34;;;;;;;;:39;;;;;;;;;;;;7546:321;;;;;;;:::o;5018:343:44:-;4426:10;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5120:25:44;::::1;5112:69;;;::::0;-1:-1:-1;;;5112:69:44;;4212:2:165;5112:69:44::1;::::0;::::1;4194:21:165::0;4251:2;4231:18;;;4224:30;4290:33;4270:18;;;4263:61;4341:18;;5112:69:44::1;4010:355:165::0;5112:69:44::1;5199:10;-1:-1:-1::0;;;;;5199:25:44;::::1;;5191:71;;;;-1:-1:-1::0;;;5191:71:44::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5272:29:44;::::1;5304:5;5272:29:::0;;;::::1;::::0;;;;;;;:37;;-1:-1:-1;;5272:37:44::1;::::0;;5324:30;::::1;::::0;5304:5;5324:30:::1;5018:343:::0;:::o;6882:104:58:-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;6882:104:58;;;:::o;6328:383::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;6444:21:58;;6427:14:::1;6475:230;6499:6;6495:1;:10;6475:230;;;6526:20;6549:14;6564:1;6549:17;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;6602:10:::1;6630:5;6580:33:::0;;;:21:::1;:33:::0;;;;;;-1:-1:-1;;;;;6580:47:58;::::1;::::0;;;;;;;;;;:55;;-1:-1:-1;;6580:55:58::1;::::0;;6654:40;;5116:34:165;;;5166:18;;;5159:43;6549:17:58;;-1:-1:-1;6654:40:58::1;::::0;5051:18:165;6654:40:58::1;;;;;;;-1:-1:-1::0;6507:3:58::1;;6475:230;;7397:87:::0;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;7397:87:58;;:::o;4555:396:44:-;-1:-1:-1;;;;;4636:25:44;;4628:69;;;;-1:-1:-1;;;4628:69:44;;4212:2:165;4628:69:44;;;4194:21:165;4251:2;4231:18;;;4224:30;4290:33;4270:18;;;4263:61;4341:18;;4628:69:44;4010:355:165;4628:69:44;-1:-1:-1;;;;;4716:29:44;;:16;:29;;;;;;;;;;;;;4715:30;4707:67;;;;-1:-1:-1;;;4707:67:44;;5415:2:165;4707:67:44;;;5397:21:165;5454:2;5434:18;;;5427:30;5493:26;5473:18;;;5466:54;5537:18;;4707:67:44;5213:348:165;4707:67:44;4792:10;-1:-1:-1;;;;;4792:25:44;;;4784:71;;;;-1:-1:-1;;;4784:71:44;;;;;;;:::i;:::-;-1:-1:-1;;;;;4865:29:44;;:16;:29;;;;;;;;;;;:36;;-1:-1:-1;;4865:36:44;4897:4;4865:36;;;4916:28;;;4865:16;4916:28;4555:396;:::o;5867:199:58:-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;5971:10:58::1;5999:5;5949:33:::0;;;:21:::1;:33;::::0;;;;;;;-1:-1:-1;;;;;5949:47:58;::::1;::::0;;;;;;;;;;:55;;-1:-1:-1;;5949:55:58::1;::::0;;6019:40;;5116:34:165;;;5166:18;;;5159:43;;;;6019:40:58::1;::::0;5051:18:165;6019:40:58::1;;;;;;;;5867:199:::0;:::o;5243:376::-;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;5356:21:58;;5339:14:::1;5387:226;5411:6;5407:1;:10;5387:226;;;5438:20;5461:14;5476:1;5461:17;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;5514:10:::1;5492:33;::::0;;;5542:4:::1;5492:33:::0;;;;;;;-1:-1:-1;;;;;5492:47:58;::::1;::::0;;;;;;;;;;:54;;-1:-1:-1;;5492:54:58::1;::::0;;::::1;::::0;;;5565:37;;5116:34:165;;;5166:18;;;5159:43;5461:17:58;;-1:-1:-1;5565:37:58::1;::::0;5051:18:165;5565:37:58::1;;;;;;;-1:-1:-1::0;5419:3:58::1;;5387:226;;4794:192:::0;4426:10:44;4409:16;:28;;;;;;;;;;;;;4401:71;;;;-1:-1:-1;;;4401:71:44;;;;;;;:::i;:::-;4895:10:58::1;4873:33;::::0;;;4923:4:::1;4873:33;::::0;;;;;;;-1:-1:-1;;;;;4873:47:58;::::1;::::0;;;;;;;;;;:54;;-1:-1:-1;;4873:54:58::1;::::0;;::::1;::::0;;;4942:37;;5116:34:165;;;5166:18;;5159:43;;;;4942:37:58::1;::::0;5051:18:165;4942:37:58::1;4904:304:165::0;14:173;82:20;;-1:-1:-1;;;;;131:31:165;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:403::-;278:6;286;294;302;355:3;343:9;334:7;330:23;326:33;323:53;;;372:1;369;362:12;323:53;395:29;414:9;395:29;:::i;:::-;385:39;;443:38;477:2;466:9;462:18;443:38;:::i;:::-;433:48;;528:2;517:9;513:18;500:32;490:42;;551:38;585:2;574:9;570:18;551:38;:::i;:::-;541:48;;192:403;;;;;;;:::o;792:186::-;851:6;904:2;892:9;883:7;879:23;875:32;872:52;;;920:1;917;910:12;872:52;943:29;962:9;943:29;:::i;:::-;933:39;792:186;-1:-1:-1;;;792:186:165:o;983:548::-;1095:4;1124:2;1153;1142:9;1135:21;1185:6;1179:13;1228:6;1223:2;1212:9;1208:18;1201:34;1253:1;1263:140;1277:6;1274:1;1271:13;1263:140;;;1372:14;;;1368:23;;1362:30;1338:17;;;1357:2;1334:26;1327:66;1292:10;;1263:140;;;1267:3;1452:1;1447:2;1438:6;1427:9;1423:22;1419:31;1412:42;1522:2;1515;1511:7;1506:2;1498:6;1494:15;1490:29;1479:9;1475:45;1471:54;1463:62;;;;983:548;;;;:::o;1536:328::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1721:29;1740:9;1721:29;:::i;:::-;1711:39;;1769:38;1803:2;1792:9;1788:18;1769:38;:::i;:::-;1759:48;;1854:2;1843:9;1839:18;1826:32;1816:42;;1536:328;;;;;:::o;1869:127::-;1930:10;1925:3;1921:20;1918:1;1911:31;1961:4;1958:1;1951:15;1985:4;1982:1;1975:15;2001:1121;2085:6;2116:2;2159;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2215:9;2202:23;2244:18;2285:2;2277:6;2274:14;2271:34;;;2301:1;2298;2291:12;2271:34;2339:6;2328:9;2324:22;2314:32;;2384:7;2377:4;2373:2;2369:13;2365:27;2355:55;;2406:1;2403;2396:12;2355:55;2442:2;2429:16;2464:2;2460;2457:10;2454:36;;;2470:18;;:::i;:::-;2516:2;2513:1;2509:10;2548:2;2542:9;2611:2;2607:7;2602:2;2598;2594:11;2590:25;2582:6;2578:38;2666:6;2654:10;2651:22;2646:2;2634:10;2631:18;2628:46;2625:72;;;2677:18;;:::i;:::-;2713:2;2706:22;2763:18;;;2797:15;;;;-1:-1:-1;2839:11:165;;;2835:20;;;2867:19;;;2864:39;;;2899:1;2896;2889:12;2864:39;2923:11;;;;2943:148;2959:6;2954:3;2951:15;2943:148;;;3025:23;3044:3;3025:23;:::i;:::-;3013:36;;2976:12;;;;3069;;;;2943:148;;;3110:6;2001:1121;-1:-1:-1;;;;;;;;2001:1121:165:o;3127:254::-;3195:6;3203;3256:2;3244:9;3235:7;3231:23;3227:32;3224:52;;;3272:1;3269;3262:12;3224:52;3295:29;3314:9;3295:29;:::i;:::-;3285:39;3371:2;3356:18;;;;3343:32;;-1:-1:-1;;;3127:254:165:o;3386:260::-;3454:6;3462;3515:2;3503:9;3494:7;3490:23;3486:32;3483:52;;;3531:1;3528;3521:12;3483:52;3554:29;3573:9;3554:29;:::i;:::-;3544:39;;3602:38;3636:2;3625:9;3621:18;3602:38;:::i;:::-;3592:48;;3386:260;;;;;:::o;3651:354::-;3853:2;3835:21;;;3892:2;3872:18;;;3865:30;3931:32;3926:2;3911:18;;3904:60;3996:2;3981:18;;3651:354::o;4370:397::-;4572:2;4554:21;;;4611:2;4591:18;;;4584:30;4650:34;4645:2;4630:18;;4623:62;-1:-1:-1;;;4716:2:165;4701:18;;4694:31;4757:3;4742:19;;4370:397::o;4772:127::-;4833:10;4828:3;4824:20;4821:1;4814:31;4864:4;4861:1;4854:15;4888:4;4885:1;4878:15","linkReferences":{}},"methodIdentifiers":{"allowUser(address)":"771c456f","batchAllowUsers(address[])":"726bb465","batchDisallowUsers(address[])":"32bb1f16","bindCompliance(address)":"4a932544","canComplianceBind(address)":"bcc21053","disallowUser(address)":"58591fb7","isComplianceBound(address)":"4cf4d295","isPlugAndPlay()":"e6f5e807","isUserAllowed(address,address)":"a9fb3b35","moduleBurnAction(address,uint256)":"372491a2","moduleCheck(address,address,uint256,address)":"013b7ce4","moduleMintAction(address,uint256)":"f104a8c9","moduleTransferAction(address,address,uint256)":"2cb7e1ec","name()":"06fdde03","unbindCompliance(address)":"0694a5fb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceBound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"ComplianceUnbound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"UserAllowed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"UserDisallowed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"allowUser\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"}],\"name\":\"batchAllowUsers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_userAddresses\",\"type\":\"address[]\"}],\"name\":\"batchDisallowUsers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"bindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"canComplianceBind\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"disallowUser\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"isComplianceBound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPlugAndPlay\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"isUserAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleBurnAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"moduleCheck\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleMintAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"moduleTransferAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_compliance\",\"type\":\"address\"}],\"name\":\"unbindCompliance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowUser(address)\":{\"details\":\"allows a user address for transfer.\",\"params\":{\"_userAddress\":\"is the address of the user Only the owner of the Compliance smart contract can call this function emits an `UserAllowed` event\"}},\"batchAllowUsers(address[])\":{\"details\":\"allows multiple user addresses for transfer.\",\"params\":{\"_userAddresses\":\"is the array of user addresses Only the owner of the Compliance smart contract can call this function emits an `UserAllowed` event\"}},\"batchDisallowUsers(address[])\":{\"details\":\"disallows multiple user addresses for transfer.\",\"params\":{\"_userAddresses\":\"is the array of user addresses Only the owner of the Compliance smart contract can call this function emits an `UserDisallowed` event\"}},\"bindCompliance(address)\":{\"details\":\"See {IModule-bindCompliance}.\"},\"canComplianceBind(address)\":{\"details\":\"See {IModule-canComplianceBind}.\"},\"disallowUser(address)\":{\"details\":\"disallows a user address for transfer.\",\"params\":{\"_userAddress\":\"is the address of the user Only the owner of the Compliance smart contract can call this function emits an `UserDisallowed` event\"}},\"isComplianceBound(address)\":{\"details\":\"See {IModule-isComplianceBound}.\"},\"isPlugAndPlay()\":{\"details\":\"See {IModule-isPlugAndPlay}.\"},\"isUserAllowed(address,address)\":{\"details\":\"getter for `_allowedUserAddresses` mapping\",\"params\":{\"_compliance\":\"the Compliance smart contract to be checked\",\"_userAddress\":\"the user address to be checked returns the true if user is allowed to transfer\"}},\"moduleBurnAction(address,uint256)\":{\"details\":\"See {IModule-moduleBurnAction}. no burn action required in this module\"},\"moduleCheck(address,address,uint256,address)\":{\"details\":\"See {IModule-moduleCheck}.\"},\"moduleMintAction(address,uint256)\":{\"details\":\"See {IModule-moduleMintAction}. no mint action required in this module\"},\"moduleTransferAction(address,address,uint256)\":{\"details\":\"See {IModule-moduleTransferAction}. no transfer action required in this module\"},\"name()\":{\"details\":\"See {IModule-name}.\"},\"unbindCompliance(address)\":{\"details\":\"See {IModule-unbindCompliance}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ComplianceBound(address)\":{\"notice\":\"this event is emitted when the compliance contract is bound to the module. the event is emitted by the bindCompliance function `_compliance` is the address of the compliance contract being bound\"},\"ComplianceUnbound(address)\":{\"notice\":\"this event is emitted when the compliance contract is unbound from the module. the event is emitted by the unbindCompliance function `_compliance` is the address of the compliance contract being unbound\"},\"UserAllowed(address,address)\":{\"notice\":\"this event is emitted when a user is allowed for transfer `_compliance` is the compliance address. `_userAddress` is the allowed user address\"},\"UserDisallowed(address,address)\":{\"notice\":\"this event is emitted when a user is disallowed for transfer `_compliance` is the compliance address. `_userAddress` is the disallowed user address\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/compliance/modular/modules/TransferRestrictModule.sol\":\"TransferRestrictModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/compliance/modular/modules/AbstractModule.sol\":{\"keccak256\":\"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8\",\"dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu\"]},\"contracts/erc3643/compliance/modular/modules/IModule.sol\":{\"keccak256\":\"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c\",\"dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk\"]},\"contracts/erc3643/compliance/modular/modules/TransferRestrictModule.sol\":{\"keccak256\":\"0x28a6fbaec77e86ffc94d3d4e46fc8531f313ff113b6b136beeb89943fa15c5cc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f71b7877ae667e4946766df0211694c478fbcf6288b22025139202465e4f8a03\",\"dweb:/ipfs/Qmd82Qkgw3oEChz7pWfCf5pF8YK3GPpBv2DcvviSo5imDX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceBound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":true}],"type":"event","name":"ComplianceUnbound","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":false},{"internalType":"address","name":"_userAddress","type":"address","indexed":false}],"type":"event","name":"UserAllowed","anonymous":false},{"inputs":[{"internalType":"address","name":"_compliance","type":"address","indexed":false},{"internalType":"address","name":"_userAddress","type":"address","indexed":false}],"type":"event","name":"UserDisallowed","anonymous":false},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"allowUser"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"batchAllowUsers"},{"inputs":[{"internalType":"address[]","name":"_userAddresses","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"batchDisallowUsers"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bindCompliance"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"canComplianceBind","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"disallowUser"},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"isComplianceBound","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPlugAndPlay","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"},{"internalType":"address","name":"_userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isUserAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleBurnAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"view","type":"function","name":"moduleCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleMintAction"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"moduleTransferAction"},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[{"internalType":"address","name":"_compliance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unbindCompliance"}],"devdoc":{"kind":"dev","methods":{"allowUser(address)":{"details":"allows a user address for transfer.","params":{"_userAddress":"is the address of the user Only the owner of the Compliance smart contract can call this function emits an `UserAllowed` event"}},"batchAllowUsers(address[])":{"details":"allows multiple user addresses for transfer.","params":{"_userAddresses":"is the array of user addresses Only the owner of the Compliance smart contract can call this function emits an `UserAllowed` event"}},"batchDisallowUsers(address[])":{"details":"disallows multiple user addresses for transfer.","params":{"_userAddresses":"is the array of user addresses Only the owner of the Compliance smart contract can call this function emits an `UserDisallowed` event"}},"bindCompliance(address)":{"details":"See {IModule-bindCompliance}."},"canComplianceBind(address)":{"details":"See {IModule-canComplianceBind}."},"disallowUser(address)":{"details":"disallows a user address for transfer.","params":{"_userAddress":"is the address of the user Only the owner of the Compliance smart contract can call this function emits an `UserDisallowed` event"}},"isComplianceBound(address)":{"details":"See {IModule-isComplianceBound}."},"isPlugAndPlay()":{"details":"See {IModule-isPlugAndPlay}."},"isUserAllowed(address,address)":{"details":"getter for `_allowedUserAddresses` mapping","params":{"_compliance":"the Compliance smart contract to be checked","_userAddress":"the user address to be checked returns the true if user is allowed to transfer"}},"moduleBurnAction(address,uint256)":{"details":"See {IModule-moduleBurnAction}. no burn action required in this module"},"moduleCheck(address,address,uint256,address)":{"details":"See {IModule-moduleCheck}."},"moduleMintAction(address,uint256)":{"details":"See {IModule-moduleMintAction}. no mint action required in this module"},"moduleTransferAction(address,address,uint256)":{"details":"See {IModule-moduleTransferAction}. no transfer action required in this module"},"name()":{"details":"See {IModule-name}."},"unbindCompliance(address)":{"details":"See {IModule-unbindCompliance}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/compliance/modular/modules/TransferRestrictModule.sol":"TransferRestrictModule"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/compliance/modular/modules/AbstractModule.sol":{"keccak256":"0xa29d2b757222847ac63e9a5c1e5cc92dc4bfe5fd3b924642f0b35a6917d140f3","urls":["bzz-raw://86d9331a1f67a128c9bac932d63a990a254d10c06db68fbed653a753d834ddc8","dweb:/ipfs/QmT5JXJj4XuciHAfFobc8qCjtsqbDXsGexdScXBbCBfWhu"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/IModule.sol":{"keccak256":"0x08c7a5ade9e8ad34408b9c206bf2a57875adebebcf4af4758f0e457d7e1cdd02","urls":["bzz-raw://e8aece829fb6634def7927a48619857acaae6770241a7e412a58c20cb55ce88c","dweb:/ipfs/QmejkhU2mmKZjvfr9sEFAKhLfMrmAg9asLnbZkEyM857jk"],"license":"GPL-3.0"},"contracts/erc3643/compliance/modular/modules/TransferRestrictModule.sol":{"keccak256":"0x28a6fbaec77e86ffc94d3d4e46fc8531f313ff113b6b136beeb89943fa15c5cc","urls":["bzz-raw://f71b7877ae667e4946766df0211694c478fbcf6288b22025139202465e4f8a03","dweb:/ipfs/Qmd82Qkgw3oEChz7pWfCf5pF8YK3GPpBv2DcvviSo5imDX"],"license":"GPL-3.0"}},"version":1},"id":58} \ No newline at end of file diff --git a/out/TrustedIssuersRegistry.sol/TrustedIssuersRegistry.json b/out/TrustedIssuersRegistry.sol/TrustedIssuersRegistry.json new file mode 100644 index 0000000..a949c6a --- /dev/null +++ b/out/TrustedIssuersRegistry.sol/TrustedIssuersRegistry.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addTrustedIssuer","inputs":[{"name":"_trustedIssuer","type":"address","internalType":"contract IClaimIssuer"},{"name":"_claimTopics","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getTrustedIssuerClaimTopics","inputs":[{"name":"_trustedIssuer","type":"address","internalType":"contract IClaimIssuer"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getTrustedIssuers","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"contract IClaimIssuer[]"}],"stateMutability":"view"},{"type":"function","name":"getTrustedIssuersForClaimTopic","inputs":[{"name":"claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"contract IClaimIssuer[]"}],"stateMutability":"view"},{"type":"function","name":"hasClaimTopic","inputs":[{"name":"_issuer","type":"address","internalType":"address"},{"name":"_claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"init","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isTrustedIssuer","inputs":[{"name":"_issuer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeTrustedIssuer","inputs":[{"name":"_trustedIssuer","type":"address","internalType":"contract IClaimIssuer"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateIssuerClaimTopics","inputs":[{"name":"_trustedIssuer","type":"address","internalType":"contract IClaimIssuer"},{"name":"_claimTopics","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ClaimTopicsUpdated","inputs":[{"name":"trustedIssuer","type":"address","indexed":true,"internalType":"contract IClaimIssuer"},{"name":"claimTopics","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TrustedIssuerAdded","inputs":[{"name":"trustedIssuer","type":"address","indexed":true,"internalType":"contract IClaimIssuer"},{"name":"claimTopics","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TrustedIssuerRemoved","inputs":[{"name":"trustedIssuer","type":"address","indexed":true,"internalType":"contract IClaimIssuer"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50611398806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063b93d28eb11610071578063b93d28eb1461016b578063c28fb2781461017e578063d9dd24c51461019e578063e1c7392a146101a6578063ef2ed1a4146101ae578063f2fde38b146101c157600080fd5b806304bc7e84146100b957806334a89987146100ce57806352c111d1146100f6578063715018a6146101165780638da5cb5b1461011e5780639f63ea9814610158575b600080fd5b6100cc6100c73660046110ea565b6101d4565b005b6100e16100dc366004611172565b610553565b60405190151581526020015b60405180910390f35b61010961010436600461119e565b610609565b6040516100ed91906111b7565b6100cc610675565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b0390911681526020016100ed565b6100cc6101663660046110ea565b610689565b6100cc610179366004611204565b610905565b61019161018c366004611204565b610c7e565b6040516100ed9190611228565b610109610d50565b6100cc610db2565b6100e16101bc366004611204565b610ec1565b6100cc6101cf366004611204565b610eef565b6101dc610f2d565b6001600160a01b03831661020b5760405162461bcd60e51b815260040161020290611260565b60405180910390fd5b6001600160a01b03831660009081526001602052604081205490036102695760405162461bcd60e51b81526020600482015260146024820152732727aa1030903a393ab9ba32b21034b9b9bab2b960611b6044820152606401610202565b600f81111561028a5760405162461bcd60e51b815260040161020290611297565b806102d75760405162461bcd60e51b815260206004820152601c60248201527f636c61696d20746f706963732063616e6e6f7420626520656d707479000000006044820152606401610202565b60005b6001600160a01b038416600090815260016020526040902054811015610476576001600160a01b0384166000908152600160205260408120805483908110610324576103246112dc565b600091825260208083209091015480835260029091526040822054909250905b8181101561046b57600083815260026020526040902080546001600160a01b038916919083908110610378576103786112dc565b6000918252602090912001546001600160a01b0316036104635760008381526002602052604090206103ab6001846112f2565b815481106103bb576103bb6112dc565b60009182526020808320909101548583526002909152604090912080546001600160a01b0390921691839081106103f4576103f46112dc565b600091825260208083209190910180546001600160a01b0319166001600160a01b03949094169390931790925584815260029091526040902080548061043c5761043c611313565b600082815260209020810160001990810180546001600160a01b031916905501905561046b565b600101610344565b5050506001016102da565b506001600160a01b038316600090815260016020526040902061049a90838361105b565b5060005b8181101561050a57600260008484848181106104bc576104bc6112dc565b602090810292909201358352508181019290925260400160009081208054600180820183559183529290912090910180546001600160a01b0319166001600160a01b0387161790550161049e565b50826001600160a01b03167fec753cfc52044f61676f18a11e500093a9f2b1cd5e4942bc476f2b0438159bcf8383604051610546929190611329565b60405180910390a2505050565b6001600160a01b03821660009081526001602090815260408083208054825181850281018501909352808352928492919084908301828280156105b557602002820191906000526020600020905b8154815260200190600101908083116105a1575b5050505050905060005b828110156105fb57848282815181106105da576105da6112dc565b6020026020010151036105f35760019350505050610603565b6001016105bf565b506000925050505b92915050565b60008181526002602090815260409182902080548351818402810184019094528084526060939283018282801561066957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161064b575b50505050509050919050565b61067d610f2d565b6106876000610f88565b565b610691610f2d565b6001600160a01b0383166106b75760405162461bcd60e51b815260040161020290611260565b6001600160a01b0383166000908152600160205260409020541561071d5760405162461bcd60e51b815260206004820152601d60248201527f747275737465642049737375657220616c7265616479206578697374730000006044820152606401610202565b806107765760405162461bcd60e51b8152602060048201526024808201527f7472757374656420636c61696d20746f706963732063616e6e6f7420626520656044820152636d70747960e01b6064820152608401610202565b600f8111156107975760405162461bcd60e51b815260040161020290611297565b6000546032116107fa5760405162461bcd60e51b815260206004820152602860248201527f63616e6e6f742068617665206d6f7265207468616e2035302074727573746564604482015267206973737565727360c01b6064820152608401610202565b60008054600180820183557f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390910180546001600160a01b0319166001600160a01b03871690811790915582526020526040902061085990838361105b565b5060005b818110156108c9576002600084848481811061087b5761087b6112dc565b602090810292909201358352508181019290925260400160009081208054600180820183559183529290912090910180546001600160a01b0319166001600160a01b0387161790550161085d565b50826001600160a01b03167ffedc33fd34859594822c0ff6f3f4f9fc279cc6d5cae53068f706a088e45008728383604051610546929190611329565b61090d610f2d565b6001600160a01b0381166109335760405162461bcd60e51b815260040161020290611260565b6001600160a01b03811660009081526001602052604081205490036109915760405162461bcd60e51b81526020600482015260146024820152732727aa1030903a393ab9ba32b21034b9b9bab2b960611b6044820152606401610202565b60008054905b81811015610a8457826001600160a01b0316600082815481106109bc576109bc6112dc565b6000918252602090912001546001600160a01b031603610a7c5760006109e36001846112f2565b815481106109f3576109f36112dc565b600091825260208220015481546001600160a01b03909116919083908110610a1d57610a1d6112dc565b6000918252602082200180546001600160a01b0319166001600160a01b039390931692909217909155805480610a5557610a55611313565b600082815260209020810160001990810180546001600160a01b0319169055019055610a84565b600101610997565b5060005b6001600160a01b038316600090815260016020526040902054811015610c24576001600160a01b0383166000908152600160205260408120805483908110610ad257610ad26112dc565b600091825260208083209091015480835260029091526040822054909250905b81811015610c1957600083815260026020526040902080546001600160a01b038816919083908110610b2657610b266112dc565b6000918252602090912001546001600160a01b031603610c11576000838152600260205260409020610b596001846112f2565b81548110610b6957610b696112dc565b60009182526020808320909101548583526002909152604090912080546001600160a01b039092169183908110610ba257610ba26112dc565b600091825260208083209190910180546001600160a01b0319166001600160a01b039490941693909317909255848152600290915260409020805480610bea57610bea611313565b600082815260209020810160001990810180546001600160a01b0319169055019055610c19565b600101610af2565b505050600101610a88565b506001600160a01b0382166000908152600160205260408120610c46916110a6565b6040516001600160a01b038316907f2214ded40113cc3fb63fc206cafee88270b0a903dac7245d54efdde30ebb032190600090a25050565b6001600160a01b03811660009081526001602052604081205460609103610ce75760405162461bcd60e51b815260206004820152601c60248201527f747275737465642049737375657220646f65736e2774206578697374000000006044820152606401610202565b6001600160a01b0382166000908152600160209081526040918290208054835181840281018401909452808452909183018282801561066957602002820191906000526020600020905b815481526020019060010190808311610d315750505050509050919050565b60606000805480602002602001604051908101604052809291908181526020018280548015610da857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d8a575b5050505050905090565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff16600081158015610df85750825b905060008267ffffffffffffffff166001148015610e155750303b155b905081158015610e23575080155b15610e415760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610e6b57845460ff60401b1916600160401b1785555b610e7433610ff9565b8315610eba57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6001600160a01b03811660009081526001602052604081205415610ee757506001919050565b506000919050565b610ef7610f2d565b6001600160a01b038116610f2157604051631e4fbdf760e01b815260006004820152602401610202565b610f2a81610f88565b50565b33610f5f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146106875760405163118cdaa760e01b8152336004820152602401610202565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61100161100a565b610f2a81611053565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661068757604051631afcd79f60e31b815260040160405180910390fd5b610ef761100a565b828054828255906000526020600020908101928215611096579160200282015b8281111561109657823582559160200191906001019061107b565b506110a29291506110c0565b5090565b5080546000825590600052602060002090810190610f2a91905b5b808211156110a257600081556001016110c1565b6001600160a01b0381168114610f2a57600080fd5b6000806000604084860312156110ff57600080fd5b833561110a816110d5565b9250602084013567ffffffffffffffff8082111561112757600080fd5b818601915086601f83011261113b57600080fd5b81358181111561114a57600080fd5b8760208260051b850101111561115f57600080fd5b6020830194508093505050509250925092565b6000806040838503121561118557600080fd5b8235611190816110d5565b946020939093013593505050565b6000602082840312156111b057600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b818110156111f85783516001600160a01b0316835292840192918401916001016111d3565b50909695505050505050565b60006020828403121561121657600080fd5b8135611221816110d5565b9392505050565b6020808252825182820181905260009190848201906040850190845b818110156111f857835183529284019291840191600101611244565b6020808252601f908201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604082015260600190565b60208082526025908201527f63616e6e6f742068617665206d6f7265207468616e20313520636c61696d20746040820152646f7069637360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8181038181111561060357634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6020808252810182905260006001600160fb1b0383111561134957600080fd5b8260051b8085604085013791909101604001939250505056fea26469706673582212205ed76a0d4bd716ebf447a2ecdfc5e2533663792c32ae373b652eeec67dd3c7e164736f6c63430008180033","sourceMap":"4064:5993:78:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100b45760003560e01c8063b93d28eb11610071578063b93d28eb1461016b578063c28fb2781461017e578063d9dd24c51461019e578063e1c7392a146101a6578063ef2ed1a4146101ae578063f2fde38b146101c157600080fd5b806304bc7e84146100b957806334a89987146100ce57806352c111d1146100f6578063715018a6146101165780638da5cb5b1461011e5780639f63ea9814610158575b600080fd5b6100cc6100c73660046110ea565b6101d4565b005b6100e16100dc366004611172565b610553565b60405190151581526020015b60405180910390f35b61010961010436600461119e565b610609565b6040516100ed91906111b7565b6100cc610675565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b0390911681526020016100ed565b6100cc6101663660046110ea565b610689565b6100cc610179366004611204565b610905565b61019161018c366004611204565b610c7e565b6040516100ed9190611228565b610109610d50565b6100cc610db2565b6100e16101bc366004611204565b610ec1565b6100cc6101cf366004611204565b610eef565b6101dc610f2d565b6001600160a01b03831661020b5760405162461bcd60e51b815260040161020290611260565b60405180910390fd5b6001600160a01b03831660009081526001602052604081205490036102695760405162461bcd60e51b81526020600482015260146024820152732727aa1030903a393ab9ba32b21034b9b9bab2b960611b6044820152606401610202565b600f81111561028a5760405162461bcd60e51b815260040161020290611297565b806102d75760405162461bcd60e51b815260206004820152601c60248201527f636c61696d20746f706963732063616e6e6f7420626520656d707479000000006044820152606401610202565b60005b6001600160a01b038416600090815260016020526040902054811015610476576001600160a01b0384166000908152600160205260408120805483908110610324576103246112dc565b600091825260208083209091015480835260029091526040822054909250905b8181101561046b57600083815260026020526040902080546001600160a01b038916919083908110610378576103786112dc565b6000918252602090912001546001600160a01b0316036104635760008381526002602052604090206103ab6001846112f2565b815481106103bb576103bb6112dc565b60009182526020808320909101548583526002909152604090912080546001600160a01b0390921691839081106103f4576103f46112dc565b600091825260208083209190910180546001600160a01b0319166001600160a01b03949094169390931790925584815260029091526040902080548061043c5761043c611313565b600082815260209020810160001990810180546001600160a01b031916905501905561046b565b600101610344565b5050506001016102da565b506001600160a01b038316600090815260016020526040902061049a90838361105b565b5060005b8181101561050a57600260008484848181106104bc576104bc6112dc565b602090810292909201358352508181019290925260400160009081208054600180820183559183529290912090910180546001600160a01b0319166001600160a01b0387161790550161049e565b50826001600160a01b03167fec753cfc52044f61676f18a11e500093a9f2b1cd5e4942bc476f2b0438159bcf8383604051610546929190611329565b60405180910390a2505050565b6001600160a01b03821660009081526001602090815260408083208054825181850281018501909352808352928492919084908301828280156105b557602002820191906000526020600020905b8154815260200190600101908083116105a1575b5050505050905060005b828110156105fb57848282815181106105da576105da6112dc565b6020026020010151036105f35760019350505050610603565b6001016105bf565b506000925050505b92915050565b60008181526002602090815260409182902080548351818402810184019094528084526060939283018282801561066957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161064b575b50505050509050919050565b61067d610f2d565b6106876000610f88565b565b610691610f2d565b6001600160a01b0383166106b75760405162461bcd60e51b815260040161020290611260565b6001600160a01b0383166000908152600160205260409020541561071d5760405162461bcd60e51b815260206004820152601d60248201527f747275737465642049737375657220616c7265616479206578697374730000006044820152606401610202565b806107765760405162461bcd60e51b8152602060048201526024808201527f7472757374656420636c61696d20746f706963732063616e6e6f7420626520656044820152636d70747960e01b6064820152608401610202565b600f8111156107975760405162461bcd60e51b815260040161020290611297565b6000546032116107fa5760405162461bcd60e51b815260206004820152602860248201527f63616e6e6f742068617665206d6f7265207468616e2035302074727573746564604482015267206973737565727360c01b6064820152608401610202565b60008054600180820183557f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390910180546001600160a01b0319166001600160a01b03871690811790915582526020526040902061085990838361105b565b5060005b818110156108c9576002600084848481811061087b5761087b6112dc565b602090810292909201358352508181019290925260400160009081208054600180820183559183529290912090910180546001600160a01b0319166001600160a01b0387161790550161085d565b50826001600160a01b03167ffedc33fd34859594822c0ff6f3f4f9fc279cc6d5cae53068f706a088e45008728383604051610546929190611329565b61090d610f2d565b6001600160a01b0381166109335760405162461bcd60e51b815260040161020290611260565b6001600160a01b03811660009081526001602052604081205490036109915760405162461bcd60e51b81526020600482015260146024820152732727aa1030903a393ab9ba32b21034b9b9bab2b960611b6044820152606401610202565b60008054905b81811015610a8457826001600160a01b0316600082815481106109bc576109bc6112dc565b6000918252602090912001546001600160a01b031603610a7c5760006109e36001846112f2565b815481106109f3576109f36112dc565b600091825260208220015481546001600160a01b03909116919083908110610a1d57610a1d6112dc565b6000918252602082200180546001600160a01b0319166001600160a01b039390931692909217909155805480610a5557610a55611313565b600082815260209020810160001990810180546001600160a01b0319169055019055610a84565b600101610997565b5060005b6001600160a01b038316600090815260016020526040902054811015610c24576001600160a01b0383166000908152600160205260408120805483908110610ad257610ad26112dc565b600091825260208083209091015480835260029091526040822054909250905b81811015610c1957600083815260026020526040902080546001600160a01b038816919083908110610b2657610b266112dc565b6000918252602090912001546001600160a01b031603610c11576000838152600260205260409020610b596001846112f2565b81548110610b6957610b696112dc565b60009182526020808320909101548583526002909152604090912080546001600160a01b039092169183908110610ba257610ba26112dc565b600091825260208083209190910180546001600160a01b0319166001600160a01b039490941693909317909255848152600290915260409020805480610bea57610bea611313565b600082815260209020810160001990810180546001600160a01b0319169055019055610c19565b600101610af2565b505050600101610a88565b506001600160a01b0382166000908152600160205260408120610c46916110a6565b6040516001600160a01b038316907f2214ded40113cc3fb63fc206cafee88270b0a903dac7245d54efdde30ebb032190600090a25050565b6001600160a01b03811660009081526001602052604081205460609103610ce75760405162461bcd60e51b815260206004820152601c60248201527f747275737465642049737375657220646f65736e2774206578697374000000006044820152606401610202565b6001600160a01b0382166000908152600160209081526040918290208054835181840281018401909452808452909183018282801561066957602002820191906000526020600020905b815481526020019060010190808311610d315750505050509050919050565b60606000805480602002602001604051908101604052809291908181526020018280548015610da857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d8a575b5050505050905090565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff16600081158015610df85750825b905060008267ffffffffffffffff166001148015610e155750303b155b905081158015610e23575080155b15610e415760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610e6b57845460ff60401b1916600160401b1785555b610e7433610ff9565b8315610eba57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6001600160a01b03811660009081526001602052604081205415610ee757506001919050565b506000919050565b610ef7610f2d565b6001600160a01b038116610f2157604051631e4fbdf760e01b815260006004820152602401610202565b610f2a81610f88565b50565b33610f5f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146106875760405163118cdaa760e01b8152336004820152602401610202565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61100161100a565b610f2a81611053565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661068757604051631afcd79f60e31b815260040160405180910390fd5b610ef761100a565b828054828255906000526020600020908101928215611096579160200282015b8281111561109657823582559160200191906001019061107b565b506110a29291506110c0565b5090565b5080546000825590600052602060002090810190610f2a91905b5b808211156110a257600081556001016110c1565b6001600160a01b0381168114610f2a57600080fd5b6000806000604084860312156110ff57600080fd5b833561110a816110d5565b9250602084013567ffffffffffffffff8082111561112757600080fd5b818601915086601f83011261113b57600080fd5b81358181111561114a57600080fd5b8760208260051b850101111561115f57600080fd5b6020830194508093505050509250925092565b6000806040838503121561118557600080fd5b8235611190816110d5565b946020939093013593505050565b6000602082840312156111b057600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b818110156111f85783516001600160a01b0316835292840192918401916001016111d3565b50909695505050505050565b60006020828403121561121657600080fd5b8135611221816110d5565b9392505050565b6020808252825182820181905260009190848201906040850190845b818110156111f857835183529284019291840191600101611244565b6020808252601f908201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604082015260600190565b60208082526025908201527f63616e6e6f742068617665206d6f7265207468616e20313520636c61696d20746040820152646f7069637360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8181038181111561060357634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6020808252810182905260006001600160fb1b0383111561134957600080fd5b8260051b8085604085013791909101604001939250505056fea26469706673582212205ed76a0d4bd716ebf447a2ecdfc5e2533663792c32ae373b652eeec67dd3c7e164736f6c63430008180033","sourceMap":"4064:5993:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6919:1469;;;;;;:::i;:::-;;:::i;:::-;;9635:420;;;;;;:::i;:::-;;:::i;:::-;;;1454:14:165;;1447:22;1429:41;;1417:2;1402:18;9635:420:78;;;;;;;;8692:179;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3155:101:136:-;;;:::i;2441:144::-;1313:22;2570:8;2441:144;;-1:-1:-1;;;;;2570:8:136;;;2497:51:165;;2485:2;2470:18;2441:144:136;2351:203:165;4325:919:78;;;;;;:::i;:::-;;:::i;5330:1499::-;;;;;;:::i;:::-;;:::i;9251:304::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8472:123::-;;;:::i;4162:80::-;;;:::i;8953:204::-;;;;;;:::i;:::-;;:::i;3405:215:136:-;;;;;;:::i;:::-;;:::i;6919:1469:78:-;2334:13:136;:11;:13::i;:::-;-1:-1:-1;;;;;7060:37:78;::::1;7052:81;;;;-1:-1:-1::0;;;7052:81:78::1;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1::0;;;;;7151:50:78;::::1;;::::0;;;:25:::1;:50;::::0;;;;:57;:62;;7143:95:::1;;;::::0;-1:-1:-1;;;7143:95:78;;4312:2:165;7143:95:78::1;::::0;::::1;4294:21:165::0;4351:2;4331:18;;;4324:30;-1:-1:-1;;;4370:18:165;;;4363:50;4430:18;;7143:95:78::1;4110:344:165::0;7143:95:78::1;7279:2;7256:25:::0;::::1;;7248:75;;;;-1:-1:-1::0;;;7248:75:78::1;;;;;;;:::i;:::-;7341:23:::0;7333:64:::1;;;::::0;-1:-1:-1;;;7333:64:78;;5067:2:165;7333:64:78::1;::::0;::::1;5049:21:165::0;5106:2;5086:18;;;5079:30;5145;5125:18;;;5118:58;5193:18;;7333:64:78::1;4865:352:165::0;7333:64:78::1;7413:9;7408:686;-1:-1:-1::0;;;;;7432:50:78;::::1;;::::0;;;:25:::1;:50;::::0;;;;:57;7428:61;::::1;7408:686;;;-1:-1:-1::0;;;;;7531:50:78;::::1;7510:18;7531:50:::0;;;:25:::1;:50;::::0;;;;:53;;7582:1;;7531:53;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;7621:40;;;:28:::1;:40:::0;;;;;;:47;7531:53;;-1:-1:-1;7621:47:78;7682:402:::1;7706:12;7702:1;:16;7682:402;;;7747:40;::::0;;;:28:::1;:40;::::0;;;;:43;;-1:-1:-1;;;;;7747:61:78;::::1;::::0;:40;7788:1;;7747:43;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;7747:43:78::1;:61:::0;7743:327:::1;;7898:40;::::0;;;:28:::1;:40;::::0;;;;7939:16:::1;7954:1;7939:12:::0;:16:::1;:::i;:::-;7898:58;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;7832:40;;;:28:::1;:40:::0;;;;;;;:43;;-1:-1:-1;;;;;7898:58:78;;::::1;::::0;7873:1;;7832:43;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:124:::0;;-1:-1:-1;;;;;;7832:124:78::1;-1:-1:-1::0;;;;;7832:124:78;;;::::1;::::0;;;::::1;::::0;;;7978:40;;;:28:::1;:40:::0;;;;;;:46;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;7978:46:78;;;;;-1:-1:-1;;;;;;7978:46:78::1;::::0;;;;;8046:5:::1;;7743:327;7720:3;;7682:402;;;-1:-1:-1::0;;;7491:3:78::1;;7408:686;;;-1:-1:-1::0;;;;;;8103:50:78;::::1;;::::0;;;:25:::1;:50;::::0;;;;:65:::1;::::0;8156:12;;8103:65:::1;:::i;:::-;;8183:9;8178:141;8198:23:::0;;::::1;8178:141;;;8242:28;:45;8271:12;;8284:1;8271:15;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;8242:45:::0;;-1:-1:-1;8242:45:78;;::::1;::::0;;;;;;-1:-1:-1;8242:45:78;;;:66;;::::1;::::0;;::::1;::::0;;;;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;8242:66:78::1;-1:-1:-1::0;;;;;8242:66:78;::::1;;::::0;;8223:3:::1;8178:141;;;;8352:14;-1:-1:-1::0;;;;;8333:48:78::1;;8368:12;;8333:48;;;;;;;:::i;:::-;;;;;;;;6919:1469:::0;;;:::o;9635:420::-;-1:-1:-1;;;;;9761:34:78;;9728:4;9761:34;;;:25;:34;;;;;;;;:41;;9812:65;;;;;;;;;;;;;;;9761:41;9728:4;;9812:65;9761:34;:41;;9812:65;;9761:34;:41;9812:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9892:9;9887:140;9911:6;9907:1;:10;9887:140;;;9960:11;9942;9954:1;9942:14;;;;;;;;:::i;:::-;;;;;;;:29;9938:79;;9998:4;9991:11;;;;;;;9938:79;9919:3;;9887:140;;;;10043:5;10036:12;;;;9635:420;;;;;:::o;8692:179::-;8824:40;;;;:28;:40;;;;;;;;;8817:47;;;;;;;;;;;;;;;;;8784:21;;8817:47;;;8824:40;8817:47;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8817:47:78;;;;;;;;;;;;;;;;;;;;;;;8692:179;;;:::o;3155:101:136:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;4325:919:78:-;2334:13:136;:11;:13::i;:::-;-1:-1:-1;;;;;4459:37:78;::::1;4451:81;;;;-1:-1:-1::0;;;4451:81:78::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4550:50:78;::::1;;::::0;;;:25:::1;:50;::::0;;;;:57;:62;4542:104:::1;;;::::0;-1:-1:-1;;;4542:104:78;;6366:2:165;4542:104:78::1;::::0;::::1;6348:21:165::0;6405:2;6385:18;;;6378:30;6444:31;6424:18;;;6417:59;6493:18;;4542:104:78::1;6164:353:165::0;4542:104:78::1;4664:23:::0;4656:72:::1;;;::::0;-1:-1:-1;;;4656:72:78;;6724:2:165;4656:72:78::1;::::0;::::1;6706:21:165::0;6763:2;6743:18;;;6736:30;6802:34;6782:18;;;6775:62;-1:-1:-1;;;6853:18:165;;;6846:34;6897:19;;4656:72:78::1;6522:400:165::0;4656:72:78::1;4769:2;4746:25:::0;::::1;;4738:75;;;;-1:-1:-1::0;;;4738:75:78::1;;;;;;;:::i;:::-;4831:15;:22:::0;4856:2:::1;-1:-1:-1::0;4823:80:78::1;;;::::0;-1:-1:-1;;;4823:80:78;;7129:2:165;4823:80:78::1;::::0;::::1;7111:21:165::0;7168:2;7148:18;;;7141:30;7207:34;7187:18;;;7180:62;-1:-1:-1;;;7258:18:165;;;7251:38;7306:19;;4823:80:78::1;6927:404:165::0;4823:80:78::1;4913:15;:36:::0;;::::1;::::0;;::::1;::::0;;;;;::::1;::::0;;-1:-1:-1;;;;;;4913:36:78::1;-1:-1:-1::0;;;;;4913:36:78;::::1;::::0;;::::1;::::0;;;4959:50;;4913:36:::1;4959:50:::0;;;;:65:::1;::::0;5012:12;;4959:65:::1;:::i;:::-;;5039:9;5034:141;5054:23:::0;;::::1;5034:141;;;5098:28;:45;5127:12;;5140:1;5127:15;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;5098:45:::0;;-1:-1:-1;5098:45:78;;::::1;::::0;;;;;;-1:-1:-1;5098:45:78;;;:66;;::::1;::::0;;::::1;::::0;;;;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;5098:66:78::1;-1:-1:-1::0;;;;;5098:66:78;::::1;;::::0;;5079:3:::1;5034:141;;;;5208:14;-1:-1:-1::0;;;;;5189:48:78::1;;5224:12;;5189:48;;;;;;;:::i;5330:1499::-:0;2334:13:136;:11;:13::i;:::-;-1:-1:-1;;;;;5434:37:78;::::1;5426:81;;;;-1:-1:-1::0;;;5426:81:78::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5525:50:78;::::1;;::::0;;;:25:::1;:50;::::0;;;;:57;:62;;5517:95:::1;;;::::0;-1:-1:-1;;;5517:95:78;;4312:2:165;5517:95:78::1;::::0;::::1;4294:21:165::0;4351:2;4331:18;;;4324:30;-1:-1:-1;;;4370:18:165;;;4363:50;4430:18;;5517:95:78::1;4110:344:165::0;5517:95:78::1;5622:14;5639:22:::0;;;5671:246:::1;5695:6;5691:1;:10;5671:246;;;5748:14;-1:-1:-1::0;;;;;5726:36:78::1;:15;5742:1;5726:18;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;5726:18:78::1;:36:::0;5722:185:::1;;5803:15;5819:10;5828:1;5819:6:::0;:10:::1;:::i;:::-;5803:27;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;::::1;::::0;5782:18;;-1:-1:-1;;;;;5803:27:78;;::::1;::::0;;5798:1;;5782:18;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;::::1;:48:::0;;-1:-1:-1;;;;;;5782:48:78::1;-1:-1:-1::0;;;;;5782:48:78;;;::::1;::::0;;;::::1;::::0;;;5848:21;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;5848:21:78;;;;;-1:-1:-1;;;;;;5848:21:78::1;::::0;;;;;5887:5:::1;;5722:185;5703:3;;5671:246;;;;5944:23;5926:779;-1:-1:-1::0;;;;;6003:50:78;::::1;;::::0;;;:25:::1;:50;::::0;;;;:57;5985:75;::::1;5926:779;;;-1:-1:-1::0;;;;;6128:50:78;::::1;6107:18;6128:50:::0;;;:25:::1;:50;::::0;;;;:67;;6179:15;;6128:67;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;6232:40;;;:28:::1;:40:::0;;;;;;:47;6128:67;;-1:-1:-1;6232:47:78;6293:402:::1;6317:12;6313:1;:16;6293:402;;;6358:40;::::0;;;:28:::1;:40;::::0;;;;:43;;-1:-1:-1;;;;;6358:61:78;::::1;::::0;:40;6399:1;;6358:43;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;6358:43:78::1;:61:::0;6354:327:::1;;6509:40;::::0;;;:28:::1;:40;::::0;;;;6550:16:::1;6565:1;6550:12:::0;:16:::1;:::i;:::-;6509:58;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;6443:40;;;:28:::1;:40:::0;;;;;;;:43;;-1:-1:-1;;;;;6509:58:78;;::::1;::::0;6484:1;;6443:43;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:124:::0;;-1:-1:-1;;;;;;6443:124:78::1;-1:-1:-1::0;;;;;6443:124:78;;;::::1;::::0;;;::::1;::::0;;;6589:40;;;:28:::1;:40:::0;;;;;;:46;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;6589:46:78;;;;;-1:-1:-1;;;;;;6589:46:78::1;::::0;;;;;6657:5:::1;;6354:327;6331:3;;6293:402;;;-1:-1:-1::0;;;6074:17:78::1;;5926:779;;;-1:-1:-1::0;;;;;;6721:50:78;::::1;;::::0;;;:25:::1;:50;::::0;;;;6714:57:::1;::::0;::::1;:::i;:::-;6786:36;::::0;-1:-1:-1;;;;;6786:36:78;::::1;::::0;::::1;::::0;;;::::1;5416:1413;5330:1499:::0;:::o;9251:304::-;-1:-1:-1;;;;;9385:50:78;;;;;;:25;:50;;;;;:57;9349:16;;9385:62;9377:104;;;;-1:-1:-1;;;9377:104:78;;7538:2:165;9377:104:78;;;7520:21:165;7577:2;7557:18;;;7550:30;7616;7596:18;;;7589:58;7664:18;;9377:104:78;7336:352:165;9377:104:78;-1:-1:-1;;;;;9498:50:78;;;;;;:25;:50;;;;;;;;;9491:57;;;;;;;;;;;;;;;;;9498:50;;9491:57;;9498:50;9491:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9251:304;;;:::o;8472:123::-;8533:21;8573:15;8566:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8566:22:78;;;;;;;;;;;;;;;;;;;;;;;8472:123;:::o;4162:80::-;8870:21:137;4302:15;;-1:-1:-1;;;4302:15:137;;;;4301:16;;4348:14;;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;:16;;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:137;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:137;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:137;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:137;-1:-1:-1;;;5013:22:137;;;4979:67;4209:26:78::1;4224:10;4209:14;:26::i;:::-;5070:14:137::0;5066:101;;;5100:23;;-1:-1:-1;;;;5100:23:137;;;5142:14;;-1:-1:-1;7846:50:165;;5142:14:137;;7834:2:165;7819:18;5142:14:137;;;;;;;5066:101;4092:1081;;;;;4162:80:78:o;8953:204::-;-1:-1:-1;;;;;9046:34:78;;9027:4;9046:34;;;:25;:34;;;;;:41;:45;9043:86;;-1:-1:-1;9114:4:78;;8953:204;-1:-1:-1;8953:204:78:o;9043:86::-;-1:-1:-1;9145:5:78;;8953:204;-1:-1:-1;8953:204:78:o;3405:215:136:-;2334:13;:11;:13::i;:::-;-1:-1:-1;;;;;3489:22:136;::::1;3485:91;;3534:31;::::0;-1:-1:-1;;;3534:31:136;;3562:1:::1;3534:31;::::0;::::1;2497:51:165::0;2470:18;;3534:31:136::1;2351:203:165::0;3485:91:136::1;3585:28;3604:8;3585:18;:28::i;:::-;3405:215:::0;:::o;2658:162::-;966:10:138;2717:7:136;1313:22;2570:8;-1:-1:-1;;;;;2570:8:136;;2441:144;2717:7;-1:-1:-1;;;;;2717:23:136;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:136;;966:10:138;2763:40:136;;;2497:51:165;2470:18;;2763:40:136;2351:203:165;3774:248:136;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:136;;-1:-1:-1;;;;;3941:19:136;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;1847:127::-;6931:20:137;:18;:20::i;:::-;1929:38:136::1;1954:12;1929:24;:38::i;7084:141:137:-:0;8870:21;8560:40;-1:-1:-1;;;8560:40:137;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:137;;;;;;;;;;;1980:235:136;6931:20:137;:18;:20::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:145:165;-1:-1:-1;;;;;103:31:165;;93:42;;83:70;;149:1;146;139:12;164:786;281:6;289;297;350:2;338:9;329:7;325:23;321:32;318:52;;;366:1;363;356:12;318:52;405:9;392:23;424:45;463:5;424:45;:::i;:::-;488:5;-1:-1:-1;544:2:165;529:18;;516:32;567:18;597:14;;;594:34;;;624:1;621;614:12;594:34;662:6;651:9;647:22;637:32;;707:7;700:4;696:2;692:13;688:27;678:55;;729:1;726;719:12;678:55;769:2;756:16;795:2;787:6;784:14;781:34;;;811:1;808;801:12;781:34;864:7;859:2;849:6;846:1;842:14;838:2;834:23;830:32;827:45;824:65;;;885:1;882;875:12;824:65;916:2;912;908:11;898:21;;938:6;928:16;;;;;164:786;;;;;:::o;955:329::-;1023:6;1031;1084:2;1072:9;1063:7;1059:23;1055:32;1052:52;;;1100:1;1097;1090:12;1052:52;1139:9;1126:23;1158:45;1197:5;1158:45;:::i;:::-;1222:5;1274:2;1259:18;;;;1246:32;;-1:-1:-1;;;955:329:165:o;1481:180::-;1540:6;1593:2;1581:9;1572:7;1568:23;1564:32;1561:52;;;1609:1;1606;1599:12;1561:52;-1:-1:-1;1632:23:165;;1481:180;-1:-1:-1;1481:180:165:o;1666:680::-;1859:2;1911:21;;;1981:13;;1884:18;;;2003:22;;;1830:4;;1859:2;2082:15;;;;2056:2;2041:18;;;1830:4;2125:195;2139:6;2136:1;2133:13;2125:195;;;2204:13;;-1:-1:-1;;;;;2200:39:165;2188:52;;2295:15;;;;2260:12;;;;2236:1;2154:9;2125:195;;;-1:-1:-1;2337:3:165;;1666:680;-1:-1:-1;;;;;;1666:680:165:o;2559:283::-;2640:6;2693:2;2681:9;2672:7;2668:23;2664:32;2661:52;;;2709:1;2706;2699:12;2661:52;2748:9;2735:23;2767:45;2806:5;2767:45;:::i;:::-;2831:5;2559:283;-1:-1:-1;;;2559:283:165:o;2847:632::-;3018:2;3070:21;;;3140:13;;3043:18;;;3162:22;;;2989:4;;3018:2;3241:15;;;;3215:2;3200:18;;;2989:4;3284:169;3298:6;3295:1;3292:13;3284:169;;;3359:13;;3347:26;;3428:15;;;;3393:12;;;;3320:1;3313:9;3284:169;;3750:355;3952:2;3934:21;;;3991:2;3971:18;;;3964:30;4030:33;4025:2;4010:18;;4003:61;4096:2;4081:18;;3750:355::o;4459:401::-;4661:2;4643:21;;;4700:2;4680:18;;;4673:30;4739:34;4734:2;4719:18;;4712:62;-1:-1:-1;;;4805:2:165;4790:18;;4783:35;4850:3;4835:19;;4459:401::o;5222:127::-;5283:10;5278:3;5274:20;5271:1;5264:31;5314:4;5311:1;5304:15;5338:4;5335:1;5328:15;5354:225;5421:9;;;5442:11;;;5439:134;;;5495:10;5490:3;5486:20;5483:1;5476:31;5530:4;5527:1;5520:15;5558:4;5555:1;5548:15;5584:127;5645:10;5640:3;5636:20;5633:1;5626:31;5676:4;5673:1;5666:15;5700:4;5697:1;5690:15;5716:443;5905:2;5887:21;;;5924:18;;5917:34;;;-1:-1:-1;;;;;;5963:31:165;;5960:51;;;6007:1;6004;5997:12;5960:51;6041:6;6038:1;6034:14;6098:6;6090;6085:2;6074:9;6070:18;6057:48;6126:22;;;;6150:2;6122:31;;5716:443;-1:-1:-1;;;5716:443:165:o","linkReferences":{}},"methodIdentifiers":{"addTrustedIssuer(address,uint256[])":"9f63ea98","getTrustedIssuerClaimTopics(address)":"c28fb278","getTrustedIssuers()":"d9dd24c5","getTrustedIssuersForClaimTopic(uint256)":"52c111d1","hasClaimTopic(address,uint256)":"34a89987","init()":"e1c7392a","isTrustedIssuer(address)":"ef2ed1a4","owner()":"8da5cb5b","removeTrustedIssuer(address)":"b93d28eb","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","updateIssuerClaimTopics(address,uint256[])":"04bc7e84"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"ClaimTopicsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"TrustedIssuerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"}],\"name\":\"TrustedIssuerRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"_trustedIssuer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"addTrustedIssuer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"_trustedIssuer\",\"type\":\"address\"}],\"name\":\"getTrustedIssuerClaimTopics\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTrustedIssuers\",\"outputs\":[{\"internalType\":\"contract IClaimIssuer[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"getTrustedIssuersForClaimTopic\",\"outputs\":[{\"internalType\":\"contract IClaimIssuer[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_issuer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_claimTopic\",\"type\":\"uint256\"}],\"name\":\"hasClaimTopic\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_issuer\",\"type\":\"address\"}],\"name\":\"isTrustedIssuer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"_trustedIssuer\",\"type\":\"address\"}],\"name\":\"removeTrustedIssuer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"_trustedIssuer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"updateIssuerClaimTopics\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"addTrustedIssuer(address,uint256[])\":{\"details\":\"See {ITrustedIssuersRegistry-addTrustedIssuer}.\"},\"getTrustedIssuerClaimTopics(address)\":{\"details\":\"See {ITrustedIssuersRegistry-getTrustedIssuerClaimTopics}.\"},\"getTrustedIssuers()\":{\"details\":\"See {ITrustedIssuersRegistry-getTrustedIssuers}.\"},\"getTrustedIssuersForClaimTopic(uint256)\":{\"details\":\"See {ITrustedIssuersRegistry-getTrustedIssuersForClaimTopic}.\"},\"hasClaimTopic(address,uint256)\":{\"details\":\"See {ITrustedIssuersRegistry-hasClaimTopic}.\"},\"isTrustedIssuer(address)\":{\"details\":\"See {ITrustedIssuersRegistry-isTrustedIssuer}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeTrustedIssuer(address)\":{\"details\":\"See {ITrustedIssuersRegistry-removeTrustedIssuer}.\"},\"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.\"},\"updateIssuerClaimTopics(address,uint256[])\":{\"details\":\"See {ITrustedIssuersRegistry-updateIssuerClaimTopics}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ClaimTopicsUpdated(address,uint256[])\":{\"notice\":\"this event is emitted when the set of claim topics is changed for a given trusted issuer. the event is emitted by the updateIssuerClaimTopics function `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract `claimTopics` is the set of claims that the trusted issuer is allowed to emit\"},\"TrustedIssuerAdded(address,uint256[])\":{\"notice\":\"this event is emitted when a trusted issuer is added in the registry. the event is emitted by the addTrustedIssuer function `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract `claimTopics` is the set of claims that the trusted issuer is allowed to emit\"},\"TrustedIssuerRemoved(address)\":{\"notice\":\"this event is emitted when a trusted issuer is removed from the registry. the event is emitted by the removeTrustedIssuer function `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/registry/implementation/TrustedIssuersRegistry.sol\":\"TrustedIssuersRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/registry/implementation/TrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5380e66147963d391c12b3f6a981f67dc134164e352762225114944d2994b0c5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2af53cc35c362258e49b25bbce74156522a551e917b5638ca7a1bda5047afd4\",\"dweb:/ipfs/QmNbjvbemr3HuDQ17oaiSNyZPqC9Y7wJaqFNSzdCv2iHt1\"]},\"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f\",\"dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN\"]},\"contracts/erc3643/registry/storage/TIRStorage.sol\":{\"keccak256\":\"0x310c91e0ba1d72dfc7db11fd3f3ad54cb75e88f4ee1746809b9840362ef4bba1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4d27226d47c0a4018eca7b5b903ec45c27116074ec4612f70d2e651eaa201e46\",\"dweb:/ipfs/QmZ2uCnPgoSZxN1hQy5mNZCWzc6bWkynp1MgAwRPwtXzB6\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address","indexed":true},{"internalType":"uint256[]","name":"claimTopics","type":"uint256[]","indexed":false}],"type":"event","name":"ClaimTopicsUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address","indexed":true},{"internalType":"uint256[]","name":"claimTopics","type":"uint256[]","indexed":false}],"type":"event","name":"TrustedIssuerAdded","anonymous":false},{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address","indexed":true}],"type":"event","name":"TrustedIssuerRemoved","anonymous":false},{"inputs":[{"internalType":"contract IClaimIssuer","name":"_trustedIssuer","type":"address"},{"internalType":"uint256[]","name":"_claimTopics","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"addTrustedIssuer"},{"inputs":[{"internalType":"contract IClaimIssuer","name":"_trustedIssuer","type":"address"}],"stateMutability":"view","type":"function","name":"getTrustedIssuerClaimTopics","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTrustedIssuers","outputs":[{"internalType":"contract IClaimIssuer[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256"}],"stateMutability":"view","type":"function","name":"getTrustedIssuersForClaimTopic","outputs":[{"internalType":"contract IClaimIssuer[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_issuer","type":"address"},{"internalType":"uint256","name":"_claimTopic","type":"uint256"}],"stateMutability":"view","type":"function","name":"hasClaimTopic","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"init"},{"inputs":[{"internalType":"address","name":"_issuer","type":"address"}],"stateMutability":"view","type":"function","name":"isTrustedIssuer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IClaimIssuer","name":"_trustedIssuer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTrustedIssuer"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"contract IClaimIssuer","name":"_trustedIssuer","type":"address"},{"internalType":"uint256[]","name":"_claimTopics","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"updateIssuerClaimTopics"}],"devdoc":{"kind":"dev","methods":{"addTrustedIssuer(address,uint256[])":{"details":"See {ITrustedIssuersRegistry-addTrustedIssuer}."},"getTrustedIssuerClaimTopics(address)":{"details":"See {ITrustedIssuersRegistry-getTrustedIssuerClaimTopics}."},"getTrustedIssuers()":{"details":"See {ITrustedIssuersRegistry-getTrustedIssuers}."},"getTrustedIssuersForClaimTopic(uint256)":{"details":"See {ITrustedIssuersRegistry-getTrustedIssuersForClaimTopic}."},"hasClaimTopic(address,uint256)":{"details":"See {ITrustedIssuersRegistry-hasClaimTopic}."},"isTrustedIssuer(address)":{"details":"See {ITrustedIssuersRegistry-isTrustedIssuer}."},"owner()":{"details":"Returns the address of the current owner."},"removeTrustedIssuer(address)":{"details":"See {ITrustedIssuersRegistry-removeTrustedIssuer}."},"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."},"updateIssuerClaimTopics(address,uint256[])":{"details":"See {ITrustedIssuersRegistry-updateIssuerClaimTopics}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/registry/implementation/TrustedIssuersRegistry.sol":"TrustedIssuersRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/registry/implementation/TrustedIssuersRegistry.sol":{"keccak256":"0x5380e66147963d391c12b3f6a981f67dc134164e352762225114944d2994b0c5","urls":["bzz-raw://c2af53cc35c362258e49b25bbce74156522a551e917b5638ca7a1bda5047afd4","dweb:/ipfs/QmNbjvbemr3HuDQ17oaiSNyZPqC9Y7wJaqFNSzdCv2iHt1"],"license":"GPL-3.0"},"contracts/erc3643/registry/interface/ITrustedIssuersRegistry.sol":{"keccak256":"0x5781477ff23d1cde0de244a2159e76bdc37ef62ec4ffb92c7a1ce2b6b5007bde","urls":["bzz-raw://4b4feefbd2ff2f4a987c109d8a67b224ab1e5d8257c813cc28c9a035f993499f","dweb:/ipfs/QmPWynRBRNeZn2trVxHirGGogFFxHVpjvuac1bygs7FURN"],"license":"GPL-3.0"},"contracts/erc3643/registry/storage/TIRStorage.sol":{"keccak256":"0x310c91e0ba1d72dfc7db11fd3f3ad54cb75e88f4ee1746809b9840362ef4bba1","urls":["bzz-raw://4d27226d47c0a4018eca7b5b903ec45c27116074ec4612f70d2e651eaa201e46","dweb:/ipfs/QmZ2uCnPgoSZxN1hQy5mNZCWzc6bWkynp1MgAwRPwtXzB6"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"}},"version":1},"id":78} \ No newline at end of file diff --git a/out/TrustedIssuersRegistryProxy.sol/TrustedIssuersRegistryProxy.json b/out/TrustedIssuersRegistryProxy.sol/TrustedIssuersRegistryProxy.json new file mode 100644 index 0000000..28bff04 --- /dev/null +++ b/out/TrustedIssuersRegistryProxy.sol/TrustedIssuersRegistryProxy.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"implementationAuthority","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"getImplementationAuthority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setImplementationAuthority","inputs":[{"name":"_newImplementationAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ImplementationAuthoritySet","inputs":[{"name":"_implementationAuthority","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516108fc3803806108fc83398101604081905261002f9161022a565b6001600160a01b03811661008a5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b6100a0816000805160206108dc83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a260006100ec6000805160206108dc8339815191525490565b6001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa158015610129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014d919061022a565b60408051600481526024810182526020810180516001600160e01b03166370e39c9560e11b17905290519192506000916001600160a01b038416916101919161025a565b600060405180830381855af49150503d80600081146101cc576040519150601f19603f3d011682016040523d82523d6000602084013e6101d1565b606091505b50509050806102225760405162461bcd60e51b815260206004820152601660248201527f496e697469616c697a6174696f6e206661696c65642e000000000000000000006044820152606401610081565b505050610289565b60006020828403121561023c57600080fd5b81516001600160a01b038116811461025357600080fd5b9392505050565b6000825160005b8181101561027b5760208186018101518583015201610261565b506000920191825250919050565b610644806102986000396000f3fe6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca26469706673582212206955ffd130838bdc539223ccd03c1c04fb662e05c259ad982afe29afad397fd564736f6c63430008180033821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc","sourceMap":"3874:1319:69:-:0;;;3935:577;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3998:37:69;;3990:81;;;;-1:-1:-1;;;3990:81:69;;511:2:165;3990:81:69;;;493:21:165;550:2;530:18;;;523:30;589:33;569:18;;;562:61;640:18;;3990:81:69;;;;;;;;;4081:54;4111:23;-1:-1:-1;;;;;;;;;;;6099:99:63;5929:285;4081:54:69;4150:51;;-1:-1:-1;;;;;4150:51:69;;;;;;;;4212:13;4258:28;-1:-1:-1;;;;;;;;;;;5598:73:63;;5391:323;4258:28:69;-1:-1:-1;;;;;4228:81:69;;:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4419:33;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4419:33:69;-1:-1:-1;;;4419:33:69;;;4400:53;;4212:99;;-1:-1:-1;4382:12:69;;-1:-1:-1;;;;;4400:18:69;;;:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4381:72;;;4471:7;4463:42;;;;-1:-1:-1;;;4463:42:69;;1288:2:165;4463:42:69;;;1270:21:165;1327:2;1307:18;;;1300:30;1366:24;1346:18;;;1339:52;1408:18;;4463:42:69;1086:346:165;4463:42:69;3980:532;;3935:577;3874:1319;;14:290:165;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:165;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:165:o;669:412::-;798:3;836:6;830:13;861:1;871:129;885:6;882:1;879:13;871:129;;;983:4;967:14;;;963:25;;957:32;944:11;;;937:53;900:12;871:129;;;-1:-1:-1;1055:1:165;1019:16;;1044:13;;;-1:-1:-1;1019:16:165;669:412;-1:-1:-1;669:412:165:o;1086:346::-;3874:1319:69;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100295760003560e01c80632d5f1187146100cf57806392dd9d6514610108575b60006100416000805160206105ef8339815191525490565b6001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a291906105ad565b90503660008037600080366000846127105a03f43d806000803e8180156100c857816000f35b816000fd5b005b3480156100db57600080fd5b506000805160206105ef833981519152546040516001600160a01b03909116815260200160405180910390f35b34801561011457600080fd5b506100cd6101233660046105d1565b6000805160206105ef833981519152546001600160a01b0316336001600160a01b0316146101ae5760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792063757272656e7420696d706c656d656e746174696f6e417574686f60448201526c1c9a5d1e4818d85b8818d85b1b609a1b60648201526084015b60405180910390fd5b6001600160a01b0381166102045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064016101a5565b60006001600160a01b0316816001600160a01b031663709bc7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027191906105ad565b6001600160a01b0316141580156102fc575060006001600160a01b0316816001600160a01b0316636ff6e83f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906105ad565b6001600160a01b031614155b801561037c575060006001600160a01b0316816001600160a01b0316631ee9ce8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037091906105ad565b6001600160a01b031614155b80156103fc575060006001600160a01b0316816001600160a01b0316639e3e7bb96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f091906105ad565b6001600160a01b031614155b801561047c575060006001600160a01b0316816001600160a01b03166361f898256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906105ad565b6001600160a01b031614155b80156104fc575060006001600160a01b0316816001600160a01b031663fedcc0526040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f091906105ad565b6001600160a01b031614155b6105485760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420496d706c656d656e746174696f6e20417574686f7269747960448201526064016101a5565b61055e816000805160206105ef83398151915255565b6040516001600160a01b038216907f3b1074392ed8e8424715d0dda2197eede67080b377fc8370e26f3e882207f6b890600090a250565b6001600160a01b03811681146105aa57600080fd5b50565b6000602082840312156105bf57600080fd5b81516105ca81610595565b9392505050565b6000602082840312156105e357600080fd5b81356105ca8161059556fe821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafca26469706673582212206955ffd130838bdc539223ccd03c1c04fb662e05c259ad982afe29afad397fd564736f6c63430008180033","sourceMap":"3874:1319:69:-:0;;;;;;;;;;;;;;;;;;;;;;;4609:13;4655:28;-1:-1:-1;;;;;;;;;;;5598:73:63;;5391:323;4655:28:69;-1:-1:-1;;;;;4625:81:69;;:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4609:99;;4821:14;4816:3;4811;4798:38;4927:1;4924;4908:14;4903:3;4896:5;4888;4881;4877:17;4864:65;4955:16;5005:5;5002:1;4999;4984:27;5031:7;5051:55;;;;5155:5;5152:1;5145:16;5051:55;5086:5;5083:1;5076:16;5024:151;;5391:323:63;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;5598:73:63;5391:323;;-1:-1:-1;;;;;570:32:165;;;552:51;;540:2;525:18;5391:323:63;;;;;;;4141:1174;;;;;;;;;;-1:-1:-1;4141:1174:63;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;5598:73:63;-1:-1:-1;;;;;4250:42:63;:10;-1:-1:-1;;;;;4250:42:63;;4242:100;;;;-1:-1:-1;;;4242:100:63;;1068:2:165;4242:100:63;;;1050:21:165;1107:2;1087:18;;;1080:30;1146:34;1126:18;;;1119:62;-1:-1:-1;;;1197:18:165;;;1190:43;1250:19;;4242:100:63;;;;;;;;;-1:-1:-1;;;;;4360:41:63;;4352:85;;;;-1:-1:-1;;;4352:85:63;;1482:2:165;4352:85:63;;;1464:21:165;1521:2;1501:18;;;1494:30;1560:33;1540:18;;;1533:61;1611:18;;4352:85:63;1280:355:165;4352:85:63;4564:1;-1:-1:-1;;;;;4468:98:63;4498:27;-1:-1:-1;;;;;4468:82:63;;:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4468:98:63;;;:210;;;;;4676:1;-1:-1:-1;;;;;4582:96:63;4612:27;-1:-1:-1;;;;;4582:80:63;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4582:96:63;;;4468:210;:321;;;;;4787:1;-1:-1:-1;;;;;4694:95:63;4724:27;-1:-1:-1;;;;;4694:79:63;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4694:95:63;;;4468:321;:433;;;;;4899:1;-1:-1:-1;;;;;4805:96:63;4835:27;-1:-1:-1;;;;;4805:80:63;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4805:96:63;;;4468:433;:544;;;;;5010:1;-1:-1:-1;;;;;4917:95:63;4947:27;-1:-1:-1;;;;;4917:79:63;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4917:95:63;;;4468:544;:656;;;;;5122:1;-1:-1:-1;;;;;5028:96:63;5058:27;-1:-1:-1;;;;;5028:80:63;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5028:96:63;;;4468:656;4447:723;;;;-1:-1:-1;;;4447:723:63;;1842:2:165;4447:723:63;;;1824:21:165;;;1861:18;;;1854:30;1920:34;1900:18;;;1893:62;1972:18;;4447:723:63;1640:356:165;4447:723:63;5180:58;5210:27;-1:-1:-1;;;;;;;;;;;6099:99:63;5929:285;5180:58;5253:55;;-1:-1:-1;;;;;5253:55:63;;;;;;;;4141:1174;:::o;14:131:165:-;-1:-1:-1;;;;;89:31:165;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:251::-;220:6;273:2;261:9;252:7;248:23;244:32;241:52;;;289:1;286;279:12;241:52;321:9;315:16;340:31;365:5;340:31;:::i;:::-;390:5;150:251;-1:-1:-1;;;150:251:165:o;614:247::-;673:6;726:2;714:9;705:7;701:23;697:32;694:52;;;742:1;739;732:12;694:52;781:9;768:23;800:31;825:5;800:31;:::i","linkReferences":{}},"methodIdentifiers":{"getImplementationAuthority()":"2d5f1187","setImplementationAuthority(address)":"92dd9d65"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementationAuthority\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_implementationAuthority\",\"type\":\"address\"}],\"name\":\"ImplementationAuthoritySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"getImplementationAuthority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newImplementationAuthority\",\"type\":\"address\"}],\"name\":\"setImplementationAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"getImplementationAuthority()\":{\"details\":\"See {IProxy-getImplementationAuthority}.\"},\"setImplementationAuthority(address)\":{\"details\":\"See {IProxy-setImplementationAuthority}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ImplementationAuthoritySet(address)\":{\"notice\":\"events\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc3643/proxy/TrustedIssuersRegistryProxy.sol\":\"TrustedIssuersRegistryProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc3643/proxy/AbstractProxy.sol\":{\"keccak256\":\"0x25dca1861c6dd72695b0b509da29cfb0fcce7c1ac1df0a0266f444596affc3f4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://221fb9fd02e0db96ff0ce584de79edefeb3b66a820c4dfab788147c0d32743fc\",\"dweb:/ipfs/QmcTatYqxSryAPkrqpvy3A9eFNoa13WjE48jitjBYwB7wq\"]},\"contracts/erc3643/proxy/TrustedIssuersRegistryProxy.sol\":{\"keccak256\":\"0x83c5b64007a1712501ee8f6036b9cc2f9fb8b7a115ac1f06a54cba42dd893108\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1a0908ec22650ecbfc7bae976bb6f0ae75ae1d8c331ae011823574143afb91c5\",\"dweb:/ipfs/QmTFbugmV7DSr5fThJTta9YGc3nWSfPiEY8FjeyY5ciMJZ\"]},\"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol\":{\"keccak256\":\"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa\",\"dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc\"]},\"contracts/erc3643/proxy/interface/IProxy.sol\":{\"keccak256\":\"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65\",\"dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"implementationAuthority","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"_implementationAuthority","type":"address","indexed":true}],"type":"event","name":"ImplementationAuthoritySet","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"getImplementationAuthority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_newImplementationAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setImplementationAuthority"}],"devdoc":{"kind":"dev","methods":{"getImplementationAuthority()":{"details":"See {IProxy-getImplementationAuthority}."},"setImplementationAuthority(address)":{"details":"See {IProxy-setImplementationAuthority}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc3643/proxy/TrustedIssuersRegistryProxy.sol":"TrustedIssuersRegistryProxy"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc3643/proxy/AbstractProxy.sol":{"keccak256":"0x25dca1861c6dd72695b0b509da29cfb0fcce7c1ac1df0a0266f444596affc3f4","urls":["bzz-raw://221fb9fd02e0db96ff0ce584de79edefeb3b66a820c4dfab788147c0d32743fc","dweb:/ipfs/QmcTatYqxSryAPkrqpvy3A9eFNoa13WjE48jitjBYwB7wq"],"license":"GPL-3.0"},"contracts/erc3643/proxy/TrustedIssuersRegistryProxy.sol":{"keccak256":"0x83c5b64007a1712501ee8f6036b9cc2f9fb8b7a115ac1f06a54cba42dd893108","urls":["bzz-raw://1a0908ec22650ecbfc7bae976bb6f0ae75ae1d8c331ae011823574143afb91c5","dweb:/ipfs/QmTFbugmV7DSr5fThJTta9YGc3nWSfPiEY8FjeyY5ciMJZ"],"license":"GPL-3.0"},"contracts/erc3643/proxy/authority/ITREXImplementationAuthority.sol":{"keccak256":"0xd05768f8b79783bf123d68cf9f6ff1b08ce1555573e0ceff0a56c2e0af5e2ba5","urls":["bzz-raw://a19661319461586622bb55e7a7d856230500842e5d038c2682d48f17e2d219aa","dweb:/ipfs/QmZHkmbb46nJtdTT8scbAc75ch1Dz5t1LjJQjYrT1diMCc"],"license":"GPL-3.0"},"contracts/erc3643/proxy/interface/IProxy.sol":{"keccak256":"0xce5641d3959657ee39c312ba177661e34d843954ff76fdeafa6424bb1a08c536","urls":["bzz-raw://7ecc2050f3a246eabd37289e40740131144452e29966333bf157ae5e2658bd65","dweb:/ipfs/QmVWvnrgtc5iFqZay6yh6VMnQjDm4xmEBhzL1dt2BWUkvQ"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"}},"version":1},"id":69} \ No newline at end of file diff --git a/out/Vault.sol/Bits.json b/out/Vault.sol/Bits.json new file mode 100644 index 0000000..1e53dd7 --- /dev/null +++ b/out/Vault.sol/Bits.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f57a97a949e7a0754dfe9a8ba24bdc5d7937aa67e11cce06dc2f0f419079795f64736f6c63430008180033","sourceMap":"20480:320:102:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;20480:320:102;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f57a97a949e7a0754dfe9a8ba24bdc5d7937aa67e11cce06dc2f0f419079795f64736f6c63430008180033","sourceMap":"20480:320:102:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc4626/Vault.sol\":\"Bits\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/FeeConfiguration.sol\":{\"keccak256\":\"0xd576dc5a2f8d782ff3311e6207641c78ea68f68d8cf0c8ce9c06571316e559a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084d049afbfe5d85e397e6f3c118edafe57db19540c6462ea9a0ac2cc99c7f69\",\"dweb:/ipfs/QmXrsuHjQGJRCc7e5HodYLgmb5HKMfC1xPSL7ncKSTHvak\"]},\"contracts/common/hedera/IHRC.sol\":{\"keccak256\":\"0xa5e623207cec464b0965f98d87db307893dd22d5f46654923e36141bdcb93657\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f3da162916df8236e8c84fa7a0e35757e7c6b3e6af93e98bebe23a03177a0fa9\",\"dweb:/ipfs/Qmb8ZbsGQqbaqpZEhACfuV1FfTDZYKrjbyzUDamYN5gD1c\"]},\"contracts/common/safe-HTS/HederaResponseCodes.sol\":{\"keccak256\":\"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca\",\"dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G\"]},\"contracts/common/safe-HTS/IHederaTokenService.sol\":{\"keccak256\":\"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786\",\"dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W\"]},\"contracts/common/safe-HTS/SafeHTS.sol\":{\"keccak256\":\"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe\",\"dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7\"]},\"contracts/erc4626/ERC20.sol\":{\"keccak256\":\"0x33fe85bf9c3a26cc53c74f425a248df6664a2c85c7b872ce9567a8b785619879\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://b42e32a0a88263829f727e8cc5efae644c89db3ad3900daad3918aa75bea756f\",\"dweb:/ipfs/QmQC7KSYBVuNnojtMrJ99rcSsfBhBAK5wSjuTVjANxLvCB\"]},\"contracts/erc4626/TokenBalancer.sol\":{\"keccak256\":\"0x0d9b336e2a4d5120571e4f6b92512ea364980664cddda180fadc93991b9a5f25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb414c1eb9d58392ef05ea0ee6545e858aed7c6b8f28cd177db76e6869ac1132\",\"dweb:/ipfs/Qmc6y1DcHNLBhQdvy4DGcedrMChj6JSMXWYM9a8UhuqyYt\"]},\"contracts/erc4626/Vault.sol\":{\"keccak256\":\"0x3f88acb7a128213804d8634e1aee5c9e44ed801cda46d0e8bca4cbfe13e4ce50\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba50dcb69a2de3520d1b89a67c7be26b959e8061c36abd42c9ce8395904febbd\",\"dweb:/ipfs/QmZVFZDaLDiwKwrXQRi2PuF6W3cUPEywbbF8zCBoFmGAU6\"]},\"contracts/erc4626/interfaces/IERC4626.sol\":{\"keccak256\":\"0x7935c852530f140c6a6b9c295503a4d3ccf83cb5ac5c5f1615e2d7248690e1b3\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2b26de597cefe1da676035b5f64766fdb7628355bddb14c67ee55b910f31419f\",\"dweb:/ipfs/QmUfmGqb4rP17aTeQ1uwZrHbe9jBJ8amCEhdpBoFN2gzRk\"]},\"contracts/erc4626/interfaces/ISaucerSwap.sol\":{\"keccak256\":\"0xa7bb2678e1375e9973578dbdc07d82bc838d360256bb974e1382ed60fc3be3c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94f426b7f3c149e2d7f25a1734f877494ab15a55fd641b84d9a88def7705a761\",\"dweb:/ipfs/QmZa5XUCWyFkeaDBcFZ6czUaaKmdwahVeL7Z3ssxopfDC2\"]},\"contracts/erc4626/libraries/FixedPointMathLib.sol\":{\"keccak256\":\"0x2958e993700b05ee4c2d92e7a90939c97324c1466512a252085f461d154a4ab9\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://774aa54a350733f7e48bfd7271fd529514d4e89c34ee59e05f896bccdc870ce9\",\"dweb:/ipfs/QmWJ1zAHM3cCtVo4VmxZA7S7xuDbcvS3fkqTJY5zrkuGEJ\"]},\"contracts/erc4626/libraries/SafeTransferLib.sol\":{\"keccak256\":\"0x97357325a0f635274a84341d6c3f8b7a9003b2aa38976e2f5fcbb7cd9a31d5de\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://275077abf697e5a2ad66e9181e83013f3fdd54dc4d5d752fd6e4c3c878125c6b\",\"dweb:/ipfs/QmdRTBWEUrYGdcbCzA12HYWkJNXrd8XgQgGUtUws2f2HnC\"]},\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@pythnetwork/pyth-sdk-solidity/IPyth.sol\":{\"keccak256\":\"0xe06dbd61ccf409fffc0a2449eb8bb6c2d245609698c3c6eddad7cd0f3822d215\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://62867dd9f8a439d091da28c4d6cbd6f4d4ec0606291cdea7b70841e37c43e0da\",\"dweb:/ipfs/Qme4kF7yC3k2zxC87k9b6rhEbSjPNWZ5kLZCBdKqk43FbE\"]},\"node_modules/@pythnetwork/pyth-sdk-solidity/IPythEvents.sol\":{\"keccak256\":\"0x7ca8e03315d4516d6833c425a52c43e8cacf2077492074d2d36ae5c17899c9c8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ad1c69d157eccb09ce248e1ec021f2e58b61dd36160f5be3973a7bea4a899f64\",\"dweb:/ipfs/QmW1yXsDrMsuQKxtZanSZXpyUW2QwnCKVoCjS5fC3NoSVY\"]},\"node_modules/@pythnetwork/pyth-sdk-solidity/PythStructs.sol\":{\"keccak256\":\"0xade221177dda98ebd194c363f264ceea125bde0e6a7a72f7b54da3ac60316894\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a404dbbc64183995326c345cae27601d37c783b3d9030c8dc0ab4943fa2bf1da\",\"dweb:/ipfs/QmfNFesQffYisafmJFbKHxVFSD8fY49X1z9f8N7qtfW8AX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc4626/Vault.sol":"Bits"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/FeeConfiguration.sol":{"keccak256":"0xd576dc5a2f8d782ff3311e6207641c78ea68f68d8cf0c8ce9c06571316e559a7","urls":["bzz-raw://084d049afbfe5d85e397e6f3c118edafe57db19540c6462ea9a0ac2cc99c7f69","dweb:/ipfs/QmXrsuHjQGJRCc7e5HodYLgmb5HKMfC1xPSL7ncKSTHvak"],"license":"MIT"},"contracts/common/hedera/IHRC.sol":{"keccak256":"0xa5e623207cec464b0965f98d87db307893dd22d5f46654923e36141bdcb93657","urls":["bzz-raw://f3da162916df8236e8c84fa7a0e35757e7c6b3e6af93e98bebe23a03177a0fa9","dweb:/ipfs/Qmb8ZbsGQqbaqpZEhACfuV1FfTDZYKrjbyzUDamYN5gD1c"],"license":"Apache-2.0"},"contracts/common/safe-HTS/HederaResponseCodes.sol":{"keccak256":"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324","urls":["bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca","dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G"],"license":"Apache-2.0"},"contracts/common/safe-HTS/IHederaTokenService.sol":{"keccak256":"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735","urls":["bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786","dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W"],"license":"Apache-2.0"},"contracts/common/safe-HTS/SafeHTS.sol":{"keccak256":"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10","urls":["bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe","dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7"],"license":"Apache-2.0"},"contracts/erc4626/ERC20.sol":{"keccak256":"0x33fe85bf9c3a26cc53c74f425a248df6664a2c85c7b872ce9567a8b785619879","urls":["bzz-raw://b42e32a0a88263829f727e8cc5efae644c89db3ad3900daad3918aa75bea756f","dweb:/ipfs/QmQC7KSYBVuNnojtMrJ99rcSsfBhBAK5wSjuTVjANxLvCB"],"license":"AGPL-3.0-only"},"contracts/erc4626/TokenBalancer.sol":{"keccak256":"0x0d9b336e2a4d5120571e4f6b92512ea364980664cddda180fadc93991b9a5f25","urls":["bzz-raw://eb414c1eb9d58392ef05ea0ee6545e858aed7c6b8f28cd177db76e6869ac1132","dweb:/ipfs/Qmc6y1DcHNLBhQdvy4DGcedrMChj6JSMXWYM9a8UhuqyYt"],"license":"MIT"},"contracts/erc4626/Vault.sol":{"keccak256":"0x3f88acb7a128213804d8634e1aee5c9e44ed801cda46d0e8bca4cbfe13e4ce50","urls":["bzz-raw://ba50dcb69a2de3520d1b89a67c7be26b959e8061c36abd42c9ce8395904febbd","dweb:/ipfs/QmZVFZDaLDiwKwrXQRi2PuF6W3cUPEywbbF8zCBoFmGAU6"],"license":"MIT"},"contracts/erc4626/interfaces/IERC4626.sol":{"keccak256":"0x7935c852530f140c6a6b9c295503a4d3ccf83cb5ac5c5f1615e2d7248690e1b3","urls":["bzz-raw://2b26de597cefe1da676035b5f64766fdb7628355bddb14c67ee55b910f31419f","dweb:/ipfs/QmUfmGqb4rP17aTeQ1uwZrHbe9jBJ8amCEhdpBoFN2gzRk"],"license":"AGPL-3.0-only"},"contracts/erc4626/interfaces/ISaucerSwap.sol":{"keccak256":"0xa7bb2678e1375e9973578dbdc07d82bc838d360256bb974e1382ed60fc3be3c9","urls":["bzz-raw://94f426b7f3c149e2d7f25a1734f877494ab15a55fd641b84d9a88def7705a761","dweb:/ipfs/QmZa5XUCWyFkeaDBcFZ6czUaaKmdwahVeL7Z3ssxopfDC2"],"license":"MIT"},"contracts/erc4626/libraries/FixedPointMathLib.sol":{"keccak256":"0x2958e993700b05ee4c2d92e7a90939c97324c1466512a252085f461d154a4ab9","urls":["bzz-raw://774aa54a350733f7e48bfd7271fd529514d4e89c34ee59e05f896bccdc870ce9","dweb:/ipfs/QmWJ1zAHM3cCtVo4VmxZA7S7xuDbcvS3fkqTJY5zrkuGEJ"],"license":"AGPL-3.0-only"},"contracts/erc4626/libraries/SafeTransferLib.sol":{"keccak256":"0x97357325a0f635274a84341d6c3f8b7a9003b2aa38976e2f5fcbb7cd9a31d5de","urls":["bzz-raw://275077abf697e5a2ad66e9181e83013f3fdd54dc4d5d752fd6e4c3c878125c6b","dweb:/ipfs/QmdRTBWEUrYGdcbCzA12HYWkJNXrd8XgQgGUtUws2f2HnC"],"license":"AGPL-3.0-only"},"node_modules/@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@pythnetwork/pyth-sdk-solidity/IPyth.sol":{"keccak256":"0xe06dbd61ccf409fffc0a2449eb8bb6c2d245609698c3c6eddad7cd0f3822d215","urls":["bzz-raw://62867dd9f8a439d091da28c4d6cbd6f4d4ec0606291cdea7b70841e37c43e0da","dweb:/ipfs/Qme4kF7yC3k2zxC87k9b6rhEbSjPNWZ5kLZCBdKqk43FbE"],"license":"Apache-2.0"},"node_modules/@pythnetwork/pyth-sdk-solidity/IPythEvents.sol":{"keccak256":"0x7ca8e03315d4516d6833c425a52c43e8cacf2077492074d2d36ae5c17899c9c8","urls":["bzz-raw://ad1c69d157eccb09ce248e1ec021f2e58b61dd36160f5be3973a7bea4a899f64","dweb:/ipfs/QmW1yXsDrMsuQKxtZanSZXpyUW2QwnCKVoCjS5fC3NoSVY"],"license":"Apache-2.0"},"node_modules/@pythnetwork/pyth-sdk-solidity/PythStructs.sol":{"keccak256":"0xade221177dda98ebd194c363f264ceea125bde0e6a7a72f7b54da3ac60316894","urls":["bzz-raw://a404dbbc64183995326c345cae27601d37c783b3d9030c8dc0ab4943fa2bf1da","dweb:/ipfs/QmfNFesQffYisafmJFbKHxVFSD8fY49X1z9f8N7qtfW8AX"],"license":"Apache-2.0"}},"version":1},"id":102} \ No newline at end of file diff --git a/out/Vault.sol/HederaVault.json b/out/Vault.sol/HederaVault.json new file mode 100644 index 0000000..a439f7a --- /dev/null +++ b/out/Vault.sol/HederaVault.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_underlying","type":"address","internalType":"contract ERC20"},{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_feeConfig","type":"tuple","internalType":"struct FeeConfiguration.FeeConfig","components":[{"name":"receiver","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"feePercentage","type":"uint256","internalType":"uint256"}]},{"name":"_vaultRewardController","type":"address","internalType":"address"},{"name":"_feeConfigController","type":"address","internalType":"address"},{"name":"_pyth","type":"address","internalType":"address"},{"name":"_saucerSwap","type":"address","internalType":"address"},{"name":"_rewardTokens","type":"address[]","internalType":"address[]"},{"name":"allocationPercentage","type":"uint256[]","internalType":"uint256[]"},{"name":"_priceIds","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"payable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FEE_CONFIG_CONTROLLER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"VAULT_REWARD_CONTROLLER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"_getPrice","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"oneDollarInHbar","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_rebalance","inputs":[{"name":"_tokenPrices","type":"uint256[]","internalType":"uint256[]"},{"name":"_rewardTokens","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"_swapExtraRewardSupplyToTransitionToken","inputs":[{"name":"_rewardTokens","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addReward","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"asset","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ERC20"}],"stateMutability":"view"},{"type":"function","name":"assetTotalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"assetsOf","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"assetsPerShare","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"claimAllReward","inputs":[{"name":"_startPosition","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"feeConfig","inputs":[],"outputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"feePercentage","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAllRewards","inputs":[{"name":"_user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getRewardTokens","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getUserReward","inputs":[{"name":"_user","type":"address","internalType":"address"},{"name":"_rewardToken","type":"address","internalType":"address"}],"outputs":[{"name":"unclaimedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"maxDeposit","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"maxMint","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"maxRedeem","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxWithdraw","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"previewDeposit","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewMint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewRedeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewWithdraw","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"priceIds","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"priceId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"pyth","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPyth"}],"stateMutability":"view"},{"type":"function","name":"rebalance","inputs":[{"name":"_rewardTokens","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"redeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rewardTokens","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"saucerSwap","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISaucerSwap"}],"stateMutability":"view"},{"type":"function","name":"setTargetPercentage","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"percentage","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"share","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"swapPaths","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenPrices","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokensRewardInfo","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"exist","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalAssets","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"update","inputs":[{"name":"pythPriceUpdate","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"updateFeeConfig","inputs":[{"name":"_feeConfig","type":"tuple","internalType":"struct FeeConfiguration.FeeConfig","components":[{"name":"receiver","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"feePercentage","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"userContribution","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"sharesAmount","type":"uint256","internalType":"uint256"},{"name":"lastLockedTime","type":"uint256","internalType":"uint256"},{"name":"exist","type":"bool","internalType":"bool"},{"name":"rewardStart","type":"uint256","internalType":"uint256"},{"name":"rewardEnd","type":"uint256","internalType":"uint256"},{"name":"accumulatedReward","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CreatedToken","inputs":[{"name":"createdToken","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FeeConfigUpdated","inputs":[{"name":"feeConfig","type":"tuple","indexed":false,"internalType":"struct FeeConfiguration.FeeConfig","components":[{"name":"receiver","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"feePercentage","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RewardAdded","inputs":[{"name":"rewardToken","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"MaxRewardTokensAmount","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"ZeroShares","inputs":[{"name":"numberOfShares","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x610100604052604051620060ce380380620060ce833981016040819052620000279162001185565b338a8a8d6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000069573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200008f9190620012fa565b60006200009d8482620013b7565b506001620000ac8382620013b7565b5060ff81166080524660a052620000c2620001b2565b60c0525050506001600160a01b038116620000f857604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b62000103816200024e565b50600160115562000116888888620002a0565b62000125858585858562000326565b6001600160a01b038b1660e05260148054604080516020808402820181019092528281529291908301828280156200018757602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162000168575b50505050509250620001a18a8a8d620005b260201b60201c565b505050505050505050505062001a1d565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051620001e6919062001483565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b601080546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b825160208401516040850151620002b992919062000855565b620002c660003362000915565b50620002f37f477fc23fb51bb5d5aa814872a393b0e4f35d0916c7503c0fd96584681070d4108362000915565b50620003207f74e458455daa935f28c556b43e0cc4ad001a8a090f5feee376681e97d4618f468262000915565b50505050565b600e80546001600160a01b038087166001600160a01b03199283168117909355600f80549189169190921617905560408051631a0fcb6560e31b815290516000929163d07e5b289160048083019260209291908290030181865afa15801562000393573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b9919062001501565b845190915060005b81811015620005a857848181518110620003df57620003df62001521565b6020026020010151600a600088848151811062000400576200040062001521565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208190555083818151811062000441576200044162001521565b6020026020010151600b600088848151811062000462576200046262001521565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506040518060400160405280846001600160a01b03166001600160a01b03168152602001878381518110620004c657620004c662001521565b60200260200101516001600160a01b03166001600160a01b0316815250600c6000888481518110620004fc57620004fc62001521565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000209060026200053492919062000e15565b50620005628682815181106200054e576200054e62001521565b6020026020010151620009c860201b60201c565b600d60008884815181106200057b576200057b62001521565b6020908102919091018101516001600160a01b0316825281019190915260400160002055600101620003c1565b5050505050505050565b620005be813062000b52565b6040805160a08082018352600080835260208084018290526060848601819052808501819052306080808701829052875195860188528486528584018590528588018390528583018390528501528551600280825291810190965260109560019594939290919082015b6200063262000e7f565b815260200190600190039081620006285790505090506040518060400160405280868152602001848152508160008151811062000673576200067362001521565b602002602001018190525060405180604001604052808581526020018381525081600181518110620006a957620006a962001521565b6020026020010181905250620006ee6040518060600160405280600063ffffffff16815260200160006001600160a01b03168152602001600063ffffffff1681525090565b306020820152627a120060408201526200076460408051610120810182526060808252602080830182905260008385018190528284018390526080840181905260a0840181905260c0840181905260e0840183905284519283018552808352908201819052928101929092529061010082015290565b89815260208082018a905230604080840191909152610100830184905260e08301859052805163313ce56760e01b81529051620008019284926000926001600160a01b038e169263313ce56792600480820193918290030181865afa158015620007d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007f89190620012fa565b60ff1662000c81565b601280546001600160a01b0319166001600160a01b039290921691821790556040517f7bb17726df1f3adee8aa00ba8e8bc5d6f182af3bbf77604639cb7f008dd3b4ed90600090a250505050505050505050565b61271081106200089a5760405162461bcd60e51b815260206004820152600f60248201526e46433a20496e76616c69642066656560881b6044820152606401620000ef565b600780546001600160a01b038581166001600160a01b0319928316811790935560088054918616919092168117909155600983905560408051928352602083019190915281018290527febd34b2df88ea5c9f67c04b13b08e5e63c2d17e269aab73b866fe47a8736a2649060600160405180910390a1505050565b60008281526006602090815260408083206001600160a01b038516845290915281205460ff16620009be5760008381526006602090815260408083206001600160a01b03861684529091529020805460ff19166001179055620009753390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001620009c2565b5060005b92915050565b600f546001600160a01b038281166000908152600b60205260408082205490516331d98b3f60e01b81529193849316916331d98b3f9162000a0f9160040190815260200190565b608060405180830381865afa15801562000a2d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a5391906200154a565b90506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000a96573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000abc9190620012fa565b60ff1690506000826040015160001962000ad79190620015f6565b62000ae49060126200171d565b62000af18360126200172e565b845162000b0891906001600160401b03166200173c565b62000b14919062001756565b90508062000b248360126200172e565b62000b318460126200172e565b62000b3d91906200173c565b62000b49919062001756565b95945050505050565b604080516001600160a01b038381166024830152841660448083019190915282518083039091018152606490910182526020810180516001600160e01b031663248a35ef60e11b1790529051600091829182916101679162000bb5919062001779565b6000604051808303816000865af19150503d806000811462000bf4576040519150601f19603f3d011682016040523d82523d6000602084013e62000bf9565b606091505b50915091508162000c0c57601562000c22565b8080602001905181019062000c22919062001797565b9250600383900b60161462000c7a5760405162461bcd60e51b815260206004820152601f60248201527f536166652073696e676c65206173736f63696174696f6e206661696c656421006044820152606401620000ef565b5050505050565b61010083015151600090849063ffffffff1615801562000cae57506101008101516040015163ffffffff16155b1562000cc5576101008101516276a7006040909101525b60008060006101676001600160a01b031634637812a04b60e01b8a8a8a60405160240162000cf693929190620018b4565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905162000d36919062001779565b60006040518083038185875af1925050503d806000811462000d75576040519150601f19603f3d011682016040523d82523d6000602084013e62000d7a565b606091505b50915091508162000d8f576015600062000da5565b8080602001905181019062000da59190620019e1565b95509250600383900b60161462000e0a5760405162461bcd60e51b815260206004820152602260248201527f53616665206372656174652066756e6769626c6520746f6b656e206661696c65604482015261642160f01b6064820152608401620000ef565b505050509392505050565b82805482825590600052602060002090810192821562000e6d579160200282015b8281111562000e6d57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000e36565b5062000e7b92915062000edd565b5090565b60405180604001604052806000815260200162000ed86040518060a0016040528060001515815260200160006001600160a01b03168152602001606081526020016060815260200160006001600160a01b031681525090565b905290565b5b8082111562000e7b576000815560010162000ede565b6001600160a01b038116811462000f0a57600080fd5b50565b805162000f1a8162000ef4565b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171562000f605762000f6062000f1f565b604052919050565b60005b8381101562000f8557818101518382015260200162000f6b565b50506000910152565b600082601f83011262000fa057600080fd5b81516001600160401b0381111562000fbc5762000fbc62000f1f565b62000fd1601f8201601f191660200162000f35565b81815284602083860101111562000fe757600080fd5b62000ffa82602083016020870162000f68565b949350505050565b6000606082840312156200101557600080fd5b604051606081016001600160401b03811182821017156200103a576200103a62000f1f565b806040525080915082516200104f8162000ef4565b81526020830151620010618162000ef4565b6020820152604092830151920191909152919050565b60006001600160401b0382111562001093576200109362000f1f565b5060051b60200190565b600082601f830112620010af57600080fd5b81516020620010c8620010c28362001077565b62000f35565b8083825260208201915060208460051b870101935086841115620010eb57600080fd5b602086015b8481101562001114578051620011068162000ef4565b8352918301918301620010f0565b509695505050505050565b600082601f8301126200113157600080fd5b8151602062001144620010c28362001077565b8083825260208201915060208460051b8701019350868411156200116757600080fd5b602086015b848110156200111457805183529183019183016200116c565b60008060008060008060008060008060006101a08c8e031215620011a857600080fd5b620011b38c62000f0d565b60208d0151909b506001600160401b03811115620011d057600080fd5b620011de8e828f0162000f8e565b60408e0151909b5090506001600160401b03811115620011fd57600080fd5b6200120b8e828f0162000f8e565b9950506200121d8d60608e0162001002565b97506200122d60c08d0162000f0d565b96506200123d60e08d0162000f0d565b95506200124e6101008d0162000f0d565b94506200125f6101208d0162000f0d565b6101408d01519094506001600160401b038111156200127d57600080fd5b6200128b8e828f016200109d565b6101608e015190945090506001600160401b03811115620012ab57600080fd5b620012b98e828f016200111f565b6101808e015190935090506001600160401b03811115620012d957600080fd5b620012e78e828f016200111f565b9150509295989b509295989b9093969950565b6000602082840312156200130d57600080fd5b815160ff811681146200131f57600080fd5b9392505050565b600181811c908216806200133b57607f821691505b6020821081036200135c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620013b2576000816000526020600020601f850160051c810160208610156200138d5750805b601f850160051c820191505b81811015620013ae5782815560010162001399565b5050505b505050565b81516001600160401b03811115620013d357620013d362000f1f565b620013eb81620013e4845462001326565b8462001362565b602080601f8311600181146200142357600084156200140a5750858301515b600019600386901b1c1916600185901b178555620013ae565b600085815260208120601f198616915b82811015620014545788860151825594840194600190910190840162001433565b5085821015620014735787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808354620014938162001326565b60018281168015620014ae5760018114620014c457620014f5565b60ff1984168752821515830287019450620014f5565b8760005260208060002060005b85811015620014ec5781548a820152908401908201620014d1565b50505082870194505b50929695505050505050565b6000602082840312156200151457600080fd5b81516200131f8162000ef4565b634e487b7160e01b600052603260045260246000fd5b8051600381900b811462000f1a57600080fd5b6000608082840312156200155d57600080fd5b604051608081016001600160401b03808211838310171562001583576200158362000f1f565b81604052845191508160070b82146200159b57600080fd5b9082526020840151908082168214620015b357600080fd5b506020820152620015c76040840162001537565b6040820152606083015160608201528091505092915050565b634e487b7160e01b600052601160045260246000fd5b60008260030b8260030b028060030b9150808214620016195762001619620015e0565b5092915050565b600181815b8085111562001661578160001904821115620016455762001645620015e0565b808516156200165357918102915b93841c939080029062001625565b509250929050565b6000826200167a57506001620009c2565b816200168957506000620009c2565b8160018114620016a25760028114620016ad57620016cd565b6001915050620009c2565b60ff841115620016c157620016c1620015e0565b50506001821b620009c2565b5060208310610133831016604e8410600b8410161715620016f2575081810a620009c2565b620016fe838362001620565b8060001904821115620017155762001715620015e0565b029392505050565b60006200131f60ff84168362001669565b60006200131f838362001669565b8082028115828204841417620009c257620009c2620015e0565b6000826200177457634e487b7160e01b600052601260045260246000fd5b500490565b600082516200178d81846020870162000f68565b9190910192915050565b600060208284031215620017aa57600080fd5b6200131f8262001537565b60008151808452620017cf81602086016020860162000f68565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015620018a757858303601f1901895281518051845284015160408585018190528151151581860152818601516001600160a01b039081166060808801919091529183015160a060808089018290529193909290916200186660e08a0186620017b5565b92860151898403603f1901858b0152929450620018848584620017b5565b9501511660c0979097019690965250509884019892509083019060010162001800565b5090979650505050505050565b6060815260008451610160806060850152620018d56101c0850183620017b5565b91506020870151605f1980868503016080870152620018f58483620017b5565b9350604089015191506200191460a08701836001600160a01b03169052565b60608901519150808685030160c0870152620019318483620017b5565b9350608089015191506200194960e087018315159052565b60a08901519150610100620019658188018463ffffffff169052565b60c08a0151151561012088015260e08a015187860383016101408901529250620019908584620017e3565b9450808a015192505050620019cd82860182805163ffffffff90811683526020808301516001600160a01b03169084015260409182015116910152565b505060208301949094525060400152919050565b60008060408385031215620019f557600080fd5b62001a008362001537565b9150602083015162001a128162000ef4565b809150509250929050565b60805160a05160c05160e05161463f62001a8f6000396000818161072701528181610d1301528181610ede0152818161184301528181611bda01528181611d470152818161206b0152612406015260006111e8015260006111b801526000818161066a01526110aa015261463f6000f3fe6080604052600436106103b85760003560e01c806388a320fe116101f2578063c4f59f9b1161010d578063db8bb3a1116100a0578063efa6f4251161006f578063efa6f42514610c88578063f2fde38b14610ca8578063f52a346814610cc8578063f98d06f014610cdb57600080fd5b8063db8bb3a114610bf0578063dd62ed3e14610c10578063eb4e159314610c48578063ef8b30f714610c6857600080fd5b8063d505accf116100dc578063d505accf14610b4d578063d547741f14610b6d578063d905777e14610b8d578063db7a682814610bc357600080fd5b8063c4f59f9b14610abf578063c63d75b614610761578063cd9cdfda14610ae1578063ce96cb7714610b2d57600080fd5b8063a8d5fd6511610185578063b4f6d61311610154578063b4f6d61314610a2b578063b5be920d14610a5f578063ba08765214610a7f578063bea9db6d14610a9f57600080fd5b8063a8d5fd65146109ab578063a9059cbb146109cb578063b3d7f6b9146109eb578063b460af9414610a0b57600080fd5b806394bf804d116101c157806394bf804d1461094e57806395d89b411461096e5780639feb8f5014610983578063a217fddf1461099657600080fd5b806388a320fe146108da5780638da5cb5b146108fa5780638f12c2f41461091857806391d148541461092e57600080fd5b806335d16e17116102e25780635ab764ed11610275578063715018a611610244578063715018a6146108505780637a07bf3a146108655780637bb7bed11461088d5780637ecebe00146108ad57600080fd5b80635ab764ed146107c3578063695135ec146107e35780636e553f651461080357806370a082311461082357600080fd5b806338d52e0f116102b157806338d52e0f14610715578063402d267d14610761578063490a0af9146107835780634cdad506146107a357600080fd5b806335d16e171461069e578063362a3fad146106b35780633644e515146106e057806336568abe146106f557600080fd5b806318160ddd1161035a578063248a9ca311610329578063248a9ca3146105e65780632c62fa10146106165780632f2ff15d14610636578063313ce5671461065857600080fd5b806318160ddd146105325780631e5eb1d014610548578063204120bc1461059957806323b872dd146105c657600080fd5b806306fdde031161039657806306fdde0314610449578063095ea7b31461046b5780630a28a4771461048b57806316ad0672146104ab57600080fd5b806301e1d114146103bd57806301ffc9a7146103e557806305fb2a5114610415575b600080fd5b3480156103c957600080fd5b506103d2610cfb565b6040519081526020015b60405180910390f35b3480156103f157600080fd5b506104056104003660046138f2565b610d8b565b60405190151581526020016103dc565b34801561042157600080fd5b506103d27f74e458455daa935f28c556b43e0cc4ad001a8a090f5feee376681e97d4618f4681565b34801561045557600080fd5b5061045e610dc2565b6040516103dc919061396c565b34801561047757600080fd5b5061040561048636600461399b565b610e50565b34801561049757600080fd5b506103d26104a63660046139c5565b610ebc565b3480156104b757600080fd5b506104ff6104c63660046139de565b6015602052600090815260409020805460018201546003830154600484015460058501546006909501549394929360ff90921692909186565b604080519687526020870195909552921515938501939093526060840152608083019190915260a082015260c0016103dc565b34801561053e57600080fd5b506103d260025481565b34801561055457600080fd5b50600754600854600954610573926001600160a01b0390811692169083565b604080516001600160a01b039485168152939092166020840152908201526060016103dc565b3480156105a557600080fd5b506103d26105b43660046139de565b600d6020526000908152604090205481565b3480156105d257600080fd5b506104056105e13660046139f9565b610f73565b3480156105f257600080fd5b506103d26106013660046139c5565b60009081526006602052604090206001015490565b34801561062257600080fd5b506103d26106313660046139de565b611053565b34801561064257600080fd5b50610656610651366004613a35565b611075565b005b34801561066457600080fd5b5061068c7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016103dc565b3480156106aa57600080fd5b506103d26110a0565b3480156106bf57600080fd5b506106d36106ce3660046139de565b6110d0565b6040516103dc9190613a61565b3480156106ec57600080fd5b506103d26111b4565b34801561070157600080fd5b50610656610710366004613a35565b61120a565b34801561072157600080fd5b506107497f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103dc565b34801561076d57600080fd5b506103d261077c3660046139de565b5060001990565b34801561078f57600080fd5b506106d361079e366004613b59565b611242565b3480156107af57600080fd5b506103d26107be3660046139c5565b611525565b3480156107cf57600080fd5b506103d26107de366004613c1b565b611547565b3480156107ef57600080fd5b506103d26107fe3660046139de565b61168c565b34801561080f57600080fd5b506103d261081e366004613a35565b6117fd565b34801561082f57600080fd5b506103d261083e3660046139de565b60036020526000908152604090205481565b34801561085c57600080fd5b50610656611939565b6108786108733660046139c5565b61194d565b604080519283526020830191909152016103dc565b34801561089957600080fd5b506107496108a83660046139c5565b611afc565b3480156108b957600080fd5b506103d26108c83660046139de565b60056020526000908152604090205481565b3480156108e657600080fd5b50600e54610749906001600160a01b031681565b34801561090657600080fd5b506010546001600160a01b0316610749565b34801561092457600080fd5b506103d260135481565b34801561093a57600080fd5b50610405610949366004613a35565b611b26565b34801561095a57600080fd5b506103d2610969366004613a35565b611b51565b34801561097a57600080fd5b5061045e611c0b565b61065661099136600461399b565b611c18565b3480156109a257600080fd5b506103d2600081565b3480156109b757600080fd5b50601254610749906001600160a01b031681565b3480156109d757600080fd5b506104056109e636600461399b565b611f6c565b3480156109f757600080fd5b506103d2610a063660046139c5565b611fd2565b348015610a1757600080fd5b506103d2610a26366004613c45565b611ff4565b348015610a3757600080fd5b506103d27f477fc23fb51bb5d5aa814872a393b0e4f35d0916c7503c0fd96584681070d41081565b348015610a6b57600080fd5b50610656610a7a366004613c81565b6120f2565b348015610a8b57600080fd5b506103d2610a9a366004613c45565b612331565b348015610aab57600080fd5b50610656610aba366004613c81565b612437565b348015610acb57600080fd5b50610ad46125d3565b6040516103dc9190613cc2565b348015610aed57600080fd5b50610b18610afc3660046139de565b6016602052600090815260409020805460019091015460ff1682565b604080519283529015156020830152016103dc565b348015610b3957600080fd5b506103d2610b483660046139de565b612635565b348015610b5957600080fd5b50610656610b68366004613d12565b612640565b348015610b7957600080fd5b50610656610b88366004613a35565b612884565b348015610b9957600080fd5b506103d2610ba83660046139de565b6001600160a01b031660009081526003602052604090205490565b348015610bcf57600080fd5b506103d2610bde3660046139de565b600b6020526000908152604090205481565b348015610bfc57600080fd5b50610749610c0b36600461399b565b6128a9565b348015610c1c57600080fd5b506103d2610c2b366004613c1b565b600460209081526000928352604080842090915290825290205481565b348015610c5457600080fd5b50610656610c6336600461399b565b6128e1565b348015610c7457600080fd5b506103d2610c833660046139c5565b61299c565b348015610c9457600080fd5b50610656610ca3366004613d7f565b6129bd565b348015610cb457600080fd5b50610656610cc33660046139de565b612a02565b610656610cd6366004613c81565b612a40565b348015610ce757600080fd5b50600f54610749906001600160a01b031681565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d869190613de6565b905090565b60006001600160e01b03198216637965db0b60e01b1480610dbc57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008054610dcf90613dff565b80601f0160208091040260200160405190810160405280929190818152602001828054610dfb90613dff565b8015610e485780601f10610e1d57610100808354040283529160200191610e48565b820191906000526020600020905b815481529060010190602001808311610e2b57829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610eab9086815260200190565b60405180910390a350600192915050565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f499190613de6565b90508015610f6a57610f6581610f5d610cfb565b859190612b20565b610f6c565b825b9392505050565b6001600160a01b03831660009081526004602090815260408083203384529091528120546000198114610fcf57610faa8382613e4f565b6001600160a01b03861660009081526004602090815260408083203384529091529020555b6001600160a01b03851660009081526003602052604081208054859290610ff7908490613e4f565b90915550506001600160a01b03808516600081815260036020526040908190208054870190555190918716906000805160206145ea833981519152906110409087815260200190565b60405180910390a3506001949350505050565b6001600160a01b038116600090815260036020526040812054610dbc90611525565b60008281526006602052604090206001015461109081612b46565b61109a8383612b50565b50505050565b6000610d866107be7f0000000000000000000000000000000000000000000000000000000000000000600a613f46565b60606001600160a01b0382166111015760405162461bcd60e51b81526004016110f890613f55565b60405180910390fd5b6014546000906001600160401b0381111561111e5761111e613aa5565b604051908082528060200260200182016040528015611147578160200160208202803683370190505b50905060005b6014548110156111ad57611188846014838154811061116e5761116e613f96565b6000918252602090912001546001600160a01b0316611547565b82828151811061119a5761119a613f96565b602090810291909101015260010161114d565b5092915050565b60007f000000000000000000000000000000000000000000000000000000000000000046146111e557610d86612be4565b507f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b03811633146112335760405163334bd91960e11b815260040160405180910390fd5b61123d8282612c7e565b505050565b825160609082146112a05760405162461bcd60e51b815260206004820152602260248201527f546f6b656e20707269636573206172726179206c656e677468206d69736d61746044820152610c6d60f31b60648201526084016110f8565b600080836001600160401b038111156112bb576112bb613aa5565b6040519080825280602002602001820160405280156112e4578160200160208202803683370190505b50905060005b848110156113f35785858281811061130457611304613f96565b905060200201602081019061131991906139de565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561135f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113839190613de6565b82828151811061139557611395613f96565b6020026020010181815250508681815181106113b3576113b3613f96565b60200260200101518282815181106113cd576113cd613f96565b60200260200101516113df9190613fac565b6113e99084613fc3565b92506001016112ea565b506000846001600160401b0381111561140e5761140e613aa5565b604051908082528060200260200182016040528015611437578160200160208202803683370190505b50905060005b8581101561151a576000612710600a60008a8a8681811061146057611460613f96565b905060200201602081019061147591906139de565b6001600160a01b031681526020810191909152604001600020546114999087613fac565b6114a39190613fd6565b905060008983815181106114b9576114b9613f96565b6020026020010151826114cc9190613fd6565b90508483815181106114e0576114e0613f96565b6020026020010151816114f39190613e4f565b84848151811061150557611505613f96565b6020908102919091010152505060010161143d565b509695505050505050565b6002546000908015610f6a57610f6561153c610cfb565b600254859190612ceb565b60006001600160a01b03831661156f5760405162461bcd60e51b81526004016110f890613f55565b6001600160a01b0382166115d75760405162461bcd60e51b815260206004820152602960248201527f5661756c743a2052657761726420746f6b656e20616464726573732063616e2760448201526874206265207a65726f60b81b60648201526084016110f8565b6001600160a01b03808316600081815260166020908152604080832080549589168452601583528184208054958552600281019093529083205490949391926116208286613e4f565b9050600061163082600186612ceb565b90506000429050600061164d838860040154896005015485612d09565b50600954909a508a91501561167d57600061166d8b600760020154612d71565b9050611679818c613e4f565b9a50505b50505050505050505092915050565b600f546001600160a01b038281166000908152600b60205260408082205490516331d98b3f60e01b81529193849316916331d98b3f916116d29160040190815260200190565b608060405180830381865afa1580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117139190614033565b90506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611755573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177991906140ab565b60ff1690506000826040015160001961179291906140c8565b61179d906012613f46565b6117a88360126140e8565b84516117bd91906001600160401b0316613fac565b6117c79190613fd6565b9050806117d58360126140e8565b6117e08460126140e8565b6117ea9190613fac565b6117f49190613fd6565b95945050505050565b6000611807612df1565b6118108361299c565b90508060000361183657604051636e3699b760e11b8152600481018490526024016110f8565b61186b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086612e1b565b826013600082825461187d9190613fc3565b9091555050601254604080516000808252602082019092526118c6926001600160a01b0316918691906118c0565b60608152602001906001900390816118ab5790505b50612ea5565b50506012546118e0906001600160a01b0316303386612fe8565b60408051848152602081018390526001600160a01b0384169133917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7910160405180910390a361192f83613118565b610dbc6001601155565b6119416132d1565b61194b60006132fe565b565b60145460085460009182916001600160a01b031642855b838110801561197c575061197987600a613fc3565b81105b15611aef576000806014838154811061199757611997613f96565b600091825260208083209091015433835260158252604080842080546001600160a01b03909316808652600290910184528185205460169094529320549293506119ee926001926119e791613e4f565b9190612ceb565b336000908152601560205260408120600481015460059091015492945090918291611a1c9186919089612d09565b33600090815260156020526040812060060180549395509193508492611a43908490613fc3565b90915550506001600160a01b03831660008181526016602090815260408083205433808552601580855283862096865260028701855292852091909155928390529052600690910154611a9a918591309190612fe8565b336000908152601560205260408120600601556001600160a01b03871615611ad85733600090815260156020526040902060060154611ad890613350565b505050508080611ae7906140f4565b915050611964565b5094959194509092505050565b60148181548110611b0c57600080fd5b6000918252602090912001546001600160a01b0316905081565b60009182526006602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000611b5b612df1565b611b7082611b6885611fd2565b925082613445565b8060136000828254611b829190613fc3565b909155505060408051828152602081018590526001600160a01b0384169133917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7910160405180910390a3611c026001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084612e1b565b61192f81613118565b60018054610dcf90613dff565b7f477fc23fb51bb5d5aa814872a393b0e4f35d0916c7503c0fd96584681070d410611c4281612b46565b6001600160a01b038316611ca35760405162461bcd60e51b815260206004820152602260248201527f5661756c743a20546f6b656e20616464726573732063616e2774206265207a65604482015261726f60f01b60648201526084016110f8565b81600003611cf35760405162461bcd60e51b815260206004820152601b60248201527f5661756c743a20416d6f756e742063616e2774206265207a65726f000000000060448201526064016110f8565b601354600003611d455760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a204e6f20746f6b656e207374616b65642079657400000000000060448201526064016110f8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614158015611d9557506012546001600160a01b03848116911614155b611df95760405162461bcd60e51b815260206004820152602f60248201527f5661756c743a2052657761726420616e64205374616b696e6720746f6b656e7360448201526e2063616e6e6f742062652073616d6560881b60648201526084016110f8565b601454600a03611e1c57604051637561e0ab60e01b815260040160405180910390fd5b6000611e36600160135485612ceb9092919063ffffffff16565b6001600160a01b038516600090815260166020526040902060018101549192509060ff16611edf5760148054600180820183556000929092527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0180546001600160a01b0319166001600160a01b038816179055818101805460ff19169091179055818155611ec5853061349f565b611eda6001600160a01b038616333087612e1b565b611f22565b6001600160a01b03851660009081526016602052604081208054849290611f07908490613fc3565b90915550611f2290506001600160a01b038616333087612e1b565b846001600160a01b03167fac24935fd910bc682b5ccb1a07b718cadf8cf2f6d1404c4f3ddc3662dae40e2985604051611f5d91815260200190565b60405180910390a25050505050565b33600090815260036020526040812080548391908390611f8d908490613e4f565b90915550506001600160a01b038316600081815260036020526040908190208054850190555133906000805160206145ea83398151915290610eab9086815260200190565b6002546000908015610f6a57610f65611fe9610cfb565b600254859190612b20565b6000611ffe612df1565b612007846135bd565b83601360008282546120199190613e4f565b9091555050601254612036906001600160a01b0316333087612fe8565b60125460408051600081526020810190915261205d916001600160a01b03169086906135f5565b506120926001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168486613721565b826001600160a01b0316826001600160a01b03167ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb56786846040516120e0929190918252602082015260400190565b60405180910390a3610f6c6001601155565b60005b8181101561123d57600083838381811061211157612111613f96565b905060200201602081019061212691906139de565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa158015612170573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121949190613de6565b6001600160a01b0383166000908152600d60205260408120549192506121ba8284613fac565b6001600160a01b0385166000908152600a602052604081205491925090612710906121e59084613fac565b6121ef9190613fd6565b905060006121fd8483613fd6565b90508085111561231f5760006122138287613e4f565b600e5460405163095ea7b360e01b81526001600160a01b0391821660048201526024810183905291925088169063095ea7b3906044016020604051808303816000875af1158015612268573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228c919061410d565b50600e546001600160a01b038881166000908152600c602052604080822090516318cbafe560e01b815292909316926318cbafe5926122d5928692909130904290600401614179565b6000604051808303816000875af11580156122f4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261231c91908101906141b5565b50505b5050600190940193506120f592505050565b600061233b612df1565b61234484611525565b9050806000036123845760405162461bcd60e51b815260206004820152600b60248201526a5a45524f5f41535345545360a81b60448201526064016110f8565b61238d84611525565b90506123998285613799565b80601360008282546123ab9190613e4f565b909155505060408051828152602081018690526001600160a01b0380861692908516917ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567910160405180910390a361242d6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168483613721565b610f6c6001601155565b80606060005b828110156124b657600d600086868481811061245b5761245b613f96565b905060200201602081019061247091906139de565b6001600160a01b03166001600160a01b03168152602001908152602001600020548282815181106124a3576124a3613f96565b602090810291909101015260010161243d565b5060006124c4828686611242565b90506124d085856120f2565b805160005b818110156125ca57600e5483516001600160a01b0390911690637ff36ab59085908490811061250657612506613f96565b6020026020010151600c60008b8b8781811061252457612524613f96565b905060200201602081019061253991906139de565b6001600160a01b03166001600160a01b0316815260200190815260200160002030426040518563ffffffff1660e01b815260040161257a9493929190614245565b6000604051808303816000875af1158015612599573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125c191908101906141b5565b506001016124d5565b50505050505050565b6060601480548060200260200160405190810160405280929190818152602001828054801561262b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161260d575b5050505050905090565b6000610dbc82611053565b428410156126905760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064016110f8565b6000600161269c6111b4565b6001600160a01b038a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156127a8573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906127de5750876001600160a01b0316816001600160a01b0316145b61281b5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b60448201526064016110f8565b6001600160a01b0390811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b60008281526006602052604090206001015461289f81612b46565b61109a8383612c7e565b600c60205281600052604060002081815481106128c557600080fd5b6000918252602090912001546001600160a01b03169150829050565b61271081106129325760405162461bcd60e51b815260206004820152601760248201527f50657263656e746167652065786365656473203130302500000000000000000060448201526064016110f8565b6001600160a01b0382166129805760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b60448201526064016110f8565b6001600160a01b039091166000908152600a6020526040902055565b6002546000908015610f6a57610f6560016129b5610cfb565b859190612ceb565b7f74e458455daa935f28c556b43e0cc4ad001a8a090f5feee376681e97d4618f466129e781612b46565b6129fe8260000151836020015184604001516137fb565b5050565b612a0a6132d1565b6001600160a01b038116612a3457604051631e4fbdf760e01b8152600060048201526024016110f8565b612a3d816132fe565b50565b600f5460405163d47eed4560e01b81526000916001600160a01b03169063d47eed4590612a7390869086906004016142a3565b602060405180830381865afa158015612a90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab49190613de6565b600f54604051631df3cbc560e31b81529192506001600160a01b03169063ef9e5e28908390612ae990879087906004016142a3565b6000604051808303818588803b158015612b0257600080fd5b505af1158015612b16573d6000803e3d6000fd5b5050505050505050565b6000826000190484118302158202612b3757600080fd5b50910281810615159190040190565b612a3d81336138b9565b6000612b5c8383611b26565b612bdc5760008381526006602090815260408083206001600160a01b03861684529091529020805460ff19166001179055612b943390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610dbc565b506000610dbc565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051612c16919061433e565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000612c8a8383611b26565b15612bdc5760008381526006602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610dbc565b6000826000190484118302158202612d0257600080fd5b5091020490565b600080848311612d1e57506000905084612d68565b838310612d3057508490506000612d68565b6000612d3c8685613e4f565b90506000612d4a8787613e4f565b9050612d57888383612ceb565b9350612d638489613e4f565b925050505b94509492505050565b6000612710612d808385613fac565b1015612dda5760405162461bcd60e51b8152602060048201526024808201527f46433a20546f6f20736d616c6c20616d6f756e7420746f20636f6e73696465726044820152632066656560e01b60648201526084016110f8565b612710612de78385613fac565b610f6c9190613fd6565b600260115403612e1457604051633ee5aeb560e01b815260040160405180910390fd5b6002601155565b60006040516323b872dd60e01b81528460048201528360248201528260448201526020600060648360008a5af13d15601f3d1160016000511416171691505080612e9e5760405162461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b60448201526064016110f8565b5050505050565b6000606060008060006101676001600160a01b031663278e0b8860e01b898989604051602401612ed7939291906143df565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612f159190614463565b6000604051808303816000865af19150503d8060008114612f52576040519150601f19603f3d011682016040523d82523d6000602084013e612f57565b606091505b509150915081612f7a576040805160008082526020820190925260159190612f8e565b80806020019051810190612f8e919061447f565b90965094509250600383900b601614612fdd5760405162461bcd60e51b815260206004820152601160248201527053616665206d696e74206661696c65642160781b60448201526064016110f8565b505050935093915050565b604080516001600160a01b038681166024830152858116604483015284166064820152600783900b6084808301919091528251808303909101815260a490910182526020810180516001600160e01b031663eca3691760e01b1790529051600091829182916101679161305b9190614463565b6000604051808303816000865af19150503d8060008114613098576040519150601f19603f3d011682016040523d82523d6000602084013e61309d565b606091505b5091509150816130ae5760156130c2565b808060200190518101906130c29190614539565b9250600383900b6016146125ca5760405162461bcd60e51b815260206004820152601b60248201527f5361666520746f6b656e207472616e73666572206661696c656421000000000060448201526064016110f8565b3360009081526015602052604090206003015460ff166132715760145460005b818110156131fc5760006014828154811061315557613155613f96565b60009182526020808320909101546001600160a01b03168083526016825260408084205433855260158452818520838652600201845281852055805163053aa6f360e11b815290519194508493630a754de693600480840194919391929183900301908290875af11580156131ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f29190613de6565b5050600101613138565b5033600090815260156020526040902082815560038101805460ff1916600190811790915542908201819055600490910181905561323d9062278d00613fc3565b3360009081526015602052604081206005019190915560138054849290613265908490613fc3565b90915550612a3d915050565b61327b600061194d565b5050336000908152601560205260408120805483929061329c908490613fc3565b909155505033600090815260156020526040812042600190910155601380548392906132c9908490613fc3565b909155505050565b6010546001600160a01b0316331461194b5760405163118cdaa760e01b81523360048201526024016110f8565b601080546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6008546009546001600160a01b0390911690600090613370908490612d71565b6040516370a0823160e01b815233600482015290915081906001600160a01b038416906370a0823190602401602060405180830381865afa1580156133b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133dd9190613de6565b101561342b5760405162461bcd60e51b815260206004820152601e60248201527f46433a20496e73756666696369656e7420746f6b656e2062616c616e6365000060448201526064016110f8565b60075461123d90839033906001600160a01b031684612fe8565b80600260008282546134579190613fc3565b90915550506001600160a01b0382166000818152600360209081526040808320805486019055518481526000805160206145ea83398151915291015b60405180910390a35050565b604080516001600160a01b038381166024830152841660448083019190915282518083039091018152606490910182526020810180516001600160e01b031663248a35ef60e11b179052905160009182918291610167916135009190614463565b6000604051808303816000865af19150503d806000811461353d576040519150601f19603f3d011682016040523d82523d6000602084013e613542565b606091505b509150915081613553576015613567565b808060200190518101906135679190614539565b9250600383900b601614612e9e5760405162461bcd60e51b815260206004820152601f60248201527f536166652073696e676c65206173736f63696174696f6e206661696c6564210060448201526064016110f8565b33600090815260156020526040812080548392906135dc908490613e4f565b9250508190555080601360008282546132c99190613e4f565b6000806000806101676001600160a01b031663acb9cff960e01b88888860405160240161362493929190614554565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516136629190614463565b6000604051808303816000865af19150503d806000811461369f576040519150601f19603f3d011682016040523d82523d6000602084013e6136a4565b606091505b5091509150816136b757601560006136cb565b808060200190518101906136cb91906145bf565b94509250600383900b6016146137175760405162461bcd60e51b815260206004820152601160248201527053616665206275726e206661696c65642160781b60448201526064016110f8565b5050509392505050565b600060405163a9059cbb60e01b8152836004820152826024820152602060006044836000895af13d15601f3d116001600051141617169150508061109a5760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b60448201526064016110f8565b6001600160a01b038216600090815260036020526040812080548392906137c1908490613e4f565b90915550506002805482900390556040518181526000906001600160a01b038416906000805160206145ea83398151915290602001613493565b612710811061383e5760405162461bcd60e51b815260206004820152600f60248201526e46433a20496e76616c69642066656560881b60448201526064016110f8565b600780546001600160a01b038581166001600160a01b0319928316811790935560088054918616919092168117909155600983905560408051928352602083019190915281018290527febd34b2df88ea5c9f67c04b13b08e5e63c2d17e269aab73b866fe47a8736a2649060600160405180910390a1505050565b6138c38282611b26565b6129fe5760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016110f8565b60006020828403121561390457600080fd5b81356001600160e01b031981168114610f6c57600080fd5b60005b8381101561393757818101518382015260200161391f565b50506000910152565b6000815180845261395881602086016020860161391c565b601f01601f19169290920160200192915050565b602081526000610f6c6020830184613940565b80356001600160a01b038116811461399657600080fd5b919050565b600080604083850312156139ae57600080fd5b6139b78361397f565b946020939093013593505050565b6000602082840312156139d757600080fd5b5035919050565b6000602082840312156139f057600080fd5b610f6c8261397f565b600080600060608486031215613a0e57600080fd5b613a178461397f565b9250613a256020850161397f565b9150604084013590509250925092565b60008060408385031215613a4857600080fd5b82359150613a586020840161397f565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015613a9957835183529284019291840191600101613a7d565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613ae357613ae3613aa5565b604052919050565b60006001600160401b03821115613b0457613b04613aa5565b5060051b60200190565b60008083601f840112613b2057600080fd5b5081356001600160401b03811115613b3757600080fd5b6020830191508360208260051b8501011115613b5257600080fd5b9250929050565b600080600060408486031215613b6e57600080fd5b83356001600160401b0380821115613b8557600080fd5b818601915086601f830112613b9957600080fd5b81356020613bae613ba983613aeb565b613abb565b82815260059290921b8401810191818101908a841115613bcd57600080fd5b948201945b83861015613beb57853582529482019490820190613bd2565b97505087013592505080821115613c0157600080fd5b50613c0e86828701613b0e565b9497909650939450505050565b60008060408385031215613c2e57600080fd5b613c378361397f565b9150613a586020840161397f565b600080600060608486031215613c5a57600080fd5b83359250613c6a6020850161397f565b9150613c786040850161397f565b90509250925092565b60008060208385031215613c9457600080fd5b82356001600160401b03811115613caa57600080fd5b613cb685828601613b0e565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b81811015613a995783516001600160a01b031683529284019291840191600101613cde565b60ff81168114612a3d57600080fd5b600080600080600080600060e0888a031215613d2d57600080fd5b613d368861397f565b9650613d446020890161397f565b955060408801359450606088013593506080880135613d6281613d03565b9699959850939692959460a0840135945060c09093013592915050565b600060608284031215613d9157600080fd5b604051606081018181106001600160401b0382111715613db357613db3613aa5565b604052613dbf8361397f565b8152613dcd6020840161397f565b6020820152604083013560408201528091505092915050565b600060208284031215613df857600080fd5b5051919050565b600181811c90821680613e1357607f821691505b602082108103613e3357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dbc57610dbc613e39565b600181815b80851115613e9d578160001904821115613e8357613e83613e39565b80851615613e9057918102915b93841c9390800290613e67565b509250929050565b600082613eb457506001610dbc565b81613ec157506000610dbc565b8160018114613ed75760028114613ee157613efd565b6001915050610dbc565b60ff841115613ef257613ef2613e39565b50506001821b610dbc565b5060208310610133831016604e8410600b8410161715613f20575081810a610dbc565b613f2a8383613e62565b8060001904821115613f3e57613f3e613e39565b029392505050565b6000610f6c60ff841683613ea5565b60208082526021908201527f5661756c743a205573657220616464726573732063616e2774206265207a65726040820152606f60f81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8082028115828204841417610dbc57610dbc613e39565b80820180821115610dbc57610dbc613e39565b600082613ff357634e487b7160e01b600052601260045260246000fd5b500490565b8051600781900b811461399657600080fd5b80516001600160401b038116811461399657600080fd5b8051600381900b811461399657600080fd5b60006080828403121561404557600080fd5b604051608081018181106001600160401b038211171561406757614067613aa5565b60405261407383613ff8565b81526140816020840161400a565b602082015261409260408401614021565b6040820152606083015160608201528091505092915050565b6000602082840312156140bd57600080fd5b8151610f6c81613d03565b60008260030b8260030b028060030b91508082146111ad576111ad613e39565b6000610f6c8383613ea5565b60006001820161410657614106613e39565b5060010190565b60006020828403121561411f57600080fd5b81518015158114610f6c57600080fd5b600081548084526020808501945083600052602060002060005b8381101561416e5781546001600160a01b031687529582019560019182019101614149565b509495945050505050565b85815284602082015260a06040820152600061419860a083018661412f565b6001600160a01b0394909416606083015250608001529392505050565b600060208083850312156141c857600080fd5b82516001600160401b038111156141de57600080fd5b8301601f810185136141ef57600080fd5b80516141fd613ba982613aeb565b81815260059190911b8201830190838101908783111561421c57600080fd5b928401925b8284101561423a57835182529284019290840190614221565b979650505050505050565b84815260806020820152600061425e608083018661412f565b6001600160a01b03949094166040830152506060015292915050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208082528181018390526000906040600585901b8401810190840186845b8781101561433157868403603f190183528135368a9003601e190181126142e857600080fd5b890185810190356001600160401b0381111561430357600080fd5b80360382131561431257600080fd5b61431d86828461427a565b9550505091840191908401906001016142c2565b5091979650505050505050565b60008083548160018260011c9150600183168061435c57607f831692505b6020808410820361437b57634e487b7160e01b86526022600452602486fd5b81801561438f57600181146143a4576143d1565b60ff19861689528415158502890196506143d1565b60008a81526020902060005b868110156143c95781548b8201529085019083016143b0565b505084890196505b509498975050505050505050565b60006060820160018060a01b038616835260206001600160401b03861660208501526060604085015281855180845260808601915060808160051b87010193506020870160005b8281101561445457607f19888703018452614442868351613940565b95509284019290840190600101614426565b50939998505050505050505050565b6000825161447581846020870161391c565b9190910192915050565b60008060006060848603121561449457600080fd5b61449d84614021565b925060206144ac81860161400a565b925060408501516001600160401b038111156144c757600080fd5b8501601f810187136144d857600080fd5b80516144e6613ba982613aeb565b81815260059190911b8201830190838101908983111561450557600080fd5b928401925b8284101561452a5761451b84613ff8565b8252928401929084019061450a565b80955050505050509250925092565b60006020828403121561454b57600080fd5b610f6c82614021565b6001600160a01b03841681526001600160401b0383166020808301919091526060604083018190528351908301819052600091848101916080850190845b818110156145b157845160070b83529383019391830191600101614592565b509098975050505050505050565b600080604083850312156145d257600080fd5b6145db83614021565b9150613a586020840161400a56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122025368c444359961ce7f805b37a03a62001beb48f4db5d2380638d791415e62ca64736f6c63430008180033","sourceMap":"819:19659:102:-:0;;;2766:804;;;;;;;;;;;;;;;;;;:::i;:::-;3223:10;3175:5;3182:7;3191:11;-1:-1:-1;;;;;3191:20:102;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2063:4:99;:12;2070:5;2063:4;:12;:::i;:::-;-1:-1:-1;2085:6:99;:16;2094:7;2085:6;:16;:::i;:::-;-1:-1:-1;2111:20:99;;;;;2161:13;2142:32;;2211:24;:22;:24::i;:::-;2184:51;;-1:-1:-1;;;;;;;;1273:26:141;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;9497:51:165;9470:18;;1322:31:141;;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;1713:1:154;1917:7;:21;3245:81:102::2;3269:10:::0;3281:22;3305:20;3245:23:::2;:81::i;:::-;3336:88;3357:5:::0;3364:11;3377:13;3392:20;3414:9;3336:20:::2;:88::i;:::-;-1:-1:-1::0;;;;;3435:19:102;::::2;;::::0;3480:12:::2;3464:28:::0;;::::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;3480:12;3464:28;;::::2;3480:12:::0;3464:28;;::::2;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;3464:28:102::2;::::0;;;;;::::2;::::0;::::2;;::::0;;::::2;;;;;;;;;;;3503:60;3535:5;3542:7;3551:11;3503:31;;;:60;;:::i;:::-;2766:804:::0;;;;;;;;;;;819:19659;;5449:446:99;5514:7;5611:95;5744:4;5728:22;;;;;;:::i;:::-;;;;;;;;;;5579:295;;;10668:25:165;;;;10709:18;;10702:34;;;;5772:14:99;10752:18:165;;;10745:34;5808:13:99;10795:18:165;;;10788:34;5851:4:99;10838:19:165;;;10831:61;10640:19;;5579:295:99;;;;;;;;;;;;5552:336;;;;;;5533:355;;5449:446;:::o;2912:187:141:-;3004:6;;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;;3052:40;;3004:6;;;3020:17;3004:6;;3052:40;;2985:16;;3052:40;2975:124;2912:187;:::o;1440:463:0:-;1638:19;;1659:16;;;;1677:24;;;;1611:91;;1638:19;1659:16;1611:26;:91::i;:::-;1712:42;2232:4:139;1743:10:0;1712;:42::i;:::-;-1:-1:-1;1764:63:0;979:41;1805:21;1764:10;:63::i;:::-;-1:-1:-1;1837:59:0;1120:39;1876:19;1837:10;:59::i;:::-;;1440:463;;;:::o;1422:677:101:-;1645:10;:37;;-1:-1:-1;;;;;1645:37:101;;;-1:-1:-1;;;;;;1645:37:101;;;;;;;;1692:4;:19;;;;;;;;;;;;1738:18;;;-1:-1:-1;;;1738:18:101;;;;1645:10;;:37;1738:16;;:18;;;;;;;;;;;;;;1645:37;1738:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1788:13;;1722:34;;-1:-1:-1;1767:18:101;1811:282;1835:10;1831:1;:14;1811:282;;;1897:20;1918:1;1897:23;;;;;;;;:::i;:::-;;;;;;;1866:17;:28;1884:6;1891:1;1884:9;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1866:28:101;-1:-1:-1;;;;;1866:28:101;;;;;;;;;;;;:54;;;;1956:9;1966:1;1956:12;;;;;;;;:::i;:::-;;;;;;;1934:8;:19;1943:6;1950:1;1943:9;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1934:19:101;-1:-1:-1;;;;;1934:19:101;;;;;;;;;;;;:34;;;;1982:41;;;;;;;;2006:5;-1:-1:-1;;;;;1982:41:101;-1:-1:-1;;;;;1982:41:101;;;;;2013:6;2020:1;2013:9;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1982:41:101;-1:-1:-1;;;;;1982:41:101;;;;:9;:20;1992:6;1999:1;1992:9;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1982:20:101;-1:-1:-1;;;;;1982:20:101;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;2062:20;2072:6;2079:1;2072:9;;;;;;;;:::i;:::-;;;;;;;2062;;;:20;;:::i;:::-;2037:11;:22;2049:6;2056:1;2049:9;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2037:22:101;;;;;;;;;;;-1:-1:-1;2037:22:101;:45;1847:3;;1811:282;;;;1635:464;;1422:677;;;;;:::o;3576:1342:102:-;3699:63;3734:11;3756:4;3699:26;:63::i;:::-;819:19659;;;;;;;;;-1:-1:-1;819:19659:102;;;;;;;;;;;;;;;;;;;;;;;3990:4;819:19659;;;;3943:52;;;819:19659;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4112:51;4219:37;;4254:1;4219:37;;;;;;;;;20778:12;;20539:1;;819:19659;;-1:-1:-1;4219:37:102;;4254:1;4219:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;4174:82;;4277:59;;;;;;;;4306:13;4277:59;;;;4321:14;4277:59;;;4267:4;4272:1;4267:7;;;;;;;;:::i;:::-;;;;;;:69;;;;4356:57;;;;;;;;4385:12;4356:57;;;;4399:13;4356:57;;;4346:4;4351:1;4346:7;;;;;;;;:::i;:::-;;;;;;:67;;;;4424:40;819:19659;;;;;;;;;;;;;;;;-1:-1:-1;;;;;819:19659:102;;;;;;;;;;;;;4424:40;4508:4;4474:23;;;:39;4548:7;4523:22;;;:32;4566:47;819:19659;;;;;;;;;;;;;;;;;;;-1:-1:-1;819:19659:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4566:47;4623:21;;;4654:15;;;;:25;;;4717:4;4689:17;;;;:33;;;;4732:15;;;:24;;;4766:18;;;:25;;;4854:22;;-1:-1:-1;;;4854:22:102;;;;4809:68;;4623:8;;:13;;-1:-1:-1;;;;;4854:20:102;;;;;:22;;;;;;;;;;;:20;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4809:68;;:31;:68::i;:::-;4801:5;:76;;-1:-1:-1;;;;;;4801:76:102;-1:-1:-1;;;;;4801:76:102;;;;;;;;;4892:19;;;;-1:-1:-1;;4892:19:102;3689:1229;;;;;;;3576:1342;;;:::o;2974:343:0:-;876:6;3095:14;:29;3087:57;;;;-1:-1:-1;;;3087:57:0;;11500:2:165;3087:57:0;;;11482:21:165;11539:2;11519:18;;;11512:30;-1:-1:-1;;;11558:18:165;;;11551:45;11613:18;;3087:57:0;11298:339:165;3087:57:0;3154:9;:30;;-1:-1:-1;;;;;3154:30:0;;;-1:-1:-1;;;;;;3154:30:0;;;;;;;;3194:15;:24;;;;;;;;;;;;;;3228:23;:40;;;3283:27;;;11873:41:165;;;11945:4;11930:20;;11923:63;;;;12002:20;;11995:54;;;3283:27:0;;11823:2:165;11808:18;3283:27:0;;;;;;;2974:343;;;:::o;6179:316:139:-;6256:4;2954:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;2954:29:139;;;;;;;;;;;;6272:217;;6315:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;6315:29:139;;;;;;;;;:36;;-1:-1:-1;;6315:36:139;6347:4;6315:36;;;6397:12;735:10:152;;656:96;6397:12:139;-1:-1:-1;;;;;6370:40:139;6388:7;-1:-1:-1;;;;;6370:40:139;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:139;6424:11;;6272:217;-1:-1:-1;6473:5:139;6272:217;6179:316;;;;:::o;2235:447:101:-;2358:4;;-1:-1:-1;;;;;2372:15:101;;;2290:23;2372:15;;;:8;:15;;;;;;;2358:30;;-1:-1:-1;;;2358:30:101;;2290:23;;;;2358:4;;:13;;:30;;;;12206:25:165;;;12194:2;12179:18;;12060:177;2358:30:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2325:63;;2399:16;2433:5;-1:-1:-1;;;;;2418:30:101;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2399:51;;;;2461:26;2576:5;:10;;;-1:-1:-1;;2571:15:101;;;;:::i;:::-;2552:36;;:2;:36;:::i;:::-;2520:14;2526:8;2520:2;:14;:::i;:::-;2503:11;;2491:44;;;-1:-1:-1;;;;;2491:25:101;:44;:::i;:::-;2490:99;;;;:::i;:::-;2461:128;-1:-1:-1;2461:128:101;2638:14;2644:8;2638:2;:14;:::i;:::-;2619;2625:8;2619:2;:14;:::i;:::-;2618:35;;;;:::i;:::-;2617:58;;;;:::i;:::-;2599:76;2235:447;-1:-1:-1;;;;;2235:447:101:o;2617:470:12:-;2798:83;;;-1:-1:-1;;;;;15783:15:165;;;2798:83:12;;;15765:34:165;15835:15;;15815:18;;;;15808:43;;;;2798:83:12;;;;;;;;;;15700:18:165;;;;2798:83:12;;;;;;;-1:-1:-1;;;;;2798:83:12;-1:-1:-1;;;2798:83:12;;;2762:129;;-1:-1:-1;;;;;;246:5:12;;2762:129;;2798:83;2762:129;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2724:167;;;;2916:7;:67;;2576:2:10;2916:67:12;;;2937:6;2926:27;;;;;;;;;;;;:::i;:::-;2901:82;-1:-1:-1;3001:43:12;;;;2722:2:10;3001:43:12;2993:87;;;;-1:-1:-1;;;2993:87:12;;16565:2:165;2993:87:12;;;16547:21:165;16604:2;16584:18;;;16577:30;16643:33;16623:18;;;16616:61;16694:18;;2993:87:12;16363:355:165;2993:87:12;2686:401;;;2617:470;;:::o;6222:800::-;26027:12;;;;:19;6411:20;;6395:5;;26027:24;;;:61;;;;-1:-1:-1;26055:12:12;;;;:28;;;:33;;;26027:61;26023:145;;;26104:12;;;;325:7;26104:28;;;;:53;26023:145;6443:18:::1;6472:12:::0;6486:19:::1;246:5;-1:-1:-1::0;;;;;6509:22:12::1;6539:9;6603:48;;;6669:5;6692:18;6728:8;6563:187;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;6563:187:12;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;6563:187:12::1;-1:-1:-1::0;;;;;;6563:187:12;;::::1;::::0;;;::::1;::::0;;;6509:251;;::::1;::::0;6563:187;6509:251:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6471:289;;;;6801:7;:114;;2576:2:10;6912:1:12;6801:114;;;6834:6;6823:36;;;;;;;;;;;;:::i;:::-;6770:145:::0;-1:-1:-1;6770:145:12;-1:-1:-1;6933:43:12::1;::::0;;::::1;2722:2:10;6933:43:12;6925:90;;;::::0;-1:-1:-1;;;6925:90:12;;21319:2:165;6925:90:12::1;::::0;::::1;21301:21:165::0;21358:2;21338:18;;;21331:30;21397:34;21377:18;;;21370:62;-1:-1:-1;;;21448:18:165;;;21441:32;21490:19;;6925:90:12::1;21117:398:165::0;6925:90:12::1;6433:589;;;6222:800:::0;;;;;;:::o;819:19659:102:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;819:19659:102;-1:-1:-1;;;;;819:19659:102;;;;;;;;;;;-1:-1:-1;819:19659:102;;;;;;;-1:-1:-1;819:19659:102;;;-1:-1:-1;819:19659:102;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;819:19659:102;;;;;;;;;;;;;;;;-1:-1:-1;;;;;819:19659:102;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;14:138:165;-1:-1:-1;;;;;96:31:165;;86:42;;76:70;;142:1;139;132:12;76:70;14:138;:::o;157:152::-;243:13;;265:38;243:13;265:38;:::i;:::-;157:152;;;:::o;314:127::-;375:10;370:3;366:20;363:1;356:31;406:4;403:1;396:15;430:4;427:1;420:15;446:275;517:2;511:9;582:2;563:13;;-1:-1:-1;;559:27:165;547:40;;-1:-1:-1;;;;;602:34:165;;638:22;;;599:62;596:88;;;664:18;;:::i;:::-;700:2;693:22;446:275;;-1:-1:-1;446:275:165:o;726:250::-;811:1;821:113;835:6;832:1;829:13;821:113;;;911:11;;;905:18;892:11;;;885:39;857:2;850:10;821:113;;;-1:-1:-1;;968:1:165;950:16;;943:27;726:250::o;981:510::-;1035:5;1088:3;1081:4;1073:6;1069:17;1065:27;1055:55;;1106:1;1103;1096:12;1055:55;1129:13;;-1:-1:-1;;;;;1154:26:165;;1151:52;;;1183:18;;:::i;:::-;1227:55;1270:2;1251:13;;-1:-1:-1;;1247:27:165;1276:4;1243:38;1227:55;:::i;:::-;1307:2;1298:7;1291:19;1353:3;1346:4;1341:2;1333:6;1329:15;1325:26;1322:35;1319:55;;;1370:1;1367;1360:12;1319:55;1383:77;1457:2;1450:4;1441:7;1437:18;1430:4;1422:6;1418:17;1383:77;:::i;:::-;1478:7;981:510;-1:-1:-1;;;;981:510:165:o;1496:690::-;1563:5;1611:4;1599:9;1594:3;1590:19;1586:30;1583:50;;;1629:1;1626;1619:12;1583:50;1662:2;1656:9;1704:4;1692:17;;-1:-1:-1;;;;;1724:34:165;;1760:22;;;1721:62;1718:88;;;1786:18;;:::i;:::-;1826:10;1822:2;1815:22;;1855:6;1846:15;;1891:9;1885:16;1910:40;1942:7;1910:40;:::i;:::-;1959:23;;2027:2;2012:18;;2006:25;2040:40;2006:25;2040:40;:::i;:::-;2108:2;2096:15;;2089:32;2175:2;2160:18;;;2154:25;2137:15;;2130:50;;;;1496:690;;-1:-1:-1;1496:690:165:o;2191:183::-;2251:4;-1:-1:-1;;;;;2273:30:165;;2270:56;;;2306:18;;:::i;:::-;-1:-1:-1;2351:1:165;2347:14;2363:4;2343:25;;2191:183::o;2379:747::-;2444:5;2497:3;2490:4;2482:6;2478:17;2474:27;2464:55;;2515:1;2512;2505:12;2464:55;2544:6;2538:13;2570:4;2594:60;2610:43;2650:2;2610:43;:::i;:::-;2594:60;:::i;:::-;2676:3;2700:2;2695:3;2688:15;2728:4;2723:3;2719:14;2712:21;;2785:4;2779:2;2776:1;2772:10;2764:6;2760:23;2756:34;2742:48;;2813:3;2805:6;2802:15;2799:35;;;2830:1;2827;2820:12;2799:35;2866:4;2858:6;2854:17;2880:217;2896:6;2891:3;2888:15;2880:217;;;2969:3;2963:10;2986:38;3018:5;2986:38;:::i;:::-;3037:18;;3075:12;;;;2913;;2880:217;;;-1:-1:-1;3115:5:165;2379:747;-1:-1:-1;;;;;;2379:747:165:o;3131:665::-;3196:5;3249:3;3242:4;3234:6;3230:17;3226:27;3216:55;;3267:1;3264;3257:12;3216:55;3296:6;3290:13;3322:4;3346:60;3362:43;3402:2;3362:43;:::i;3346:60::-;3428:3;3452:2;3447:3;3440:15;3480:4;3475:3;3471:14;3464:21;;3537:4;3531:2;3528:1;3524:10;3516:6;3512:23;3508:34;3494:48;;3565:3;3557:6;3554:15;3551:35;;;3582:1;3579;3572:12;3551:35;3618:4;3610:6;3606:17;3632:135;3648:6;3643:3;3640:15;3632:135;;;3714:10;;3702:23;;3745:12;;;;3665;;3632:135;;4471:1908;4766:6;4774;4782;4790;4798;4806;4814;4822;4830;4838;4846:7;4900:3;4888:9;4879:7;4875:23;4871:33;4868:53;;;4917:1;4914;4907:12;4868:53;4940:47;4977:9;4940:47;:::i;:::-;5031:2;5016:18;;5010:25;4930:57;;-1:-1:-1;;;;;;5047:30:165;;5044:50;;;5090:1;5087;5080:12;5044:50;5113:61;5166:7;5157:6;5146:9;5142:22;5113:61;:::i;:::-;5220:2;5205:18;;5199:25;5103:71;;-1:-1:-1;5199:25:165;-1:-1:-1;;;;;;5236:32:165;;5233:52;;;5281:1;5278;5271:12;5233:52;5304:63;5359:7;5348:8;5337:9;5333:24;5304:63;:::i;:::-;5294:73;;;5386:67;5445:7;5440:2;5429:9;5425:18;5386:67;:::i;:::-;5376:77;;5472:57;5524:3;5513:9;5509:19;5472:57;:::i;:::-;5462:67;;5548:57;5600:3;5589:9;5585:19;5548:57;:::i;:::-;5538:67;;5624:57;5676:3;5665:9;5661:19;5624:57;:::i;:::-;5614:67;;5700:57;5752:3;5741:9;5737:19;5700:57;:::i;:::-;5803:3;5788:19;;5782:26;5690:67;;-1:-1:-1;;;;;;5820:32:165;;5817:52;;;5865:1;5862;5855:12;5817:52;5888:74;5954:7;5943:8;5932:9;5928:24;5888:74;:::i;:::-;6008:3;5993:19;;5987:26;5878:84;;-1:-1:-1;5987:26:165;-1:-1:-1;;;;;;6025:32:165;;6022:52;;;6070:1;6067;6060:12;6022:52;6093:74;6159:7;6148:8;6137:9;6133:24;6093:74;:::i;:::-;6213:3;6198:19;;6192:26;6083:84;;-1:-1:-1;6192:26:165;-1:-1:-1;;;;;;6230:32:165;;6227:52;;;6275:1;6272;6265:12;6227:52;6299:74;6365:7;6354:8;6343:9;6339:24;6299:74;:::i;:::-;6288:85;;;4471:1908;;;;;;;;;;;;;;:::o;6384:273::-;6452:6;6505:2;6493:9;6484:7;6480:23;6476:32;6473:52;;;6521:1;6518;6511:12;6473:52;6553:9;6547:16;6603:4;6596:5;6592:16;6585:5;6582:27;6572:55;;6623:1;6620;6613:12;6572:55;6646:5;6384:273;-1:-1:-1;;;6384:273:165:o;6662:380::-;6741:1;6737:12;;;;6784;;;6805:61;;6859:4;6851:6;6847:17;6837:27;;6805:61;6912:2;6904:6;6901:14;6881:18;6878:38;6875:161;;6958:10;6953:3;6949:20;6946:1;6939:31;6993:4;6990:1;6983:15;7021:4;7018:1;7011:15;6875:161;;6662:380;;;:::o;7173:543::-;7275:2;7270:3;7267:11;7264:446;;;7311:1;7335:5;7332:1;7325:16;7379:4;7376:1;7366:18;7449:2;7437:10;7433:19;7430:1;7426:27;7420:4;7416:38;7485:4;7473:10;7470:20;7467:47;;;-1:-1:-1;7508:4:165;7467:47;7563:2;7558:3;7554:12;7551:1;7547:20;7541:4;7537:31;7527:41;;7618:82;7636:2;7629:5;7626:13;7618:82;;;7681:17;;;7662:1;7651:13;7618:82;;;7622:3;;;7264:446;7173:543;;;:::o;7892:1345::-;8012:10;;-1:-1:-1;;;;;8034:30:165;;8031:56;;;8067:18;;:::i;:::-;8096:97;8186:6;8146:38;8178:4;8172:11;8146:38;:::i;:::-;8140:4;8096:97;:::i;:::-;8248:4;;8305:2;8294:14;;8322:1;8317:663;;;;9024:1;9041:6;9038:89;;;-1:-1:-1;9093:19:165;;;9087:26;9038:89;-1:-1:-1;;7849:1:165;7845:11;;;7841:24;7837:29;7827:40;7873:1;7869:11;;;7824:57;9140:81;;8287:944;;8317:663;7120:1;7113:14;;;7157:4;7144:18;;-1:-1:-1;;8353:20:165;;;8471:236;8485:7;8482:1;8479:14;8471:236;;;8574:19;;;8568:26;8553:42;;8666:27;;;;8634:1;8622:14;;;;8501:19;;8471:236;;;8475:3;8735:6;8726:7;8723:19;8720:201;;;8796:19;;;8790:26;-1:-1:-1;;8879:1:165;8875:14;;;8891:3;8871:24;8867:37;8863:42;8848:58;8833:74;;8720:201;-1:-1:-1;;;;;8967:1:165;8951:14;;;8947:22;8934:36;;-1:-1:-1;7892:1345:165:o;9559:845::-;9689:3;9718:1;9751:6;9745:13;9781:36;9807:9;9781:36;:::i;:::-;9836:1;9853:17;;;9879:133;;;;10026:1;10021:358;;;;9846:533;;9879:133;-1:-1:-1;;9912:24:165;;9900:37;;9985:14;;9978:22;9966:35;;9957:45;;;-1:-1:-1;9879:133:165;;10021:358;10052:6;10049:1;10042:17;10082:4;10127;10124:1;10114:18;10154:1;10168:165;10182:6;10179:1;10176:13;10168:165;;;10260:14;;10247:11;;;10240:35;10303:16;;;;10197:10;;10168:165;;;10172:3;;;10362:6;10357:3;10353:16;10346:23;;9846:533;-1:-1:-1;10395:3:165;;9559:845;-1:-1:-1;;;;;;9559:845:165:o;10903:258::-;10973:6;11026:2;11014:9;11005:7;11001:23;10997:32;10994:52;;;11042:1;11039;11032:12;10994:52;11074:9;11068:16;11093:38;11125:5;11093:38;:::i;11166:127::-;11227:10;11222:3;11218:20;11215:1;11208:31;11258:4;11255:1;11248:15;11282:4;11279:1;11272:15;12242:164;12319:13;;12372:1;12361:20;;;12351:31;;12341:59;;12396:1;12393;12386:12;12411:855;12505:6;12558:3;12546:9;12537:7;12533:23;12529:33;12526:53;;;12575:1;12572;12565:12;12526:53;12608:2;12602:9;12650:3;12638:16;;-1:-1:-1;;;;;12706:18:165;;;12726:22;;;12703:46;12700:72;;;12752:18;;:::i;:::-;12792:10;12788:2;12781:22;12831:9;12825:16;12812:29;;12884:5;12881:1;12870:20;12863:5;12860:31;12850:59;;12905:1;12902;12895:12;12850:59;12918:21;;;12984:2;12969:18;;12963:25;;13019:16;;;13007:29;;12997:57;;13050:1;13047;13040:12;12997:57;-1:-1:-1;13082:2:165;13070:15;;13063:32;13128:47;13171:2;13156:18;;13128:47;:::i;:::-;13123:2;13115:6;13111:15;13104:72;13230:2;13219:9;13215:18;13209:25;13204:2;13196:6;13192:15;13185:50;13254:6;13244:16;;;12411:855;;;;:::o;13271:127::-;13332:10;13327:3;13323:20;13320:1;13313:31;13363:4;13360:1;13353:15;13387:4;13384:1;13377:15;13403:237;13441:7;13518:1;13515;13504:16;13500:1;13497;13486:16;13482:39;13555:11;13552:1;13541:26;13530:37;;13598:11;13589:7;13586:24;13576:58;;13614:18;;:::i;:::-;13576:58;13403:237;;;;:::o;13645:416::-;13734:1;13771:5;13734:1;13785:270;13806:7;13796:8;13793:21;13785:270;;;13865:4;13861:1;13857:6;13853:17;13847:4;13844:27;13841:53;;;13874:18;;:::i;:::-;13924:7;13914:8;13910:22;13907:55;;;13944:16;;;;13907:55;14023:22;;;;13983:15;;;;13785:270;;;13789:3;13645:416;;;;;:::o;14066:806::-;14115:5;14145:8;14135:80;;-1:-1:-1;14186:1:165;14200:5;;14135:80;14234:4;14224:76;;-1:-1:-1;14271:1:165;14285:5;;14224:76;14316:4;14334:1;14329:59;;;;14402:1;14397:130;;;;14309:218;;14329:59;14359:1;14350:10;;14373:5;;;14397:130;14434:3;14424:8;14421:17;14418:43;;;14441:18;;:::i;:::-;-1:-1:-1;;14497:1:165;14483:16;;14512:5;;14309:218;;14611:2;14601:8;14598:16;14592:3;14586:4;14583:13;14579:36;14573:2;14563:8;14560:16;14555:2;14549:4;14546:12;14542:35;14539:77;14536:159;;;-1:-1:-1;14648:19:165;;;14680:5;;14536:159;14727:34;14752:8;14746:4;14727:34;:::i;:::-;14797:6;14793:1;14789:6;14785:19;14776:7;14773:32;14770:58;;;14808:18;;:::i;:::-;14846:20;;14066:806;-1:-1:-1;;;14066:806:165:o;14877:140::-;14935:5;14964:47;15005:4;14995:8;14991:19;14985:4;14964:47;:::i;15022:131::-;15082:5;15111:36;15138:8;15132:4;15111:36;:::i;15158:168::-;15231:9;;;15262;;15279:15;;;15273:22;;15259:37;15249:71;;15300:18;;:::i;15331:217::-;15371:1;15397;15387:132;;15441:10;15436:3;15432:20;15429:1;15422:31;15476:4;15473:1;15466:15;15504:4;15501:1;15494:15;15387:132;-1:-1:-1;15533:9:165;;15331:217::o;15862:287::-;15991:3;16029:6;16023:13;16045:66;16104:6;16099:3;16092:4;16084:6;16080:17;16045:66;:::i;:::-;16127:16;;;;;15862:287;-1:-1:-1;;15862:287:165:o;16154:204::-;16222:6;16275:2;16263:9;16254:7;16250:23;16246:32;16243:52;;;16291:1;16288;16281:12;16243:52;16314:38;16342:9;16314:38;:::i;16723:271::-;16765:3;16803:5;16797:12;16830:6;16825:3;16818:19;16846:76;16915:6;16908:4;16903:3;16899:14;16892:4;16885:5;16881:16;16846:76;:::i;:::-;16976:2;16955:15;-1:-1:-1;;16951:29:165;16942:39;;;;16983:4;16938:50;;16723:271;-1:-1:-1;;16723:271:165:o;17194:1519::-;17255:3;17286;17318:5;17312:12;17345:6;17340:3;17333:19;17371:4;17400:2;17395:3;17391:12;17384:19;;17456:2;17446:6;17443:1;17439:14;17432:5;17428:26;17424:35;17493:2;17486:5;17482:14;17514:1;17524:1163;17538:6;17535:1;17532:13;17524:1163;;;17603:16;;;-1:-1:-1;;17599:30:165;17587:43;;17653:13;;17719:9;;17706:23;;17768:11;;17762:18;17689:4;17800:13;;;17793:25;;;17867:19;;17860:27;17853:35;17838:13;;;17831:58;17930:21;;;17924:28;-1:-1:-1;;;;;18054:23:165;;;17975:2;18039:13;;;18032:46;;;;18119:21;;;18113:28;18008:3;18191;18214:13;;;18207:25;;;18113:28;;18008:3;;17975:2;;18259:49;18303:3;18293:14;;18113:28;18259:49;:::i;:::-;18349:21;;;18343:28;18410:17;;;-1:-1:-1;;18406:31:165;18391:13;;;18384:54;18245:63;;-1:-1:-1;18465:41:165;18245:63;18343:28;18465:41;:::i;:::-;18552:21;;18546:28;18542:37;18536:3;18526:14;;;;18519:61;;;;-1:-1:-1;;18665:12:165;;;;18451:55;-1:-1:-1;18630:15:165;;;;17560:1;17553:9;17524:1163;;;-1:-1:-1;18703:4:165;;17194:1519;-1:-1:-1;;;;;;;17194:1519:165:o;18999:1761::-;19242:2;19231:9;19224:21;19205:4;19280:6;19274:13;19306:6;19348:2;19343;19332:9;19328:18;19321:30;19374:52;19421:3;19410:9;19406:19;19392:12;19374:52;:::i;:::-;19360:66;;19475:4;19467:6;19463:17;19457:24;19504:2;19500:7;19572:2;19560:9;19552:6;19548:22;19544:31;19538:3;19527:9;19523:19;19516:60;19599:41;19633:6;19617:14;19599:41;:::i;:::-;19585:55;;19689:4;19681:6;19677:17;19671:24;19649:46;;19704:55;19754:3;19743:9;19739:19;19723:14;-1:-1:-1;;;;;9308:31:165;9296:44;;9242:104;19704:55;19808:2;19800:6;19796:15;19790:22;19768:44;;19877:2;19865:9;19857:6;19853:22;19849:31;19843:3;19832:9;19828:19;19821:60;19904:41;19938:6;19922:14;19904:41;:::i;:::-;19890:55;;19994:3;19986:6;19982:16;19976:23;19954:45;;20008:52;20055:3;20044:9;20040:19;20024:14;17069:13;17062:21;17050:34;;16999:91;20008:52;20109:3;20101:6;20097:16;20091:23;20069:45;;20133:3;20145:53;20194:2;20183:9;20179:18;20163:14;17171:10;17160:22;17148:35;;17095:94;20145:53;20247:3;20235:16;;20229:23;17069:13;17062:21;20308:3;20293:19;;17050:34;20362:3;20350:16;;20344:23;20408:22;;;20404:31;;20398:3;20383:19;;20376:60;20344:23;-1:-1:-1;20459:60:165;20412:6;20344:23;20459:60;:::i;:::-;20445:74;;20568:2;20560:6;20556:15;20550:22;20528:44;;;;20581:60;20637:2;20626:9;20622:18;20606:14;18823:12;;18788:10;18819:21;;;18807:34;;18894:4;18883:16;;;18877:23;-1:-1:-1;;;;;18873:49:165;18857:14;;;18850:73;18976:4;18965:16;;;18959:23;18955:32;18939:14;;18932:56;18718:276;20581:60;-1:-1:-1;;20695:4:165;20680:20;;20673:36;;;;-1:-1:-1;20740:4:165;20725:20;20718:36;20658:6;18999:1761;-1:-1:-1;18999:1761:165:o;20765:347::-;20850:6;20858;20911:2;20899:9;20890:7;20886:23;20882:32;20879:52;;;20927:1;20924;20917:12;20879:52;20950:38;20978:9;20950:38;:::i;:::-;20940:48;;21031:2;21020:9;21016:18;21010:25;21044:38;21076:5;21044:38;:::i;:::-;21101:5;21091:15;;;20765:347;;;;;:::o;21117:398::-;819:19659:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106103b85760003560e01c806388a320fe116101f2578063c4f59f9b1161010d578063db8bb3a1116100a0578063efa6f4251161006f578063efa6f42514610c88578063f2fde38b14610ca8578063f52a346814610cc8578063f98d06f014610cdb57600080fd5b8063db8bb3a114610bf0578063dd62ed3e14610c10578063eb4e159314610c48578063ef8b30f714610c6857600080fd5b8063d505accf116100dc578063d505accf14610b4d578063d547741f14610b6d578063d905777e14610b8d578063db7a682814610bc357600080fd5b8063c4f59f9b14610abf578063c63d75b614610761578063cd9cdfda14610ae1578063ce96cb7714610b2d57600080fd5b8063a8d5fd6511610185578063b4f6d61311610154578063b4f6d61314610a2b578063b5be920d14610a5f578063ba08765214610a7f578063bea9db6d14610a9f57600080fd5b8063a8d5fd65146109ab578063a9059cbb146109cb578063b3d7f6b9146109eb578063b460af9414610a0b57600080fd5b806394bf804d116101c157806394bf804d1461094e57806395d89b411461096e5780639feb8f5014610983578063a217fddf1461099657600080fd5b806388a320fe146108da5780638da5cb5b146108fa5780638f12c2f41461091857806391d148541461092e57600080fd5b806335d16e17116102e25780635ab764ed11610275578063715018a611610244578063715018a6146108505780637a07bf3a146108655780637bb7bed11461088d5780637ecebe00146108ad57600080fd5b80635ab764ed146107c3578063695135ec146107e35780636e553f651461080357806370a082311461082357600080fd5b806338d52e0f116102b157806338d52e0f14610715578063402d267d14610761578063490a0af9146107835780634cdad506146107a357600080fd5b806335d16e171461069e578063362a3fad146106b35780633644e515146106e057806336568abe146106f557600080fd5b806318160ddd1161035a578063248a9ca311610329578063248a9ca3146105e65780632c62fa10146106165780632f2ff15d14610636578063313ce5671461065857600080fd5b806318160ddd146105325780631e5eb1d014610548578063204120bc1461059957806323b872dd146105c657600080fd5b806306fdde031161039657806306fdde0314610449578063095ea7b31461046b5780630a28a4771461048b57806316ad0672146104ab57600080fd5b806301e1d114146103bd57806301ffc9a7146103e557806305fb2a5114610415575b600080fd5b3480156103c957600080fd5b506103d2610cfb565b6040519081526020015b60405180910390f35b3480156103f157600080fd5b506104056104003660046138f2565b610d8b565b60405190151581526020016103dc565b34801561042157600080fd5b506103d27f74e458455daa935f28c556b43e0cc4ad001a8a090f5feee376681e97d4618f4681565b34801561045557600080fd5b5061045e610dc2565b6040516103dc919061396c565b34801561047757600080fd5b5061040561048636600461399b565b610e50565b34801561049757600080fd5b506103d26104a63660046139c5565b610ebc565b3480156104b757600080fd5b506104ff6104c63660046139de565b6015602052600090815260409020805460018201546003830154600484015460058501546006909501549394929360ff90921692909186565b604080519687526020870195909552921515938501939093526060840152608083019190915260a082015260c0016103dc565b34801561053e57600080fd5b506103d260025481565b34801561055457600080fd5b50600754600854600954610573926001600160a01b0390811692169083565b604080516001600160a01b039485168152939092166020840152908201526060016103dc565b3480156105a557600080fd5b506103d26105b43660046139de565b600d6020526000908152604090205481565b3480156105d257600080fd5b506104056105e13660046139f9565b610f73565b3480156105f257600080fd5b506103d26106013660046139c5565b60009081526006602052604090206001015490565b34801561062257600080fd5b506103d26106313660046139de565b611053565b34801561064257600080fd5b50610656610651366004613a35565b611075565b005b34801561066457600080fd5b5061068c7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016103dc565b3480156106aa57600080fd5b506103d26110a0565b3480156106bf57600080fd5b506106d36106ce3660046139de565b6110d0565b6040516103dc9190613a61565b3480156106ec57600080fd5b506103d26111b4565b34801561070157600080fd5b50610656610710366004613a35565b61120a565b34801561072157600080fd5b506107497f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103dc565b34801561076d57600080fd5b506103d261077c3660046139de565b5060001990565b34801561078f57600080fd5b506106d361079e366004613b59565b611242565b3480156107af57600080fd5b506103d26107be3660046139c5565b611525565b3480156107cf57600080fd5b506103d26107de366004613c1b565b611547565b3480156107ef57600080fd5b506103d26107fe3660046139de565b61168c565b34801561080f57600080fd5b506103d261081e366004613a35565b6117fd565b34801561082f57600080fd5b506103d261083e3660046139de565b60036020526000908152604090205481565b34801561085c57600080fd5b50610656611939565b6108786108733660046139c5565b61194d565b604080519283526020830191909152016103dc565b34801561089957600080fd5b506107496108a83660046139c5565b611afc565b3480156108b957600080fd5b506103d26108c83660046139de565b60056020526000908152604090205481565b3480156108e657600080fd5b50600e54610749906001600160a01b031681565b34801561090657600080fd5b506010546001600160a01b0316610749565b34801561092457600080fd5b506103d260135481565b34801561093a57600080fd5b50610405610949366004613a35565b611b26565b34801561095a57600080fd5b506103d2610969366004613a35565b611b51565b34801561097a57600080fd5b5061045e611c0b565b61065661099136600461399b565b611c18565b3480156109a257600080fd5b506103d2600081565b3480156109b757600080fd5b50601254610749906001600160a01b031681565b3480156109d757600080fd5b506104056109e636600461399b565b611f6c565b3480156109f757600080fd5b506103d2610a063660046139c5565b611fd2565b348015610a1757600080fd5b506103d2610a26366004613c45565b611ff4565b348015610a3757600080fd5b506103d27f477fc23fb51bb5d5aa814872a393b0e4f35d0916c7503c0fd96584681070d41081565b348015610a6b57600080fd5b50610656610a7a366004613c81565b6120f2565b348015610a8b57600080fd5b506103d2610a9a366004613c45565b612331565b348015610aab57600080fd5b50610656610aba366004613c81565b612437565b348015610acb57600080fd5b50610ad46125d3565b6040516103dc9190613cc2565b348015610aed57600080fd5b50610b18610afc3660046139de565b6016602052600090815260409020805460019091015460ff1682565b604080519283529015156020830152016103dc565b348015610b3957600080fd5b506103d2610b483660046139de565b612635565b348015610b5957600080fd5b50610656610b68366004613d12565b612640565b348015610b7957600080fd5b50610656610b88366004613a35565b612884565b348015610b9957600080fd5b506103d2610ba83660046139de565b6001600160a01b031660009081526003602052604090205490565b348015610bcf57600080fd5b506103d2610bde3660046139de565b600b6020526000908152604090205481565b348015610bfc57600080fd5b50610749610c0b36600461399b565b6128a9565b348015610c1c57600080fd5b506103d2610c2b366004613c1b565b600460209081526000928352604080842090915290825290205481565b348015610c5457600080fd5b50610656610c6336600461399b565b6128e1565b348015610c7457600080fd5b506103d2610c833660046139c5565b61299c565b348015610c9457600080fd5b50610656610ca3366004613d7f565b6129bd565b348015610cb457600080fd5b50610656610cc33660046139de565b612a02565b610656610cd6366004613c81565b612a40565b348015610ce757600080fd5b50600f54610749906001600160a01b031681565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d869190613de6565b905090565b60006001600160e01b03198216637965db0b60e01b1480610dbc57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008054610dcf90613dff565b80601f0160208091040260200160405190810160405280929190818152602001828054610dfb90613dff565b8015610e485780601f10610e1d57610100808354040283529160200191610e48565b820191906000526020600020905b815481529060010190602001808311610e2b57829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610eab9086815260200190565b60405180910390a350600192915050565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f499190613de6565b90508015610f6a57610f6581610f5d610cfb565b859190612b20565b610f6c565b825b9392505050565b6001600160a01b03831660009081526004602090815260408083203384529091528120546000198114610fcf57610faa8382613e4f565b6001600160a01b03861660009081526004602090815260408083203384529091529020555b6001600160a01b03851660009081526003602052604081208054859290610ff7908490613e4f565b90915550506001600160a01b03808516600081815260036020526040908190208054870190555190918716906000805160206145ea833981519152906110409087815260200190565b60405180910390a3506001949350505050565b6001600160a01b038116600090815260036020526040812054610dbc90611525565b60008281526006602052604090206001015461109081612b46565b61109a8383612b50565b50505050565b6000610d866107be7f0000000000000000000000000000000000000000000000000000000000000000600a613f46565b60606001600160a01b0382166111015760405162461bcd60e51b81526004016110f890613f55565b60405180910390fd5b6014546000906001600160401b0381111561111e5761111e613aa5565b604051908082528060200260200182016040528015611147578160200160208202803683370190505b50905060005b6014548110156111ad57611188846014838154811061116e5761116e613f96565b6000918252602090912001546001600160a01b0316611547565b82828151811061119a5761119a613f96565b602090810291909101015260010161114d565b5092915050565b60007f000000000000000000000000000000000000000000000000000000000000000046146111e557610d86612be4565b507f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b03811633146112335760405163334bd91960e11b815260040160405180910390fd5b61123d8282612c7e565b505050565b825160609082146112a05760405162461bcd60e51b815260206004820152602260248201527f546f6b656e20707269636573206172726179206c656e677468206d69736d61746044820152610c6d60f31b60648201526084016110f8565b600080836001600160401b038111156112bb576112bb613aa5565b6040519080825280602002602001820160405280156112e4578160200160208202803683370190505b50905060005b848110156113f35785858281811061130457611304613f96565b905060200201602081019061131991906139de565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561135f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113839190613de6565b82828151811061139557611395613f96565b6020026020010181815250508681815181106113b3576113b3613f96565b60200260200101518282815181106113cd576113cd613f96565b60200260200101516113df9190613fac565b6113e99084613fc3565b92506001016112ea565b506000846001600160401b0381111561140e5761140e613aa5565b604051908082528060200260200182016040528015611437578160200160208202803683370190505b50905060005b8581101561151a576000612710600a60008a8a8681811061146057611460613f96565b905060200201602081019061147591906139de565b6001600160a01b031681526020810191909152604001600020546114999087613fac565b6114a39190613fd6565b905060008983815181106114b9576114b9613f96565b6020026020010151826114cc9190613fd6565b90508483815181106114e0576114e0613f96565b6020026020010151816114f39190613e4f565b84848151811061150557611505613f96565b6020908102919091010152505060010161143d565b509695505050505050565b6002546000908015610f6a57610f6561153c610cfb565b600254859190612ceb565b60006001600160a01b03831661156f5760405162461bcd60e51b81526004016110f890613f55565b6001600160a01b0382166115d75760405162461bcd60e51b815260206004820152602960248201527f5661756c743a2052657761726420746f6b656e20616464726573732063616e2760448201526874206265207a65726f60b81b60648201526084016110f8565b6001600160a01b03808316600081815260166020908152604080832080549589168452601583528184208054958552600281019093529083205490949391926116208286613e4f565b9050600061163082600186612ceb565b90506000429050600061164d838860040154896005015485612d09565b50600954909a508a91501561167d57600061166d8b600760020154612d71565b9050611679818c613e4f565b9a50505b50505050505050505092915050565b600f546001600160a01b038281166000908152600b60205260408082205490516331d98b3f60e01b81529193849316916331d98b3f916116d29160040190815260200190565b608060405180830381865afa1580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117139190614033565b90506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611755573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177991906140ab565b60ff1690506000826040015160001961179291906140c8565b61179d906012613f46565b6117a88360126140e8565b84516117bd91906001600160401b0316613fac565b6117c79190613fd6565b9050806117d58360126140e8565b6117e08460126140e8565b6117ea9190613fac565b6117f49190613fd6565b95945050505050565b6000611807612df1565b6118108361299c565b90508060000361183657604051636e3699b760e11b8152600481018490526024016110f8565b61186b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086612e1b565b826013600082825461187d9190613fc3565b9091555050601254604080516000808252602082019092526118c6926001600160a01b0316918691906118c0565b60608152602001906001900390816118ab5790505b50612ea5565b50506012546118e0906001600160a01b0316303386612fe8565b60408051848152602081018390526001600160a01b0384169133917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7910160405180910390a361192f83613118565b610dbc6001601155565b6119416132d1565b61194b60006132fe565b565b60145460085460009182916001600160a01b031642855b838110801561197c575061197987600a613fc3565b81105b15611aef576000806014838154811061199757611997613f96565b600091825260208083209091015433835260158252604080842080546001600160a01b03909316808652600290910184528185205460169094529320549293506119ee926001926119e791613e4f565b9190612ceb565b336000908152601560205260408120600481015460059091015492945090918291611a1c9186919089612d09565b33600090815260156020526040812060060180549395509193508492611a43908490613fc3565b90915550506001600160a01b03831660008181526016602090815260408083205433808552601580855283862096865260028701855292852091909155928390529052600690910154611a9a918591309190612fe8565b336000908152601560205260408120600601556001600160a01b03871615611ad85733600090815260156020526040902060060154611ad890613350565b505050508080611ae7906140f4565b915050611964565b5094959194509092505050565b60148181548110611b0c57600080fd5b6000918252602090912001546001600160a01b0316905081565b60009182526006602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000611b5b612df1565b611b7082611b6885611fd2565b925082613445565b8060136000828254611b829190613fc3565b909155505060408051828152602081018590526001600160a01b0384169133917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7910160405180910390a3611c026001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084612e1b565b61192f81613118565b60018054610dcf90613dff565b7f477fc23fb51bb5d5aa814872a393b0e4f35d0916c7503c0fd96584681070d410611c4281612b46565b6001600160a01b038316611ca35760405162461bcd60e51b815260206004820152602260248201527f5661756c743a20546f6b656e20616464726573732063616e2774206265207a65604482015261726f60f01b60648201526084016110f8565b81600003611cf35760405162461bcd60e51b815260206004820152601b60248201527f5661756c743a20416d6f756e742063616e2774206265207a65726f000000000060448201526064016110f8565b601354600003611d455760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a204e6f20746f6b656e207374616b65642079657400000000000060448201526064016110f8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614158015611d9557506012546001600160a01b03848116911614155b611df95760405162461bcd60e51b815260206004820152602f60248201527f5661756c743a2052657761726420616e64205374616b696e6720746f6b656e7360448201526e2063616e6e6f742062652073616d6560881b60648201526084016110f8565b601454600a03611e1c57604051637561e0ab60e01b815260040160405180910390fd5b6000611e36600160135485612ceb9092919063ffffffff16565b6001600160a01b038516600090815260166020526040902060018101549192509060ff16611edf5760148054600180820183556000929092527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0180546001600160a01b0319166001600160a01b038816179055818101805460ff19169091179055818155611ec5853061349f565b611eda6001600160a01b038616333087612e1b565b611f22565b6001600160a01b03851660009081526016602052604081208054849290611f07908490613fc3565b90915550611f2290506001600160a01b038616333087612e1b565b846001600160a01b03167fac24935fd910bc682b5ccb1a07b718cadf8cf2f6d1404c4f3ddc3662dae40e2985604051611f5d91815260200190565b60405180910390a25050505050565b33600090815260036020526040812080548391908390611f8d908490613e4f565b90915550506001600160a01b038316600081815260036020526040908190208054850190555133906000805160206145ea83398151915290610eab9086815260200190565b6002546000908015610f6a57610f65611fe9610cfb565b600254859190612b20565b6000611ffe612df1565b612007846135bd565b83601360008282546120199190613e4f565b9091555050601254612036906001600160a01b0316333087612fe8565b60125460408051600081526020810190915261205d916001600160a01b03169086906135f5565b506120926001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168486613721565b826001600160a01b0316826001600160a01b03167ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb56786846040516120e0929190918252602082015260400190565b60405180910390a3610f6c6001601155565b60005b8181101561123d57600083838381811061211157612111613f96565b905060200201602081019061212691906139de565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa158015612170573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121949190613de6565b6001600160a01b0383166000908152600d60205260408120549192506121ba8284613fac565b6001600160a01b0385166000908152600a602052604081205491925090612710906121e59084613fac565b6121ef9190613fd6565b905060006121fd8483613fd6565b90508085111561231f5760006122138287613e4f565b600e5460405163095ea7b360e01b81526001600160a01b0391821660048201526024810183905291925088169063095ea7b3906044016020604051808303816000875af1158015612268573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228c919061410d565b50600e546001600160a01b038881166000908152600c602052604080822090516318cbafe560e01b815292909316926318cbafe5926122d5928692909130904290600401614179565b6000604051808303816000875af11580156122f4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261231c91908101906141b5565b50505b5050600190940193506120f592505050565b600061233b612df1565b61234484611525565b9050806000036123845760405162461bcd60e51b815260206004820152600b60248201526a5a45524f5f41535345545360a81b60448201526064016110f8565b61238d84611525565b90506123998285613799565b80601360008282546123ab9190613e4f565b909155505060408051828152602081018690526001600160a01b0380861692908516917ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567910160405180910390a361242d6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168483613721565b610f6c6001601155565b80606060005b828110156124b657600d600086868481811061245b5761245b613f96565b905060200201602081019061247091906139de565b6001600160a01b03166001600160a01b03168152602001908152602001600020548282815181106124a3576124a3613f96565b602090810291909101015260010161243d565b5060006124c4828686611242565b90506124d085856120f2565b805160005b818110156125ca57600e5483516001600160a01b0390911690637ff36ab59085908490811061250657612506613f96565b6020026020010151600c60008b8b8781811061252457612524613f96565b905060200201602081019061253991906139de565b6001600160a01b03166001600160a01b0316815260200190815260200160002030426040518563ffffffff1660e01b815260040161257a9493929190614245565b6000604051808303816000875af1158015612599573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125c191908101906141b5565b506001016124d5565b50505050505050565b6060601480548060200260200160405190810160405280929190818152602001828054801561262b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161260d575b5050505050905090565b6000610dbc82611053565b428410156126905760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064016110f8565b6000600161269c6111b4565b6001600160a01b038a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156127a8573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906127de5750876001600160a01b0316816001600160a01b0316145b61281b5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b60448201526064016110f8565b6001600160a01b0390811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b60008281526006602052604090206001015461289f81612b46565b61109a8383612c7e565b600c60205281600052604060002081815481106128c557600080fd5b6000918252602090912001546001600160a01b03169150829050565b61271081106129325760405162461bcd60e51b815260206004820152601760248201527f50657263656e746167652065786365656473203130302500000000000000000060448201526064016110f8565b6001600160a01b0382166129805760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b60448201526064016110f8565b6001600160a01b039091166000908152600a6020526040902055565b6002546000908015610f6a57610f6560016129b5610cfb565b859190612ceb565b7f74e458455daa935f28c556b43e0cc4ad001a8a090f5feee376681e97d4618f466129e781612b46565b6129fe8260000151836020015184604001516137fb565b5050565b612a0a6132d1565b6001600160a01b038116612a3457604051631e4fbdf760e01b8152600060048201526024016110f8565b612a3d816132fe565b50565b600f5460405163d47eed4560e01b81526000916001600160a01b03169063d47eed4590612a7390869086906004016142a3565b602060405180830381865afa158015612a90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab49190613de6565b600f54604051631df3cbc560e31b81529192506001600160a01b03169063ef9e5e28908390612ae990879087906004016142a3565b6000604051808303818588803b158015612b0257600080fd5b505af1158015612b16573d6000803e3d6000fd5b5050505050505050565b6000826000190484118302158202612b3757600080fd5b50910281810615159190040190565b612a3d81336138b9565b6000612b5c8383611b26565b612bdc5760008381526006602090815260408083206001600160a01b03861684529091529020805460ff19166001179055612b943390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610dbc565b506000610dbc565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051612c16919061433e565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000612c8a8383611b26565b15612bdc5760008381526006602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610dbc565b6000826000190484118302158202612d0257600080fd5b5091020490565b600080848311612d1e57506000905084612d68565b838310612d3057508490506000612d68565b6000612d3c8685613e4f565b90506000612d4a8787613e4f565b9050612d57888383612ceb565b9350612d638489613e4f565b925050505b94509492505050565b6000612710612d808385613fac565b1015612dda5760405162461bcd60e51b8152602060048201526024808201527f46433a20546f6f20736d616c6c20616d6f756e7420746f20636f6e73696465726044820152632066656560e01b60648201526084016110f8565b612710612de78385613fac565b610f6c9190613fd6565b600260115403612e1457604051633ee5aeb560e01b815260040160405180910390fd5b6002601155565b60006040516323b872dd60e01b81528460048201528360248201528260448201526020600060648360008a5af13d15601f3d1160016000511416171691505080612e9e5760405162461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b60448201526064016110f8565b5050505050565b6000606060008060006101676001600160a01b031663278e0b8860e01b898989604051602401612ed7939291906143df565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612f159190614463565b6000604051808303816000865af19150503d8060008114612f52576040519150601f19603f3d011682016040523d82523d6000602084013e612f57565b606091505b509150915081612f7a576040805160008082526020820190925260159190612f8e565b80806020019051810190612f8e919061447f565b90965094509250600383900b601614612fdd5760405162461bcd60e51b815260206004820152601160248201527053616665206d696e74206661696c65642160781b60448201526064016110f8565b505050935093915050565b604080516001600160a01b038681166024830152858116604483015284166064820152600783900b6084808301919091528251808303909101815260a490910182526020810180516001600160e01b031663eca3691760e01b1790529051600091829182916101679161305b9190614463565b6000604051808303816000865af19150503d8060008114613098576040519150601f19603f3d011682016040523d82523d6000602084013e61309d565b606091505b5091509150816130ae5760156130c2565b808060200190518101906130c29190614539565b9250600383900b6016146125ca5760405162461bcd60e51b815260206004820152601b60248201527f5361666520746f6b656e207472616e73666572206661696c656421000000000060448201526064016110f8565b3360009081526015602052604090206003015460ff166132715760145460005b818110156131fc5760006014828154811061315557613155613f96565b60009182526020808320909101546001600160a01b03168083526016825260408084205433855260158452818520838652600201845281852055805163053aa6f360e11b815290519194508493630a754de693600480840194919391929183900301908290875af11580156131ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f29190613de6565b5050600101613138565b5033600090815260156020526040902082815560038101805460ff1916600190811790915542908201819055600490910181905561323d9062278d00613fc3565b3360009081526015602052604081206005019190915560138054849290613265908490613fc3565b90915550612a3d915050565b61327b600061194d565b5050336000908152601560205260408120805483929061329c908490613fc3565b909155505033600090815260156020526040812042600190910155601380548392906132c9908490613fc3565b909155505050565b6010546001600160a01b0316331461194b5760405163118cdaa760e01b81523360048201526024016110f8565b601080546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6008546009546001600160a01b0390911690600090613370908490612d71565b6040516370a0823160e01b815233600482015290915081906001600160a01b038416906370a0823190602401602060405180830381865afa1580156133b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133dd9190613de6565b101561342b5760405162461bcd60e51b815260206004820152601e60248201527f46433a20496e73756666696369656e7420746f6b656e2062616c616e6365000060448201526064016110f8565b60075461123d90839033906001600160a01b031684612fe8565b80600260008282546134579190613fc3565b90915550506001600160a01b0382166000818152600360209081526040808320805486019055518481526000805160206145ea83398151915291015b60405180910390a35050565b604080516001600160a01b038381166024830152841660448083019190915282518083039091018152606490910182526020810180516001600160e01b031663248a35ef60e11b179052905160009182918291610167916135009190614463565b6000604051808303816000865af19150503d806000811461353d576040519150601f19603f3d011682016040523d82523d6000602084013e613542565b606091505b509150915081613553576015613567565b808060200190518101906135679190614539565b9250600383900b601614612e9e5760405162461bcd60e51b815260206004820152601f60248201527f536166652073696e676c65206173736f63696174696f6e206661696c6564210060448201526064016110f8565b33600090815260156020526040812080548392906135dc908490613e4f565b9250508190555080601360008282546132c99190613e4f565b6000806000806101676001600160a01b031663acb9cff960e01b88888860405160240161362493929190614554565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516136629190614463565b6000604051808303816000865af19150503d806000811461369f576040519150601f19603f3d011682016040523d82523d6000602084013e6136a4565b606091505b5091509150816136b757601560006136cb565b808060200190518101906136cb91906145bf565b94509250600383900b6016146137175760405162461bcd60e51b815260206004820152601160248201527053616665206275726e206661696c65642160781b60448201526064016110f8565b5050509392505050565b600060405163a9059cbb60e01b8152836004820152826024820152602060006044836000895af13d15601f3d116001600051141617169150508061109a5760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b60448201526064016110f8565b6001600160a01b038216600090815260036020526040812080548392906137c1908490613e4f565b90915550506002805482900390556040518181526000906001600160a01b038416906000805160206145ea83398151915290602001613493565b612710811061383e5760405162461bcd60e51b815260206004820152600f60248201526e46433a20496e76616c69642066656560881b60448201526064016110f8565b600780546001600160a01b038581166001600160a01b0319928316811790935560088054918616919092168117909155600983905560408051928352602083019190915281018290527febd34b2df88ea5c9f67c04b13b08e5e63c2d17e269aab73b866fe47a8736a2649060600160405180910390a1505050565b6138c38282611b26565b6129fe5760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016110f8565b60006020828403121561390457600080fd5b81356001600160e01b031981168114610f6c57600080fd5b60005b8381101561393757818101518382015260200161391f565b50506000910152565b6000815180845261395881602086016020860161391c565b601f01601f19169290920160200192915050565b602081526000610f6c6020830184613940565b80356001600160a01b038116811461399657600080fd5b919050565b600080604083850312156139ae57600080fd5b6139b78361397f565b946020939093013593505050565b6000602082840312156139d757600080fd5b5035919050565b6000602082840312156139f057600080fd5b610f6c8261397f565b600080600060608486031215613a0e57600080fd5b613a178461397f565b9250613a256020850161397f565b9150604084013590509250925092565b60008060408385031215613a4857600080fd5b82359150613a586020840161397f565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015613a9957835183529284019291840191600101613a7d565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613ae357613ae3613aa5565b604052919050565b60006001600160401b03821115613b0457613b04613aa5565b5060051b60200190565b60008083601f840112613b2057600080fd5b5081356001600160401b03811115613b3757600080fd5b6020830191508360208260051b8501011115613b5257600080fd5b9250929050565b600080600060408486031215613b6e57600080fd5b83356001600160401b0380821115613b8557600080fd5b818601915086601f830112613b9957600080fd5b81356020613bae613ba983613aeb565b613abb565b82815260059290921b8401810191818101908a841115613bcd57600080fd5b948201945b83861015613beb57853582529482019490820190613bd2565b97505087013592505080821115613c0157600080fd5b50613c0e86828701613b0e565b9497909650939450505050565b60008060408385031215613c2e57600080fd5b613c378361397f565b9150613a586020840161397f565b600080600060608486031215613c5a57600080fd5b83359250613c6a6020850161397f565b9150613c786040850161397f565b90509250925092565b60008060208385031215613c9457600080fd5b82356001600160401b03811115613caa57600080fd5b613cb685828601613b0e565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b81811015613a995783516001600160a01b031683529284019291840191600101613cde565b60ff81168114612a3d57600080fd5b600080600080600080600060e0888a031215613d2d57600080fd5b613d368861397f565b9650613d446020890161397f565b955060408801359450606088013593506080880135613d6281613d03565b9699959850939692959460a0840135945060c09093013592915050565b600060608284031215613d9157600080fd5b604051606081018181106001600160401b0382111715613db357613db3613aa5565b604052613dbf8361397f565b8152613dcd6020840161397f565b6020820152604083013560408201528091505092915050565b600060208284031215613df857600080fd5b5051919050565b600181811c90821680613e1357607f821691505b602082108103613e3357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dbc57610dbc613e39565b600181815b80851115613e9d578160001904821115613e8357613e83613e39565b80851615613e9057918102915b93841c9390800290613e67565b509250929050565b600082613eb457506001610dbc565b81613ec157506000610dbc565b8160018114613ed75760028114613ee157613efd565b6001915050610dbc565b60ff841115613ef257613ef2613e39565b50506001821b610dbc565b5060208310610133831016604e8410600b8410161715613f20575081810a610dbc565b613f2a8383613e62565b8060001904821115613f3e57613f3e613e39565b029392505050565b6000610f6c60ff841683613ea5565b60208082526021908201527f5661756c743a205573657220616464726573732063616e2774206265207a65726040820152606f60f81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8082028115828204841417610dbc57610dbc613e39565b80820180821115610dbc57610dbc613e39565b600082613ff357634e487b7160e01b600052601260045260246000fd5b500490565b8051600781900b811461399657600080fd5b80516001600160401b038116811461399657600080fd5b8051600381900b811461399657600080fd5b60006080828403121561404557600080fd5b604051608081018181106001600160401b038211171561406757614067613aa5565b60405261407383613ff8565b81526140816020840161400a565b602082015261409260408401614021565b6040820152606083015160608201528091505092915050565b6000602082840312156140bd57600080fd5b8151610f6c81613d03565b60008260030b8260030b028060030b91508082146111ad576111ad613e39565b6000610f6c8383613ea5565b60006001820161410657614106613e39565b5060010190565b60006020828403121561411f57600080fd5b81518015158114610f6c57600080fd5b600081548084526020808501945083600052602060002060005b8381101561416e5781546001600160a01b031687529582019560019182019101614149565b509495945050505050565b85815284602082015260a06040820152600061419860a083018661412f565b6001600160a01b0394909416606083015250608001529392505050565b600060208083850312156141c857600080fd5b82516001600160401b038111156141de57600080fd5b8301601f810185136141ef57600080fd5b80516141fd613ba982613aeb565b81815260059190911b8201830190838101908783111561421c57600080fd5b928401925b8284101561423a57835182529284019290840190614221565b979650505050505050565b84815260806020820152600061425e608083018661412f565b6001600160a01b03949094166040830152506060015292915050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208082528181018390526000906040600585901b8401810190840186845b8781101561433157868403603f190183528135368a9003601e190181126142e857600080fd5b890185810190356001600160401b0381111561430357600080fd5b80360382131561431257600080fd5b61431d86828461427a565b9550505091840191908401906001016142c2565b5091979650505050505050565b60008083548160018260011c9150600183168061435c57607f831692505b6020808410820361437b57634e487b7160e01b86526022600452602486fd5b81801561438f57600181146143a4576143d1565b60ff19861689528415158502890196506143d1565b60008a81526020902060005b868110156143c95781548b8201529085019083016143b0565b505084890196505b509498975050505050505050565b60006060820160018060a01b038616835260206001600160401b03861660208501526060604085015281855180845260808601915060808160051b87010193506020870160005b8281101561445457607f19888703018452614442868351613940565b95509284019290840190600101614426565b50939998505050505050505050565b6000825161447581846020870161391c565b9190910192915050565b60008060006060848603121561449457600080fd5b61449d84614021565b925060206144ac81860161400a565b925060408501516001600160401b038111156144c757600080fd5b8501601f810187136144d857600080fd5b80516144e6613ba982613aeb565b81815260059190911b8201830190838101908983111561450557600080fd5b928401925b8284101561452a5761451b84613ff8565b8252928401929084019061450a565b80955050505050509250925092565b60006020828403121561454b57600080fd5b610f6c82614021565b6001600160a01b03841681526001600160401b0383166020808301919091526060604083018190528351908301819052600091848101916080850190845b818110156145b157845160070b83529383019391830191600101614592565b509098975050505050505050565b600080604083850312156145d257600080fd5b6145db83614021565b9150613a586020840161400a56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122025368c444359961ce7f805b37a03a62001beb48f4db5d2380638d791415e62ca64736f6c63430008180033","sourceMap":"819:19659:102:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10358:116;;;;;;;;;;;;;:::i;:::-;;;160:25:165;;;148:2;133:18;10358:116:102;;;;;;;;2565:202:139;;;;;;;;;;-1:-1:-1;2565:202:139;;;;;:::i;:::-;;:::i;:::-;;;652:14:165;;645:22;627:41;;615:2;600:18;2565:202:139;487:187:165;1067:92:0;;;;;;;;;;;;1120:39;1067:92;;1030:18:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2430:211::-;;;;;;;;;;-1:-1:-1;2430:211:99;;;;;:::i;:::-;;:::i;13446:230:102:-;;;;;;;;;;-1:-1:-1;13446:230:102;;;;;:::i;:::-;;:::i;1262:52::-;;;;;;;;;;-1:-1:-1;1262:52:102;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2711:25:165;;;2767:2;2752:18;;2745:34;;;;2822:14;;2815:22;2795:18;;;2788:50;;;;2869:2;2854:18;;2847:34;2912:3;2897:19;;2890:35;;;;2956:3;2941:19;;2934:35;2698:3;2683:19;1262:52:102;2430:545:165;1303:26:99;;;;;;;;;;;;;;;;753::0;;;;;;;;;;-1:-1:-1;753:26:0;;;;;;;;-1:-1:-1;;;;;753:26:0;;;;;;;;;;;;-1:-1:-1;;;;;3238:15:165;;;3220:34;;3290:15;;;;3285:2;3270:18;;3263:43;3322:18;;;3315:34;3170:2;3155:18;753:26:0;2980:375:165;894:46:101;;;;;;;;;;-1:-1:-1;894:46:101;;;;;:::i;:::-;;;;;;;;;;;;;;3026:562:99;;;;;;;;;;-1:-1:-1;3026:562:99;;;;;:::i;:::-;;:::i;3810:120:139:-;;;;;;;;;;-1:-1:-1;3810:120:139;;;;;:::i;:::-;3875:7;3901:12;;;:6;:12;;;;;:22;;;;3810:120;10705:125:102;;;;;;;;;;-1:-1:-1;10705:125:102;;;;;:::i;:::-;;:::i;4226:136:139:-;;;;;;;;;;-1:-1:-1;4226:136:139;;;;;:::i;:::-;;:::i;:::-;;1082:31:99;;;;;;;;;;;;;;;;;;4309:4:165;4297:17;;;4279:36;;4267:2;4252:18;1082:31:99;4137:184:165;10953:118:102;;;;;;;;;;;;;:::i;19022:392::-;;;;;;;;;;-1:-1:-1;19022:392:102;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5266:177:99:-;;;;;;;;;;;;;:::i;5328:245:139:-;;;;;;;;;;-1:-1:-1;5328:245:139;;;;;:::i;:::-;;:::i;1045:28:102:-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5142:32:165;;;5124:51;;5112:2;5097:18;1045:28:102;4963:218:165;11255:109:102;;;;;;;;;;-1:-1:-1;11255:109:102;;;;;:::i;:::-;-1:-1:-1;;;11340:17:102;11255:109;5015:1128:101;;;;;;;;;;-1:-1:-1;5015:1128:101;;;;;:::i;:::-;;:::i;13925:216:102:-;;;;;;;;;;-1:-1:-1;13925:216:102;;;;;:::i;:::-;;:::i;17693:1170::-;;;;;;;;;;-1:-1:-1;17693:1170:102;;;;;:::i;:::-;;:::i;2235:447:101:-;;;;;;;;;;-1:-1:-1;2235:447:101;;;;;:::i;:::-;;:::i;5369:552:102:-;;;;;;;;;;-1:-1:-1;5369:552:102;;;;;:::i;:::-;;:::i;1336:44:99:-;;;;;;;;;;-1:-1:-1;1336:44:99;;;;;:::i;:::-;;;;;;;;;;;;;;2293:101:141;;;;;;;;;;;;;:::i;15974:1489:102:-;;;;;;:::i;:::-;;:::i;:::-;;;;8090:25:165;;;8146:2;8131:18;;8124:34;;;;8063:18;15974:1489:102;7916:248:165;1206:29:102;;;;;;;;;;-1:-1:-1;1206:29:102;;;;;:::i;:::-;;:::i;1750:41:99:-;;;;;;;;;;-1:-1:-1;1750:41:99;;;;;:::i;:::-;;;;;;;;;;;;;;966:29:101;;;;;;;;;;-1:-1:-1;966:29:101;;;;-1:-1:-1;;;;;966:29:101;;;1638:85:141;;;;;;;;;;-1:-1:-1;1710:6:141;;-1:-1:-1;;;;;1710:6:141;1638:85;;1147:31:102;;;;;;;;;;;;;;;;2854:136:139;;;;;;;;;;-1:-1:-1;2854:136:139;;;;;:::i;:::-;;:::i;6177:343:102:-;;;;;;;;;;-1:-1:-1;6177:343:102;;;;;:::i;:::-;;:::i;1055:20:99:-;;;;;;;;;;;;;:::i;14490:1167:102:-;;;;;;:::i;:::-;;:::i;2187:49:139:-;;;;;;;;;;-1:-1:-1;2187:49:139;2232:4;2187:49;;1099:20:102;;;;;;;;;;-1:-1:-1;1099:20:102;;;;-1:-1:-1;;;;;1099:20:102;;;2647:373:99;;;;;;;;;;-1:-1:-1;2647:373:99;;;;;:::i;:::-;;:::i;12977:212:102:-;;;;;;;;;;-1:-1:-1;12977:212:102;;;;;:::i;:::-;;:::i;6822:551::-;;;;;;;;;;-1:-1:-1;6822:551:102;;;;;:::i;:::-;;:::i;924:96:0:-;;;;;;;;;;;;979:41;924:96;;3890:1119:101;;;;;;;;;;-1:-1:-1;3890:1119:101;;;;;:::i;:::-;;:::i;7635:435:102:-;;;;;;;;;;-1:-1:-1;7635:435:102;;;;;:::i;:::-;;:::i;3052:733:101:-;;;;;;;;;;-1:-1:-1;3052:733:101;;;;;:::i;:::-;;:::i;10118:102:102:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1348:55::-;;;;;;;;;;-1:-1:-1;1348:55:102;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;10212:25:165;;;10280:14;;10273:22;10268:2;10253:18;;10246:50;10185:18;1348:55:102;10044:258:165;11853:112:102;;;;;;;;;;-1:-1:-1;11853:112:102;;;;;:::i;:::-;;:::i;3777:1483:99:-;;;;;;;;;;-1:-1:-1;3777:1483:99;;;;;:::i;:::-;;:::i;4642:138:139:-;;;;;;;;;;-1:-1:-1;4642:138:139;;;;;:::i;:::-;;:::i;12176:111:102:-;;;;;;;;;;-1:-1:-1;12176:111:102;;;;;:::i;:::-;-1:-1:-1;;;;;12265:15:102;12239:7;12265:15;;;:9;:15;;;;;;;12176:111;783:51:101;;;;;;;;;;-1:-1:-1;783:51:101;;;;;:::i;:::-;;;;;;;;;;;;;;841:46;;;;;;;;;;-1:-1:-1;841:46:101;;;;;:::i;:::-;;:::i;1387:64:99:-;;;;;;;;;;-1:-1:-1;1387:64:99;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6202:254:101;;;;;;;;;;-1:-1:-1;6202:254:101;;;;;:::i;:::-;;:::i;12545:207:102:-;;;;;;;;;;-1:-1:-1;12545:207:102;;;;;:::i;:::-;;:::i;2047:208:0:-;;;;;;;;;;-1:-1:-1;2047:208:0;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;;;;;-1:-1:-1;2543:215:141;;;;;:::i;:::-;;:::i;2791:199:101:-;;;;;;:::i;:::-;;:::i;1016:17::-;;;;;;;;;;-1:-1:-1;1016:17:101;;;;-1:-1:-1;;;;;1016:17:101;;;10358:116:102;10437:30;;-1:-1:-1;;;10437:30:102;;10461:4;10437:30;;;5124:51:165;10411:7:102;;10437:5;-1:-1:-1;;;;;10437:15:102;;;;5097:18:165;;10437:30:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10430:37;;10358:116;:::o;2565:202:139:-;2650:4;-1:-1:-1;;;;;;2673:47:139;;-1:-1:-1;;;2673:47:139;;:87;;-1:-1:-1;;;;;;;;;;861:40:158;;;2724:36:139;2666:94;2565:202;-1:-1:-1;;2565:202:139:o;1030:18:99:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2430:211::-;2530:10;2504:4;2520:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2520:30:99;;;;;;;;;;:39;;;2575:37;2504:4;;2520:30;;2575:37;;;;2553:6;160:25:165;;148:2;133:18;;14:177;2575:37:99;;;;;;;;-1:-1:-1;2630:4:99;2430:211;;;;:::o;13446:230:102:-;13560:30;;-1:-1:-1;;;13560:30:102;;13584:4;13560:30;;;5124:51:165;13517:14:102;;;;-1:-1:-1;;;;;13560:5:102;:15;;;;5097:18:165;;13560:30:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13543:47;-1:-1:-1;13608:11:102;;:61;;13631:38;13647:6;13655:13;:11;:13::i;:::-;13631:6;;:38;:15;:38::i;:::-;13608:61;;;13622:6;13608:61;13601:68;13446:230;-1:-1:-1;;;13446:230:102:o;3026:562:99:-;-1:-1:-1;;;;;3148:15:99;;3114:4;3148:15;;;:9;:15;;;;;;;;3164:10;3148:27;;;;;;;;-1:-1:-1;;3226:28:99;;3222:80;;3286:16;3296:6;3286:7;:16;:::i;:::-;-1:-1:-1;;;;;3256:15:99;;;;;;:9;:15;;;;;;;;3272:10;3256:27;;;;;;;:46;3222:80;-1:-1:-1;;;;;3313:15:99;;;;;;:9;:15;;;;;:25;;3332:6;;3313:15;:25;;3332:6;;3313:25;:::i;:::-;;;;-1:-1:-1;;;;;;;3484:13:99;;;;;;;:9;:13;;;;;;;:23;;;;;;3533:26;3484:13;;3533:26;;;-1:-1:-1;;;;;;;;;;;3533:26:99;;;3501:6;160:25:165;;148:2;133:18;;14:177;3533:26:99;;;;;;;;-1:-1:-1;3577:4:99;;3026:562;-1:-1:-1;;;;3026:562:99:o;10705:125:102:-;-1:-1:-1;;;;;10807:15:102;;10767:7;10807:15;;;:9;:15;;;;;;10793:30;;:13;:30::i;4226:136:139:-;3875:7;3901:12;;;:6;:12;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;10953:118:102:-;11009:7;11035:29;11049:14;11055:8;11049:2;:14;:::i;19022:392::-;19081:16;-1:-1:-1;;;;;19117:19:102;;19109:65;;;;-1:-1:-1;;;19109:65:102;;;;;;;:::i;:::-;;;;;;;;;19226:12;:19;19184:25;;-1:-1:-1;;;;;19212:34:102;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19212:34:102;;19184:62;;19262:9;19257:126;19281:12;:19;19277:23;;19257:126;;;19335:37;19349:5;19356:12;19369:1;19356:15;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;19356:15:102;19335:13;:37::i;:::-;19321:8;19330:1;19321:11;;;;;;;;:::i;:::-;;;;;;;;;;:51;19302:3;;19257:126;;;-1:-1:-1;19399:8:102;19022:392;-1:-1:-1;;19022:392:102:o;5266:177:99:-;5323:7;5366:16;5349:13;:33;:87;;5412:24;:22;:24::i;5349:87::-;-1:-1:-1;5385:24:99;;5266:177::o;5328:245:139:-;-1:-1:-1;;;;;5421:34:139;;735:10:152;5421:34:139;5417:102;;5478:30;;-1:-1:-1;;;5478:30:139;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;5015:1128:101:-;5179:19;;5143:16;;5179:43;;5171:90;;;;-1:-1:-1;;;5171:90:101;;15313:2:165;5171:90:101;;;15295:21:165;15352:2;15332:18;;;15325:30;15391:34;15371:18;;;15364:62;-1:-1:-1;;;15442:18:165;;;15435:32;15484:19;;5171:90:101;15111:398:165;5171:90:101;5272:18;;5347:13;-1:-1:-1;;;;;5333:35:101;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5333:35:101;;5300:68;;5433:9;5428:206;5448:24;;;5428:206;;;5519:13;;5533:1;5519:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;5512:49;;-1:-1:-1;;;5512:49:101;;5555:4;5512:49;;;5124:51:165;-1:-1:-1;;;;;5512:34:101;;;;;;;5097:18:165;;5512:49:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5493:13;5507:1;5493:16;;;;;;;;:::i;:::-;;;;;;:68;;;;;5608:12;5621:1;5608:15;;;;;;;;:::i;:::-;;;;;;;5589:13;5603:1;5589:16;;;;;;;;:::i;:::-;;;;;;;:34;;;;:::i;:::-;5575:48;;;;:::i;:::-;;-1:-1:-1;5474:3:101;;5428:206;;;-1:-1:-1;5690:28:101;5735:13;-1:-1:-1;;;;;5721:35:101;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5721:35:101;;5690:66;;5824:9;5819:289;5839:24;;;5819:289;;;5884:19;5959:5;5920:17;:35;5938:13;;5952:1;5938:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5920:35:101;;;;;;;;;;;;-1:-1:-1;5920:35:101;;5907:48;;:10;:48;:::i;:::-;5906:58;;;;:::i;:::-;5884:80;;5978:22;6017:12;6030:1;6017:15;;;;;;;;:::i;:::-;;;;;;;6003:11;:29;;;;:::i;:::-;5978:54;;6081:13;6095:1;6081:16;;;;;;;;:::i;:::-;;;;;;;6064:14;:33;;;;:::i;:::-;6047:11;6059:1;6047:14;;;;;;;;:::i;:::-;;;;;;;;;;:50;-1:-1:-1;;5865:3:101;;5819:289;;;-1:-1:-1;6125:11:101;5015:1128;-1:-1:-1;;;;;;5015:1128:101:o;13925:216:102:-;14037:11;;13994:14;;14066:11;;:68;;14089:45;14107:13;:11;:13::i;:::-;14122:11;;14089:6;;:45;:17;:45::i;17693:1170::-;17774:23;-1:-1:-1;;;;;17817:19:102;;17809:65;;;;-1:-1:-1;;;17809:65:102;;;;;;;:::i;:::-;-1:-1:-1;;;;;17892:26:102;;17884:80;;;;-1:-1:-1;;;17884:80:102;;16241:2:165;17884:80:102;;;16223:21:165;16280:2;16260:18;;;16253:30;16319:34;16299:18;;;16292:62;-1:-1:-1;;;16370:18:165;;;16363:39;16419:19;;17884:80:102;16039:405:165;17884:80:102;-1:-1:-1;;;;;18008:30:102;;;17974:31;18008:30;;;:16;:30;;;;;;;;18074:18;;18127:23;;;;;:16;:23;;;;;18192:18;;18252:38;;;:24;;;:38;;;;;;;18008:30;;18074:18;18127:23;;18334:38;18252;18074:18;18334:38;:::i;:::-;18300:72;-1:-1:-1;18382:14:102;18399:60;18300:72;18434:1;18437:21;18399:34;:60::i;:::-;18382:77;;18470:19;18492:15;18470:37;;18518:22;18546:80;18570:6;18578:5;:17;;;18597:5;:15;;;18614:11;18546:23;:80::i;:::-;-1:-1:-1;18684:23:102;;18517:109;;-1:-1:-1;18517:109:102;;-1:-1:-1;18684:27:102;18680:177;;18727:18;18748:55;18762:15;18779:9;:23;;;18748:13;:55::i;:::-;18727:76;-1:-1:-1;18817:29:102;18727:76;18817:29;;:::i;:::-;;;18713:144;18680:177;17799:1064;;;;;;;;;17693:1170;;;;:::o;2235:447:101:-;2358:4;;-1:-1:-1;;;;;2372:15:101;;;2290:23;2372:15;;;:8;:15;;;;;;;2358:30;;-1:-1:-1;;;2358:30:101;;2290:23;;;;2358:4;;:13;;:30;;;;160:25:165;;;148:2;133:18;;14:177;2358:30:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2325:63;;2399:16;2433:5;-1:-1:-1;;;;;2418:30:101;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2399:51;;;;2461:26;2576:5;:10;;;-1:-1:-1;;2571:15:101;;;;:::i;:::-;2552:36;;:2;:36;:::i;:::-;2520:14;2526:8;2520:2;:14;:::i;:::-;2503:11;;2491:44;;;-1:-1:-1;;;;;2491:25:101;:44;:::i;:::-;2490:99;;;;:::i;:::-;2461:128;-1:-1:-1;2461:128:101;2638:14;2644:8;2638:2;:14;:::i;:::-;2619;2625:8;2619:2;:14;:::i;:::-;2618:35;;;;:::i;:::-;2617:58;;;;:::i;:::-;2599:76;2235:447;-1:-1:-1;;;;;2235:447:101:o;5369:552:102:-;5458:14;2356:21:154;:19;:21::i;:::-;5498:22:102::1;5513:6;5498:14;:22::i;:::-;5489:31;;;5525:1;5488:38:::0;5484:69:::1;;5535:18;::::0;-1:-1:-1;;;5535:18:102;;::::1;::::0;::::1;160:25:165::0;;;133:18;;5535::102::1;14:177:165::0;5484:69:102::1;5564:57;-1:-1:-1::0;;;;;5564:5:102::1;:22;5587:10;5607:4;5614:6:::0;5564:22:::1;:57::i;:::-;5652:6;5632:16;;:26;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;5691:5:102::1;::::0;5714:14:::1;::::0;;5691:5:::1;5714:14:::0;;;::::1;::::0;::::1;::::0;;;5669:60:::1;::::0;-1:-1:-1;;;;;5691:5:102::1;::::0;5705:6;;5714:14;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;5669:21;:60::i;:::-;-1:-1:-1::0;;5766:5:102::1;::::0;5740:82:::1;::::0;-1:-1:-1;;;;;5766:5:102::1;5781:4;5788:10;5813:6:::0;5740:25:::1;:82::i;:::-;5838:45;::::0;;8090:25:165;;;8146:2;8131:18;;8124:34;;;-1:-1:-1;;;;;5838:45:102;::::1;::::0;5846:10:::1;::::0;5838:45:::1;::::0;8063:18:165;5838:45:102::1;;;;;;;5894:20;5907:6;5894:12;:20::i;:::-;2398::154::0;1713:1;2924:7;:21;2744:208;2293:101:141;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;15974:1489:102:-;16101:12;:19;16147:15;;16046:7;;;;-1:-1:-1;;;;;16147:15:102;16194;16237:14;16220:1186;16257:16;16253:1;:20;:47;;;;-1:-1:-1;16281:19:102;:14;16298:2;16281:19;:::i;:::-;16277:1;:23;16253:47;16220:1186;;;16321:14;16349:13;16365:12;16378:1;16365:15;;;;;;;;:::i;:::-;;;;;;;;;;;;;16541:10;16524:28;;:16;:28;;;;;;:41;;-1:-1:-1;;;;;16365:15:102;;;16437:54;;;:47;;;;:54;;;;;;16404:16;:23;;;;;:30;16365:15;;-1:-1:-1;16403:163:102;;16365:15;;16404:87;;;:::i;:::-;16403:117;:163;:117;:163::i;:::-;16715:10;16582:22;16698:28;;;:16;:28;;;;;:40;;;;16756:38;;;;;16394:172;;-1:-1:-1;16582:22:102;;;;16633:204;;16394:172;;16698:40;16812:11;16633:23;:204::i;:::-;16869:10;16852:28;;;;:16;:28;;;;;:46;;:64;;16581:256;;-1:-1:-1;16581:256:102;;-1:-1:-1;16581:256:102;;16852:64;;16581:256;;16852:64;:::i;:::-;;;;-1:-1:-1;;;;;;;16988:23:102;;;;;;:16;:23;;;;;;;;:30;16948:10;16931:28;;;:16;:28;;;;;;:54;;;:47;;;:54;;;;;:87;;;;17170:28;;;;;;:46;;;;;17032:200;;17005:5;;17106:4;;16948:10;17032:25;:200::i;:::-;17263:10;17295:1;17246:28;;;:16;:28;;;;;:46;;:50;-1:-1:-1;;;;;17315:20:102;;;17311:84;;17365:10;17348:28;;;;:16;:28;;;;;:46;;;17337:58;;:10;:58::i;:::-;16307:1099;;;;16302:3;;;;;:::i;:::-;;;;16220:1186;;;-1:-1:-1;17423:14:102;;17439:16;;-1:-1:-1;15974:1489:102;;-1:-1:-1;;;15974:1489:102:o;1206:29::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1206:29:102;;-1:-1:-1;1206:29:102;:::o;2854:136:139:-;2931:4;2954:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;2954:29:139;;;;;;;;;;;;;;;2854:136::o;6177:343:102:-;6257:14;2356:21:154;:19;:21::i;:::-;6283:39:102::1;6289:2;6302:19;6314:6;6302:11;:19::i;:::-;6293:28;;;6283:5;:39::i;:::-;6353:6;6333:16;;:26;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;6375:39:102::1;::::0;;8090:25:165;;;8146:2;8131:18;;8124:34;;;-1:-1:-1;;;;;6375:39:102;::::1;::::0;6383:10:::1;::::0;6375:39:::1;::::0;8063:18:165;6375:39:102::1;;;;;;;6425:57;-1:-1:-1::0;;;;;6425:5:102::1;:22;6448:10;6468:4;6475:6:::0;6425:22:::1;:57::i;:::-;6493:20;6506:6;6493:12;:20::i;1055::99:-:0;;;;;;;:::i;14490:1167:102:-;979:41:0;2464:16:139;2475:4;2464:10;:16::i;:::-;-1:-1:-1;;;;;14616:20:102;::::1;14608:67;;;::::0;-1:-1:-1;;;14608:67:102;;18631:2:165;14608:67:102::1;::::0;::::1;18613:21:165::0;18670:2;18650:18;;;18643:30;18709:34;18689:18;;;18682:62;-1:-1:-1;;;18760:18:165;;;18753:32;18802:19;;14608:67:102::1;18429:398:165::0;14608:67:102::1;14693:7;14704:1;14693:12:::0;14685:52:::1;;;::::0;-1:-1:-1;;;14685:52:102;;19034:2:165;14685:52:102::1;::::0;::::1;19016:21:165::0;19073:2;19053:18;;;19046:30;19112:29;19092:18;;;19085:57;19159:18;;14685:52:102::1;18832:351:165::0;14685:52:102::1;14755:16;;14775:1;14755:21:::0;14747:60:::1;;;::::0;-1:-1:-1;;;14747:60:102;;19390:2:165;14747:60:102::1;::::0;::::1;19372:21:165::0;19429:2;19409:18;;;19402:30;19468:28;19448:18;;;19441:56;19514:18;;14747:60:102::1;19188:350:165::0;14747:60:102::1;14843:5;-1:-1:-1::0;;;;;14825:24:102::1;:6;-1:-1:-1::0;;;;;14825:24:102::1;;;:43;;;;-1:-1:-1::0;14863:5:102::1;::::0;-1:-1:-1;;;;;14853:15:102;;::::1;14863:5:::0;::::1;14853:15;;14825:43;14817:103;;;::::0;-1:-1:-1;;;14817:103:102;;19745:2:165;14817:103:102::1;::::0;::::1;19727:21:165::0;19784:2;19764:18;;;19757:30;19823:34;19803:18;;;19796:62;-1:-1:-1;;;19874:18:165;;;19867:45;19929:19;;14817:103:102::1;19543:411:165::0;14817:103:102::1;14935:12;:19:::0;14958:2:::1;14935:25:::0;14931:61:::1;;14969:23;;-1:-1:-1::0;;;14969:23:102::1;;;;;;;;;;;14931:61;15003:23;15029:39;15048:1;15051:16;;15029:7;:18;;:39;;;;;:::i;:::-;-1:-1:-1::0;;;;;15111:24:102;::::1;15078:30;15111:24:::0;;;:16:::1;:24;::::0;;;;15150:16:::1;::::0;::::1;::::0;15003:65;;-1:-1:-1;15111:24:102;15150:16:::1;;15145:463;;15182:12;:25:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;15182:25:102;;;;;::::1;::::0;;-1:-1:-1;;;;;;15182:25:102::1;-1:-1:-1::0;;;;;15182:25:102;::::1;;::::0;;15221:16;;::::1;:23:::0;;-1:-1:-1;;15221:23:102::1;::::0;;::::1;::::0;;15258:35;;;15307:49:::1;15182:25:::0;15350:4:::1;15307:26;:49::i;:::-;15370:66;-1:-1:-1::0;;;;;15370:30:102;::::1;15401:10;15421:4;15428:7:::0;15370:30:::1;:66::i;:::-;15145:463;;;-1:-1:-1::0;;;;;15467:24:102;::::1;;::::0;;;:16:::1;:24;::::0;;;;:50;;15502:15;;15467:24;:50:::1;::::0;15502:15;;15467:50:::1;:::i;:::-;::::0;;;-1:-1:-1;15531:66:102::1;::::0;-1:-1:-1;;;;;;15531:30:102;::::1;15562:10;15582:4;15589:7:::0;15531:30:::1;:66::i;:::-;15634:6;-1:-1:-1::0;;;;;15622:28:102::1;;15642:7;15622:28;;;;160:25:165::0;;148:2;133:18;;14:177;15622:28:102::1;;;;;;;;14598:1059;;14490:1167:::0;;;:::o;2647:373:99:-;2743:10;2717:4;2733:21;;;:9;:21;;;;;:31;;2758:6;;2733:21;2717:4;;2733:31;;2758:6;;2733:31;:::i;:::-;;;;-1:-1:-1;;;;;;;2910:13:99;;;;;;:9;:13;;;;;;;:23;;;;;;2959:32;2968:10;;-1:-1:-1;;;;;;;;;;;2959:32:99;;;2927:6;160:25:165;;148:2;133:18;;14:177;12977:212:102;13087:11;;13044:14;;13116:11;;:66;;13139:43;13155:13;:11;:13::i;:::-;13170:11;;13139:6;;:43;:15;:43::i;6822:551::-;6956:14;2356:21:154;:19;:21::i;:::-;6982:22:102::1;6997:6;6982:14;:22::i;:::-;7093:6;7073:16;;:26;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;7136:5:102::1;::::0;7110:82:::1;::::0;-1:-1:-1;;;;;7136:5:102::1;7143:10;7163:4;7183:6:::0;7110:25:::1;:82::i;:::-;7225:5;::::0;7248:14:::1;::::0;;7225:5:::1;7248:14:::0;;::::1;::::0;::::1;::::0;;;7203:60:::1;::::0;-1:-1:-1;;;;;7225:5:102::1;::::0;7239:6;;7203:21:::1;:60::i;:::-;-1:-1:-1::0;7274:36:102::1;-1:-1:-1::0;;;;;7274:5:102::1;:18;7293:8:::0;7303:6;7274:18:::1;:36::i;:::-;7341:8;-1:-1:-1::0;;;;;7326:40:102::1;7335:4;-1:-1:-1::0;;;;;7326:40:102::1;;7351:6;7359;7326:40;;;;;;8090:25:165::0;;;8146:2;8131:18;;8124:34;8078:2;8063:18;;7916:248;7326:40:102::1;;;;;;;;2398:20:154::0;1713:1;2924:7;:21;2744:208;3890:1119:101;3995:9;3990:1013;4010:24;;;3990:1013;;;4055:13;4071;;4085:1;4071:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;4124:38;;-1:-1:-1;;;4124:38:101;;4156:4;4124:38;;;5124:51:165;4055:32:101;;-1:-1:-1;4101:20:101;;-1:-1:-1;;;;;4124:23:101;;;;;5097:18:165;;4124:38:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4197:18:101;;4176;4197;;;:11;:18;;;;;;4101:61;;-1:-1:-1;4250:25:101;4197:18;4101:61;4250:25;:::i;:::-;-1:-1:-1;;;;;4325:24:101;;4289:19;4325:24;;;:17;:24;;;;;;4229:46;;-1:-1:-1;4289:19:101;4353:5;;4312:37;;4229:46;4312:37;:::i;:::-;4311:47;;;;:::i;:::-;4289:69;-1:-1:-1;4372:22:101;4397:24;4411:10;4289:69;4397:24;:::i;:::-;4372:49;;4455:14;4440:12;:29;4436:557;;;4489:22;4514:29;4529:14;4514:12;:29;:::i;:::-;4648:10;;4618:58;;-1:-1:-1;;;4618:58:101;;-1:-1:-1;;;;;4648:10:101;;;4618:58;;;20133:51:165;20200:18;;;20193:34;;;4489:54:101;;-1:-1:-1;4618:21:101;;;;;20106:18:165;;4618:58:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4731:10:101;;-1:-1:-1;;;;;4872:16:101;;;4731:10;4872:16;;;:9;:16;;;;;;4731:247;;-1:-1:-1;;;4731:247:101;;:10;;;;;:32;;:247;;4785:14;;4731:10;;4918:4;;4945:15;;4731:247;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4731:247:101;;;;;;;;;;;;:::i;:::-;;4471:522;4436:557;-1:-1:-1;;4036:3:101;;;;;-1:-1:-1;3990:1013:101;;-1:-1:-1;;;3990:1013:101;7635:435:102;7767:14;2356:21:154;:19;:21::i;:::-;7811::102::1;7825:6;7811:13;:21::i;:::-;7802:30;;;7837:1;7801:37:::0;7793:61:::1;;;::::0;-1:-1:-1;;;7793:61:102;;22841:2:165;7793:61:102::1;::::0;::::1;22823:21:165::0;22880:2;22860:18;;;22853:30;-1:-1:-1;;;22899:18:165;;;22892:41;22950:18;;7793:61:102::1;22639:335:165::0;7793:61:102::1;7874:21;7888:6;7874:13;:21::i;:::-;7865:30;;7905:19;7911:4;7917:6;7905:5;:19::i;:::-;7954:6;7934:16;;:26;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;7976:40:102::1;::::0;;8090:25:165;;;8146:2;8131:18;;8124:34;;;-1:-1:-1;;;;;7976:40:102;;::::1;::::0;;;::::1;::::0;::::1;::::0;8063:18:165;7976:40:102::1;;;;;;;8027:36;-1:-1:-1::0;;;;;8027:5:102::1;:18;8046:8:::0;8056:6;8027:18:::1;:36::i;:::-;2398:20:154::0;1713:1;2924:7;:21;2744:208;3052:733:101;3151:13;3181:23;3124:24;3214:113;3238:16;3234:1;:20;3214:113;;;3287:11;:29;3299:13;;3313:1;3299:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3287:29:101;-1:-1:-1;;;;;3287:29:101;;;;;;;;;;;;;3275:6;3282:1;3275:9;;;;;;;;:::i;:::-;;;;;;;;;;:41;3256:3;;3214:113;;;;3337:28;3368:33;3379:6;3387:13;;3368:10;:33::i;:::-;3337:64;;3412:54;3452:13;;3412:39;:54::i;:::-;3498:18;;3477;3526:253;3550:10;3546:1;:14;3526:253;;;3581:10;;3631:14;;-1:-1:-1;;;;;3581:10:101;;;;:32;;3631:11;;3643:1;;3631:14;;;;;;:::i;:::-;;;;;;;3663:9;:27;3673:13;;3687:1;3673:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3663:27:101;-1:-1:-1;;;;;3663:27:101;;;;;;;;;;;;3716:4;3739:15;3581:187;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3581:187:101;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3562:3:101;;3526:253;;;;3114:671;;;;3052:733;;:::o;10118:102:102:-;10166:16;10201:12;10194:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10194:19:102;;;;;;;;;;;;;;;;;;;;;;;10118:102;:::o;11853:112::-;11918:7;11944:14;11953:4;11944:8;:14::i;3777:1483:99:-;3996:15;3984:8;:27;;3976:63;;;;-1:-1:-1;;;3976:63:99;;23693:2:165;3976:63:99;;;23675:21:165;23732:2;23712:18;;;23705:30;23771:25;23751:18;;;23744:53;23814:18;;3976:63:99;23491:347:165;3976:63:99;4204:24;4231:805;4367:18;:16;:18::i;:::-;-1:-1:-1;;;;;4812:13:99;;;;;;;:6;:13;;;;;;;;;:15;;;;;;;;4450:449;;4494:165;4450:449;;;24130:25:165;24209:18;;;24202:43;;;;24281:15;;;24261:18;;;24254:43;24313:18;;;24306:34;;;24356:19;;;24349:35;;;;24400:19;;;;24393:35;;;4450:449:99;;;;;;;;;;24102:19:165;;;4450:449:99;;;4411:514;;;;;;;;-1:-1:-1;;;4289:658:99;;;24697:27:165;24740:11;;;24733:27;;;;24776:12;;;24769:28;;;;24813:12;;4289:658:99;;;-1:-1:-1;;4289:658:99;;;;;;;;;4258:707;;4289:658;4258:707;;;;4231:805;;;;;;;;;25063:25:165;25136:4;25124:17;;25104:18;;;25097:45;25158:18;;;25151:34;;;25201:18;;;25194:34;;;25035:19;;4231:805:99;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4231:805:99;;-1:-1:-1;;4231:805:99;;;-1:-1:-1;;;;;;;5059:30:99;;;;;;:59;;;5113:5;-1:-1:-1;;;;;5093:25:99;:16;-1:-1:-1;;;;;5093:25:99;;5059:59;5051:86;;;;-1:-1:-1;;;5051:86:99;;25441:2:165;5051:86:99;;;25423:21:165;25480:2;25460:18;;;25453:30;-1:-1:-1;;;25499:18:165;;;25492:44;25553:18;;5051:86:99;25239:338:165;5051:86:99;-1:-1:-1;;;;;5152:27:99;;;;;;;:9;:27;;;;;;;;:36;;;;;;;;;;;;;:44;;;5222:31;160:25:165;;;5152:36:99;;5222:31;;;;;133:18:165;5222:31:99;;;;;;;3777:1483;;;;;;;:::o;4642:138:139:-;3875:7;3901:12;;;:6;:12;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;841:46:101:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;841:46:101;;-1:-1:-1;841:46:101;;-1:-1:-1;841:46:101:o;6202:254::-;6306:5;6293:10;:18;6285:54;;;;-1:-1:-1;;;6285:54:101;;25784:2:165;6285:54:101;;;25766:21:165;25823:2;25803:18;;;25796:30;25862:25;25842:18;;;25835:53;25905:18;;6285:54:101;25582:347:165;6285:54:101;-1:-1:-1;;;;;6357:19:101;;6349:53;;;;-1:-1:-1;;;6349:53:101;;26136:2:165;6349:53:101;;;26118:21:165;26175:2;26155:18;;;26148:30;-1:-1:-1;;;26194:18:165;;;26187:51;26255:18;;6349:53:101;25934:345:165;6349:53:101;-1:-1:-1;;;;;6412:24:101;;;;;;;:17;:24;;;;;:37;6202:254::o;12545:207:102:-;12658:11;;12615:14;;12687:11;;:58;;12710:35;12728:1;12731:13;:11;:13::i;:::-;12710:6;;:35;:17;:35::i;2047:208:0:-;1120:39;2464:16:139;2475:4;2464:10;:16::i;:::-;2157:91:0::1;2184:10;:19;;;2205:10;:16;;;2223:10;:24;;;2157:26;:91::i;:::-;2047:208:::0;;:::o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;5124:51:165::0;5097:18;;2672:31:141::1;4963:218:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;2791:199:101:-;2883:4;;:34;;-1:-1:-1;;;2883:34:101;;2866:14;;-1:-1:-1;;;;;2883:4:101;;:17;;:34;;2901:15;;;;2883:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2927:4;;:56;;-1:-1:-1;;;2927:56:101;;2866:51;;-1:-1:-1;;;;;;2927:4:101;;:21;;2866:51;;2927:56;;2967:15;;;;2927:56;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2856:134;2791:199;;:::o;2067:642:109:-;2151:9;2399:1;-1:-1:-1;;2382:19:109;2379:1;2376:26;2373:1;2369:34;2362:42;2349:11;2345:60;2335:116;;2435:1;2432;2425:12;2335:116;-1:-1:-1;2669:9:109;;2632:27;;;2629:34;;2665:27;;;2625:68;;2067:642::o;3199:103:139:-;3265:30;3276:4;735:10:152;3265::139;:30::i;6179:316::-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6315:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;6315:29:139;;;;;;;;;:36;;-1:-1:-1;;6315:36:139;6347:4;6315:36;;;6397:12;735:10:152;;656:96;6397:12:139;-1:-1:-1;;;;;6370:40:139;6388:7;-1:-1:-1;;;;;6370:40:139;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:139;6424:11;;6272:217;-1:-1:-1;6473:5:139;6466:12;;5449:446:99;5514:7;5611:95;5744:4;5728:22;;;;;;:::i;:::-;;;;;;;;;;5579:295;;;29189:25:165;;;;29230:18;;29223:34;;;;5772:14:99;29273:18:165;;;29266:34;5808:13:99;29316:18:165;;;29309:34;5851:4:99;29359:19:165;;;29352:61;29161:19;;5579:295:99;;;;;;;;;;;;5552:336;;;;;;5533:355;;5449:446;:::o;6730:317:139:-;6808:4;6828:22;6836:4;6842:7;6828;:22::i;:::-;6824:217;;;6898:5;6866:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;6866:29:139;;;;;;;;;;:37;;-1:-1:-1;;6866:37:139;;;6922:40;735:10:152;;6866:12:139;;6922:40;;6898:5;6922:40;-1:-1:-1;6983:4:139;6976:11;;1565:496:109;1651:9;1899:1;-1:-1:-1;;1882:19:109;1879:1;1876:26;1873:1;1869:34;1862:42;1849:11;1845:60;1835:116;;1935:1;1932;1925:12;1835:116;-1:-1:-1;2022:9:109;;2018:27;;1565:496::o;19794:682:102:-;19969:22;19993:23;20048:12;20032;:28;20028:442;;-1:-1:-1;20084:1:102;;-1:-1:-1;20087:7:102;20076:19;;20028:442;20132:10;20116:12;:26;20112:358;;-1:-1:-1;20166:7:102;;-1:-1:-1;20175:1:102;20158:19;;20112:358;20208:19;20230:27;20245:12;20230;:27;:::i;:::-;20208:49;-1:-1:-1;20271:24:102;20298:25;20311:12;20298:10;:25;:::i;:::-;20271:52;-1:-1:-1;20354:49:102;:7;20373:11;20271:52;20354:18;:49::i;:::-;20337:66;-1:-1:-1;20435:24:102;20337:66;20435:7;:24;:::i;:::-;20417:42;;20194:276;;20112:358;19794:682;;;;;;;:::o;3493:260:0:-;3580:7;876:6;3607:24;3617:14;3607:7;:24;:::i;:::-;:40;;3599:89;;;;-1:-1:-1;;;3599:89:0;;29626:2:165;3599:89:0;;;29608:21:165;29665:2;29645:18;;;29638:30;29704:34;29684:18;;;29677:62;-1:-1:-1;;;29755:18:165;;;29748:34;29799:19;;3599:89:0;29424:400:165;3599:89:0;876:6;3706:24;3716:14;3706:7;:24;:::i;:::-;3705:41;;;;:::i;2431:307:154:-;1755:1;2558:7;;:18;2554:86;;2599:30;;-1:-1:-1;;;2599:30:154;;;;;;;;;;;2554:86;1755:1;2714:7;:17;2431:307::o;1321:1578:110:-;1421:12;1591:4;1585:11;-1:-1:-1;;;1714:17:110;1707:93;1847:4;1843:1;1824:17;1820:25;1813:39;1931:2;1926;1907:17;1903:26;1896:38;2011:6;2006:2;1987:17;1983:26;1976:42;2815:2;2812:1;2807:3;2788:17;2785:1;2778:5;2771;2766:52;2334:16;2327:24;2321:2;2303:16;2300:24;2296:1;2292;2286:8;2283:15;2279:46;2276:76;2076:756;2065:767;;;2860:7;2852:40;;;;-1:-1:-1;;;2852:40:110;;30031:2:165;2852:40:110;;;30013:21:165;30070:2;30050:18;;;30043:30;-1:-1:-1;;;30089:18:165;;;30082:50;30149:18;;2852:40:110;29829:344:165;2852:40:110;1411:1488;1321:1578;;;;:::o;843:665:12:-;969:21;992:28;1032:18;1061:12;1075:19;246:5;-1:-1:-1;;;;;1098:22:12;1157:38;;;1197:5;1204:6;1212:8;1134:87;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1134:87:12;;;;;;;;;;;;;;-1:-1:-1;;;;;1134:87:12;-1:-1:-1;;;;;;1134:87:12;;;;;;;;;;1098:133;;;;1134:87;1098:133;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1060:171;;;;1289:7;:129;;1403:14;;;1400:1;1403:14;;;;;;;;;2576:2:10;;1400:1:12;1289:129;;;1322:6;1311:44;;;;;;;;;;;;:::i;:::-;1241:177;;-1:-1:-1;1241:177:12;-1:-1:-1;1241:177:12;-1:-1:-1;1436:43:12;;;;2722:2:10;1436:43:12;1428:73;;;;-1:-1:-1;;;1428:73:12;;32742:2:165;1428:73:12;;;32724:21:165;32781:2;32761:18;;;32754:30;-1:-1:-1;;;32800:18:165;;;32793:47;32857:18;;1428:73:12;32540:341:165;1428:73:12;1022:486;;;843:665;;;;;;:::o;5180:512::-;5391:99;;;-1:-1:-1;;;;;33169:15:165;;;5391:99:12;;;33151:34:165;33221:15;;;33201:18;;;33194:43;33273:15;;33253:18;;;33246:43;33336:1;33325:21;;;33305:18;;;;33298:49;;;;5391:99:12;;;;;;;;;;33085:19:165;;;;5391:99:12;;;;;;;-1:-1:-1;;;;;5391:99:12;-1:-1:-1;;;5391:99:12;;;5355:145;;-1:-1:-1;;;;;;246:5:12;;5355:145;;5391:99;5355:145;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5317:183;;;;5525:7;:67;;2576:2:10;5525:67:12;;;5546:6;5535:27;;;;;;;;;;;;:::i;:::-;5510:82;-1:-1:-1;5610:43:12;;;;2722:2:10;5610:43:12;5602:83;;;;-1:-1:-1;;;5602:83:12;;33769:2:165;5602:83:12;;;33751:21:165;33808:2;33788:18;;;33781:30;33847:29;33827:18;;;33820:57;33894:18;;5602:83:12;33567:351:165;8710:1123:102;8790:10;8773:28;;;;:16;:28;;;;;:34;;;;;8768:1059;;8850:12;:19;8823:24;8883:253;8903:16;8899:1;:20;8883:253;;;8944:13;8960:12;8973:1;8960:15;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8960:15:102;9050:23;;;:16;:23;;;;;;:30;9010:10;8993:28;;:16;:28;;;;;:54;;;:47;;:54;;;;;:87;9098:23;;-1:-1:-1;;;9098:23:102;;;;8960:15;;-1:-1:-1;8960:15:102;;9098:21;;:23;;;;;8960:15;;9098:23;;;;;;;;;;8960:15;9098:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;8921:3:102;;8883:253;;;-1:-1:-1;9166:10:102;9149:28;;;;:16;:28;;;;;:51;;;9214:34;;;:41;;-1:-1:-1;;9214:41:102;9251:4;9214:41;;;;;;9315:15;9269:43;;;:61;;;9344:40;;;;:58;;;9520:25;;9538:7;9520:25;:::i;:::-;9496:10;9479:28;;;;:16;:28;;;;;:38;;:66;;;;9559:16;:27;;9579:7;;9479:28;9559:27;;9579:7;;9559:27;:::i;:::-;;;;-1:-1:-1;8768:1059:102;;-1:-1:-1;;8768:1059:102;;9617:17;9632:1;9617:14;:17::i;:::-;-1:-1:-1;;9665:10:102;9648:28;;;;:16;:28;;;;;:52;;9693:7;;9648:28;:52;;9693:7;;9648:52;:::i;:::-;;;;-1:-1:-1;;9731:10:102;9714:28;;;;:16;:28;;;;;9760:15;9714:43;;;;:61;9789:16;:27;;9809:7;;9714:28;9789:27;;9809:7;;9789:27;:::i;:::-;;;;-1:-1:-1;;8710:1123:102;:::o;1796:162:141:-;1710:6;;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;5124:51:165;5097:18;;1901:40:141;4963:218:165;2912:187:141;3004:6;;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;;3052:40;;3004:6;;;3020:17;3004:6;;3052:40;;2985:16;;3052:40;2975:124;2912:187;:::o;2391:358:0:-;2464:15;;2526:23;;-1:-1:-1;;;;;2464:15:0;;;;2447:14;;2503:47;;2517:7;;2503:13;:47::i;:::-;2569:36;;-1:-1:-1;;;2569:36:0;;2594:10;2569:36;;;5124:51:165;2489:61:0;;-1:-1:-1;2489:61:0;;-1:-1:-1;;;;;2569:24:0;;;;;5097:18:165;;2569:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;;2561:86;;;;-1:-1:-1;;;2561:86:0;;34125:2:165;2561:86:0;;;34107:21:165;34164:2;34144:18;;;34137:30;34203:32;34183:18;;;34176:60;34253:18;;2561:86:0;33923:354:165;2561:86:0;2703:9;:18;2657:85;;2683:6;;2691:10;;-1:-1:-1;;;;;2703:18:0;2736:3;2657:25;:85::i;6089:325:99:-;6174:6;6159:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;6326:13:99;;;;;;:9;:13;;;;;;;;:23;;;;;;6375:32;160:25:165;;;-1:-1:-1;;;;;;;;;;;6375:32:99;133:18:165;6375:32:99;;;;;;;;6089:325;;:::o;2617:470:12:-;2798:83;;;-1:-1:-1;;;;;34512:15:165;;;2798:83:12;;;34494:34:165;34564:15;;34544:18;;;;34537:43;;;;2798:83:12;;;;;;;;;;34429:18:165;;;;2798:83:12;;;;;;;-1:-1:-1;;;;;2798:83:12;-1:-1:-1;;;2798:83:12;;;2762:129;;-1:-1:-1;;;;;;246:5:12;;2762:129;;2798:83;2762:129;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2724:167;;;;2916:7;:67;;2576:2:10;2916:67:12;;;2937:6;2926:27;;;;;;;;;;;;:::i;:::-;2901:82;-1:-1:-1;3001:43:12;;;;2722:2:10;3001:43:12;2993:87;;;;-1:-1:-1;;;2993:87:12;;34793:2:165;2993:87:12;;;34775:21:165;34832:2;34812:18;;;34805:30;34871:33;34851:18;;;34844:61;34922:18;;2993:87:12;34591:355:165;8390:186:102;8497:10;8480:28;;;;:16;:28;;;;;:52;;8525:7;;8480:28;:52;;8525:7;;8480:52;:::i;:::-;;;;;;;;8562:7;8542:16;;:27;;;;;;;:::i;1514:605:12:-;1645:21;1678:18;1707:12;1721:19;246:5;-1:-1:-1;;;;;1744:22:12;1803:38;;;1843:5;1850:6;1858:13;1780:92;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1780:92:12;;;;;;;;;;;;;;-1:-1:-1;;;;;1780:92:12;-1:-1:-1;;;;;;1780:92:12;;;;;;;;;;1744:138;;;;1780:92;1744:138;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1706:176;;;;1925:7;:104;;2576:2:10;2027:1:12;1925:104;;;1958:6;1947:35;;;;;;;;;;;;:::i;:::-;1892:137;-1:-1:-1;1892:137:12;-1:-1:-1;2047:43:12;;;;2722:2:10;2047:43:12;2039:73;;;;-1:-1:-1;;;2039:73:12;;36285:2:165;2039:73:12;;;36267:21:165;36324:2;36304:18;;;36297:30;-1:-1:-1;;;36343:18:165;;;36336:47;36400:18;;2039:73:12;36083:341:165;2039:73:12;1668:451;;;1514:605;;;;;:::o;2905:1469:110:-;2987:12;3157:4;3151:11;-1:-1:-1;;;3280:17:110;3273:93;3413:2;3409:1;3390:17;3386:25;3379:37;3493:6;3488:2;3469:17;3465:26;3458:42;4295:2;4292:1;4288:2;4269:17;4266:1;4259:5;4252;4247:51;3816:16;3809:24;3803:2;3785:16;3782:24;3778:1;3774;3768:8;3765:15;3761:46;3758:76;3558:754;3547:765;;;4340:7;4332:35;;;;-1:-1:-1;;;4332:35:110;;36631:2:165;4332:35:110;;;36613:21:165;36670:2;36650:18;;;36643:30;-1:-1:-1;;;36689:18:165;;;36682:45;36744:18;;4332:35:110;36429:339:165;6420:328:99;-1:-1:-1;;;;;6492:15:99;;;;;;:9;:15;;;;;:25;;6511:6;;6492:15;:25;;6511:6;;6492:25;:::i;:::-;;;;-1:-1:-1;;6660:11:99;:21;;;;;;;6707:34;;160:25:165;;;-1:-1:-1;;;;;;;6707:34:99;;;-1:-1:-1;;;;;;;;;;;6707:34:99;148:2:165;133:18;6707:34:99;14:177:165;2974:343:0;876:6;3095:14;:29;3087:57;;;;-1:-1:-1;;;3087:57:0;;36975:2:165;3087:57:0;;;36957:21:165;37014:2;36994:18;;;36987:30;-1:-1:-1;;;37033:18:165;;;37026:45;37088:18;;3087:57:0;36773:339:165;3087:57:0;3154:9;:30;;-1:-1:-1;;;;;3154:30:0;;;-1:-1:-1;;;;;;3154:30:0;;;;;;;;3194:15;:24;;;;;;;;;;;;;;3228:23;:40;;;3283:27;;;37348:41:165;;;37420:4;37405:20;;37398:63;;;;37477:20;;37470:54;;;3283:27:0;;37298:2:165;37283:18;3283:27:0;;;;;;;2974:343;;;:::o;3432:197:139:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3565:47;;-1:-1:-1;;;3565:47:139;;-1:-1:-1;;;;;20151:32:165;;3565:47:139;;;20133:51:165;20200:18;;;20193:34;;;20106:18;;3565:47:139;19959:274:165;196:286;254:6;307:2;295:9;286:7;282:23;278:32;275:52;;;323:1;320;313:12;275:52;349:23;;-1:-1:-1;;;;;;401:32:165;;391:43;;381:71;;448:1;445;438:12;861:250;946:1;956:113;970:6;967:1;964:13;956:113;;;1046:11;;;1040:18;1027:11;;;1020:39;992:2;985:10;956:113;;;-1:-1:-1;;1103:1:165;1085:16;;1078:27;861:250::o;1116:271::-;1158:3;1196:5;1190:12;1223:6;1218:3;1211:19;1239:76;1308:6;1301:4;1296:3;1292:14;1285:4;1278:5;1274:16;1239:76;:::i;:::-;1369:2;1348:15;-1:-1:-1;;1344:29:165;1335:39;;;;1376:4;1331:50;;1116:271;-1:-1:-1;;1116:271:165:o;1392:220::-;1541:2;1530:9;1523:21;1504:4;1561:45;1602:2;1591:9;1587:18;1579:6;1561:45;:::i;1617:173::-;1685:20;;-1:-1:-1;;;;;1734:31:165;;1724:42;;1714:70;;1780:1;1777;1770:12;1714:70;1617:173;;;:::o;1795:254::-;1863:6;1871;1924:2;1912:9;1903:7;1899:23;1895:32;1892:52;;;1940:1;1937;1930:12;1892:52;1963:29;1982:9;1963:29;:::i;:::-;1953:39;2039:2;2024:18;;;;2011:32;;-1:-1:-1;;;1795:254:165:o;2054:180::-;2113:6;2166:2;2154:9;2145:7;2141:23;2137:32;2134:52;;;2182:1;2179;2172:12;2134:52;-1:-1:-1;2205:23:165;;2054:180;-1:-1:-1;2054:180:165:o;2239:186::-;2298:6;2351:2;2339:9;2330:7;2326:23;2322:32;2319:52;;;2367:1;2364;2357:12;2319:52;2390:29;2409:9;2390:29;:::i;3360:328::-;3437:6;3445;3453;3506:2;3494:9;3485:7;3481:23;3477:32;3474:52;;;3522:1;3519;3512:12;3474:52;3545:29;3564:9;3545:29;:::i;:::-;3535:39;;3593:38;3627:2;3616:9;3612:18;3593:38;:::i;:::-;3583:48;;3678:2;3667:9;3663:18;3650:32;3640:42;;3360:328;;;;;:::o;3878:254::-;3946:6;3954;4007:2;3995:9;3986:7;3982:23;3978:32;3975:52;;;4023:1;4020;4013:12;3975:52;4059:9;4046:23;4036:33;;4088:38;4122:2;4111:9;4107:18;4088:38;:::i;:::-;4078:48;;3878:254;;;;;:::o;4326:632::-;4497:2;4549:21;;;4619:13;;4522:18;;;4641:22;;;4468:4;;4497:2;4720:15;;;;4694:2;4679:18;;;4468:4;4763:169;4777:6;4774:1;4771:13;4763:169;;;4838:13;;4826:26;;4907:15;;;;4872:12;;;;4799:1;4792:9;4763:169;;;-1:-1:-1;4949:3:165;;4326:632;-1:-1:-1;;;;;;4326:632:165:o;5186:127::-;5247:10;5242:3;5238:20;5235:1;5228:31;5278:4;5275:1;5268:15;5302:4;5299:1;5292:15;5318:275;5389:2;5383:9;5454:2;5435:13;;-1:-1:-1;;5431:27:165;5419:40;;-1:-1:-1;;;;;5474:34:165;;5510:22;;;5471:62;5468:88;;;5536:18;;:::i;:::-;5572:2;5565:22;5318:275;;-1:-1:-1;5318:275:165:o;5598:183::-;5658:4;-1:-1:-1;;;;;5683:6:165;5680:30;5677:56;;;5713:18;;:::i;:::-;-1:-1:-1;5758:1:165;5754:14;5770:4;5750:25;;5598:183::o;5786:367::-;5849:8;5859:6;5913:3;5906:4;5898:6;5894:17;5890:27;5880:55;;5931:1;5928;5921:12;5880:55;-1:-1:-1;5954:20:165;;-1:-1:-1;;;;;5986:30:165;;5983:50;;;6029:1;6026;6019:12;5983:50;6066:4;6058:6;6054:17;6042:29;;6126:3;6119:4;6109:6;6106:1;6102:14;6094:6;6090:27;6086:38;6083:47;6080:67;;;6143:1;6140;6133:12;6080:67;5786:367;;;;;:::o;6158:1229::-;6278:6;6286;6294;6347:2;6335:9;6326:7;6322:23;6318:32;6315:52;;;6363:1;6360;6353:12;6315:52;6403:9;6390:23;-1:-1:-1;;;;;6473:2:165;6465:6;6462:14;6459:34;;;6489:1;6486;6479:12;6459:34;6527:6;6516:9;6512:22;6502:32;;6572:7;6565:4;6561:2;6557:13;6553:27;6543:55;;6594:1;6591;6584:12;6543:55;6630:2;6617:16;6652:4;6676:60;6692:43;6732:2;6692:43;:::i;:::-;6676:60;:::i;:::-;6770:15;;;6852:1;6848:10;;;;6840:19;;6836:28;;;6801:12;;;;6876:19;;;6873:39;;;6908:1;6905;6898:12;6873:39;6932:11;;;;6952:142;6968:6;6963:3;6960:15;6952:142;;;7034:17;;7022:30;;6985:12;;;;7072;;;;6952:142;;;7113:5;-1:-1:-1;;7156:18:165;;7143:32;;-1:-1:-1;;7187:16:165;;;7184:36;;;7216:1;7213;7206:12;7184:36;;7255:72;7319:7;7308:8;7297:9;7293:24;7255:72;:::i;:::-;6158:1229;;7346:8;;-1:-1:-1;7229:98:165;;-1:-1:-1;;;;6158:1229:165:o;7392:260::-;7460:6;7468;7521:2;7509:9;7500:7;7496:23;7492:32;7489:52;;;7537:1;7534;7527:12;7489:52;7560:29;7579:9;7560:29;:::i;:::-;7550:39;;7608:38;7642:2;7631:9;7627:18;7608:38;:::i;8606:328::-;8683:6;8691;8699;8752:2;8740:9;8731:7;8727:23;8723:32;8720:52;;;8768:1;8765;8758:12;8720:52;8804:9;8791:23;8781:33;;8833:38;8867:2;8856:9;8852:18;8833:38;:::i;:::-;8823:48;;8890:38;8924:2;8913:9;8909:18;8890:38;:::i;:::-;8880:48;;8606:328;;;;;:::o;8939:437::-;9025:6;9033;9086:2;9074:9;9065:7;9061:23;9057:32;9054:52;;;9102:1;9099;9092:12;9054:52;9142:9;9129:23;-1:-1:-1;;;;;9167:6:165;9164:30;9161:50;;;9207:1;9204;9197:12;9161:50;9246:70;9308:7;9299:6;9288:9;9284:22;9246:70;:::i;:::-;9335:8;;9220:96;;-1:-1:-1;8939:437:165;-1:-1:-1;;;;8939:437:165:o;9381:658::-;9552:2;9604:21;;;9674:13;;9577:18;;;9696:22;;;9523:4;;9552:2;9775:15;;;;9749:2;9734:18;;;9523:4;9818:195;9832:6;9829:1;9826:13;9818:195;;;9897:13;;-1:-1:-1;;;;;9893:39:165;9881:52;;9988:15;;;;9953:12;;;;9929:1;9847:9;9818:195;;10307:114;10391:4;10384:5;10380:16;10373:5;10370:27;10360:55;;10411:1;10408;10401:12;10426:667;10537:6;10545;10553;10561;10569;10577;10585;10638:3;10626:9;10617:7;10613:23;10609:33;10606:53;;;10655:1;10652;10645:12;10606:53;10678:29;10697:9;10678:29;:::i;:::-;10668:39;;10726:38;10760:2;10749:9;10745:18;10726:38;:::i;:::-;10716:48;;10811:2;10800:9;10796:18;10783:32;10773:42;;10862:2;10851:9;10847:18;10834:32;10824:42;;10916:3;10905:9;10901:19;10888:33;10930:29;10953:5;10930:29;:::i;:::-;10426:667;;;;-1:-1:-1;10426:667:165;;;;10978:5;11030:3;11015:19;;11002:33;;-1:-1:-1;11082:3:165;11067:19;;;11054:33;;10426:667;-1:-1:-1;;10426:667:165:o;11098:582::-;11182:6;11235:2;11223:9;11214:7;11210:23;11206:32;11203:52;;;11251:1;11248;11241:12;11203:52;11284:2;11278:9;11326:2;11318:6;11314:15;11395:6;11383:10;11380:22;-1:-1:-1;;;;;11347:10:165;11344:34;11341:62;11338:88;;;11406:18;;:::i;:::-;11442:2;11435:22;11481:29;11500:9;11481:29;:::i;:::-;11473:6;11466:45;11544:38;11578:2;11567:9;11563:18;11544:38;:::i;:::-;11539:2;11531:6;11527:15;11520:63;11644:2;11633:9;11629:18;11616:32;11611:2;11603:6;11599:15;11592:57;11668:6;11658:16;;;11098:582;;;;:::o;12361:184::-;12431:6;12484:2;12472:9;12463:7;12459:23;12455:32;12452:52;;;12500:1;12497;12490:12;12452:52;-1:-1:-1;12523:16:165;;12361:184;-1:-1:-1;12361:184:165:o;12550:380::-;12629:1;12625:12;;;;12672;;;12693:61;;12747:4;12739:6;12735:17;12725:27;;12693:61;12800:2;12792:6;12789:14;12769:18;12766:38;12763:161;;12846:10;12841:3;12837:20;12834:1;12827:31;12881:4;12878:1;12871:15;12909:4;12906:1;12899:15;12763:161;;12550:380;;;:::o;12935:127::-;12996:10;12991:3;12987:20;12984:1;12977:31;13027:4;13024:1;13017:15;13051:4;13048:1;13041:15;13067:128;13134:9;;;13155:11;;;13152:37;;;13169:18;;:::i;13200:416::-;13289:1;13326:5;13289:1;13340:270;13361:7;13351:8;13348:21;13340:270;;;13420:4;13416:1;13412:6;13408:17;13402:4;13399:27;13396:53;;;13429:18;;:::i;:::-;13479:7;13469:8;13465:22;13462:55;;;13499:16;;;;13462:55;13578:22;;;;13538:15;;;;13340:270;;;13344:3;13200:416;;;;;:::o;13621:806::-;13670:5;13700:8;13690:80;;-1:-1:-1;13741:1:165;13755:5;;13690:80;13789:4;13779:76;;-1:-1:-1;13826:1:165;13840:5;;13779:76;13871:4;13889:1;13884:59;;;;13957:1;13952:130;;;;13864:218;;13884:59;13914:1;13905:10;;13928:5;;;13952:130;13989:3;13979:8;13976:17;13973:43;;;13996:18;;:::i;:::-;-1:-1:-1;;14052:1:165;14038:16;;14067:5;;13864:218;;14166:2;14156:8;14153:16;14147:3;14141:4;14138:13;14134:36;14128:2;14118:8;14115:16;14110:2;14104:4;14101:12;14097:35;14094:77;14091:159;;;-1:-1:-1;14203:19:165;;;14235:5;;14091:159;14282:34;14307:8;14301:4;14282:34;:::i;:::-;14352:6;14348:1;14344:6;14340:19;14331:7;14328:32;14325:58;;;14363:18;;:::i;:::-;14401:20;;13621:806;-1:-1:-1;;;13621:806:165:o;14432:140::-;14490:5;14519:47;14560:4;14550:8;14546:19;14540:4;14519:47;:::i;14577:397::-;14779:2;14761:21;;;14818:2;14798:18;;;14791:30;14857:34;14852:2;14837:18;;14830:62;-1:-1:-1;;;14923:2:165;14908:18;;14901:31;14964:3;14949:19;;14577:397::o;14979:127::-;15040:10;15035:3;15031:20;15028:1;15021:31;15071:4;15068:1;15061:15;15095:4;15092:1;15085:15;15514:168;15587:9;;;15618;;15635:15;;;15629:22;;15615:37;15605:71;;15656:18;;:::i;15687:125::-;15752:9;;;15773:10;;;15770:36;;;15786:18;;:::i;15817:217::-;15857:1;15883;15873:132;;15927:10;15922:3;15918:20;15915:1;15908:31;15962:4;15959:1;15952:15;15990:4;15987:1;15980:15;15873:132;-1:-1:-1;16019:9:165;;15817:217::o;16449:164::-;16526:13;;16579:1;16568:20;;;16558:31;;16548:59;;16603:1;16600;16593:12;16618:175;16696:13;;-1:-1:-1;;;;;16738:30:165;;16728:41;;16718:69;;16783:1;16780;16773:12;16798:164;16875:13;;16928:1;16917:20;;;16907:31;;16897:59;;16952:1;16949;16942:12;16967:687;17061:6;17114:3;17102:9;17093:7;17089:23;17085:33;17082:53;;;17131:1;17128;17121:12;17082:53;17164:2;17158:9;17206:3;17198:6;17194:16;17276:6;17264:10;17261:22;-1:-1:-1;;;;;17228:10:165;17225:34;17222:62;17219:88;;;17287:18;;:::i;:::-;17323:2;17316:22;17362:38;17390:9;17362:38;:::i;:::-;17354:6;17347:54;17434:48;17478:2;17467:9;17463:18;17434:48;:::i;:::-;17429:2;17421:6;17417:15;17410:73;17516:47;17559:2;17548:9;17544:18;17516:47;:::i;:::-;17511:2;17503:6;17499:15;17492:72;17618:2;17607:9;17603:18;17597:25;17592:2;17584:6;17580:15;17573:50;17642:6;17632:16;;;16967:687;;;;:::o;17659:247::-;17727:6;17780:2;17768:9;17759:7;17755:23;17751:32;17748:52;;;17796:1;17793;17786:12;17748:52;17828:9;17822:16;17847:29;17870:5;17847:29;:::i;17911:237::-;17949:7;18026:1;18023;18012:16;18008:1;18005;17994:16;17990:39;18063:11;18060:1;18049:26;18038:37;;18106:11;18097:7;18094:24;18084:58;;18122:18;;:::i;18153:131::-;18213:5;18242:36;18269:8;18263:4;18242:36;:::i;18289:135::-;18328:3;18349:17;;;18346:43;;18369:18;;:::i;:::-;-1:-1:-1;18416:1:165;18405:13;;18289:135::o;20238:277::-;20305:6;20358:2;20346:9;20337:7;20333:23;20329:32;20326:52;;;20374:1;20371;20364:12;20326:52;20406:9;20400:16;20459:5;20452:13;20445:21;20438:5;20435:32;20425:60;;20481:1;20478;20471:12;20657:499;20718:3;20756:5;20750:12;20783:6;20778:3;20771:19;20809:4;20838;20833:3;20829:14;20822:21;;20862:5;20859:1;20852:16;20904:4;20901:1;20891:18;20927:1;20937:194;20951:6;20948:1;20945:13;20937:194;;;21016:13;;-1:-1:-1;;;;;21012:39:165;21000:52;;21072:12;;;;21048:1;21107:14;;;;20966:9;20937:194;;;-1:-1:-1;21147:3:165;;20657:499;-1:-1:-1;;;;;20657:499:165:o;21161:587::-;21457:6;21446:9;21439:25;21500:6;21495:2;21484:9;21480:18;21473:34;21543:3;21538:2;21527:9;21523:18;21516:31;21420:4;21564:65;21624:3;21613:9;21609:19;21601:6;21564:65;:::i;:::-;-1:-1:-1;;;;;21665:32:165;;;;21660:2;21645:18;;21638:60;-1:-1:-1;21729:3:165;21714:19;21707:35;21556:73;21161:587;-1:-1:-1;;;21161:587:165:o;21753:881::-;21848:6;21879:2;21922;21910:9;21901:7;21897:23;21893:32;21890:52;;;21938:1;21935;21928:12;21890:52;21971:9;21965:16;-1:-1:-1;;;;;21996:6:165;21993:30;21990:50;;;22036:1;22033;22026:12;21990:50;22059:22;;22112:4;22104:13;;22100:27;-1:-1:-1;22090:55:165;;22141:1;22138;22131:12;22090:55;22170:2;22164:9;22193:60;22209:43;22249:2;22209:43;:::i;22193:60::-;22287:15;;;22369:1;22365:10;;;;22357:19;;22353:28;;;22318:12;;;;22393:19;;;22390:39;;;22425:1;22422;22415:12;22390:39;22449:11;;;;22469:135;22485:6;22480:3;22477:15;22469:135;;;22551:10;;22539:23;;22502:12;;;;22582;;;;22469:135;;;22623:5;21753:881;-1:-1:-1;;;;;;;21753:881:165:o;22979:507::-;23239:6;23228:9;23221:25;23282:3;23277:2;23266:9;23262:18;23255:31;23202:4;23303:65;23363:3;23352:9;23348:19;23340:6;23303:65;:::i;:::-;-1:-1:-1;;;;;23404:32:165;;;;23399:2;23384:18;;23377:60;-1:-1:-1;23468:2:165;23453:18;23446:34;23295:73;22979:507;-1:-1:-1;;22979:507:165:o;26284:266::-;26372:6;26367:3;26360:19;26424:6;26417:5;26410:4;26405:3;26401:14;26388:43;-1:-1:-1;26476:1:165;26451:16;;;26469:4;26447:27;;;26440:38;;;;26532:2;26511:15;;;-1:-1:-1;;26507:29:165;26498:39;;;26494:50;;26284:266::o;26555:1226::-;26756:2;26808:21;;;26781:18;;;26864:22;;;-1:-1:-1;;26917:2:165;26966:1;26962:14;;;26947:30;;26943:39;;;26902:18;;27005:6;-1:-1:-1;27039:713:165;27053:6;27050:1;27047:13;27039:713;;;27118:22;;;-1:-1:-1;;27114:36:165;27102:49;;27190:20;;27265:14;27261:27;;;-1:-1:-1;;27257:41:165;27233:66;;27223:94;;27313:1;27310;27303:12;27223:94;27343:31;;27448:14;;;;27401:19;-1:-1:-1;;;;;27478:30:165;;27475:50;;;27521:1;27518;27511:12;27475:50;27574:6;27558:14;27554:27;27545:7;27541:41;27538:61;;;27595:1;27592;27585:12;27538:61;27622:50;27665:6;27657;27648:7;27622:50;:::i;:::-;27612:60;-1:-1:-1;;;27730:12:165;;;;27695:15;;;;27075:1;27068:9;27039:713;;;-1:-1:-1;27769:6:165;;26555:1226;-1:-1:-1;;;;;;;26555:1226:165:o;27786:1139::-;27916:3;27945:1;27978:6;27972:13;28008:3;28030:1;28057:9;28054:1;28050:17;28040:27;;28117:1;28106:9;28102:17;28138:18;28128:61;;28182:4;28174:6;28170:17;28160:27;;28128:61;28208:2;28256;28248:6;28245:14;28225:18;28222:38;28219:165;;-1:-1:-1;;;28283:33:165;;28339:4;28336:1;28329:15;28369:4;28290:3;28357:17;28219:165;28400:18;28427:133;;;;28574:1;28569:331;;;;28393:507;;28427:133;-1:-1:-1;;28460:24:165;;28448:37;;28533:14;;28526:22;28514:35;;28505:45;;;-1:-1:-1;28427:133:165;;28569:331;20604:1;20597:14;;;20641:4;20628:18;;28675:1;28689:165;28703:6;28700:1;28697:13;28689:165;;;28781:14;;28768:11;;;28761:35;28824:16;;;;28718:10;;28689:165;;;28693:3;;28883:6;28878:3;28874:16;28867:23;;28393:507;-1:-1:-1;28916:3:165;;27786:1139;-1:-1:-1;;;;;;;;27786:1139:165:o;30178:995::-;30392:4;30440:2;30429:9;30425:18;30499:1;30495;30490:3;30486:11;30482:19;30474:6;30470:32;30459:9;30452:51;30522:2;-1:-1:-1;;;;;30564:6:165;30560:31;30555:2;30544:9;30540:18;30533:59;30628:2;30623;30612:9;30608:18;30601:30;30651:6;30686;30680:13;30717:6;30709;30702:22;30755:3;30744:9;30740:19;30733:26;;30818:3;30808:6;30805:1;30801:14;30790:9;30786:30;30782:40;30768:54;;30857:2;30849:6;30845:15;30878:1;30888:256;30902:6;30899:1;30896:13;30888:256;;;30995:3;30991:8;30979:9;30971:6;30967:22;30963:37;30958:3;30951:50;31024:40;31057:6;31048;31042:13;31024:40;:::i;:::-;31014:50;-1:-1:-1;31122:12:165;;;;31087:15;;;;30924:1;30917:9;30888:256;;;-1:-1:-1;31161:6:165;;30178:995;-1:-1:-1;;;;;;;;;30178:995:165:o;31178:287::-;31307:3;31345:6;31339:13;31361:66;31420:6;31415:3;31408:4;31400:6;31396:17;31361:66;:::i;:::-;31443:16;;;;;31178:287;-1:-1:-1;;31178:287:165:o;31470:1065::-;31578:6;31586;31594;31647:2;31635:9;31626:7;31622:23;31618:32;31615:52;;;31663:1;31660;31653:12;31615:52;31686:38;31714:9;31686:38;:::i;:::-;31676:48;;31743:2;31764:48;31808:2;31797:9;31793:18;31764:48;:::i;:::-;31754:58;;31856:2;31845:9;31841:18;31835:25;-1:-1:-1;;;;;31875:6:165;31872:30;31869:50;;;31915:1;31912;31905:12;31869:50;31938:22;;31991:4;31983:13;;31979:27;-1:-1:-1;31969:55:165;;32020:1;32017;32010:12;31969:55;32049:2;32043:9;32072:60;32088:43;32128:2;32088:43;:::i;32072:60::-;32166:15;;;32248:1;32244:10;;;;32236:19;;32232:28;;;32197:12;;;;32272:19;;;32269:39;;;32304:1;32301;32294:12;32269:39;32328:11;;;;32348:157;32364:6;32359:3;32356:15;32348:157;;;32430:32;32458:3;32430:32;:::i;:::-;32418:45;;32381:12;;;;32483;;;;32348:157;;;32524:5;32514:15;;;;;;;31470:1065;;;;;:::o;33358:204::-;33426:6;33479:2;33467:9;33458:7;33454:23;33450:32;33447:52;;;33495:1;33492;33485:12;33447:52;33518:38;33546:9;33518:38;:::i;34951:835::-;-1:-1:-1;;;;;35221:32:165;;35203:51;;-1:-1:-1;;;;;35311:31:165;;35273:2;35291:18;;;35284:59;;;;35191:2;35374;35359:18;;35352:30;;;35431:13;;35176:18;;;35453:22;;;35143:4;;35533:15;;;;35506:3;35491:19;;;35143:4;35576:184;35590:6;35587:1;35584:13;35576:184;;;35665:13;;35662:1;35651:28;35639:41;;35735:15;;;;35700:12;;;;35612:1;35605:9;35576:184;;;-1:-1:-1;35777:3:165;;34951:835;-1:-1:-1;;;;;;;;34951:835:165:o;35791:287::-;35867:6;35875;35928:2;35916:9;35907:7;35903:23;35899:32;35896:52;;;35944:1;35941;35934:12;35896:52;35967:38;35995:9;35967:38;:::i;:::-;35957:48;;36024;36068:2;36057:9;36053:18;36024:48;:::i","linkReferences":{},"immutableReferences":{"39092":[{"start":1642,"length":32},{"start":4266,"length":32}],"39106":[{"start":4536,"length":32}],"39108":[{"start":4584,"length":32}],"40146":[{"start":1831,"length":32},{"start":3347,"length":32},{"start":3806,"length":32},{"start":6211,"length":32},{"start":7130,"length":32},{"start":7495,"length":32},{"start":8299,"length":32},{"start":9222,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DOMAIN_SEPARATOR()":"3644e515","FEE_CONFIG_CONTROLLER_ROLE()":"05fb2a51","VAULT_REWARD_CONTROLLER_ROLE()":"b4f6d613","_getPrice(address)":"695135ec","_rebalance(uint256[],address[])":"490a0af9","_swapExtraRewardSupplyToTransitionToken(address[])":"b5be920d","addReward(address,uint256)":"9feb8f50","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","asset()":"38d52e0f","assetTotalSupply()":"8f12c2f4","assetsOf(address)":"2c62fa10","assetsPerShare()":"35d16e17","balanceOf(address)":"70a08231","claimAllReward(uint256)":"7a07bf3a","decimals()":"313ce567","deposit(uint256,address)":"6e553f65","feeConfig()":"1e5eb1d0","getAllRewards(address)":"362a3fad","getRewardTokens()":"c4f59f9b","getRoleAdmin(bytes32)":"248a9ca3","getUserReward(address,address)":"5ab764ed","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","maxDeposit(address)":"402d267d","maxMint(address)":"c63d75b6","maxRedeem(address)":"d905777e","maxWithdraw(address)":"ce96cb77","mint(uint256,address)":"94bf804d","name()":"06fdde03","nonces(address)":"7ecebe00","owner()":"8da5cb5b","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","previewDeposit(uint256)":"ef8b30f7","previewMint(uint256)":"b3d7f6b9","previewRedeem(uint256)":"4cdad506","previewWithdraw(uint256)":"0a28a477","priceIds(address)":"db7a6828","pyth()":"f98d06f0","rebalance(address[])":"bea9db6d","redeem(uint256,address,address)":"ba087652","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","rewardTokens(uint256)":"7bb7bed1","saucerSwap()":"88a320fe","setTargetPercentage(address,uint256)":"eb4e1593","share()":"a8d5fd65","supportsInterface(bytes4)":"01ffc9a7","swapPaths(address,uint256)":"db8bb3a1","symbol()":"95d89b41","tokenPrices(address)":"204120bc","tokensRewardInfo(address)":"cd9cdfda","totalAssets()":"01e1d114","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","update(bytes[])":"f52a3468","updateFeeConfig((address,address,uint256))":"efa6f425","userContribution(address)":"16ad0672","withdraw(uint256,address,address)":"b460af94"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"_underlying\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feePercentage\",\"type\":\"uint256\"}],\"internalType\":\"struct FeeConfiguration.FeeConfig\",\"name\":\"_feeConfig\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_vaultRewardController\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_feeConfigController\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_pyth\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_saucerSwap\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_rewardTokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"allocationPercentage\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_priceIds\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxRewardTokensAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfShares\",\"type\":\"uint256\"}],\"name\":\"ZeroShares\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"createdToken\",\"type\":\"address\"}],\"name\":\"CreatedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feePercentage\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct FeeConfiguration.FeeConfig\",\"name\":\"feeConfig\",\"type\":\"tuple\"}],\"name\":\"FeeConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"rewardToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RewardAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FEE_CONFIG_CONTROLLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_REWARD_CONTROLLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"_getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"oneDollarInHbar\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_tokenPrices\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"_rewardTokens\",\"type\":\"address[]\"}],\"name\":\"_rebalance\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_rewardTokens\",\"type\":\"address[]\"}],\"name\":\"_swapExtraRewardSupplyToTransitionToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"addReward\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"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\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assetTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"assetsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assetsPerShare\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_startPosition\",\"type\":\"uint256\"}],\"name\":\"claimAllReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeConfig\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feePercentage\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getAllRewards\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRewardTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_rewardToken\",\"type\":\"address\"}],\"name\":\"getUserReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"unclaimedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"maxRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"maxWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"priceIds\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"priceId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pyth\",\"outputs\":[{\"internalType\":\"contract IPyth\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_rewardTokens\",\"type\":\"address[]\"}],\"name\":\"rebalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rewardTokens\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"saucerSwap\",\"outputs\":[{\"internalType\":\"contract ISaucerSwap\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"}],\"name\":\"setTargetPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"share\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"swapPaths\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenPrices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokensRewardInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssets\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"pythPriceUpdate\",\"type\":\"bytes[]\"}],\"name\":\"update\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feePercentage\",\"type\":\"uint256\"}],\"internalType\":\"struct FeeConfiguration.FeeConfig\",\"name\":\"_feeConfig\",\"type\":\"tuple\"}],\"name\":\"updateFeeConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"userContribution\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"sharesAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastLockedTime\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"rewardStart\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardEnd\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accumulatedReward\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"CreatedToken(address)\":{\"details\":\"Emitted after contract initialization, when share token was deployed.\",\"params\":{\"createdToken\":\"The address of share token.\"}},\"Deposit(address,address,uint256,uint256)\":{\"details\":\"Emitted after the deposit.\",\"params\":{\"assets\":\"The amount of assets that were deposited.\",\"receiver\":\"The address that received the shares created after the deposit.\",\"sender\":\"The address of the account that performed the deposit.\",\"shares\":\"The number of shares that were minted.\"}},\"FeeConfigUpdated((address,address,uint256))\":{\"details\":\"Emitted when admin changes fee configuration.\",\"params\":{\"feeConfig\":\"The fee configuration properties.\"}},\"RewardAdded(address,uint256)\":{\"details\":\"Emitted when permissioned user adds reward to the Vault.\",\"params\":{\"amount\":\"The added reward token amount.\",\"rewardToken\":\"The address of reward token.\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Withdraw(address,address,uint256,uint256)\":{\"details\":\"Emitted when shares are withdrawn from the vault in exchange for underlying assets.\",\"params\":{\"assets\":\"The amount of withdrawn assets.\",\"receiver\":\"The assets receiver address.\",\"sender\":\"The sender address.\",\"shares\":\"The number of shares that were burned.\"}}},\"kind\":\"dev\",\"methods\":{\"_getPrice(address)\":{\"details\":\"Gets token price and calculate one dollar in any token.\",\"params\":{\"token\":\"The token address.\"}},\"_swapExtraRewardSupplyToTransitionToken(address[])\":{\"details\":\"Swaps extra reward balance to WHBAR token for future rebalance.\"},\"addReward(address,uint256)\":{\"details\":\"Adds reward to the Vault.\",\"params\":{\"_amount\":\"The amount of reward token to add.\",\"_token\":\"The reward token address.\"}},\"assetsOf(address)\":{\"details\":\"Calculates amount of assets that can be received for user share balance.\",\"params\":{\"user\":\"The user address.\"},\"returns\":{\"_0\":\"The amount of underlying assets equivalent to the user's shares.\"}},\"assetsPerShare()\":{\"details\":\"Calculates amount of assets per share.\",\"returns\":{\"_0\":\"The asset amount per share.\"}},\"claimAllReward(uint256)\":{\"details\":\"Claims all pending reward tokens for the caller.\",\"params\":{\"_startPosition\":\"The starting index in the reward token list from which to begin claiming rewards.\"},\"returns\":{\"_0\":\"The index of the start position after the last claimed reward and the total number of reward tokens.\"}},\"constructor\":{\"details\":\"Initializes contract with passed parameters.\",\"params\":{\"_feeConfig\":\"The fee configuration struct.\",\"_feeConfigController\":\"The fee config controller user.\",\"_name\":\"The share token name.\",\"_symbol\":\"The share token symbol.\",\"_underlying\":\"The address of the asset token.\",\"_vaultRewardController\":\"The Vault reward controller user.\"}},\"deposit(uint256,address)\":{\"details\":\"Deposits staking token to the Vault and returns shares.\",\"params\":{\"assets\":\"The amount of staking token to send.\",\"receiver\":\"The shares receiver address.\"},\"returns\":{\"shares\":\"The amount of shares to receive.\"}},\"getAllRewards(address)\":{\"details\":\"Returns all rewards for a user.\",\"params\":{\"_user\":\"The user address.\"},\"returns\":{\"_0\":\"_rewards The calculated rewards.\"}},\"getRewardTokens()\":{\"details\":\"Returns reward tokens addresses.\",\"returns\":{\"_0\":\"Reward tokens.\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getUserReward(address,address)\":{\"details\":\"Returns rewards for a user with fee considering.\",\"params\":{\"_rewardToken\":\"The reward address.\",\"_user\":\"The user address.\"},\"returns\":{\"unclaimedAmount\":\"The calculated rewards.\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"maxDeposit(address)\":{\"details\":\"Returns the maximum amount of underlying assets that can be deposited by user.\",\"returns\":{\"_0\":\"The maximum assets amount that can be deposited.\"}},\"maxMint(address)\":{\"details\":\"Returns the maximum amount of shares that can be minted by user.\",\"returns\":{\"_0\":\"The maximum shares amount that can be minted.\"}},\"maxRedeem(address)\":{\"details\":\"Returns the maximum number of shares that can be redeemed by user.\",\"params\":{\"user\":\"The user address.\"},\"returns\":{\"_0\":\"The maximum number of shares that can be redeemed.\"}},\"maxWithdraw(address)\":{\"details\":\"Calculates the maximum amount of assets that can be withdrawn by user.\",\"params\":{\"user\":\"The user address.\"},\"returns\":{\"_0\":\"The maximum amount of assets that can be withdrawn.\"}},\"mint(uint256,address)\":{\"details\":\"Mints shares to receiver by depositing assets of underlying tokens.\",\"params\":{\"shares\":\"The amount of shares to send.\",\"to\":\"The receiver of tokens.\"},\"returns\":{\"amount\":\"The amount of tokens to receive.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previewDeposit(uint256)\":{\"details\":\"Calculates the amount of shares that will be minted for a given assets amount.\",\"params\":{\"amount\":\"The amount of underlying assets to deposit.\"},\"returns\":{\"shares\":\"The estimated amount of shares that can be minted.\"}},\"previewMint(uint256)\":{\"details\":\"Calculates the amount of underlying assets equivalent to a given shares amount.\",\"params\":{\"shares\":\"The shares amount to be minted.\"},\"returns\":{\"amount\":\"The estimated assets amount.\"}},\"previewRedeem(uint256)\":{\"details\":\"Calculates the amount of underlying assets equivalent to a specific number of shares.\",\"params\":{\"shares\":\"The shares amount to redeem.\"},\"returns\":{\"amount\":\"The estimated assets amount that can be redeemed.\"}},\"previewWithdraw(uint256)\":{\"details\":\"Calculates the amount of shares that would be burned for a given assets amount.\",\"params\":{\"amount\":\"The amount of underlying assets to withdraw.\"},\"returns\":{\"shares\":\"The estimated shares amount that can be burned.\"}},\"rebalance(address[])\":{\"details\":\"Rebalances reward balances.\"},\"redeem(uint256,address,address)\":{\"details\":\"Redeems shares for underlying assets.\",\"params\":{\"from\":\"The shares owner.\",\"receiver\":\"The staking token receiver.\",\"shares\":\"The amount of shares.\"},\"returns\":{\"amount\":\"The amount of shares to burn.\"}},\"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.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalAssets()\":{\"details\":\"Returns amount of assets on the contract balance.\",\"returns\":{\"_0\":\"Asset balance of this contract.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"update(bytes[])\":{\"details\":\"Updates price.\",\"params\":{\"pythPriceUpdate\":\"The pyth price update.\"}},\"updateFeeConfig((address,address,uint256))\":{\"details\":\"Initializes the contract with the required parameters.\",\"params\":{\"_feeConfig\":\"The fee configuration.\"}},\"withdraw(uint256,address,address)\":{\"details\":\"Burns shares from owner and sends assets of underlying tokens to receiver.\",\"params\":{\"amount\":\"The amount of assets.\",\"from\":\"The owner of shares.\",\"receiver\":\"The staking token receiver.\"},\"returns\":{\"shares\":\"The amount of shares to burn.\"}}},\"title\":\"Hedera Vault The contract which represents a custom Vault with Hedera HTS support.\",\"version\":1},\"userdoc\":{\"events\":{\"CreatedToken(address)\":{\"notice\":\"CreatedToken event.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Deposit event.\"},\"FeeConfigUpdated((address,address,uint256))\":{\"notice\":\"FeeConfigUpdated event.\"},\"RewardAdded(address,uint256)\":{\"notice\":\"RewardAdded event.\"},\"Withdraw(address,address,uint256,uint256)\":{\"notice\":\"Withdraw event.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc4626/Vault.sol\":\"HederaVault\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/FeeConfiguration.sol\":{\"keccak256\":\"0xd576dc5a2f8d782ff3311e6207641c78ea68f68d8cf0c8ce9c06571316e559a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084d049afbfe5d85e397e6f3c118edafe57db19540c6462ea9a0ac2cc99c7f69\",\"dweb:/ipfs/QmXrsuHjQGJRCc7e5HodYLgmb5HKMfC1xPSL7ncKSTHvak\"]},\"contracts/common/hedera/IHRC.sol\":{\"keccak256\":\"0xa5e623207cec464b0965f98d87db307893dd22d5f46654923e36141bdcb93657\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f3da162916df8236e8c84fa7a0e35757e7c6b3e6af93e98bebe23a03177a0fa9\",\"dweb:/ipfs/Qmb8ZbsGQqbaqpZEhACfuV1FfTDZYKrjbyzUDamYN5gD1c\"]},\"contracts/common/safe-HTS/HederaResponseCodes.sol\":{\"keccak256\":\"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca\",\"dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G\"]},\"contracts/common/safe-HTS/IHederaTokenService.sol\":{\"keccak256\":\"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786\",\"dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W\"]},\"contracts/common/safe-HTS/SafeHTS.sol\":{\"keccak256\":\"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe\",\"dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7\"]},\"contracts/erc4626/ERC20.sol\":{\"keccak256\":\"0x33fe85bf9c3a26cc53c74f425a248df6664a2c85c7b872ce9567a8b785619879\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://b42e32a0a88263829f727e8cc5efae644c89db3ad3900daad3918aa75bea756f\",\"dweb:/ipfs/QmQC7KSYBVuNnojtMrJ99rcSsfBhBAK5wSjuTVjANxLvCB\"]},\"contracts/erc4626/TokenBalancer.sol\":{\"keccak256\":\"0x0d9b336e2a4d5120571e4f6b92512ea364980664cddda180fadc93991b9a5f25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb414c1eb9d58392ef05ea0ee6545e858aed7c6b8f28cd177db76e6869ac1132\",\"dweb:/ipfs/Qmc6y1DcHNLBhQdvy4DGcedrMChj6JSMXWYM9a8UhuqyYt\"]},\"contracts/erc4626/Vault.sol\":{\"keccak256\":\"0x3f88acb7a128213804d8634e1aee5c9e44ed801cda46d0e8bca4cbfe13e4ce50\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba50dcb69a2de3520d1b89a67c7be26b959e8061c36abd42c9ce8395904febbd\",\"dweb:/ipfs/QmZVFZDaLDiwKwrXQRi2PuF6W3cUPEywbbF8zCBoFmGAU6\"]},\"contracts/erc4626/interfaces/IERC4626.sol\":{\"keccak256\":\"0x7935c852530f140c6a6b9c295503a4d3ccf83cb5ac5c5f1615e2d7248690e1b3\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2b26de597cefe1da676035b5f64766fdb7628355bddb14c67ee55b910f31419f\",\"dweb:/ipfs/QmUfmGqb4rP17aTeQ1uwZrHbe9jBJ8amCEhdpBoFN2gzRk\"]},\"contracts/erc4626/interfaces/ISaucerSwap.sol\":{\"keccak256\":\"0xa7bb2678e1375e9973578dbdc07d82bc838d360256bb974e1382ed60fc3be3c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94f426b7f3c149e2d7f25a1734f877494ab15a55fd641b84d9a88def7705a761\",\"dweb:/ipfs/QmZa5XUCWyFkeaDBcFZ6czUaaKmdwahVeL7Z3ssxopfDC2\"]},\"contracts/erc4626/libraries/FixedPointMathLib.sol\":{\"keccak256\":\"0x2958e993700b05ee4c2d92e7a90939c97324c1466512a252085f461d154a4ab9\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://774aa54a350733f7e48bfd7271fd529514d4e89c34ee59e05f896bccdc870ce9\",\"dweb:/ipfs/QmWJ1zAHM3cCtVo4VmxZA7S7xuDbcvS3fkqTJY5zrkuGEJ\"]},\"contracts/erc4626/libraries/SafeTransferLib.sol\":{\"keccak256\":\"0x97357325a0f635274a84341d6c3f8b7a9003b2aa38976e2f5fcbb7cd9a31d5de\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://275077abf697e5a2ad66e9181e83013f3fdd54dc4d5d752fd6e4c3c878125c6b\",\"dweb:/ipfs/QmdRTBWEUrYGdcbCzA12HYWkJNXrd8XgQgGUtUws2f2HnC\"]},\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@pythnetwork/pyth-sdk-solidity/IPyth.sol\":{\"keccak256\":\"0xe06dbd61ccf409fffc0a2449eb8bb6c2d245609698c3c6eddad7cd0f3822d215\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://62867dd9f8a439d091da28c4d6cbd6f4d4ec0606291cdea7b70841e37c43e0da\",\"dweb:/ipfs/Qme4kF7yC3k2zxC87k9b6rhEbSjPNWZ5kLZCBdKqk43FbE\"]},\"node_modules/@pythnetwork/pyth-sdk-solidity/IPythEvents.sol\":{\"keccak256\":\"0x7ca8e03315d4516d6833c425a52c43e8cacf2077492074d2d36ae5c17899c9c8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ad1c69d157eccb09ce248e1ec021f2e58b61dd36160f5be3973a7bea4a899f64\",\"dweb:/ipfs/QmW1yXsDrMsuQKxtZanSZXpyUW2QwnCKVoCjS5fC3NoSVY\"]},\"node_modules/@pythnetwork/pyth-sdk-solidity/PythStructs.sol\":{\"keccak256\":\"0xade221177dda98ebd194c363f264ceea125bde0e6a7a72f7b54da3ac60316894\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a404dbbc64183995326c345cae27601d37c783b3d9030c8dc0ab4943fa2bf1da\",\"dweb:/ipfs/QmfNFesQffYisafmJFbKHxVFSD8fY49X1z9f8N7qtfW8AX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract ERC20","name":"_underlying","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"struct FeeConfiguration.FeeConfig","name":"_feeConfig","type":"tuple","components":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"feePercentage","type":"uint256"}]},{"internalType":"address","name":"_vaultRewardController","type":"address"},{"internalType":"address","name":"_feeConfigController","type":"address"},{"internalType":"address","name":"_pyth","type":"address"},{"internalType":"address","name":"_saucerSwap","type":"address"},{"internalType":"address[]","name":"_rewardTokens","type":"address[]"},{"internalType":"uint256[]","name":"allocationPercentage","type":"uint256[]"},{"internalType":"bytes32[]","name":"_priceIds","type":"bytes32[]"}],"stateMutability":"payable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"MaxRewardTokensAmount"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint256","name":"numberOfShares","type":"uint256"}],"type":"error","name":"ZeroShares"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"createdToken","type":"address","indexed":true}],"type":"event","name":"CreatedToken","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"struct FeeConfiguration.FeeConfig","name":"feeConfig","type":"tuple","components":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"feePercentage","type":"uint256"}],"indexed":false}],"type":"event","name":"FeeConfigUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"rewardToken","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"RewardAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FEE_CONFIG_CONTROLLER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_REWARD_CONTROLLER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"_getPrice","outputs":[{"internalType":"uint256","name":"oneDollarInHbar","type":"uint256"}]},{"inputs":[{"internalType":"uint256[]","name":"_tokenPrices","type":"uint256[]"},{"internalType":"address[]","name":"_rewardTokens","type":"address[]"}],"stateMutability":"view","type":"function","name":"_rebalance","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address[]","name":"_rewardTokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"_swapExtraRewardSupplyToTransitionToken"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"addReward"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"asset","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"assetTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"assetsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"assetsPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_startPosition","type":"uint256"}],"stateMutability":"payable","type":"function","name":"claimAllReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeConfig","outputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"feePercentage","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"stateMutability":"view","type":"function","name":"getAllRewards","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRewardTokens","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_rewardToken","type":"address"}],"stateMutability":"view","type":"function","name":"getUserReward","outputs":[{"internalType":"uint256","name":"unclaimedAmount","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"maxDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"maxMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"maxRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewDeposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewMint","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewRedeem","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"priceIds","outputs":[{"internalType":"bytes32","name":"priceId","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pyth","outputs":[{"internalType":"contract IPyth","name":"","type":"address"}]},{"inputs":[{"internalType":"address[]","name":"_rewardTokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"rebalance"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"from","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"rewardTokens","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"saucerSwap","outputs":[{"internalType":"contract ISaucerSwap","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"percentage","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setTargetPercentage"},{"inputs":[],"stateMutability":"view","type":"function","name":"share","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"swapPaths","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"tokenPrices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"tokensRewardInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"exist","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"bytes[]","name":"pythPriceUpdate","type":"bytes[]"}],"stateMutability":"payable","type":"function","name":"update"},{"inputs":[{"internalType":"struct FeeConfiguration.FeeConfig","name":"_feeConfig","type":"tuple","components":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"feePercentage","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"updateFeeConfig"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"userContribution","outputs":[{"internalType":"uint256","name":"sharesAmount","type":"uint256"},{"internalType":"uint256","name":"lastLockedTime","type":"uint256"},{"internalType":"bool","name":"exist","type":"bool"},{"internalType":"uint256","name":"rewardStart","type":"uint256"},{"internalType":"uint256","name":"rewardEnd","type":"uint256"},{"internalType":"uint256","name":"accumulatedReward","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"from","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"_getPrice(address)":{"details":"Gets token price and calculate one dollar in any token.","params":{"token":"The token address."}},"_swapExtraRewardSupplyToTransitionToken(address[])":{"details":"Swaps extra reward balance to WHBAR token for future rebalance."},"addReward(address,uint256)":{"details":"Adds reward to the Vault.","params":{"_amount":"The amount of reward token to add.","_token":"The reward token address."}},"assetsOf(address)":{"details":"Calculates amount of assets that can be received for user share balance.","params":{"user":"The user address."},"returns":{"_0":"The amount of underlying assets equivalent to the user's shares."}},"assetsPerShare()":{"details":"Calculates amount of assets per share.","returns":{"_0":"The asset amount per share."}},"claimAllReward(uint256)":{"details":"Claims all pending reward tokens for the caller.","params":{"_startPosition":"The starting index in the reward token list from which to begin claiming rewards."},"returns":{"_0":"The index of the start position after the last claimed reward and the total number of reward tokens."}},"constructor":{"details":"Initializes contract with passed parameters.","params":{"_feeConfig":"The fee configuration struct.","_feeConfigController":"The fee config controller user.","_name":"The share token name.","_symbol":"The share token symbol.","_underlying":"The address of the asset token.","_vaultRewardController":"The Vault reward controller user."}},"deposit(uint256,address)":{"details":"Deposits staking token to the Vault and returns shares.","params":{"assets":"The amount of staking token to send.","receiver":"The shares receiver address."},"returns":{"shares":"The amount of shares to receive."}},"getAllRewards(address)":{"details":"Returns all rewards for a user.","params":{"_user":"The user address."},"returns":{"_0":"_rewards The calculated rewards."}},"getRewardTokens()":{"details":"Returns reward tokens addresses.","returns":{"_0":"Reward tokens."}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"getUserReward(address,address)":{"details":"Returns rewards for a user with fee considering.","params":{"_rewardToken":"The reward address.","_user":"The user address."},"returns":{"unclaimedAmount":"The calculated rewards."}},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"maxDeposit(address)":{"details":"Returns the maximum amount of underlying assets that can be deposited by user.","returns":{"_0":"The maximum assets amount that can be deposited."}},"maxMint(address)":{"details":"Returns the maximum amount of shares that can be minted by user.","returns":{"_0":"The maximum shares amount that can be minted."}},"maxRedeem(address)":{"details":"Returns the maximum number of shares that can be redeemed by user.","params":{"user":"The user address."},"returns":{"_0":"The maximum number of shares that can be redeemed."}},"maxWithdraw(address)":{"details":"Calculates the maximum amount of assets that can be withdrawn by user.","params":{"user":"The user address."},"returns":{"_0":"The maximum amount of assets that can be withdrawn."}},"mint(uint256,address)":{"details":"Mints shares to receiver by depositing assets of underlying tokens.","params":{"shares":"The amount of shares to send.","to":"The receiver of tokens."},"returns":{"amount":"The amount of tokens to receive."}},"owner()":{"details":"Returns the address of the current owner."},"previewDeposit(uint256)":{"details":"Calculates the amount of shares that will be minted for a given assets amount.","params":{"amount":"The amount of underlying assets to deposit."},"returns":{"shares":"The estimated amount of shares that can be minted."}},"previewMint(uint256)":{"details":"Calculates the amount of underlying assets equivalent to a given shares amount.","params":{"shares":"The shares amount to be minted."},"returns":{"amount":"The estimated assets amount."}},"previewRedeem(uint256)":{"details":"Calculates the amount of underlying assets equivalent to a specific number of shares.","params":{"shares":"The shares amount to redeem."},"returns":{"amount":"The estimated assets amount that can be redeemed."}},"previewWithdraw(uint256)":{"details":"Calculates the amount of shares that would be burned for a given assets amount.","params":{"amount":"The amount of underlying assets to withdraw."},"returns":{"shares":"The estimated shares amount that can be burned."}},"rebalance(address[])":{"details":"Rebalances reward balances."},"redeem(uint256,address,address)":{"details":"Redeems shares for underlying assets.","params":{"from":"The shares owner.","receiver":"The staking token receiver.","shares":"The amount of shares."},"returns":{"amount":"The amount of shares to burn."}},"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."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalAssets()":{"details":"Returns amount of assets on the contract balance.","returns":{"_0":"Asset balance of this contract."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"update(bytes[])":{"details":"Updates price.","params":{"pythPriceUpdate":"The pyth price update."}},"updateFeeConfig((address,address,uint256))":{"details":"Initializes the contract with the required parameters.","params":{"_feeConfig":"The fee configuration."}},"withdraw(uint256,address,address)":{"details":"Burns shares from owner and sends assets of underlying tokens to receiver.","params":{"amount":"The amount of assets.","from":"The owner of shares.","receiver":"The staking token receiver."},"returns":{"shares":"The amount of shares to burn."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc4626/Vault.sol":"HederaVault"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/FeeConfiguration.sol":{"keccak256":"0xd576dc5a2f8d782ff3311e6207641c78ea68f68d8cf0c8ce9c06571316e559a7","urls":["bzz-raw://084d049afbfe5d85e397e6f3c118edafe57db19540c6462ea9a0ac2cc99c7f69","dweb:/ipfs/QmXrsuHjQGJRCc7e5HodYLgmb5HKMfC1xPSL7ncKSTHvak"],"license":"MIT"},"contracts/common/hedera/IHRC.sol":{"keccak256":"0xa5e623207cec464b0965f98d87db307893dd22d5f46654923e36141bdcb93657","urls":["bzz-raw://f3da162916df8236e8c84fa7a0e35757e7c6b3e6af93e98bebe23a03177a0fa9","dweb:/ipfs/Qmb8ZbsGQqbaqpZEhACfuV1FfTDZYKrjbyzUDamYN5gD1c"],"license":"Apache-2.0"},"contracts/common/safe-HTS/HederaResponseCodes.sol":{"keccak256":"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324","urls":["bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca","dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G"],"license":"Apache-2.0"},"contracts/common/safe-HTS/IHederaTokenService.sol":{"keccak256":"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735","urls":["bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786","dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W"],"license":"Apache-2.0"},"contracts/common/safe-HTS/SafeHTS.sol":{"keccak256":"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10","urls":["bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe","dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7"],"license":"Apache-2.0"},"contracts/erc4626/ERC20.sol":{"keccak256":"0x33fe85bf9c3a26cc53c74f425a248df6664a2c85c7b872ce9567a8b785619879","urls":["bzz-raw://b42e32a0a88263829f727e8cc5efae644c89db3ad3900daad3918aa75bea756f","dweb:/ipfs/QmQC7KSYBVuNnojtMrJ99rcSsfBhBAK5wSjuTVjANxLvCB"],"license":"AGPL-3.0-only"},"contracts/erc4626/TokenBalancer.sol":{"keccak256":"0x0d9b336e2a4d5120571e4f6b92512ea364980664cddda180fadc93991b9a5f25","urls":["bzz-raw://eb414c1eb9d58392ef05ea0ee6545e858aed7c6b8f28cd177db76e6869ac1132","dweb:/ipfs/Qmc6y1DcHNLBhQdvy4DGcedrMChj6JSMXWYM9a8UhuqyYt"],"license":"MIT"},"contracts/erc4626/Vault.sol":{"keccak256":"0x3f88acb7a128213804d8634e1aee5c9e44ed801cda46d0e8bca4cbfe13e4ce50","urls":["bzz-raw://ba50dcb69a2de3520d1b89a67c7be26b959e8061c36abd42c9ce8395904febbd","dweb:/ipfs/QmZVFZDaLDiwKwrXQRi2PuF6W3cUPEywbbF8zCBoFmGAU6"],"license":"MIT"},"contracts/erc4626/interfaces/IERC4626.sol":{"keccak256":"0x7935c852530f140c6a6b9c295503a4d3ccf83cb5ac5c5f1615e2d7248690e1b3","urls":["bzz-raw://2b26de597cefe1da676035b5f64766fdb7628355bddb14c67ee55b910f31419f","dweb:/ipfs/QmUfmGqb4rP17aTeQ1uwZrHbe9jBJ8amCEhdpBoFN2gzRk"],"license":"AGPL-3.0-only"},"contracts/erc4626/interfaces/ISaucerSwap.sol":{"keccak256":"0xa7bb2678e1375e9973578dbdc07d82bc838d360256bb974e1382ed60fc3be3c9","urls":["bzz-raw://94f426b7f3c149e2d7f25a1734f877494ab15a55fd641b84d9a88def7705a761","dweb:/ipfs/QmZa5XUCWyFkeaDBcFZ6czUaaKmdwahVeL7Z3ssxopfDC2"],"license":"MIT"},"contracts/erc4626/libraries/FixedPointMathLib.sol":{"keccak256":"0x2958e993700b05ee4c2d92e7a90939c97324c1466512a252085f461d154a4ab9","urls":["bzz-raw://774aa54a350733f7e48bfd7271fd529514d4e89c34ee59e05f896bccdc870ce9","dweb:/ipfs/QmWJ1zAHM3cCtVo4VmxZA7S7xuDbcvS3fkqTJY5zrkuGEJ"],"license":"AGPL-3.0-only"},"contracts/erc4626/libraries/SafeTransferLib.sol":{"keccak256":"0x97357325a0f635274a84341d6c3f8b7a9003b2aa38976e2f5fcbb7cd9a31d5de","urls":["bzz-raw://275077abf697e5a2ad66e9181e83013f3fdd54dc4d5d752fd6e4c3c878125c6b","dweb:/ipfs/QmdRTBWEUrYGdcbCzA12HYWkJNXrd8XgQgGUtUws2f2HnC"],"license":"AGPL-3.0-only"},"node_modules/@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@pythnetwork/pyth-sdk-solidity/IPyth.sol":{"keccak256":"0xe06dbd61ccf409fffc0a2449eb8bb6c2d245609698c3c6eddad7cd0f3822d215","urls":["bzz-raw://62867dd9f8a439d091da28c4d6cbd6f4d4ec0606291cdea7b70841e37c43e0da","dweb:/ipfs/Qme4kF7yC3k2zxC87k9b6rhEbSjPNWZ5kLZCBdKqk43FbE"],"license":"Apache-2.0"},"node_modules/@pythnetwork/pyth-sdk-solidity/IPythEvents.sol":{"keccak256":"0x7ca8e03315d4516d6833c425a52c43e8cacf2077492074d2d36ae5c17899c9c8","urls":["bzz-raw://ad1c69d157eccb09ce248e1ec021f2e58b61dd36160f5be3973a7bea4a899f64","dweb:/ipfs/QmW1yXsDrMsuQKxtZanSZXpyUW2QwnCKVoCjS5fC3NoSVY"],"license":"Apache-2.0"},"node_modules/@pythnetwork/pyth-sdk-solidity/PythStructs.sol":{"keccak256":"0xade221177dda98ebd194c363f264ceea125bde0e6a7a72f7b54da3ac60316894","urls":["bzz-raw://a404dbbc64183995326c345cae27601d37c783b3d9030c8dc0ab4943fa2bf1da","dweb:/ipfs/QmfNFesQffYisafmJFbKHxVFSD8fY49X1z9f8N7qtfW8AX"],"license":"Apache-2.0"}},"version":1},"id":102} \ No newline at end of file diff --git a/out/VaultFactory.sol/VaultFactory.json b/out/VaultFactory.sol/VaultFactory.json new file mode 100644 index 0000000..e58d6d7 --- /dev/null +++ b/out/VaultFactory.sol/VaultFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"availableVaults","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"deployVault","inputs":[{"name":"salt","type":"string","internalType":"string"},{"name":"vaultDetails","type":"tuple","internalType":"struct IVaultFactory.VaultDetails","components":[{"name":"stakingToken","type":"address","internalType":"address"},{"name":"shareTokenName","type":"string","internalType":"string"},{"name":"shareTokenSymbol","type":"string","internalType":"string"},{"name":"vaultRewardController","type":"address","internalType":"address"},{"name":"feeConfigController","type":"address","internalType":"address"}]},{"name":"feeConfig","type":"tuple","internalType":"struct FeeConfiguration.FeeConfig","components":[{"name":"receiver","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"feePercentage","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"vault","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"isVaultAvailable","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vaultDeployed","inputs":[{"name":"","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultDeployed","inputs":[{"name":"vault","type":"address","indexed":true,"internalType":"address"},{"name":"name","type":"string","indexed":false,"internalType":"string"},{"name":"symbol","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b616bd5806100a56000396000f3fe608060405260043610620000855760003560e01c80638da5cb5b11620000545780638da5cb5b1462000142578063f26eb0fd1462000162578063f2fde38b146200019f578063fe738c8314620001c457600080fd5b806301ffc9a7146200008a5780630f98d41114620000c4578063715018a614620000f85780637bac419d1462000112575b600080fd5b3480156200009757600080fd5b50620000af620000a93660046200074e565b62000209565b60405190151581526020015b60405180910390f35b348015620000d157600080fd5b50620000af620000e336600462000781565b60016020526000908152604090205460ff1681565b3480156200010557600080fd5b506200011062000241565b005b6200012962000123366004620007c5565b62000259565b6040516001600160a01b039091168152602001620000bb565b3480156200014f57600080fd5b506000546001600160a01b031662000129565b3480156200016f57600080fd5b50620000af6200018136600462000781565b6001600160a01b031660009081526001602052604090205460ff1690565b348015620001ac57600080fd5b5062000110620001be36600462000781565b62000514565b348015620001d157600080fd5b5062000129620001e33660046200088f565b80516020818301810180516002825292820191909301209152546001600160a01b031681565b60006001600160e01b0319821663044e178b60e51b14806200023b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6200024b62000558565b62000257600062000587565b565b6000806001600160a01b031660028686604051620002799291906200094a565b908152604051908190036020019020546001600160a01b031614620002de5760405162461bcd60e51b815260206004820152601660248201527515985d5b1d08185b1c9958591e4819195c1b1bde595960521b60448201526064015b60405180910390fd5b6000620002ef602085018562000781565b6001600160a01b0316036200033f5760405162461bcd60e51b815260206004820152601560248201527424b73b30b634b21039ba30b5b4b733903a37b5b2b760591b6044820152606401620002d5565b600062000353608085016060860162000781565b6001600160a01b031603620003b55760405162461bcd60e51b815260206004820152602160248201527f496e76616c69642072657761726420636f6e74726f6c6c6572206164647265736044820152607360f81b6064820152608401620002d5565b6000620003c960a085016080860162000781565b6001600160a01b031603620004215760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642066656520636f6e74726f6c6c6572206164647265737300006044820152606401620002d5565b6200042f85858585620005d7565b6001600160a01b038116600081815260016020819052604091829020805460ff191690911790555163f2fde38b60e01b81523360048201529192509063f2fde38b90602401600060405180830381600087803b1580156200048f57600080fd5b505af1158015620004a4573d6000803e3d6000fd5b5050506001600160a01b03821690507fd2cdcadeca6ad2e3691c1a25b1067ee469fb437fd70f08d97d607e652c1146d0620004e360208601866200095a565b620004f260408801886200095a565b604051620005049493929190620009d4565b60405180910390a2949350505050565b6200051e62000558565b6001600160a01b0381166200054a57604051631e4fbdf760e01b815260006004820152602401620002d5565b620005558162000587565b50565b6000546001600160a01b03163314620002575760405163118cdaa760e01b8152336004820152602401620002d5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060405180602001620005ec9062000740565b601f1982820381018352601f909101166040529050600062000612602086018662000781565b6200062160208701876200095a565b6200063060408901896200095a565b6200063f60208a018a62000781565b6200065160408b0160208c0162000781565b60408b01356200066860808e0160608f0162000781565b8d60800160208101906200067d919062000781565b604051602001620006989a9998979695949392919062000a0a565b604051602081830303815290604052905060008282604051602001620006c092919062000ab0565b6040516020818303038152906040529050620006de888883620006ea565b98975050505050505050565b6000808484604051602001620007029291906200094a565b604051602081830303815290604052805190602001209050600083602001845183818334f592505050803b6200073757600080fd5b95945050505050565b6160ce8062000ad283390190565b6000602082840312156200076157600080fd5b81356001600160e01b0319811681146200077a57600080fd5b9392505050565b6000602082840312156200079457600080fd5b81356001600160a01b03811681146200077a57600080fd5b600060608284031215620007bf57600080fd5b50919050565b60008060008060a08587031215620007dc57600080fd5b843567ffffffffffffffff80821115620007f557600080fd5b818701915087601f8301126200080a57600080fd5b8135818111156200081a57600080fd5b8860208285010111156200082d57600080fd5b6020928301965094509086013590808211156200084957600080fd5b50850160a081880312156200085d57600080fd5b91506200086e8660408701620007ac565b905092959194509250565b634e487b7160e01b600052604160045260246000fd5b600060208284031215620008a257600080fd5b813567ffffffffffffffff80821115620008bb57600080fd5b818401915084601f830112620008d057600080fd5b813581811115620008e557620008e562000879565b604051601f8201601f19908116603f0116810190838211818310171562000910576200091062000879565b816040528281528760208487010111156200092a57600080fd5b826020860160208301376000928101602001929092525095945050505050565b8183823760009101908152919050565b6000808335601e198436030181126200097257600080fd5b83018035915067ffffffffffffffff8211156200098e57600080fd5b602001915036819003821315620009a457600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000620009ea604083018688620009ab565b8281036020840152620009ff818587620009ab565b979650505050505050565b6001600160a01b038b811682526101006020830181905260009162000a338483018d8f620009ab565b9150838203604085015262000a4a828b8d620009ab565b98811660608501529687166080840152505060a081019390935290831660c083015290911660e09091015295945050505050565b6000815160005b8181101562000aa1576020818501810151868301520162000a85565b50600093019283525090919050565b600062000ac962000ac2838662000a7e565b8462000a7e565b94935050505056fe610100604052604051620060ce380380620060ce833981016040819052620000279162001185565b338a8a8d6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000069573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200008f9190620012fa565b60006200009d8482620013b7565b506001620000ac8382620013b7565b5060ff81166080524660a052620000c2620001b2565b60c0525050506001600160a01b038116620000f857604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b62000103816200024e565b50600160115562000116888888620002a0565b62000125858585858562000326565b6001600160a01b038b1660e05260148054604080516020808402820181019092528281529291908301828280156200018757602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162000168575b50505050509250620001a18a8a8d620005b260201b60201c565b505050505050505050505062001a1d565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051620001e6919062001483565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b601080546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b825160208401516040850151620002b992919062000855565b620002c660003362000915565b50620002f37f477fc23fb51bb5d5aa814872a393b0e4f35d0916c7503c0fd96584681070d4108362000915565b50620003207f74e458455daa935f28c556b43e0cc4ad001a8a090f5feee376681e97d4618f468262000915565b50505050565b600e80546001600160a01b038087166001600160a01b03199283168117909355600f80549189169190921617905560408051631a0fcb6560e31b815290516000929163d07e5b289160048083019260209291908290030181865afa15801562000393573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b9919062001501565b845190915060005b81811015620005a857848181518110620003df57620003df62001521565b6020026020010151600a600088848151811062000400576200040062001521565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208190555083818151811062000441576200044162001521565b6020026020010151600b600088848151811062000462576200046262001521565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506040518060400160405280846001600160a01b03166001600160a01b03168152602001878381518110620004c657620004c662001521565b60200260200101516001600160a01b03166001600160a01b0316815250600c6000888481518110620004fc57620004fc62001521565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000209060026200053492919062000e15565b50620005628682815181106200054e576200054e62001521565b6020026020010151620009c860201b60201c565b600d60008884815181106200057b576200057b62001521565b6020908102919091018101516001600160a01b0316825281019190915260400160002055600101620003c1565b5050505050505050565b620005be813062000b52565b6040805160a08082018352600080835260208084018290526060848601819052808501819052306080808701829052875195860188528486528584018590528588018390528583018390528501528551600280825291810190965260109560019594939290919082015b6200063262000e7f565b815260200190600190039081620006285790505090506040518060400160405280868152602001848152508160008151811062000673576200067362001521565b602002602001018190525060405180604001604052808581526020018381525081600181518110620006a957620006a962001521565b6020026020010181905250620006ee6040518060600160405280600063ffffffff16815260200160006001600160a01b03168152602001600063ffffffff1681525090565b306020820152627a120060408201526200076460408051610120810182526060808252602080830182905260008385018190528284018390526080840181905260a0840181905260c0840181905260e0840183905284519283018552808352908201819052928101929092529061010082015290565b89815260208082018a905230604080840191909152610100830184905260e08301859052805163313ce56760e01b81529051620008019284926000926001600160a01b038e169263313ce56792600480820193918290030181865afa158015620007d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007f89190620012fa565b60ff1662000c81565b601280546001600160a01b0319166001600160a01b039290921691821790556040517f7bb17726df1f3adee8aa00ba8e8bc5d6f182af3bbf77604639cb7f008dd3b4ed90600090a250505050505050505050565b61271081106200089a5760405162461bcd60e51b815260206004820152600f60248201526e46433a20496e76616c69642066656560881b6044820152606401620000ef565b600780546001600160a01b038581166001600160a01b0319928316811790935560088054918616919092168117909155600983905560408051928352602083019190915281018290527febd34b2df88ea5c9f67c04b13b08e5e63c2d17e269aab73b866fe47a8736a2649060600160405180910390a1505050565b60008281526006602090815260408083206001600160a01b038516845290915281205460ff16620009be5760008381526006602090815260408083206001600160a01b03861684529091529020805460ff19166001179055620009753390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001620009c2565b5060005b92915050565b600f546001600160a01b038281166000908152600b60205260408082205490516331d98b3f60e01b81529193849316916331d98b3f9162000a0f9160040190815260200190565b608060405180830381865afa15801562000a2d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a5391906200154a565b90506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000a96573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000abc9190620012fa565b60ff1690506000826040015160001962000ad79190620015f6565b62000ae49060126200171d565b62000af18360126200172e565b845162000b0891906001600160401b03166200173c565b62000b14919062001756565b90508062000b248360126200172e565b62000b318460126200172e565b62000b3d91906200173c565b62000b49919062001756565b95945050505050565b604080516001600160a01b038381166024830152841660448083019190915282518083039091018152606490910182526020810180516001600160e01b031663248a35ef60e11b1790529051600091829182916101679162000bb5919062001779565b6000604051808303816000865af19150503d806000811462000bf4576040519150601f19603f3d011682016040523d82523d6000602084013e62000bf9565b606091505b50915091508162000c0c57601562000c22565b8080602001905181019062000c22919062001797565b9250600383900b60161462000c7a5760405162461bcd60e51b815260206004820152601f60248201527f536166652073696e676c65206173736f63696174696f6e206661696c656421006044820152606401620000ef565b5050505050565b61010083015151600090849063ffffffff1615801562000cae57506101008101516040015163ffffffff16155b1562000cc5576101008101516276a7006040909101525b60008060006101676001600160a01b031634637812a04b60e01b8a8a8a60405160240162000cf693929190620018b4565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905162000d36919062001779565b60006040518083038185875af1925050503d806000811462000d75576040519150601f19603f3d011682016040523d82523d6000602084013e62000d7a565b606091505b50915091508162000d8f576015600062000da5565b8080602001905181019062000da59190620019e1565b95509250600383900b60161462000e0a5760405162461bcd60e51b815260206004820152602260248201527f53616665206372656174652066756e6769626c6520746f6b656e206661696c65604482015261642160f01b6064820152608401620000ef565b505050509392505050565b82805482825590600052602060002090810192821562000e6d579160200282015b8281111562000e6d57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000e36565b5062000e7b92915062000edd565b5090565b60405180604001604052806000815260200162000ed86040518060a0016040528060001515815260200160006001600160a01b03168152602001606081526020016060815260200160006001600160a01b031681525090565b905290565b5b8082111562000e7b576000815560010162000ede565b6001600160a01b038116811462000f0a57600080fd5b50565b805162000f1a8162000ef4565b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171562000f605762000f6062000f1f565b604052919050565b60005b8381101562000f8557818101518382015260200162000f6b565b50506000910152565b600082601f83011262000fa057600080fd5b81516001600160401b0381111562000fbc5762000fbc62000f1f565b62000fd1601f8201601f191660200162000f35565b81815284602083860101111562000fe757600080fd5b62000ffa82602083016020870162000f68565b949350505050565b6000606082840312156200101557600080fd5b604051606081016001600160401b03811182821017156200103a576200103a62000f1f565b806040525080915082516200104f8162000ef4565b81526020830151620010618162000ef4565b6020820152604092830151920191909152919050565b60006001600160401b0382111562001093576200109362000f1f565b5060051b60200190565b600082601f830112620010af57600080fd5b81516020620010c8620010c28362001077565b62000f35565b8083825260208201915060208460051b870101935086841115620010eb57600080fd5b602086015b8481101562001114578051620011068162000ef4565b8352918301918301620010f0565b509695505050505050565b600082601f8301126200113157600080fd5b8151602062001144620010c28362001077565b8083825260208201915060208460051b8701019350868411156200116757600080fd5b602086015b848110156200111457805183529183019183016200116c565b60008060008060008060008060008060006101a08c8e031215620011a857600080fd5b620011b38c62000f0d565b60208d0151909b506001600160401b03811115620011d057600080fd5b620011de8e828f0162000f8e565b60408e0151909b5090506001600160401b03811115620011fd57600080fd5b6200120b8e828f0162000f8e565b9950506200121d8d60608e0162001002565b97506200122d60c08d0162000f0d565b96506200123d60e08d0162000f0d565b95506200124e6101008d0162000f0d565b94506200125f6101208d0162000f0d565b6101408d01519094506001600160401b038111156200127d57600080fd5b6200128b8e828f016200109d565b6101608e015190945090506001600160401b03811115620012ab57600080fd5b620012b98e828f016200111f565b6101808e015190935090506001600160401b03811115620012d957600080fd5b620012e78e828f016200111f565b9150509295989b509295989b9093969950565b6000602082840312156200130d57600080fd5b815160ff811681146200131f57600080fd5b9392505050565b600181811c908216806200133b57607f821691505b6020821081036200135c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620013b2576000816000526020600020601f850160051c810160208610156200138d5750805b601f850160051c820191505b81811015620013ae5782815560010162001399565b5050505b505050565b81516001600160401b03811115620013d357620013d362000f1f565b620013eb81620013e4845462001326565b8462001362565b602080601f8311600181146200142357600084156200140a5750858301515b600019600386901b1c1916600185901b178555620013ae565b600085815260208120601f198616915b82811015620014545788860151825594840194600190910190840162001433565b5085821015620014735787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808354620014938162001326565b60018281168015620014ae5760018114620014c457620014f5565b60ff1984168752821515830287019450620014f5565b8760005260208060002060005b85811015620014ec5781548a820152908401908201620014d1565b50505082870194505b50929695505050505050565b6000602082840312156200151457600080fd5b81516200131f8162000ef4565b634e487b7160e01b600052603260045260246000fd5b8051600381900b811462000f1a57600080fd5b6000608082840312156200155d57600080fd5b604051608081016001600160401b03808211838310171562001583576200158362000f1f565b81604052845191508160070b82146200159b57600080fd5b9082526020840151908082168214620015b357600080fd5b506020820152620015c76040840162001537565b6040820152606083015160608201528091505092915050565b634e487b7160e01b600052601160045260246000fd5b60008260030b8260030b028060030b9150808214620016195762001619620015e0565b5092915050565b600181815b8085111562001661578160001904821115620016455762001645620015e0565b808516156200165357918102915b93841c939080029062001625565b509250929050565b6000826200167a57506001620009c2565b816200168957506000620009c2565b8160018114620016a25760028114620016ad57620016cd565b6001915050620009c2565b60ff841115620016c157620016c1620015e0565b50506001821b620009c2565b5060208310610133831016604e8410600b8410161715620016f2575081810a620009c2565b620016fe838362001620565b8060001904821115620017155762001715620015e0565b029392505050565b60006200131f60ff84168362001669565b60006200131f838362001669565b8082028115828204841417620009c257620009c2620015e0565b6000826200177457634e487b7160e01b600052601260045260246000fd5b500490565b600082516200178d81846020870162000f68565b9190910192915050565b600060208284031215620017aa57600080fd5b6200131f8262001537565b60008151808452620017cf81602086016020860162000f68565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015620018a757858303601f1901895281518051845284015160408585018190528151151581860152818601516001600160a01b039081166060808801919091529183015160a060808089018290529193909290916200186660e08a0186620017b5565b92860151898403603f1901858b0152929450620018848584620017b5565b9501511660c0979097019690965250509884019892509083019060010162001800565b5090979650505050505050565b6060815260008451610160806060850152620018d56101c0850183620017b5565b91506020870151605f1980868503016080870152620018f58483620017b5565b9350604089015191506200191460a08701836001600160a01b03169052565b60608901519150808685030160c0870152620019318483620017b5565b9350608089015191506200194960e087018315159052565b60a08901519150610100620019658188018463ffffffff169052565b60c08a0151151561012088015260e08a015187860383016101408901529250620019908584620017e3565b9450808a015192505050620019cd82860182805163ffffffff90811683526020808301516001600160a01b03169084015260409182015116910152565b505060208301949094525060400152919050565b60008060408385031215620019f557600080fd5b62001a008362001537565b9150602083015162001a128162000ef4565b809150509250929050565b60805160a05160c05160e05161463f62001a8f6000396000818161072701528181610d1301528181610ede0152818161184301528181611bda01528181611d470152818161206b0152612406015260006111e8015260006111b801526000818161066a01526110aa015261463f6000f3fe6080604052600436106103b85760003560e01c806388a320fe116101f2578063c4f59f9b1161010d578063db8bb3a1116100a0578063efa6f4251161006f578063efa6f42514610c88578063f2fde38b14610ca8578063f52a346814610cc8578063f98d06f014610cdb57600080fd5b8063db8bb3a114610bf0578063dd62ed3e14610c10578063eb4e159314610c48578063ef8b30f714610c6857600080fd5b8063d505accf116100dc578063d505accf14610b4d578063d547741f14610b6d578063d905777e14610b8d578063db7a682814610bc357600080fd5b8063c4f59f9b14610abf578063c63d75b614610761578063cd9cdfda14610ae1578063ce96cb7714610b2d57600080fd5b8063a8d5fd6511610185578063b4f6d61311610154578063b4f6d61314610a2b578063b5be920d14610a5f578063ba08765214610a7f578063bea9db6d14610a9f57600080fd5b8063a8d5fd65146109ab578063a9059cbb146109cb578063b3d7f6b9146109eb578063b460af9414610a0b57600080fd5b806394bf804d116101c157806394bf804d1461094e57806395d89b411461096e5780639feb8f5014610983578063a217fddf1461099657600080fd5b806388a320fe146108da5780638da5cb5b146108fa5780638f12c2f41461091857806391d148541461092e57600080fd5b806335d16e17116102e25780635ab764ed11610275578063715018a611610244578063715018a6146108505780637a07bf3a146108655780637bb7bed11461088d5780637ecebe00146108ad57600080fd5b80635ab764ed146107c3578063695135ec146107e35780636e553f651461080357806370a082311461082357600080fd5b806338d52e0f116102b157806338d52e0f14610715578063402d267d14610761578063490a0af9146107835780634cdad506146107a357600080fd5b806335d16e171461069e578063362a3fad146106b35780633644e515146106e057806336568abe146106f557600080fd5b806318160ddd1161035a578063248a9ca311610329578063248a9ca3146105e65780632c62fa10146106165780632f2ff15d14610636578063313ce5671461065857600080fd5b806318160ddd146105325780631e5eb1d014610548578063204120bc1461059957806323b872dd146105c657600080fd5b806306fdde031161039657806306fdde0314610449578063095ea7b31461046b5780630a28a4771461048b57806316ad0672146104ab57600080fd5b806301e1d114146103bd57806301ffc9a7146103e557806305fb2a5114610415575b600080fd5b3480156103c957600080fd5b506103d2610cfb565b6040519081526020015b60405180910390f35b3480156103f157600080fd5b506104056104003660046138f2565b610d8b565b60405190151581526020016103dc565b34801561042157600080fd5b506103d27f74e458455daa935f28c556b43e0cc4ad001a8a090f5feee376681e97d4618f4681565b34801561045557600080fd5b5061045e610dc2565b6040516103dc919061396c565b34801561047757600080fd5b5061040561048636600461399b565b610e50565b34801561049757600080fd5b506103d26104a63660046139c5565b610ebc565b3480156104b757600080fd5b506104ff6104c63660046139de565b6015602052600090815260409020805460018201546003830154600484015460058501546006909501549394929360ff90921692909186565b604080519687526020870195909552921515938501939093526060840152608083019190915260a082015260c0016103dc565b34801561053e57600080fd5b506103d260025481565b34801561055457600080fd5b50600754600854600954610573926001600160a01b0390811692169083565b604080516001600160a01b039485168152939092166020840152908201526060016103dc565b3480156105a557600080fd5b506103d26105b43660046139de565b600d6020526000908152604090205481565b3480156105d257600080fd5b506104056105e13660046139f9565b610f73565b3480156105f257600080fd5b506103d26106013660046139c5565b60009081526006602052604090206001015490565b34801561062257600080fd5b506103d26106313660046139de565b611053565b34801561064257600080fd5b50610656610651366004613a35565b611075565b005b34801561066457600080fd5b5061068c7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016103dc565b3480156106aa57600080fd5b506103d26110a0565b3480156106bf57600080fd5b506106d36106ce3660046139de565b6110d0565b6040516103dc9190613a61565b3480156106ec57600080fd5b506103d26111b4565b34801561070157600080fd5b50610656610710366004613a35565b61120a565b34801561072157600080fd5b506107497f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103dc565b34801561076d57600080fd5b506103d261077c3660046139de565b5060001990565b34801561078f57600080fd5b506106d361079e366004613b59565b611242565b3480156107af57600080fd5b506103d26107be3660046139c5565b611525565b3480156107cf57600080fd5b506103d26107de366004613c1b565b611547565b3480156107ef57600080fd5b506103d26107fe3660046139de565b61168c565b34801561080f57600080fd5b506103d261081e366004613a35565b6117fd565b34801561082f57600080fd5b506103d261083e3660046139de565b60036020526000908152604090205481565b34801561085c57600080fd5b50610656611939565b6108786108733660046139c5565b61194d565b604080519283526020830191909152016103dc565b34801561089957600080fd5b506107496108a83660046139c5565b611afc565b3480156108b957600080fd5b506103d26108c83660046139de565b60056020526000908152604090205481565b3480156108e657600080fd5b50600e54610749906001600160a01b031681565b34801561090657600080fd5b506010546001600160a01b0316610749565b34801561092457600080fd5b506103d260135481565b34801561093a57600080fd5b50610405610949366004613a35565b611b26565b34801561095a57600080fd5b506103d2610969366004613a35565b611b51565b34801561097a57600080fd5b5061045e611c0b565b61065661099136600461399b565b611c18565b3480156109a257600080fd5b506103d2600081565b3480156109b757600080fd5b50601254610749906001600160a01b031681565b3480156109d757600080fd5b506104056109e636600461399b565b611f6c565b3480156109f757600080fd5b506103d2610a063660046139c5565b611fd2565b348015610a1757600080fd5b506103d2610a26366004613c45565b611ff4565b348015610a3757600080fd5b506103d27f477fc23fb51bb5d5aa814872a393b0e4f35d0916c7503c0fd96584681070d41081565b348015610a6b57600080fd5b50610656610a7a366004613c81565b6120f2565b348015610a8b57600080fd5b506103d2610a9a366004613c45565b612331565b348015610aab57600080fd5b50610656610aba366004613c81565b612437565b348015610acb57600080fd5b50610ad46125d3565b6040516103dc9190613cc2565b348015610aed57600080fd5b50610b18610afc3660046139de565b6016602052600090815260409020805460019091015460ff1682565b604080519283529015156020830152016103dc565b348015610b3957600080fd5b506103d2610b483660046139de565b612635565b348015610b5957600080fd5b50610656610b68366004613d12565b612640565b348015610b7957600080fd5b50610656610b88366004613a35565b612884565b348015610b9957600080fd5b506103d2610ba83660046139de565b6001600160a01b031660009081526003602052604090205490565b348015610bcf57600080fd5b506103d2610bde3660046139de565b600b6020526000908152604090205481565b348015610bfc57600080fd5b50610749610c0b36600461399b565b6128a9565b348015610c1c57600080fd5b506103d2610c2b366004613c1b565b600460209081526000928352604080842090915290825290205481565b348015610c5457600080fd5b50610656610c6336600461399b565b6128e1565b348015610c7457600080fd5b506103d2610c833660046139c5565b61299c565b348015610c9457600080fd5b50610656610ca3366004613d7f565b6129bd565b348015610cb457600080fd5b50610656610cc33660046139de565b612a02565b610656610cd6366004613c81565b612a40565b348015610ce757600080fd5b50600f54610749906001600160a01b031681565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d869190613de6565b905090565b60006001600160e01b03198216637965db0b60e01b1480610dbc57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008054610dcf90613dff565b80601f0160208091040260200160405190810160405280929190818152602001828054610dfb90613dff565b8015610e485780601f10610e1d57610100808354040283529160200191610e48565b820191906000526020600020905b815481529060010190602001808311610e2b57829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610eab9086815260200190565b60405180910390a350600192915050565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f499190613de6565b90508015610f6a57610f6581610f5d610cfb565b859190612b20565b610f6c565b825b9392505050565b6001600160a01b03831660009081526004602090815260408083203384529091528120546000198114610fcf57610faa8382613e4f565b6001600160a01b03861660009081526004602090815260408083203384529091529020555b6001600160a01b03851660009081526003602052604081208054859290610ff7908490613e4f565b90915550506001600160a01b03808516600081815260036020526040908190208054870190555190918716906000805160206145ea833981519152906110409087815260200190565b60405180910390a3506001949350505050565b6001600160a01b038116600090815260036020526040812054610dbc90611525565b60008281526006602052604090206001015461109081612b46565b61109a8383612b50565b50505050565b6000610d866107be7f0000000000000000000000000000000000000000000000000000000000000000600a613f46565b60606001600160a01b0382166111015760405162461bcd60e51b81526004016110f890613f55565b60405180910390fd5b6014546000906001600160401b0381111561111e5761111e613aa5565b604051908082528060200260200182016040528015611147578160200160208202803683370190505b50905060005b6014548110156111ad57611188846014838154811061116e5761116e613f96565b6000918252602090912001546001600160a01b0316611547565b82828151811061119a5761119a613f96565b602090810291909101015260010161114d565b5092915050565b60007f000000000000000000000000000000000000000000000000000000000000000046146111e557610d86612be4565b507f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b03811633146112335760405163334bd91960e11b815260040160405180910390fd5b61123d8282612c7e565b505050565b825160609082146112a05760405162461bcd60e51b815260206004820152602260248201527f546f6b656e20707269636573206172726179206c656e677468206d69736d61746044820152610c6d60f31b60648201526084016110f8565b600080836001600160401b038111156112bb576112bb613aa5565b6040519080825280602002602001820160405280156112e4578160200160208202803683370190505b50905060005b848110156113f35785858281811061130457611304613f96565b905060200201602081019061131991906139de565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561135f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113839190613de6565b82828151811061139557611395613f96565b6020026020010181815250508681815181106113b3576113b3613f96565b60200260200101518282815181106113cd576113cd613f96565b60200260200101516113df9190613fac565b6113e99084613fc3565b92506001016112ea565b506000846001600160401b0381111561140e5761140e613aa5565b604051908082528060200260200182016040528015611437578160200160208202803683370190505b50905060005b8581101561151a576000612710600a60008a8a8681811061146057611460613f96565b905060200201602081019061147591906139de565b6001600160a01b031681526020810191909152604001600020546114999087613fac565b6114a39190613fd6565b905060008983815181106114b9576114b9613f96565b6020026020010151826114cc9190613fd6565b90508483815181106114e0576114e0613f96565b6020026020010151816114f39190613e4f565b84848151811061150557611505613f96565b6020908102919091010152505060010161143d565b509695505050505050565b6002546000908015610f6a57610f6561153c610cfb565b600254859190612ceb565b60006001600160a01b03831661156f5760405162461bcd60e51b81526004016110f890613f55565b6001600160a01b0382166115d75760405162461bcd60e51b815260206004820152602960248201527f5661756c743a2052657761726420746f6b656e20616464726573732063616e2760448201526874206265207a65726f60b81b60648201526084016110f8565b6001600160a01b03808316600081815260166020908152604080832080549589168452601583528184208054958552600281019093529083205490949391926116208286613e4f565b9050600061163082600186612ceb565b90506000429050600061164d838860040154896005015485612d09565b50600954909a508a91501561167d57600061166d8b600760020154612d71565b9050611679818c613e4f565b9a50505b50505050505050505092915050565b600f546001600160a01b038281166000908152600b60205260408082205490516331d98b3f60e01b81529193849316916331d98b3f916116d29160040190815260200190565b608060405180830381865afa1580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117139190614033565b90506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611755573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177991906140ab565b60ff1690506000826040015160001961179291906140c8565b61179d906012613f46565b6117a88360126140e8565b84516117bd91906001600160401b0316613fac565b6117c79190613fd6565b9050806117d58360126140e8565b6117e08460126140e8565b6117ea9190613fac565b6117f49190613fd6565b95945050505050565b6000611807612df1565b6118108361299c565b90508060000361183657604051636e3699b760e11b8152600481018490526024016110f8565b61186b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086612e1b565b826013600082825461187d9190613fc3565b9091555050601254604080516000808252602082019092526118c6926001600160a01b0316918691906118c0565b60608152602001906001900390816118ab5790505b50612ea5565b50506012546118e0906001600160a01b0316303386612fe8565b60408051848152602081018390526001600160a01b0384169133917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7910160405180910390a361192f83613118565b610dbc6001601155565b6119416132d1565b61194b60006132fe565b565b60145460085460009182916001600160a01b031642855b838110801561197c575061197987600a613fc3565b81105b15611aef576000806014838154811061199757611997613f96565b600091825260208083209091015433835260158252604080842080546001600160a01b03909316808652600290910184528185205460169094529320549293506119ee926001926119e791613e4f565b9190612ceb565b336000908152601560205260408120600481015460059091015492945090918291611a1c9186919089612d09565b33600090815260156020526040812060060180549395509193508492611a43908490613fc3565b90915550506001600160a01b03831660008181526016602090815260408083205433808552601580855283862096865260028701855292852091909155928390529052600690910154611a9a918591309190612fe8565b336000908152601560205260408120600601556001600160a01b03871615611ad85733600090815260156020526040902060060154611ad890613350565b505050508080611ae7906140f4565b915050611964565b5094959194509092505050565b60148181548110611b0c57600080fd5b6000918252602090912001546001600160a01b0316905081565b60009182526006602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000611b5b612df1565b611b7082611b6885611fd2565b925082613445565b8060136000828254611b829190613fc3565b909155505060408051828152602081018590526001600160a01b0384169133917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7910160405180910390a3611c026001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084612e1b565b61192f81613118565b60018054610dcf90613dff565b7f477fc23fb51bb5d5aa814872a393b0e4f35d0916c7503c0fd96584681070d410611c4281612b46565b6001600160a01b038316611ca35760405162461bcd60e51b815260206004820152602260248201527f5661756c743a20546f6b656e20616464726573732063616e2774206265207a65604482015261726f60f01b60648201526084016110f8565b81600003611cf35760405162461bcd60e51b815260206004820152601b60248201527f5661756c743a20416d6f756e742063616e2774206265207a65726f000000000060448201526064016110f8565b601354600003611d455760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a204e6f20746f6b656e207374616b65642079657400000000000060448201526064016110f8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614158015611d9557506012546001600160a01b03848116911614155b611df95760405162461bcd60e51b815260206004820152602f60248201527f5661756c743a2052657761726420616e64205374616b696e6720746f6b656e7360448201526e2063616e6e6f742062652073616d6560881b60648201526084016110f8565b601454600a03611e1c57604051637561e0ab60e01b815260040160405180910390fd5b6000611e36600160135485612ceb9092919063ffffffff16565b6001600160a01b038516600090815260166020526040902060018101549192509060ff16611edf5760148054600180820183556000929092527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0180546001600160a01b0319166001600160a01b038816179055818101805460ff19169091179055818155611ec5853061349f565b611eda6001600160a01b038616333087612e1b565b611f22565b6001600160a01b03851660009081526016602052604081208054849290611f07908490613fc3565b90915550611f2290506001600160a01b038616333087612e1b565b846001600160a01b03167fac24935fd910bc682b5ccb1a07b718cadf8cf2f6d1404c4f3ddc3662dae40e2985604051611f5d91815260200190565b60405180910390a25050505050565b33600090815260036020526040812080548391908390611f8d908490613e4f565b90915550506001600160a01b038316600081815260036020526040908190208054850190555133906000805160206145ea83398151915290610eab9086815260200190565b6002546000908015610f6a57610f65611fe9610cfb565b600254859190612b20565b6000611ffe612df1565b612007846135bd565b83601360008282546120199190613e4f565b9091555050601254612036906001600160a01b0316333087612fe8565b60125460408051600081526020810190915261205d916001600160a01b03169086906135f5565b506120926001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168486613721565b826001600160a01b0316826001600160a01b03167ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb56786846040516120e0929190918252602082015260400190565b60405180910390a3610f6c6001601155565b60005b8181101561123d57600083838381811061211157612111613f96565b905060200201602081019061212691906139de565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa158015612170573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121949190613de6565b6001600160a01b0383166000908152600d60205260408120549192506121ba8284613fac565b6001600160a01b0385166000908152600a602052604081205491925090612710906121e59084613fac565b6121ef9190613fd6565b905060006121fd8483613fd6565b90508085111561231f5760006122138287613e4f565b600e5460405163095ea7b360e01b81526001600160a01b0391821660048201526024810183905291925088169063095ea7b3906044016020604051808303816000875af1158015612268573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228c919061410d565b50600e546001600160a01b038881166000908152600c602052604080822090516318cbafe560e01b815292909316926318cbafe5926122d5928692909130904290600401614179565b6000604051808303816000875af11580156122f4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261231c91908101906141b5565b50505b5050600190940193506120f592505050565b600061233b612df1565b61234484611525565b9050806000036123845760405162461bcd60e51b815260206004820152600b60248201526a5a45524f5f41535345545360a81b60448201526064016110f8565b61238d84611525565b90506123998285613799565b80601360008282546123ab9190613e4f565b909155505060408051828152602081018690526001600160a01b0380861692908516917ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567910160405180910390a361242d6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168483613721565b610f6c6001601155565b80606060005b828110156124b657600d600086868481811061245b5761245b613f96565b905060200201602081019061247091906139de565b6001600160a01b03166001600160a01b03168152602001908152602001600020548282815181106124a3576124a3613f96565b602090810291909101015260010161243d565b5060006124c4828686611242565b90506124d085856120f2565b805160005b818110156125ca57600e5483516001600160a01b0390911690637ff36ab59085908490811061250657612506613f96565b6020026020010151600c60008b8b8781811061252457612524613f96565b905060200201602081019061253991906139de565b6001600160a01b03166001600160a01b0316815260200190815260200160002030426040518563ffffffff1660e01b815260040161257a9493929190614245565b6000604051808303816000875af1158015612599573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125c191908101906141b5565b506001016124d5565b50505050505050565b6060601480548060200260200160405190810160405280929190818152602001828054801561262b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161260d575b5050505050905090565b6000610dbc82611053565b428410156126905760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064016110f8565b6000600161269c6111b4565b6001600160a01b038a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156127a8573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906127de5750876001600160a01b0316816001600160a01b0316145b61281b5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b60448201526064016110f8565b6001600160a01b0390811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b60008281526006602052604090206001015461289f81612b46565b61109a8383612c7e565b600c60205281600052604060002081815481106128c557600080fd5b6000918252602090912001546001600160a01b03169150829050565b61271081106129325760405162461bcd60e51b815260206004820152601760248201527f50657263656e746167652065786365656473203130302500000000000000000060448201526064016110f8565b6001600160a01b0382166129805760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b60448201526064016110f8565b6001600160a01b039091166000908152600a6020526040902055565b6002546000908015610f6a57610f6560016129b5610cfb565b859190612ceb565b7f74e458455daa935f28c556b43e0cc4ad001a8a090f5feee376681e97d4618f466129e781612b46565b6129fe8260000151836020015184604001516137fb565b5050565b612a0a6132d1565b6001600160a01b038116612a3457604051631e4fbdf760e01b8152600060048201526024016110f8565b612a3d816132fe565b50565b600f5460405163d47eed4560e01b81526000916001600160a01b03169063d47eed4590612a7390869086906004016142a3565b602060405180830381865afa158015612a90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab49190613de6565b600f54604051631df3cbc560e31b81529192506001600160a01b03169063ef9e5e28908390612ae990879087906004016142a3565b6000604051808303818588803b158015612b0257600080fd5b505af1158015612b16573d6000803e3d6000fd5b5050505050505050565b6000826000190484118302158202612b3757600080fd5b50910281810615159190040190565b612a3d81336138b9565b6000612b5c8383611b26565b612bdc5760008381526006602090815260408083206001600160a01b03861684529091529020805460ff19166001179055612b943390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610dbc565b506000610dbc565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051612c16919061433e565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000612c8a8383611b26565b15612bdc5760008381526006602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610dbc565b6000826000190484118302158202612d0257600080fd5b5091020490565b600080848311612d1e57506000905084612d68565b838310612d3057508490506000612d68565b6000612d3c8685613e4f565b90506000612d4a8787613e4f565b9050612d57888383612ceb565b9350612d638489613e4f565b925050505b94509492505050565b6000612710612d808385613fac565b1015612dda5760405162461bcd60e51b8152602060048201526024808201527f46433a20546f6f20736d616c6c20616d6f756e7420746f20636f6e73696465726044820152632066656560e01b60648201526084016110f8565b612710612de78385613fac565b610f6c9190613fd6565b600260115403612e1457604051633ee5aeb560e01b815260040160405180910390fd5b6002601155565b60006040516323b872dd60e01b81528460048201528360248201528260448201526020600060648360008a5af13d15601f3d1160016000511416171691505080612e9e5760405162461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b60448201526064016110f8565b5050505050565b6000606060008060006101676001600160a01b031663278e0b8860e01b898989604051602401612ed7939291906143df565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612f159190614463565b6000604051808303816000865af19150503d8060008114612f52576040519150601f19603f3d011682016040523d82523d6000602084013e612f57565b606091505b509150915081612f7a576040805160008082526020820190925260159190612f8e565b80806020019051810190612f8e919061447f565b90965094509250600383900b601614612fdd5760405162461bcd60e51b815260206004820152601160248201527053616665206d696e74206661696c65642160781b60448201526064016110f8565b505050935093915050565b604080516001600160a01b038681166024830152858116604483015284166064820152600783900b6084808301919091528251808303909101815260a490910182526020810180516001600160e01b031663eca3691760e01b1790529051600091829182916101679161305b9190614463565b6000604051808303816000865af19150503d8060008114613098576040519150601f19603f3d011682016040523d82523d6000602084013e61309d565b606091505b5091509150816130ae5760156130c2565b808060200190518101906130c29190614539565b9250600383900b6016146125ca5760405162461bcd60e51b815260206004820152601b60248201527f5361666520746f6b656e207472616e73666572206661696c656421000000000060448201526064016110f8565b3360009081526015602052604090206003015460ff166132715760145460005b818110156131fc5760006014828154811061315557613155613f96565b60009182526020808320909101546001600160a01b03168083526016825260408084205433855260158452818520838652600201845281852055805163053aa6f360e11b815290519194508493630a754de693600480840194919391929183900301908290875af11580156131ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f29190613de6565b5050600101613138565b5033600090815260156020526040902082815560038101805460ff1916600190811790915542908201819055600490910181905561323d9062278d00613fc3565b3360009081526015602052604081206005019190915560138054849290613265908490613fc3565b90915550612a3d915050565b61327b600061194d565b5050336000908152601560205260408120805483929061329c908490613fc3565b909155505033600090815260156020526040812042600190910155601380548392906132c9908490613fc3565b909155505050565b6010546001600160a01b0316331461194b5760405163118cdaa760e01b81523360048201526024016110f8565b601080546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6008546009546001600160a01b0390911690600090613370908490612d71565b6040516370a0823160e01b815233600482015290915081906001600160a01b038416906370a0823190602401602060405180830381865afa1580156133b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133dd9190613de6565b101561342b5760405162461bcd60e51b815260206004820152601e60248201527f46433a20496e73756666696369656e7420746f6b656e2062616c616e6365000060448201526064016110f8565b60075461123d90839033906001600160a01b031684612fe8565b80600260008282546134579190613fc3565b90915550506001600160a01b0382166000818152600360209081526040808320805486019055518481526000805160206145ea83398151915291015b60405180910390a35050565b604080516001600160a01b038381166024830152841660448083019190915282518083039091018152606490910182526020810180516001600160e01b031663248a35ef60e11b179052905160009182918291610167916135009190614463565b6000604051808303816000865af19150503d806000811461353d576040519150601f19603f3d011682016040523d82523d6000602084013e613542565b606091505b509150915081613553576015613567565b808060200190518101906135679190614539565b9250600383900b601614612e9e5760405162461bcd60e51b815260206004820152601f60248201527f536166652073696e676c65206173736f63696174696f6e206661696c6564210060448201526064016110f8565b33600090815260156020526040812080548392906135dc908490613e4f565b9250508190555080601360008282546132c99190613e4f565b6000806000806101676001600160a01b031663acb9cff960e01b88888860405160240161362493929190614554565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516136629190614463565b6000604051808303816000865af19150503d806000811461369f576040519150601f19603f3d011682016040523d82523d6000602084013e6136a4565b606091505b5091509150816136b757601560006136cb565b808060200190518101906136cb91906145bf565b94509250600383900b6016146137175760405162461bcd60e51b815260206004820152601160248201527053616665206275726e206661696c65642160781b60448201526064016110f8565b5050509392505050565b600060405163a9059cbb60e01b8152836004820152826024820152602060006044836000895af13d15601f3d116001600051141617169150508061109a5760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b60448201526064016110f8565b6001600160a01b038216600090815260036020526040812080548392906137c1908490613e4f565b90915550506002805482900390556040518181526000906001600160a01b038416906000805160206145ea83398151915290602001613493565b612710811061383e5760405162461bcd60e51b815260206004820152600f60248201526e46433a20496e76616c69642066656560881b60448201526064016110f8565b600780546001600160a01b038581166001600160a01b0319928316811790935560088054918616919092168117909155600983905560408051928352602083019190915281018290527febd34b2df88ea5c9f67c04b13b08e5e63c2d17e269aab73b866fe47a8736a2649060600160405180910390a1505050565b6138c38282611b26565b6129fe5760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016110f8565b60006020828403121561390457600080fd5b81356001600160e01b031981168114610f6c57600080fd5b60005b8381101561393757818101518382015260200161391f565b50506000910152565b6000815180845261395881602086016020860161391c565b601f01601f19169290920160200192915050565b602081526000610f6c6020830184613940565b80356001600160a01b038116811461399657600080fd5b919050565b600080604083850312156139ae57600080fd5b6139b78361397f565b946020939093013593505050565b6000602082840312156139d757600080fd5b5035919050565b6000602082840312156139f057600080fd5b610f6c8261397f565b600080600060608486031215613a0e57600080fd5b613a178461397f565b9250613a256020850161397f565b9150604084013590509250925092565b60008060408385031215613a4857600080fd5b82359150613a586020840161397f565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015613a9957835183529284019291840191600101613a7d565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613ae357613ae3613aa5565b604052919050565b60006001600160401b03821115613b0457613b04613aa5565b5060051b60200190565b60008083601f840112613b2057600080fd5b5081356001600160401b03811115613b3757600080fd5b6020830191508360208260051b8501011115613b5257600080fd5b9250929050565b600080600060408486031215613b6e57600080fd5b83356001600160401b0380821115613b8557600080fd5b818601915086601f830112613b9957600080fd5b81356020613bae613ba983613aeb565b613abb565b82815260059290921b8401810191818101908a841115613bcd57600080fd5b948201945b83861015613beb57853582529482019490820190613bd2565b97505087013592505080821115613c0157600080fd5b50613c0e86828701613b0e565b9497909650939450505050565b60008060408385031215613c2e57600080fd5b613c378361397f565b9150613a586020840161397f565b600080600060608486031215613c5a57600080fd5b83359250613c6a6020850161397f565b9150613c786040850161397f565b90509250925092565b60008060208385031215613c9457600080fd5b82356001600160401b03811115613caa57600080fd5b613cb685828601613b0e565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b81811015613a995783516001600160a01b031683529284019291840191600101613cde565b60ff81168114612a3d57600080fd5b600080600080600080600060e0888a031215613d2d57600080fd5b613d368861397f565b9650613d446020890161397f565b955060408801359450606088013593506080880135613d6281613d03565b9699959850939692959460a0840135945060c09093013592915050565b600060608284031215613d9157600080fd5b604051606081018181106001600160401b0382111715613db357613db3613aa5565b604052613dbf8361397f565b8152613dcd6020840161397f565b6020820152604083013560408201528091505092915050565b600060208284031215613df857600080fd5b5051919050565b600181811c90821680613e1357607f821691505b602082108103613e3357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dbc57610dbc613e39565b600181815b80851115613e9d578160001904821115613e8357613e83613e39565b80851615613e9057918102915b93841c9390800290613e67565b509250929050565b600082613eb457506001610dbc565b81613ec157506000610dbc565b8160018114613ed75760028114613ee157613efd565b6001915050610dbc565b60ff841115613ef257613ef2613e39565b50506001821b610dbc565b5060208310610133831016604e8410600b8410161715613f20575081810a610dbc565b613f2a8383613e62565b8060001904821115613f3e57613f3e613e39565b029392505050565b6000610f6c60ff841683613ea5565b60208082526021908201527f5661756c743a205573657220616464726573732063616e2774206265207a65726040820152606f60f81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8082028115828204841417610dbc57610dbc613e39565b80820180821115610dbc57610dbc613e39565b600082613ff357634e487b7160e01b600052601260045260246000fd5b500490565b8051600781900b811461399657600080fd5b80516001600160401b038116811461399657600080fd5b8051600381900b811461399657600080fd5b60006080828403121561404557600080fd5b604051608081018181106001600160401b038211171561406757614067613aa5565b60405261407383613ff8565b81526140816020840161400a565b602082015261409260408401614021565b6040820152606083015160608201528091505092915050565b6000602082840312156140bd57600080fd5b8151610f6c81613d03565b60008260030b8260030b028060030b91508082146111ad576111ad613e39565b6000610f6c8383613ea5565b60006001820161410657614106613e39565b5060010190565b60006020828403121561411f57600080fd5b81518015158114610f6c57600080fd5b600081548084526020808501945083600052602060002060005b8381101561416e5781546001600160a01b031687529582019560019182019101614149565b509495945050505050565b85815284602082015260a06040820152600061419860a083018661412f565b6001600160a01b0394909416606083015250608001529392505050565b600060208083850312156141c857600080fd5b82516001600160401b038111156141de57600080fd5b8301601f810185136141ef57600080fd5b80516141fd613ba982613aeb565b81815260059190911b8201830190838101908783111561421c57600080fd5b928401925b8284101561423a57835182529284019290840190614221565b979650505050505050565b84815260806020820152600061425e608083018661412f565b6001600160a01b03949094166040830152506060015292915050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208082528181018390526000906040600585901b8401810190840186845b8781101561433157868403603f190183528135368a9003601e190181126142e857600080fd5b890185810190356001600160401b0381111561430357600080fd5b80360382131561431257600080fd5b61431d86828461427a565b9550505091840191908401906001016142c2565b5091979650505050505050565b60008083548160018260011c9150600183168061435c57607f831692505b6020808410820361437b57634e487b7160e01b86526022600452602486fd5b81801561438f57600181146143a4576143d1565b60ff19861689528415158502890196506143d1565b60008a81526020902060005b868110156143c95781548b8201529085019083016143b0565b505084890196505b509498975050505050505050565b60006060820160018060a01b038616835260206001600160401b03861660208501526060604085015281855180845260808601915060808160051b87010193506020870160005b8281101561445457607f19888703018452614442868351613940565b95509284019290840190600101614426565b50939998505050505050505050565b6000825161447581846020870161391c565b9190910192915050565b60008060006060848603121561449457600080fd5b61449d84614021565b925060206144ac81860161400a565b925060408501516001600160401b038111156144c757600080fd5b8501601f810187136144d857600080fd5b80516144e6613ba982613aeb565b81815260059190911b8201830190838101908983111561450557600080fd5b928401925b8284101561452a5761451b84613ff8565b8252928401929084019061450a565b80955050505050509250925092565b60006020828403121561454b57600080fd5b610f6c82614021565b6001600160a01b03841681526001600160401b0383166020808301919091526060604083018190528351908301819052600091848101916080850190845b818110156145b157845160070b83529383019391830191600101614592565b509098975050505050505050565b600080604083850312156145d257600080fd5b6145db83614021565b9150613a586020840161400a56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122025368c444359961ce7f805b37a03a62001beb48f4db5d2380638d791415e62ca64736f6c63430008180033a2646970667358221220123fbd7009adc054c2713a425c3fa24ae400edc91771654f684af502c2c7025b64736f6c63430008180033","sourceMap":"548:3714:106:-:0;;;856:36;;;;;;;;;-1:-1:-1;878:10:106;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;160:51:165;133:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;548:3714:106;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:165:-;548:3714:106;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610620000855760003560e01c80638da5cb5b11620000545780638da5cb5b1462000142578063f26eb0fd1462000162578063f2fde38b146200019f578063fe738c8314620001c457600080fd5b806301ffc9a7146200008a5780630f98d41114620000c4578063715018a614620000f85780637bac419d1462000112575b600080fd5b3480156200009757600080fd5b50620000af620000a93660046200074e565b62000209565b60405190151581526020015b60405180910390f35b348015620000d157600080fd5b50620000af620000e336600462000781565b60016020526000908152604090205460ff1681565b3480156200010557600080fd5b506200011062000241565b005b6200012962000123366004620007c5565b62000259565b6040516001600160a01b039091168152602001620000bb565b3480156200014f57600080fd5b506000546001600160a01b031662000129565b3480156200016f57600080fd5b50620000af6200018136600462000781565b6001600160a01b031660009081526001602052604090205460ff1690565b348015620001ac57600080fd5b5062000110620001be36600462000781565b62000514565b348015620001d157600080fd5b5062000129620001e33660046200088f565b80516020818301810180516002825292820191909301209152546001600160a01b031681565b60006001600160e01b0319821663044e178b60e51b14806200023b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6200024b62000558565b62000257600062000587565b565b6000806001600160a01b031660028686604051620002799291906200094a565b908152604051908190036020019020546001600160a01b031614620002de5760405162461bcd60e51b815260206004820152601660248201527515985d5b1d08185b1c9958591e4819195c1b1bde595960521b60448201526064015b60405180910390fd5b6000620002ef602085018562000781565b6001600160a01b0316036200033f5760405162461bcd60e51b815260206004820152601560248201527424b73b30b634b21039ba30b5b4b733903a37b5b2b760591b6044820152606401620002d5565b600062000353608085016060860162000781565b6001600160a01b031603620003b55760405162461bcd60e51b815260206004820152602160248201527f496e76616c69642072657761726420636f6e74726f6c6c6572206164647265736044820152607360f81b6064820152608401620002d5565b6000620003c960a085016080860162000781565b6001600160a01b031603620004215760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642066656520636f6e74726f6c6c6572206164647265737300006044820152606401620002d5565b6200042f85858585620005d7565b6001600160a01b038116600081815260016020819052604091829020805460ff191690911790555163f2fde38b60e01b81523360048201529192509063f2fde38b90602401600060405180830381600087803b1580156200048f57600080fd5b505af1158015620004a4573d6000803e3d6000fd5b5050506001600160a01b03821690507fd2cdcadeca6ad2e3691c1a25b1067ee469fb437fd70f08d97d607e652c1146d0620004e360208601866200095a565b620004f260408801886200095a565b604051620005049493929190620009d4565b60405180910390a2949350505050565b6200051e62000558565b6001600160a01b0381166200054a57604051631e4fbdf760e01b815260006004820152602401620002d5565b620005558162000587565b50565b6000546001600160a01b03163314620002575760405163118cdaa760e01b8152336004820152602401620002d5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060405180602001620005ec9062000740565b601f1982820381018352601f909101166040529050600062000612602086018662000781565b6200062160208701876200095a565b6200063060408901896200095a565b6200063f60208a018a62000781565b6200065160408b0160208c0162000781565b60408b01356200066860808e0160608f0162000781565b8d60800160208101906200067d919062000781565b604051602001620006989a9998979695949392919062000a0a565b604051602081830303815290604052905060008282604051602001620006c092919062000ab0565b6040516020818303038152906040529050620006de888883620006ea565b98975050505050505050565b6000808484604051602001620007029291906200094a565b604051602081830303815290604052805190602001209050600083602001845183818334f592505050803b6200073757600080fd5b95945050505050565b6160ce8062000ad283390190565b6000602082840312156200076157600080fd5b81356001600160e01b0319811681146200077a57600080fd5b9392505050565b6000602082840312156200079457600080fd5b81356001600160a01b03811681146200077a57600080fd5b600060608284031215620007bf57600080fd5b50919050565b60008060008060a08587031215620007dc57600080fd5b843567ffffffffffffffff80821115620007f557600080fd5b818701915087601f8301126200080a57600080fd5b8135818111156200081a57600080fd5b8860208285010111156200082d57600080fd5b6020928301965094509086013590808211156200084957600080fd5b50850160a081880312156200085d57600080fd5b91506200086e8660408701620007ac565b905092959194509250565b634e487b7160e01b600052604160045260246000fd5b600060208284031215620008a257600080fd5b813567ffffffffffffffff80821115620008bb57600080fd5b818401915084601f830112620008d057600080fd5b813581811115620008e557620008e562000879565b604051601f8201601f19908116603f0116810190838211818310171562000910576200091062000879565b816040528281528760208487010111156200092a57600080fd5b826020860160208301376000928101602001929092525095945050505050565b8183823760009101908152919050565b6000808335601e198436030181126200097257600080fd5b83018035915067ffffffffffffffff8211156200098e57600080fd5b602001915036819003821315620009a457600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000620009ea604083018688620009ab565b8281036020840152620009ff818587620009ab565b979650505050505050565b6001600160a01b038b811682526101006020830181905260009162000a338483018d8f620009ab565b9150838203604085015262000a4a828b8d620009ab565b98811660608501529687166080840152505060a081019390935290831660c083015290911660e09091015295945050505050565b6000815160005b8181101562000aa1576020818501810151868301520162000a85565b50600093019283525090919050565b600062000ac962000ac2838662000a7e565b8462000a7e565b94935050505056fe610100604052604051620060ce380380620060ce833981016040819052620000279162001185565b338a8a8d6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000069573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200008f9190620012fa565b60006200009d8482620013b7565b506001620000ac8382620013b7565b5060ff81166080524660a052620000c2620001b2565b60c0525050506001600160a01b038116620000f857604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b62000103816200024e565b50600160115562000116888888620002a0565b62000125858585858562000326565b6001600160a01b038b1660e05260148054604080516020808402820181019092528281529291908301828280156200018757602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162000168575b50505050509250620001a18a8a8d620005b260201b60201c565b505050505050505050505062001a1d565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051620001e6919062001483565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b601080546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b825160208401516040850151620002b992919062000855565b620002c660003362000915565b50620002f37f477fc23fb51bb5d5aa814872a393b0e4f35d0916c7503c0fd96584681070d4108362000915565b50620003207f74e458455daa935f28c556b43e0cc4ad001a8a090f5feee376681e97d4618f468262000915565b50505050565b600e80546001600160a01b038087166001600160a01b03199283168117909355600f80549189169190921617905560408051631a0fcb6560e31b815290516000929163d07e5b289160048083019260209291908290030181865afa15801562000393573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b9919062001501565b845190915060005b81811015620005a857848181518110620003df57620003df62001521565b6020026020010151600a600088848151811062000400576200040062001521565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208190555083818151811062000441576200044162001521565b6020026020010151600b600088848151811062000462576200046262001521565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506040518060400160405280846001600160a01b03166001600160a01b03168152602001878381518110620004c657620004c662001521565b60200260200101516001600160a01b03166001600160a01b0316815250600c6000888481518110620004fc57620004fc62001521565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000209060026200053492919062000e15565b50620005628682815181106200054e576200054e62001521565b6020026020010151620009c860201b60201c565b600d60008884815181106200057b576200057b62001521565b6020908102919091018101516001600160a01b0316825281019190915260400160002055600101620003c1565b5050505050505050565b620005be813062000b52565b6040805160a08082018352600080835260208084018290526060848601819052808501819052306080808701829052875195860188528486528584018590528588018390528583018390528501528551600280825291810190965260109560019594939290919082015b6200063262000e7f565b815260200190600190039081620006285790505090506040518060400160405280868152602001848152508160008151811062000673576200067362001521565b602002602001018190525060405180604001604052808581526020018381525081600181518110620006a957620006a962001521565b6020026020010181905250620006ee6040518060600160405280600063ffffffff16815260200160006001600160a01b03168152602001600063ffffffff1681525090565b306020820152627a120060408201526200076460408051610120810182526060808252602080830182905260008385018190528284018390526080840181905260a0840181905260c0840181905260e0840183905284519283018552808352908201819052928101929092529061010082015290565b89815260208082018a905230604080840191909152610100830184905260e08301859052805163313ce56760e01b81529051620008019284926000926001600160a01b038e169263313ce56792600480820193918290030181865afa158015620007d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007f89190620012fa565b60ff1662000c81565b601280546001600160a01b0319166001600160a01b039290921691821790556040517f7bb17726df1f3adee8aa00ba8e8bc5d6f182af3bbf77604639cb7f008dd3b4ed90600090a250505050505050505050565b61271081106200089a5760405162461bcd60e51b815260206004820152600f60248201526e46433a20496e76616c69642066656560881b6044820152606401620000ef565b600780546001600160a01b038581166001600160a01b0319928316811790935560088054918616919092168117909155600983905560408051928352602083019190915281018290527febd34b2df88ea5c9f67c04b13b08e5e63c2d17e269aab73b866fe47a8736a2649060600160405180910390a1505050565b60008281526006602090815260408083206001600160a01b038516845290915281205460ff16620009be5760008381526006602090815260408083206001600160a01b03861684529091529020805460ff19166001179055620009753390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001620009c2565b5060005b92915050565b600f546001600160a01b038281166000908152600b60205260408082205490516331d98b3f60e01b81529193849316916331d98b3f9162000a0f9160040190815260200190565b608060405180830381865afa15801562000a2d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a5391906200154a565b90506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000a96573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000abc9190620012fa565b60ff1690506000826040015160001962000ad79190620015f6565b62000ae49060126200171d565b62000af18360126200172e565b845162000b0891906001600160401b03166200173c565b62000b14919062001756565b90508062000b248360126200172e565b62000b318460126200172e565b62000b3d91906200173c565b62000b49919062001756565b95945050505050565b604080516001600160a01b038381166024830152841660448083019190915282518083039091018152606490910182526020810180516001600160e01b031663248a35ef60e11b1790529051600091829182916101679162000bb5919062001779565b6000604051808303816000865af19150503d806000811462000bf4576040519150601f19603f3d011682016040523d82523d6000602084013e62000bf9565b606091505b50915091508162000c0c57601562000c22565b8080602001905181019062000c22919062001797565b9250600383900b60161462000c7a5760405162461bcd60e51b815260206004820152601f60248201527f536166652073696e676c65206173736f63696174696f6e206661696c656421006044820152606401620000ef565b5050505050565b61010083015151600090849063ffffffff1615801562000cae57506101008101516040015163ffffffff16155b1562000cc5576101008101516276a7006040909101525b60008060006101676001600160a01b031634637812a04b60e01b8a8a8a60405160240162000cf693929190620018b4565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905162000d36919062001779565b60006040518083038185875af1925050503d806000811462000d75576040519150601f19603f3d011682016040523d82523d6000602084013e62000d7a565b606091505b50915091508162000d8f576015600062000da5565b8080602001905181019062000da59190620019e1565b95509250600383900b60161462000e0a5760405162461bcd60e51b815260206004820152602260248201527f53616665206372656174652066756e6769626c6520746f6b656e206661696c65604482015261642160f01b6064820152608401620000ef565b505050509392505050565b82805482825590600052602060002090810192821562000e6d579160200282015b8281111562000e6d57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000e36565b5062000e7b92915062000edd565b5090565b60405180604001604052806000815260200162000ed86040518060a0016040528060001515815260200160006001600160a01b03168152602001606081526020016060815260200160006001600160a01b031681525090565b905290565b5b8082111562000e7b576000815560010162000ede565b6001600160a01b038116811462000f0a57600080fd5b50565b805162000f1a8162000ef4565b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171562000f605762000f6062000f1f565b604052919050565b60005b8381101562000f8557818101518382015260200162000f6b565b50506000910152565b600082601f83011262000fa057600080fd5b81516001600160401b0381111562000fbc5762000fbc62000f1f565b62000fd1601f8201601f191660200162000f35565b81815284602083860101111562000fe757600080fd5b62000ffa82602083016020870162000f68565b949350505050565b6000606082840312156200101557600080fd5b604051606081016001600160401b03811182821017156200103a576200103a62000f1f565b806040525080915082516200104f8162000ef4565b81526020830151620010618162000ef4565b6020820152604092830151920191909152919050565b60006001600160401b0382111562001093576200109362000f1f565b5060051b60200190565b600082601f830112620010af57600080fd5b81516020620010c8620010c28362001077565b62000f35565b8083825260208201915060208460051b870101935086841115620010eb57600080fd5b602086015b8481101562001114578051620011068162000ef4565b8352918301918301620010f0565b509695505050505050565b600082601f8301126200113157600080fd5b8151602062001144620010c28362001077565b8083825260208201915060208460051b8701019350868411156200116757600080fd5b602086015b848110156200111457805183529183019183016200116c565b60008060008060008060008060008060006101a08c8e031215620011a857600080fd5b620011b38c62000f0d565b60208d0151909b506001600160401b03811115620011d057600080fd5b620011de8e828f0162000f8e565b60408e0151909b5090506001600160401b03811115620011fd57600080fd5b6200120b8e828f0162000f8e565b9950506200121d8d60608e0162001002565b97506200122d60c08d0162000f0d565b96506200123d60e08d0162000f0d565b95506200124e6101008d0162000f0d565b94506200125f6101208d0162000f0d565b6101408d01519094506001600160401b038111156200127d57600080fd5b6200128b8e828f016200109d565b6101608e015190945090506001600160401b03811115620012ab57600080fd5b620012b98e828f016200111f565b6101808e015190935090506001600160401b03811115620012d957600080fd5b620012e78e828f016200111f565b9150509295989b509295989b9093969950565b6000602082840312156200130d57600080fd5b815160ff811681146200131f57600080fd5b9392505050565b600181811c908216806200133b57607f821691505b6020821081036200135c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620013b2576000816000526020600020601f850160051c810160208610156200138d5750805b601f850160051c820191505b81811015620013ae5782815560010162001399565b5050505b505050565b81516001600160401b03811115620013d357620013d362000f1f565b620013eb81620013e4845462001326565b8462001362565b602080601f8311600181146200142357600084156200140a5750858301515b600019600386901b1c1916600185901b178555620013ae565b600085815260208120601f198616915b82811015620014545788860151825594840194600190910190840162001433565b5085821015620014735787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808354620014938162001326565b60018281168015620014ae5760018114620014c457620014f5565b60ff1984168752821515830287019450620014f5565b8760005260208060002060005b85811015620014ec5781548a820152908401908201620014d1565b50505082870194505b50929695505050505050565b6000602082840312156200151457600080fd5b81516200131f8162000ef4565b634e487b7160e01b600052603260045260246000fd5b8051600381900b811462000f1a57600080fd5b6000608082840312156200155d57600080fd5b604051608081016001600160401b03808211838310171562001583576200158362000f1f565b81604052845191508160070b82146200159b57600080fd5b9082526020840151908082168214620015b357600080fd5b506020820152620015c76040840162001537565b6040820152606083015160608201528091505092915050565b634e487b7160e01b600052601160045260246000fd5b60008260030b8260030b028060030b9150808214620016195762001619620015e0565b5092915050565b600181815b8085111562001661578160001904821115620016455762001645620015e0565b808516156200165357918102915b93841c939080029062001625565b509250929050565b6000826200167a57506001620009c2565b816200168957506000620009c2565b8160018114620016a25760028114620016ad57620016cd565b6001915050620009c2565b60ff841115620016c157620016c1620015e0565b50506001821b620009c2565b5060208310610133831016604e8410600b8410161715620016f2575081810a620009c2565b620016fe838362001620565b8060001904821115620017155762001715620015e0565b029392505050565b60006200131f60ff84168362001669565b60006200131f838362001669565b8082028115828204841417620009c257620009c2620015e0565b6000826200177457634e487b7160e01b600052601260045260246000fd5b500490565b600082516200178d81846020870162000f68565b9190910192915050565b600060208284031215620017aa57600080fd5b6200131f8262001537565b60008151808452620017cf81602086016020860162000f68565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015620018a757858303601f1901895281518051845284015160408585018190528151151581860152818601516001600160a01b039081166060808801919091529183015160a060808089018290529193909290916200186660e08a0186620017b5565b92860151898403603f1901858b0152929450620018848584620017b5565b9501511660c0979097019690965250509884019892509083019060010162001800565b5090979650505050505050565b6060815260008451610160806060850152620018d56101c0850183620017b5565b91506020870151605f1980868503016080870152620018f58483620017b5565b9350604089015191506200191460a08701836001600160a01b03169052565b60608901519150808685030160c0870152620019318483620017b5565b9350608089015191506200194960e087018315159052565b60a08901519150610100620019658188018463ffffffff169052565b60c08a0151151561012088015260e08a015187860383016101408901529250620019908584620017e3565b9450808a015192505050620019cd82860182805163ffffffff90811683526020808301516001600160a01b03169084015260409182015116910152565b505060208301949094525060400152919050565b60008060408385031215620019f557600080fd5b62001a008362001537565b9150602083015162001a128162000ef4565b809150509250929050565b60805160a05160c05160e05161463f62001a8f6000396000818161072701528181610d1301528181610ede0152818161184301528181611bda01528181611d470152818161206b0152612406015260006111e8015260006111b801526000818161066a01526110aa015261463f6000f3fe6080604052600436106103b85760003560e01c806388a320fe116101f2578063c4f59f9b1161010d578063db8bb3a1116100a0578063efa6f4251161006f578063efa6f42514610c88578063f2fde38b14610ca8578063f52a346814610cc8578063f98d06f014610cdb57600080fd5b8063db8bb3a114610bf0578063dd62ed3e14610c10578063eb4e159314610c48578063ef8b30f714610c6857600080fd5b8063d505accf116100dc578063d505accf14610b4d578063d547741f14610b6d578063d905777e14610b8d578063db7a682814610bc357600080fd5b8063c4f59f9b14610abf578063c63d75b614610761578063cd9cdfda14610ae1578063ce96cb7714610b2d57600080fd5b8063a8d5fd6511610185578063b4f6d61311610154578063b4f6d61314610a2b578063b5be920d14610a5f578063ba08765214610a7f578063bea9db6d14610a9f57600080fd5b8063a8d5fd65146109ab578063a9059cbb146109cb578063b3d7f6b9146109eb578063b460af9414610a0b57600080fd5b806394bf804d116101c157806394bf804d1461094e57806395d89b411461096e5780639feb8f5014610983578063a217fddf1461099657600080fd5b806388a320fe146108da5780638da5cb5b146108fa5780638f12c2f41461091857806391d148541461092e57600080fd5b806335d16e17116102e25780635ab764ed11610275578063715018a611610244578063715018a6146108505780637a07bf3a146108655780637bb7bed11461088d5780637ecebe00146108ad57600080fd5b80635ab764ed146107c3578063695135ec146107e35780636e553f651461080357806370a082311461082357600080fd5b806338d52e0f116102b157806338d52e0f14610715578063402d267d14610761578063490a0af9146107835780634cdad506146107a357600080fd5b806335d16e171461069e578063362a3fad146106b35780633644e515146106e057806336568abe146106f557600080fd5b806318160ddd1161035a578063248a9ca311610329578063248a9ca3146105e65780632c62fa10146106165780632f2ff15d14610636578063313ce5671461065857600080fd5b806318160ddd146105325780631e5eb1d014610548578063204120bc1461059957806323b872dd146105c657600080fd5b806306fdde031161039657806306fdde0314610449578063095ea7b31461046b5780630a28a4771461048b57806316ad0672146104ab57600080fd5b806301e1d114146103bd57806301ffc9a7146103e557806305fb2a5114610415575b600080fd5b3480156103c957600080fd5b506103d2610cfb565b6040519081526020015b60405180910390f35b3480156103f157600080fd5b506104056104003660046138f2565b610d8b565b60405190151581526020016103dc565b34801561042157600080fd5b506103d27f74e458455daa935f28c556b43e0cc4ad001a8a090f5feee376681e97d4618f4681565b34801561045557600080fd5b5061045e610dc2565b6040516103dc919061396c565b34801561047757600080fd5b5061040561048636600461399b565b610e50565b34801561049757600080fd5b506103d26104a63660046139c5565b610ebc565b3480156104b757600080fd5b506104ff6104c63660046139de565b6015602052600090815260409020805460018201546003830154600484015460058501546006909501549394929360ff90921692909186565b604080519687526020870195909552921515938501939093526060840152608083019190915260a082015260c0016103dc565b34801561053e57600080fd5b506103d260025481565b34801561055457600080fd5b50600754600854600954610573926001600160a01b0390811692169083565b604080516001600160a01b039485168152939092166020840152908201526060016103dc565b3480156105a557600080fd5b506103d26105b43660046139de565b600d6020526000908152604090205481565b3480156105d257600080fd5b506104056105e13660046139f9565b610f73565b3480156105f257600080fd5b506103d26106013660046139c5565b60009081526006602052604090206001015490565b34801561062257600080fd5b506103d26106313660046139de565b611053565b34801561064257600080fd5b50610656610651366004613a35565b611075565b005b34801561066457600080fd5b5061068c7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016103dc565b3480156106aa57600080fd5b506103d26110a0565b3480156106bf57600080fd5b506106d36106ce3660046139de565b6110d0565b6040516103dc9190613a61565b3480156106ec57600080fd5b506103d26111b4565b34801561070157600080fd5b50610656610710366004613a35565b61120a565b34801561072157600080fd5b506107497f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103dc565b34801561076d57600080fd5b506103d261077c3660046139de565b5060001990565b34801561078f57600080fd5b506106d361079e366004613b59565b611242565b3480156107af57600080fd5b506103d26107be3660046139c5565b611525565b3480156107cf57600080fd5b506103d26107de366004613c1b565b611547565b3480156107ef57600080fd5b506103d26107fe3660046139de565b61168c565b34801561080f57600080fd5b506103d261081e366004613a35565b6117fd565b34801561082f57600080fd5b506103d261083e3660046139de565b60036020526000908152604090205481565b34801561085c57600080fd5b50610656611939565b6108786108733660046139c5565b61194d565b604080519283526020830191909152016103dc565b34801561089957600080fd5b506107496108a83660046139c5565b611afc565b3480156108b957600080fd5b506103d26108c83660046139de565b60056020526000908152604090205481565b3480156108e657600080fd5b50600e54610749906001600160a01b031681565b34801561090657600080fd5b506010546001600160a01b0316610749565b34801561092457600080fd5b506103d260135481565b34801561093a57600080fd5b50610405610949366004613a35565b611b26565b34801561095a57600080fd5b506103d2610969366004613a35565b611b51565b34801561097a57600080fd5b5061045e611c0b565b61065661099136600461399b565b611c18565b3480156109a257600080fd5b506103d2600081565b3480156109b757600080fd5b50601254610749906001600160a01b031681565b3480156109d757600080fd5b506104056109e636600461399b565b611f6c565b3480156109f757600080fd5b506103d2610a063660046139c5565b611fd2565b348015610a1757600080fd5b506103d2610a26366004613c45565b611ff4565b348015610a3757600080fd5b506103d27f477fc23fb51bb5d5aa814872a393b0e4f35d0916c7503c0fd96584681070d41081565b348015610a6b57600080fd5b50610656610a7a366004613c81565b6120f2565b348015610a8b57600080fd5b506103d2610a9a366004613c45565b612331565b348015610aab57600080fd5b50610656610aba366004613c81565b612437565b348015610acb57600080fd5b50610ad46125d3565b6040516103dc9190613cc2565b348015610aed57600080fd5b50610b18610afc3660046139de565b6016602052600090815260409020805460019091015460ff1682565b604080519283529015156020830152016103dc565b348015610b3957600080fd5b506103d2610b483660046139de565b612635565b348015610b5957600080fd5b50610656610b68366004613d12565b612640565b348015610b7957600080fd5b50610656610b88366004613a35565b612884565b348015610b9957600080fd5b506103d2610ba83660046139de565b6001600160a01b031660009081526003602052604090205490565b348015610bcf57600080fd5b506103d2610bde3660046139de565b600b6020526000908152604090205481565b348015610bfc57600080fd5b50610749610c0b36600461399b565b6128a9565b348015610c1c57600080fd5b506103d2610c2b366004613c1b565b600460209081526000928352604080842090915290825290205481565b348015610c5457600080fd5b50610656610c6336600461399b565b6128e1565b348015610c7457600080fd5b506103d2610c833660046139c5565b61299c565b348015610c9457600080fd5b50610656610ca3366004613d7f565b6129bd565b348015610cb457600080fd5b50610656610cc33660046139de565b612a02565b610656610cd6366004613c81565b612a40565b348015610ce757600080fd5b50600f54610749906001600160a01b031681565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d869190613de6565b905090565b60006001600160e01b03198216637965db0b60e01b1480610dbc57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008054610dcf90613dff565b80601f0160208091040260200160405190810160405280929190818152602001828054610dfb90613dff565b8015610e485780601f10610e1d57610100808354040283529160200191610e48565b820191906000526020600020905b815481529060010190602001808311610e2b57829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610eab9086815260200190565b60405180910390a350600192915050565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f499190613de6565b90508015610f6a57610f6581610f5d610cfb565b859190612b20565b610f6c565b825b9392505050565b6001600160a01b03831660009081526004602090815260408083203384529091528120546000198114610fcf57610faa8382613e4f565b6001600160a01b03861660009081526004602090815260408083203384529091529020555b6001600160a01b03851660009081526003602052604081208054859290610ff7908490613e4f565b90915550506001600160a01b03808516600081815260036020526040908190208054870190555190918716906000805160206145ea833981519152906110409087815260200190565b60405180910390a3506001949350505050565b6001600160a01b038116600090815260036020526040812054610dbc90611525565b60008281526006602052604090206001015461109081612b46565b61109a8383612b50565b50505050565b6000610d866107be7f0000000000000000000000000000000000000000000000000000000000000000600a613f46565b60606001600160a01b0382166111015760405162461bcd60e51b81526004016110f890613f55565b60405180910390fd5b6014546000906001600160401b0381111561111e5761111e613aa5565b604051908082528060200260200182016040528015611147578160200160208202803683370190505b50905060005b6014548110156111ad57611188846014838154811061116e5761116e613f96565b6000918252602090912001546001600160a01b0316611547565b82828151811061119a5761119a613f96565b602090810291909101015260010161114d565b5092915050565b60007f000000000000000000000000000000000000000000000000000000000000000046146111e557610d86612be4565b507f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b03811633146112335760405163334bd91960e11b815260040160405180910390fd5b61123d8282612c7e565b505050565b825160609082146112a05760405162461bcd60e51b815260206004820152602260248201527f546f6b656e20707269636573206172726179206c656e677468206d69736d61746044820152610c6d60f31b60648201526084016110f8565b600080836001600160401b038111156112bb576112bb613aa5565b6040519080825280602002602001820160405280156112e4578160200160208202803683370190505b50905060005b848110156113f35785858281811061130457611304613f96565b905060200201602081019061131991906139de565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561135f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113839190613de6565b82828151811061139557611395613f96565b6020026020010181815250508681815181106113b3576113b3613f96565b60200260200101518282815181106113cd576113cd613f96565b60200260200101516113df9190613fac565b6113e99084613fc3565b92506001016112ea565b506000846001600160401b0381111561140e5761140e613aa5565b604051908082528060200260200182016040528015611437578160200160208202803683370190505b50905060005b8581101561151a576000612710600a60008a8a8681811061146057611460613f96565b905060200201602081019061147591906139de565b6001600160a01b031681526020810191909152604001600020546114999087613fac565b6114a39190613fd6565b905060008983815181106114b9576114b9613f96565b6020026020010151826114cc9190613fd6565b90508483815181106114e0576114e0613f96565b6020026020010151816114f39190613e4f565b84848151811061150557611505613f96565b6020908102919091010152505060010161143d565b509695505050505050565b6002546000908015610f6a57610f6561153c610cfb565b600254859190612ceb565b60006001600160a01b03831661156f5760405162461bcd60e51b81526004016110f890613f55565b6001600160a01b0382166115d75760405162461bcd60e51b815260206004820152602960248201527f5661756c743a2052657761726420746f6b656e20616464726573732063616e2760448201526874206265207a65726f60b81b60648201526084016110f8565b6001600160a01b03808316600081815260166020908152604080832080549589168452601583528184208054958552600281019093529083205490949391926116208286613e4f565b9050600061163082600186612ceb565b90506000429050600061164d838860040154896005015485612d09565b50600954909a508a91501561167d57600061166d8b600760020154612d71565b9050611679818c613e4f565b9a50505b50505050505050505092915050565b600f546001600160a01b038281166000908152600b60205260408082205490516331d98b3f60e01b81529193849316916331d98b3f916116d29160040190815260200190565b608060405180830381865afa1580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117139190614033565b90506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611755573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177991906140ab565b60ff1690506000826040015160001961179291906140c8565b61179d906012613f46565b6117a88360126140e8565b84516117bd91906001600160401b0316613fac565b6117c79190613fd6565b9050806117d58360126140e8565b6117e08460126140e8565b6117ea9190613fac565b6117f49190613fd6565b95945050505050565b6000611807612df1565b6118108361299c565b90508060000361183657604051636e3699b760e11b8152600481018490526024016110f8565b61186b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086612e1b565b826013600082825461187d9190613fc3565b9091555050601254604080516000808252602082019092526118c6926001600160a01b0316918691906118c0565b60608152602001906001900390816118ab5790505b50612ea5565b50506012546118e0906001600160a01b0316303386612fe8565b60408051848152602081018390526001600160a01b0384169133917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7910160405180910390a361192f83613118565b610dbc6001601155565b6119416132d1565b61194b60006132fe565b565b60145460085460009182916001600160a01b031642855b838110801561197c575061197987600a613fc3565b81105b15611aef576000806014838154811061199757611997613f96565b600091825260208083209091015433835260158252604080842080546001600160a01b03909316808652600290910184528185205460169094529320549293506119ee926001926119e791613e4f565b9190612ceb565b336000908152601560205260408120600481015460059091015492945090918291611a1c9186919089612d09565b33600090815260156020526040812060060180549395509193508492611a43908490613fc3565b90915550506001600160a01b03831660008181526016602090815260408083205433808552601580855283862096865260028701855292852091909155928390529052600690910154611a9a918591309190612fe8565b336000908152601560205260408120600601556001600160a01b03871615611ad85733600090815260156020526040902060060154611ad890613350565b505050508080611ae7906140f4565b915050611964565b5094959194509092505050565b60148181548110611b0c57600080fd5b6000918252602090912001546001600160a01b0316905081565b60009182526006602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000611b5b612df1565b611b7082611b6885611fd2565b925082613445565b8060136000828254611b829190613fc3565b909155505060408051828152602081018590526001600160a01b0384169133917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7910160405180910390a3611c026001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084612e1b565b61192f81613118565b60018054610dcf90613dff565b7f477fc23fb51bb5d5aa814872a393b0e4f35d0916c7503c0fd96584681070d410611c4281612b46565b6001600160a01b038316611ca35760405162461bcd60e51b815260206004820152602260248201527f5661756c743a20546f6b656e20616464726573732063616e2774206265207a65604482015261726f60f01b60648201526084016110f8565b81600003611cf35760405162461bcd60e51b815260206004820152601b60248201527f5661756c743a20416d6f756e742063616e2774206265207a65726f000000000060448201526064016110f8565b601354600003611d455760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a204e6f20746f6b656e207374616b65642079657400000000000060448201526064016110f8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614158015611d9557506012546001600160a01b03848116911614155b611df95760405162461bcd60e51b815260206004820152602f60248201527f5661756c743a2052657761726420616e64205374616b696e6720746f6b656e7360448201526e2063616e6e6f742062652073616d6560881b60648201526084016110f8565b601454600a03611e1c57604051637561e0ab60e01b815260040160405180910390fd5b6000611e36600160135485612ceb9092919063ffffffff16565b6001600160a01b038516600090815260166020526040902060018101549192509060ff16611edf5760148054600180820183556000929092527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0180546001600160a01b0319166001600160a01b038816179055818101805460ff19169091179055818155611ec5853061349f565b611eda6001600160a01b038616333087612e1b565b611f22565b6001600160a01b03851660009081526016602052604081208054849290611f07908490613fc3565b90915550611f2290506001600160a01b038616333087612e1b565b846001600160a01b03167fac24935fd910bc682b5ccb1a07b718cadf8cf2f6d1404c4f3ddc3662dae40e2985604051611f5d91815260200190565b60405180910390a25050505050565b33600090815260036020526040812080548391908390611f8d908490613e4f565b90915550506001600160a01b038316600081815260036020526040908190208054850190555133906000805160206145ea83398151915290610eab9086815260200190565b6002546000908015610f6a57610f65611fe9610cfb565b600254859190612b20565b6000611ffe612df1565b612007846135bd565b83601360008282546120199190613e4f565b9091555050601254612036906001600160a01b0316333087612fe8565b60125460408051600081526020810190915261205d916001600160a01b03169086906135f5565b506120926001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168486613721565b826001600160a01b0316826001600160a01b03167ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb56786846040516120e0929190918252602082015260400190565b60405180910390a3610f6c6001601155565b60005b8181101561123d57600083838381811061211157612111613f96565b905060200201602081019061212691906139de565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa158015612170573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121949190613de6565b6001600160a01b0383166000908152600d60205260408120549192506121ba8284613fac565b6001600160a01b0385166000908152600a602052604081205491925090612710906121e59084613fac565b6121ef9190613fd6565b905060006121fd8483613fd6565b90508085111561231f5760006122138287613e4f565b600e5460405163095ea7b360e01b81526001600160a01b0391821660048201526024810183905291925088169063095ea7b3906044016020604051808303816000875af1158015612268573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228c919061410d565b50600e546001600160a01b038881166000908152600c602052604080822090516318cbafe560e01b815292909316926318cbafe5926122d5928692909130904290600401614179565b6000604051808303816000875af11580156122f4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261231c91908101906141b5565b50505b5050600190940193506120f592505050565b600061233b612df1565b61234484611525565b9050806000036123845760405162461bcd60e51b815260206004820152600b60248201526a5a45524f5f41535345545360a81b60448201526064016110f8565b61238d84611525565b90506123998285613799565b80601360008282546123ab9190613e4f565b909155505060408051828152602081018690526001600160a01b0380861692908516917ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567910160405180910390a361242d6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168483613721565b610f6c6001601155565b80606060005b828110156124b657600d600086868481811061245b5761245b613f96565b905060200201602081019061247091906139de565b6001600160a01b03166001600160a01b03168152602001908152602001600020548282815181106124a3576124a3613f96565b602090810291909101015260010161243d565b5060006124c4828686611242565b90506124d085856120f2565b805160005b818110156125ca57600e5483516001600160a01b0390911690637ff36ab59085908490811061250657612506613f96565b6020026020010151600c60008b8b8781811061252457612524613f96565b905060200201602081019061253991906139de565b6001600160a01b03166001600160a01b0316815260200190815260200160002030426040518563ffffffff1660e01b815260040161257a9493929190614245565b6000604051808303816000875af1158015612599573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125c191908101906141b5565b506001016124d5565b50505050505050565b6060601480548060200260200160405190810160405280929190818152602001828054801561262b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161260d575b5050505050905090565b6000610dbc82611053565b428410156126905760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064016110f8565b6000600161269c6111b4565b6001600160a01b038a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156127a8573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906127de5750876001600160a01b0316816001600160a01b0316145b61281b5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b60448201526064016110f8565b6001600160a01b0390811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b60008281526006602052604090206001015461289f81612b46565b61109a8383612c7e565b600c60205281600052604060002081815481106128c557600080fd5b6000918252602090912001546001600160a01b03169150829050565b61271081106129325760405162461bcd60e51b815260206004820152601760248201527f50657263656e746167652065786365656473203130302500000000000000000060448201526064016110f8565b6001600160a01b0382166129805760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b60448201526064016110f8565b6001600160a01b039091166000908152600a6020526040902055565b6002546000908015610f6a57610f6560016129b5610cfb565b859190612ceb565b7f74e458455daa935f28c556b43e0cc4ad001a8a090f5feee376681e97d4618f466129e781612b46565b6129fe8260000151836020015184604001516137fb565b5050565b612a0a6132d1565b6001600160a01b038116612a3457604051631e4fbdf760e01b8152600060048201526024016110f8565b612a3d816132fe565b50565b600f5460405163d47eed4560e01b81526000916001600160a01b03169063d47eed4590612a7390869086906004016142a3565b602060405180830381865afa158015612a90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab49190613de6565b600f54604051631df3cbc560e31b81529192506001600160a01b03169063ef9e5e28908390612ae990879087906004016142a3565b6000604051808303818588803b158015612b0257600080fd5b505af1158015612b16573d6000803e3d6000fd5b5050505050505050565b6000826000190484118302158202612b3757600080fd5b50910281810615159190040190565b612a3d81336138b9565b6000612b5c8383611b26565b612bdc5760008381526006602090815260408083206001600160a01b03861684529091529020805460ff19166001179055612b943390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610dbc565b506000610dbc565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051612c16919061433e565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000612c8a8383611b26565b15612bdc5760008381526006602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610dbc565b6000826000190484118302158202612d0257600080fd5b5091020490565b600080848311612d1e57506000905084612d68565b838310612d3057508490506000612d68565b6000612d3c8685613e4f565b90506000612d4a8787613e4f565b9050612d57888383612ceb565b9350612d638489613e4f565b925050505b94509492505050565b6000612710612d808385613fac565b1015612dda5760405162461bcd60e51b8152602060048201526024808201527f46433a20546f6f20736d616c6c20616d6f756e7420746f20636f6e73696465726044820152632066656560e01b60648201526084016110f8565b612710612de78385613fac565b610f6c9190613fd6565b600260115403612e1457604051633ee5aeb560e01b815260040160405180910390fd5b6002601155565b60006040516323b872dd60e01b81528460048201528360248201528260448201526020600060648360008a5af13d15601f3d1160016000511416171691505080612e9e5760405162461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b60448201526064016110f8565b5050505050565b6000606060008060006101676001600160a01b031663278e0b8860e01b898989604051602401612ed7939291906143df565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612f159190614463565b6000604051808303816000865af19150503d8060008114612f52576040519150601f19603f3d011682016040523d82523d6000602084013e612f57565b606091505b509150915081612f7a576040805160008082526020820190925260159190612f8e565b80806020019051810190612f8e919061447f565b90965094509250600383900b601614612fdd5760405162461bcd60e51b815260206004820152601160248201527053616665206d696e74206661696c65642160781b60448201526064016110f8565b505050935093915050565b604080516001600160a01b038681166024830152858116604483015284166064820152600783900b6084808301919091528251808303909101815260a490910182526020810180516001600160e01b031663eca3691760e01b1790529051600091829182916101679161305b9190614463565b6000604051808303816000865af19150503d8060008114613098576040519150601f19603f3d011682016040523d82523d6000602084013e61309d565b606091505b5091509150816130ae5760156130c2565b808060200190518101906130c29190614539565b9250600383900b6016146125ca5760405162461bcd60e51b815260206004820152601b60248201527f5361666520746f6b656e207472616e73666572206661696c656421000000000060448201526064016110f8565b3360009081526015602052604090206003015460ff166132715760145460005b818110156131fc5760006014828154811061315557613155613f96565b60009182526020808320909101546001600160a01b03168083526016825260408084205433855260158452818520838652600201845281852055805163053aa6f360e11b815290519194508493630a754de693600480840194919391929183900301908290875af11580156131ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f29190613de6565b5050600101613138565b5033600090815260156020526040902082815560038101805460ff1916600190811790915542908201819055600490910181905561323d9062278d00613fc3565b3360009081526015602052604081206005019190915560138054849290613265908490613fc3565b90915550612a3d915050565b61327b600061194d565b5050336000908152601560205260408120805483929061329c908490613fc3565b909155505033600090815260156020526040812042600190910155601380548392906132c9908490613fc3565b909155505050565b6010546001600160a01b0316331461194b5760405163118cdaa760e01b81523360048201526024016110f8565b601080546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6008546009546001600160a01b0390911690600090613370908490612d71565b6040516370a0823160e01b815233600482015290915081906001600160a01b038416906370a0823190602401602060405180830381865afa1580156133b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133dd9190613de6565b101561342b5760405162461bcd60e51b815260206004820152601e60248201527f46433a20496e73756666696369656e7420746f6b656e2062616c616e6365000060448201526064016110f8565b60075461123d90839033906001600160a01b031684612fe8565b80600260008282546134579190613fc3565b90915550506001600160a01b0382166000818152600360209081526040808320805486019055518481526000805160206145ea83398151915291015b60405180910390a35050565b604080516001600160a01b038381166024830152841660448083019190915282518083039091018152606490910182526020810180516001600160e01b031663248a35ef60e11b179052905160009182918291610167916135009190614463565b6000604051808303816000865af19150503d806000811461353d576040519150601f19603f3d011682016040523d82523d6000602084013e613542565b606091505b509150915081613553576015613567565b808060200190518101906135679190614539565b9250600383900b601614612e9e5760405162461bcd60e51b815260206004820152601f60248201527f536166652073696e676c65206173736f63696174696f6e206661696c6564210060448201526064016110f8565b33600090815260156020526040812080548392906135dc908490613e4f565b9250508190555080601360008282546132c99190613e4f565b6000806000806101676001600160a01b031663acb9cff960e01b88888860405160240161362493929190614554565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516136629190614463565b6000604051808303816000865af19150503d806000811461369f576040519150601f19603f3d011682016040523d82523d6000602084013e6136a4565b606091505b5091509150816136b757601560006136cb565b808060200190518101906136cb91906145bf565b94509250600383900b6016146137175760405162461bcd60e51b815260206004820152601160248201527053616665206275726e206661696c65642160781b60448201526064016110f8565b5050509392505050565b600060405163a9059cbb60e01b8152836004820152826024820152602060006044836000895af13d15601f3d116001600051141617169150508061109a5760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b60448201526064016110f8565b6001600160a01b038216600090815260036020526040812080548392906137c1908490613e4f565b90915550506002805482900390556040518181526000906001600160a01b038416906000805160206145ea83398151915290602001613493565b612710811061383e5760405162461bcd60e51b815260206004820152600f60248201526e46433a20496e76616c69642066656560881b60448201526064016110f8565b600780546001600160a01b038581166001600160a01b0319928316811790935560088054918616919092168117909155600983905560408051928352602083019190915281018290527febd34b2df88ea5c9f67c04b13b08e5e63c2d17e269aab73b866fe47a8736a2649060600160405180910390a1505050565b6138c38282611b26565b6129fe5760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016110f8565b60006020828403121561390457600080fd5b81356001600160e01b031981168114610f6c57600080fd5b60005b8381101561393757818101518382015260200161391f565b50506000910152565b6000815180845261395881602086016020860161391c565b601f01601f19169290920160200192915050565b602081526000610f6c6020830184613940565b80356001600160a01b038116811461399657600080fd5b919050565b600080604083850312156139ae57600080fd5b6139b78361397f565b946020939093013593505050565b6000602082840312156139d757600080fd5b5035919050565b6000602082840312156139f057600080fd5b610f6c8261397f565b600080600060608486031215613a0e57600080fd5b613a178461397f565b9250613a256020850161397f565b9150604084013590509250925092565b60008060408385031215613a4857600080fd5b82359150613a586020840161397f565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015613a9957835183529284019291840191600101613a7d565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613ae357613ae3613aa5565b604052919050565b60006001600160401b03821115613b0457613b04613aa5565b5060051b60200190565b60008083601f840112613b2057600080fd5b5081356001600160401b03811115613b3757600080fd5b6020830191508360208260051b8501011115613b5257600080fd5b9250929050565b600080600060408486031215613b6e57600080fd5b83356001600160401b0380821115613b8557600080fd5b818601915086601f830112613b9957600080fd5b81356020613bae613ba983613aeb565b613abb565b82815260059290921b8401810191818101908a841115613bcd57600080fd5b948201945b83861015613beb57853582529482019490820190613bd2565b97505087013592505080821115613c0157600080fd5b50613c0e86828701613b0e565b9497909650939450505050565b60008060408385031215613c2e57600080fd5b613c378361397f565b9150613a586020840161397f565b600080600060608486031215613c5a57600080fd5b83359250613c6a6020850161397f565b9150613c786040850161397f565b90509250925092565b60008060208385031215613c9457600080fd5b82356001600160401b03811115613caa57600080fd5b613cb685828601613b0e565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b81811015613a995783516001600160a01b031683529284019291840191600101613cde565b60ff81168114612a3d57600080fd5b600080600080600080600060e0888a031215613d2d57600080fd5b613d368861397f565b9650613d446020890161397f565b955060408801359450606088013593506080880135613d6281613d03565b9699959850939692959460a0840135945060c09093013592915050565b600060608284031215613d9157600080fd5b604051606081018181106001600160401b0382111715613db357613db3613aa5565b604052613dbf8361397f565b8152613dcd6020840161397f565b6020820152604083013560408201528091505092915050565b600060208284031215613df857600080fd5b5051919050565b600181811c90821680613e1357607f821691505b602082108103613e3357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dbc57610dbc613e39565b600181815b80851115613e9d578160001904821115613e8357613e83613e39565b80851615613e9057918102915b93841c9390800290613e67565b509250929050565b600082613eb457506001610dbc565b81613ec157506000610dbc565b8160018114613ed75760028114613ee157613efd565b6001915050610dbc565b60ff841115613ef257613ef2613e39565b50506001821b610dbc565b5060208310610133831016604e8410600b8410161715613f20575081810a610dbc565b613f2a8383613e62565b8060001904821115613f3e57613f3e613e39565b029392505050565b6000610f6c60ff841683613ea5565b60208082526021908201527f5661756c743a205573657220616464726573732063616e2774206265207a65726040820152606f60f81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8082028115828204841417610dbc57610dbc613e39565b80820180821115610dbc57610dbc613e39565b600082613ff357634e487b7160e01b600052601260045260246000fd5b500490565b8051600781900b811461399657600080fd5b80516001600160401b038116811461399657600080fd5b8051600381900b811461399657600080fd5b60006080828403121561404557600080fd5b604051608081018181106001600160401b038211171561406757614067613aa5565b60405261407383613ff8565b81526140816020840161400a565b602082015261409260408401614021565b6040820152606083015160608201528091505092915050565b6000602082840312156140bd57600080fd5b8151610f6c81613d03565b60008260030b8260030b028060030b91508082146111ad576111ad613e39565b6000610f6c8383613ea5565b60006001820161410657614106613e39565b5060010190565b60006020828403121561411f57600080fd5b81518015158114610f6c57600080fd5b600081548084526020808501945083600052602060002060005b8381101561416e5781546001600160a01b031687529582019560019182019101614149565b509495945050505050565b85815284602082015260a06040820152600061419860a083018661412f565b6001600160a01b0394909416606083015250608001529392505050565b600060208083850312156141c857600080fd5b82516001600160401b038111156141de57600080fd5b8301601f810185136141ef57600080fd5b80516141fd613ba982613aeb565b81815260059190911b8201830190838101908783111561421c57600080fd5b928401925b8284101561423a57835182529284019290840190614221565b979650505050505050565b84815260806020820152600061425e608083018661412f565b6001600160a01b03949094166040830152506060015292915050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208082528181018390526000906040600585901b8401810190840186845b8781101561433157868403603f190183528135368a9003601e190181126142e857600080fd5b890185810190356001600160401b0381111561430357600080fd5b80360382131561431257600080fd5b61431d86828461427a565b9550505091840191908401906001016142c2565b5091979650505050505050565b60008083548160018260011c9150600183168061435c57607f831692505b6020808410820361437b57634e487b7160e01b86526022600452602486fd5b81801561438f57600181146143a4576143d1565b60ff19861689528415158502890196506143d1565b60008a81526020902060005b868110156143c95781548b8201529085019083016143b0565b505084890196505b509498975050505050505050565b60006060820160018060a01b038616835260206001600160401b03861660208501526060604085015281855180845260808601915060808160051b87010193506020870160005b8281101561445457607f19888703018452614442868351613940565b95509284019290840190600101614426565b50939998505050505050505050565b6000825161447581846020870161391c565b9190910192915050565b60008060006060848603121561449457600080fd5b61449d84614021565b925060206144ac81860161400a565b925060408501516001600160401b038111156144c757600080fd5b8501601f810187136144d857600080fd5b80516144e6613ba982613aeb565b81815260059190911b8201830190838101908983111561450557600080fd5b928401925b8284101561452a5761451b84613ff8565b8252928401929084019061450a565b80955050505050509250925092565b60006020828403121561454b57600080fd5b610f6c82614021565b6001600160a01b03841681526001600160401b0383166020808301919091526060604083018190528351908301819052600091848101916080850190845b818110156145b157845160070b83529383019391830191600101614592565b509098975050505050505050565b600080604083850312156145d257600080fd5b6145db83614021565b9150613a586020840161400a56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122025368c444359961ce7f805b37a03a62001beb48f4db5d2380638d791415e62ca64736f6c63430008180033a2646970667358221220123fbd7009adc054c2713a425c3fa24ae400edc91771654f684af502c2c7025b64736f6c63430008180033","sourceMap":"548:3714:106:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4051:209;;;;;;;;;;-1:-1:-1;4051:209:106;;;;;:::i;:::-;;:::i;:::-;;;470:14:165;;463:22;445:41;;433:2;418:18;4051:209:106;;;;;;;;634:53;;;;;;;;;;-1:-1:-1;634:53:106;;;;;:::i;:::-;;;;;;;;;;;;;;;;2293:101:141;;;;;;;;;;;;;:::i;:::-;;1267:822:106;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2117:32:165;;;2099:51;;2087:2;2072:18;1267:822:106;1953:203:165;1638:85:141;;;;;;;;;;-1:-1:-1;1684:7:141;1710:6;-1:-1:-1;;;;;1710:6:141;1638:85;;3868:116:106;;;;;;;;;;-1:-1:-1;3868:116:106;;;;;:::i;:::-;-1:-1:-1;;;;;3955:22:106;3932:4;3955:22;;;:15;:22;;;;;;;;;3868:116;2543:215:141;;;;;;;;;;-1:-1:-1;2543:215:141;;;;;:::i;:::-;;:::i;729:47:106:-;;;;;;;;;;-1:-1:-1;729:47:106;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;729:47:106;;;4051:209;4144:4;-1:-1:-1;;;;;;4167:46:106;;-1:-1:-1;;;4167:46:106;;:86;;-1:-1:-1;;;;;;;;;;861:40:158;;;4217:36:106;4160:93;4051:209;-1:-1:-1;;4051:209:106:o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1267:822:106:-;1449:13;1513:1;-1:-1:-1;;;;;1482:33:106;:13;1496:4;;1482:19;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1482:19:106;:33;1474:68;;;;-1:-1:-1;;;1474:68:106;;3700:2:165;1474:68:106;;;3682:21:165;3739:2;3719:18;;;3712:30;-1:-1:-1;;;3758:18:165;;;3751:52;3820:18;;1474:68:106;;;;;;;;;1597:1;1560:25;;;;:12;:25;:::i;:::-;-1:-1:-1;;;;;1560:39:106;;1552:73;;;;-1:-1:-1;;;1552:73:106;;4051:2:165;1552:73:106;;;4033:21:165;4090:2;4070:18;;;4063:30;-1:-1:-1;;;4109:18:165;;;4102:51;4170:18;;1552:73:106;3849:345:165;1552:73:106;1689:1;1643:34;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1643:48:106;;1635:94;;;;-1:-1:-1;;;1635:94:106;;4401:2:165;1635:94:106;;;4383:21:165;4440:2;4420:18;;;4413:30;4479:34;4459:18;;;4452:62;-1:-1:-1;;;4530:18:165;;;4523:31;4571:19;;1635:94:106;4199:397:165;1635:94:106;1791:1;1747:32;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1747:46:106;;1739:89;;;;-1:-1:-1;;;1739:89:106;;4803:2:165;1739:89:106;;;4785:21:165;4842:2;4822:18;;;4815:30;4881:32;4861:18;;;4854:60;4931:18;;1739:89:106;4601:354:165;1739:89:106;1847:43;1860:4;;1866:12;1880:9;1847:12;:43::i;:::-;-1:-1:-1;;;;;1901:22:106;;;;;;1926:4;1901:22;;;;;;;;;:29;;-1:-1:-1;;1901:29:106;;;;;;1941:45;-1:-1:-1;;;1941:45:106;;1975:10;1941:45;;;2099:51:165;1901:22:106;;-1:-1:-1;1901:22:106;1941:33;;2072:18:165;;1941:45:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;2002:80:106;;;-1:-1:-1;2002:80:106;2023:27;;;;;;:::i;:::-;2052:29;;;;:12;:29;:::i;:::-;2002:80;;;;;;;;;:::i;:::-;;;;;;;;1267:822;;;;;;:::o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;2099:51:165::0;2072:18;;2672:31:141::1;1953:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;2099:51:165;2072:18;;1901:40:141;1953:203:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;2234:752:106:-;2408:7;2427:18;2448:30;;;;;;;;:::i;:::-;-1:-1:-1;;2448:30:106;;;;;;;;;;;;;;;-1:-1:-1;2488:27:106;2542:25;2448:30;2542:25;;:12;:25;:::i;:::-;2581:27;;;;:12;:27;:::i;:::-;2622:29;;;;:12;:29;:::i;:::-;2665:18;;;;:9;:18;:::i;:::-;2697:15;;;;;;;;:::i;:::-;2726:23;;;;2763:34;;;;;;;;:::i;:::-;2811:12;:32;;;;;;;;;;:::i;:::-;2518:335;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2488:365;;2864:27;2911:5;2918:14;2894:39;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2864:69;;2950:29;2958:4;;2964:14;2950:7;:29::i;:::-;2943:36;2234:752;-1:-1:-1;;;;;;;;2234:752:106:o;3125:618::-;3204:7;3223:17;3278:4;;3261:22;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3251:33;;;;;;3223:62;;3295:12;3426:8;3420:4;3416:19;3503:8;3497:15;3610:9;3596:12;3582;3569:11;3561:59;3553:67;;;;3655:4;3643:17;3633:73;;3690:1;3687;3680:12;3633:73;3732:4;3125:618;-1:-1:-1;;;;;3125:618:106:o;-1:-1:-1:-;;;;;;;;:::o;14:286:165:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:165;;209:43;;199:71;;266:1;263;256:12;199:71;289:5;14:286;-1:-1:-1;;;14:286:165:o;497:::-;556:6;609:2;597:9;588:7;584:23;580:32;577:52;;;625:1;622;615:12;577:52;651:23;;-1:-1:-1;;;;;703:31:165;;693:42;;683:70;;749:1;746;739:12;788:157;850:5;895:2;886:6;881:3;877:16;873:25;870:45;;;911:1;908;901:12;870:45;-1:-1:-1;933:6:165;788:157;-1:-1:-1;788:157:165:o;950:998::-;1099:6;1107;1115;1123;1176:3;1164:9;1155:7;1151:23;1147:33;1144:53;;;1193:1;1190;1183:12;1144:53;1233:9;1220:23;1262:18;1303:2;1295:6;1292:14;1289:34;;;1319:1;1316;1309:12;1289:34;1357:6;1346:9;1342:22;1332:32;;1402:7;1395:4;1391:2;1387:13;1383:27;1373:55;;1424:1;1421;1414:12;1373:55;1464:2;1451:16;1490:2;1482:6;1479:14;1476:34;;;1506:1;1503;1496:12;1476:34;1553:7;1546:4;1537:6;1533:2;1529:15;1525:26;1522:39;1519:59;;;1574:1;1571;1564:12;1519:59;1605:4;1597:13;;;;-1:-1:-1;1629:6:165;-1:-1:-1;1673:20:165;;;1660:34;;1706:16;;;1703:36;;;1735:1;1732;1725:12;1703:36;-1:-1:-1;1758:24:165;;1816:3;1798:16;;;1794:26;1791:46;;;1833:1;1830;1823:12;1791:46;1856:2;-1:-1:-1;1877:65:165;1934:7;1929:2;1914:18;;1877:65;:::i;:::-;1867:75;;950:998;;;;;;;:::o;2161:127::-;2222:10;2217:3;2213:20;2210:1;2203:31;2253:4;2250:1;2243:15;2277:4;2274:1;2267:15;2293:922;2362:6;2415:2;2403:9;2394:7;2390:23;2386:32;2383:52;;;2431:1;2428;2421:12;2383:52;2471:9;2458:23;2500:18;2541:2;2533:6;2530:14;2527:34;;;2557:1;2554;2547:12;2527:34;2595:6;2584:9;2580:22;2570:32;;2640:7;2633:4;2629:2;2625:13;2621:27;2611:55;;2662:1;2659;2652:12;2611:55;2698:2;2685:16;2720:2;2716;2713:10;2710:36;;;2726:18;;:::i;:::-;2801:2;2795:9;2769:2;2855:13;;-1:-1:-1;;2851:22:165;;;2875:2;2847:31;2843:40;2831:53;;;2899:18;;;2919:22;;;2896:46;2893:72;;;2945:18;;:::i;:::-;2985:10;2981:2;2974:22;3020:2;3012:6;3005:18;3060:7;3055:2;3050;3046;3042:11;3038:20;3035:33;3032:53;;;3081:1;3078;3071:12;3032:53;3137:2;3132;3128;3124:11;3119:2;3111:6;3107:15;3094:46;3182:1;3160:15;;;3177:2;3156:24;3149:35;;;;-1:-1:-1;3164:6:165;2293:922;-1:-1:-1;;;;;2293:922:165:o;3220:273::-;3405:6;3397;3392:3;3379:33;3361:3;3431:16;;3456:13;;;3431:16;3220:273;-1:-1:-1;3220:273:165:o;4960:522::-;5038:4;5044:6;5104:11;5091:25;5198:2;5194:7;5183:8;5167:14;5163:29;5159:43;5139:18;5135:68;5125:96;;5217:1;5214;5207:12;5125:96;5244:33;;5296:20;;;-1:-1:-1;5339:18:165;5328:30;;5325:50;;;5371:1;5368;5361:12;5325:50;5404:4;5392:17;;-1:-1:-1;5435:14:165;5431:27;;;5421:38;;5418:58;;;5472:1;5469;5462:12;5418:58;4960:522;;;;;:::o;5487:267::-;5576:6;5571:3;5564:19;5628:6;5621:5;5614:4;5609:3;5605:14;5592:43;-1:-1:-1;5680:1:165;5655:16;;;5673:4;5651:27;;;5644:38;;;;5736:2;5715:15;;;-1:-1:-1;;5711:29:165;5702:39;;;5698:50;;5487:267::o;5759:437::-;5976:2;5965:9;5958:21;5939:4;6002:62;6060:2;6049:9;6045:18;6037:6;6029;6002:62;:::i;:::-;6112:9;6104:6;6100:22;6095:2;6084:9;6080:18;6073:50;6140;6183:6;6175;6167;6140:50;:::i;:::-;6132:58;5759:437;-1:-1:-1;;;;;;;5759:437:165:o;6201:972::-;-1:-1:-1;;;;;6646:15:165;;;6628:34;;6578:3;6693:2;6678:18;;6671:30;;;6549:4;;6724:62;6767:18;;;6759:6;6751;6724:62;:::i;:::-;6710:76;;6834:9;6826:6;6822:22;6817:2;6806:9;6802:18;6795:50;6862;6905:6;6897;6889;6862:50;:::i;:::-;6948:15;;;6943:2;6928:18;;6921:43;7001:15;;;6995:3;6980:19;;6973:44;-1:-1:-1;;7048:3:165;7033:19;;7026:35;;;;7098:15;;;7092:3;7077:19;;7070:44;7151:15;;;7145:3;7130:19;;;7123:44;6854:58;6201:972;-1:-1:-1;;;;;6201:972:165:o;7178:322::-;7219:3;7257:5;7251:12;7281:1;7291:128;7305:6;7302:1;7299:13;7291:128;;;7402:4;7387:13;;;7383:24;;7377:31;7364:11;;;7357:52;7320:12;7291:128;;;-1:-1:-1;7474:1:165;7438:16;;7463:13;;;-1:-1:-1;7438:16:165;;7178:322;-1:-1:-1;7178:322:165:o;7505:261::-;7680:3;7705:55;7730:29;7755:3;7747:6;7730:29;:::i;:::-;7722:6;7705:55;:::i;:::-;7698:62;7505:261;-1:-1:-1;;;;7505:261:165:o","linkReferences":{}},"methodIdentifiers":{"availableVaults(address)":"0f98d411","deployVault(string,(address,string,string,address,address),(address,address,uint256))":"7bac419d","isVaultAvailable(address)":"f26eb0fd","owner()":"8da5cb5b","renounceOwnership()":"715018a6","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","vaultDeployed(string)":"fe738c83"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"VaultDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"availableVaults\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"salt\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"stakingToken\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"shareTokenName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"shareTokenSymbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"vaultRewardController\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feeConfigController\",\"type\":\"address\"}],\"internalType\":\"struct IVaultFactory.VaultDetails\",\"name\":\"vaultDetails\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feePercentage\",\"type\":\"uint256\"}],\"internalType\":\"struct FeeConfiguration.FeeConfig\",\"name\":\"feeConfig\",\"type\":\"tuple\"}],\"name\":\"deployVault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"isVaultAvailable\",\"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\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"vaultDeployed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"VaultDeployed(address,string,string)\":{\"details\":\"Emitted after Vault deployment.\",\"params\":{\"name\":\"The name of the deployed Vault.\",\"symbol\":\"The symbol of the deployed Vault.\",\"vault\":\"The address of the deployed Vault.\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes contract with passed parameters.\"},\"deployVault(string,(address,string,string,address,address),(address,address,uint256))\":{\"details\":\"Deploys a Vault using CREATE2 opcode.\",\"params\":{\"feeConfig\":\"The fee configuration setup for Vault.\",\"salt\":\"The CREATE2 salt.\",\"vaultDetails\":\"The Vault parameters.\"},\"returns\":{\"vault\":\"The address of the deployed Vault.\"}},\"isVaultAvailable(address)\":{\"details\":\"Checks if Vault is available.\",\"returns\":{\"_0\":\"The bool flag of vault's availability.\"}},\"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.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"Vault Factory The contract which allows to deploy Vaults with different parameters and track contract addresses.\",\"version\":1},\"userdoc\":{\"events\":{\"VaultDeployed(address,string,string)\":{\"notice\":\"VaultDeployed event.\"}},\"kind\":\"user\",\"methods\":{\"deployVault(string,(address,string,string,address,address),(address,address,uint256))\":{\"notice\":\"It's required to send at least 12 HBAR for token creation and associations.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc4626/factory/VaultFactory.sol\":\"VaultFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/FeeConfiguration.sol\":{\"keccak256\":\"0xd576dc5a2f8d782ff3311e6207641c78ea68f68d8cf0c8ce9c06571316e559a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084d049afbfe5d85e397e6f3c118edafe57db19540c6462ea9a0ac2cc99c7f69\",\"dweb:/ipfs/QmXrsuHjQGJRCc7e5HodYLgmb5HKMfC1xPSL7ncKSTHvak\"]},\"contracts/common/hedera/IHRC.sol\":{\"keccak256\":\"0xa5e623207cec464b0965f98d87db307893dd22d5f46654923e36141bdcb93657\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f3da162916df8236e8c84fa7a0e35757e7c6b3e6af93e98bebe23a03177a0fa9\",\"dweb:/ipfs/Qmb8ZbsGQqbaqpZEhACfuV1FfTDZYKrjbyzUDamYN5gD1c\"]},\"contracts/common/safe-HTS/HederaResponseCodes.sol\":{\"keccak256\":\"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca\",\"dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G\"]},\"contracts/common/safe-HTS/IHederaTokenService.sol\":{\"keccak256\":\"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786\",\"dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W\"]},\"contracts/common/safe-HTS/SafeHTS.sol\":{\"keccak256\":\"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe\",\"dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7\"]},\"contracts/erc4626/ERC20.sol\":{\"keccak256\":\"0x33fe85bf9c3a26cc53c74f425a248df6664a2c85c7b872ce9567a8b785619879\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://b42e32a0a88263829f727e8cc5efae644c89db3ad3900daad3918aa75bea756f\",\"dweb:/ipfs/QmQC7KSYBVuNnojtMrJ99rcSsfBhBAK5wSjuTVjANxLvCB\"]},\"contracts/erc4626/TokenBalancer.sol\":{\"keccak256\":\"0x0d9b336e2a4d5120571e4f6b92512ea364980664cddda180fadc93991b9a5f25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb414c1eb9d58392ef05ea0ee6545e858aed7c6b8f28cd177db76e6869ac1132\",\"dweb:/ipfs/Qmc6y1DcHNLBhQdvy4DGcedrMChj6JSMXWYM9a8UhuqyYt\"]},\"contracts/erc4626/Vault.sol\":{\"keccak256\":\"0x3f88acb7a128213804d8634e1aee5c9e44ed801cda46d0e8bca4cbfe13e4ce50\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba50dcb69a2de3520d1b89a67c7be26b959e8061c36abd42c9ce8395904febbd\",\"dweb:/ipfs/QmZVFZDaLDiwKwrXQRi2PuF6W3cUPEywbbF8zCBoFmGAU6\"]},\"contracts/erc4626/factory/IOwnable.sol\":{\"keccak256\":\"0x2c53b9e793371e79122b6f0113e623c0c910ad687f0627d3c9a44076cbc7e845\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b323ced23d527f19241fa7a33f83138a808acbf10ace0e2a3fdf555d08a72b8\",\"dweb:/ipfs/QmRT7JM2PHFoLwo7JhQzp79VWujpQE2VRmbgAtcF5XtRuG\"]},\"contracts/erc4626/factory/IVaultFactory.sol\":{\"keccak256\":\"0xd3651257845b7bc2e3c6c123daf01fdab212dfcee95265dd34b00ae466c5f3d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dfdeb56a2cfc78fb15d9afd3fd6094763e9d10e86d55e73ac2106b5457f807\",\"dweb:/ipfs/QmUj1LHyTobZeEZJoV8aWaQaPh5v2s7DDmeovyyxpCxdLi\"]},\"contracts/erc4626/factory/VaultFactory.sol\":{\"keccak256\":\"0x8126767f9a553f262d3d6a71304c10e5a4462c247fdc8b59798c89d791f0b306\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://27f23d5bccc7015cc47f6190aaf48eca1a35af64b33289eeedfce89a1390f3f2\",\"dweb:/ipfs/QmYAqWj6jCLtT9GdehD1rzqjnZdefJRoeME7D8TQwsy1gK\"]},\"contracts/erc4626/interfaces/IERC4626.sol\":{\"keccak256\":\"0x7935c852530f140c6a6b9c295503a4d3ccf83cb5ac5c5f1615e2d7248690e1b3\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2b26de597cefe1da676035b5f64766fdb7628355bddb14c67ee55b910f31419f\",\"dweb:/ipfs/QmUfmGqb4rP17aTeQ1uwZrHbe9jBJ8amCEhdpBoFN2gzRk\"]},\"contracts/erc4626/interfaces/ISaucerSwap.sol\":{\"keccak256\":\"0xa7bb2678e1375e9973578dbdc07d82bc838d360256bb974e1382ed60fc3be3c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94f426b7f3c149e2d7f25a1734f877494ab15a55fd641b84d9a88def7705a761\",\"dweb:/ipfs/QmZa5XUCWyFkeaDBcFZ6czUaaKmdwahVeL7Z3ssxopfDC2\"]},\"contracts/erc4626/libraries/FixedPointMathLib.sol\":{\"keccak256\":\"0x2958e993700b05ee4c2d92e7a90939c97324c1466512a252085f461d154a4ab9\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://774aa54a350733f7e48bfd7271fd529514d4e89c34ee59e05f896bccdc870ce9\",\"dweb:/ipfs/QmWJ1zAHM3cCtVo4VmxZA7S7xuDbcvS3fkqTJY5zrkuGEJ\"]},\"contracts/erc4626/libraries/SafeTransferLib.sol\":{\"keccak256\":\"0x97357325a0f635274a84341d6c3f8b7a9003b2aa38976e2f5fcbb7cd9a31d5de\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://275077abf697e5a2ad66e9181e83013f3fdd54dc4d5d752fd6e4c3c878125c6b\",\"dweb:/ipfs/QmdRTBWEUrYGdcbCzA12HYWkJNXrd8XgQgGUtUws2f2HnC\"]},\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@pythnetwork/pyth-sdk-solidity/IPyth.sol\":{\"keccak256\":\"0xe06dbd61ccf409fffc0a2449eb8bb6c2d245609698c3c6eddad7cd0f3822d215\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://62867dd9f8a439d091da28c4d6cbd6f4d4ec0606291cdea7b70841e37c43e0da\",\"dweb:/ipfs/Qme4kF7yC3k2zxC87k9b6rhEbSjPNWZ5kLZCBdKqk43FbE\"]},\"node_modules/@pythnetwork/pyth-sdk-solidity/IPythEvents.sol\":{\"keccak256\":\"0x7ca8e03315d4516d6833c425a52c43e8cacf2077492074d2d36ae5c17899c9c8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ad1c69d157eccb09ce248e1ec021f2e58b61dd36160f5be3973a7bea4a899f64\",\"dweb:/ipfs/QmW1yXsDrMsuQKxtZanSZXpyUW2QwnCKVoCjS5fC3NoSVY\"]},\"node_modules/@pythnetwork/pyth-sdk-solidity/PythStructs.sol\":{\"keccak256\":\"0xade221177dda98ebd194c363f264ceea125bde0e6a7a72f7b54da3ac60316894\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a404dbbc64183995326c345cae27601d37c783b3d9030c8dc0ab4943fa2bf1da\",\"dweb:/ipfs/QmfNFesQffYisafmJFbKHxVFSD8fY49X1z9f8N7qtfW8AX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"vault","type":"address","indexed":true},{"internalType":"string","name":"name","type":"string","indexed":false},{"internalType":"string","name":"symbol","type":"string","indexed":false}],"type":"event","name":"VaultDeployed","anonymous":false},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"view","type":"function","name":"availableVaults","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"salt","type":"string"},{"internalType":"struct IVaultFactory.VaultDetails","name":"vaultDetails","type":"tuple","components":[{"internalType":"address","name":"stakingToken","type":"address"},{"internalType":"string","name":"shareTokenName","type":"string"},{"internalType":"string","name":"shareTokenSymbol","type":"string"},{"internalType":"address","name":"vaultRewardController","type":"address"},{"internalType":"address","name":"feeConfigController","type":"address"}]},{"internalType":"struct FeeConfiguration.FeeConfig","name":"feeConfig","type":"tuple","components":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"feePercentage","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"deployVault","outputs":[{"internalType":"address","name":"vault","type":"address"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"view","type":"function","name":"isVaultAvailable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function","name":"vaultDeployed","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes contract with passed parameters."},"deployVault(string,(address,string,string,address,address),(address,address,uint256))":{"details":"Deploys a Vault using CREATE2 opcode.","params":{"feeConfig":"The fee configuration setup for Vault.","salt":"The CREATE2 salt.","vaultDetails":"The Vault parameters."},"returns":{"vault":"The address of the deployed Vault."}},"isVaultAvailable(address)":{"details":"Checks if Vault is available.","returns":{"_0":"The bool flag of vault's availability."}},"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."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"deployVault(string,(address,string,string,address,address),(address,address,uint256))":{"notice":"It's required to send at least 12 HBAR for token creation and associations."}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc4626/factory/VaultFactory.sol":"VaultFactory"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/FeeConfiguration.sol":{"keccak256":"0xd576dc5a2f8d782ff3311e6207641c78ea68f68d8cf0c8ce9c06571316e559a7","urls":["bzz-raw://084d049afbfe5d85e397e6f3c118edafe57db19540c6462ea9a0ac2cc99c7f69","dweb:/ipfs/QmXrsuHjQGJRCc7e5HodYLgmb5HKMfC1xPSL7ncKSTHvak"],"license":"MIT"},"contracts/common/hedera/IHRC.sol":{"keccak256":"0xa5e623207cec464b0965f98d87db307893dd22d5f46654923e36141bdcb93657","urls":["bzz-raw://f3da162916df8236e8c84fa7a0e35757e7c6b3e6af93e98bebe23a03177a0fa9","dweb:/ipfs/Qmb8ZbsGQqbaqpZEhACfuV1FfTDZYKrjbyzUDamYN5gD1c"],"license":"Apache-2.0"},"contracts/common/safe-HTS/HederaResponseCodes.sol":{"keccak256":"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324","urls":["bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca","dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G"],"license":"Apache-2.0"},"contracts/common/safe-HTS/IHederaTokenService.sol":{"keccak256":"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735","urls":["bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786","dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W"],"license":"Apache-2.0"},"contracts/common/safe-HTS/SafeHTS.sol":{"keccak256":"0xbdda518034e1c9414f44f3e0bb003d627fae591fda2f1633c0d307776f8c4b10","urls":["bzz-raw://f06dd8866ea3e14a555865cb26b1dd45685c2fc29e1a0abbdaba4e8cf1a0aabe","dweb:/ipfs/QmNXSH9c4bAPdg1UZC2NYxfDpujMervnJw2kBdmVdr9YD7"],"license":"Apache-2.0"},"contracts/erc4626/ERC20.sol":{"keccak256":"0x33fe85bf9c3a26cc53c74f425a248df6664a2c85c7b872ce9567a8b785619879","urls":["bzz-raw://b42e32a0a88263829f727e8cc5efae644c89db3ad3900daad3918aa75bea756f","dweb:/ipfs/QmQC7KSYBVuNnojtMrJ99rcSsfBhBAK5wSjuTVjANxLvCB"],"license":"AGPL-3.0-only"},"contracts/erc4626/TokenBalancer.sol":{"keccak256":"0x0d9b336e2a4d5120571e4f6b92512ea364980664cddda180fadc93991b9a5f25","urls":["bzz-raw://eb414c1eb9d58392ef05ea0ee6545e858aed7c6b8f28cd177db76e6869ac1132","dweb:/ipfs/Qmc6y1DcHNLBhQdvy4DGcedrMChj6JSMXWYM9a8UhuqyYt"],"license":"MIT"},"contracts/erc4626/Vault.sol":{"keccak256":"0x3f88acb7a128213804d8634e1aee5c9e44ed801cda46d0e8bca4cbfe13e4ce50","urls":["bzz-raw://ba50dcb69a2de3520d1b89a67c7be26b959e8061c36abd42c9ce8395904febbd","dweb:/ipfs/QmZVFZDaLDiwKwrXQRi2PuF6W3cUPEywbbF8zCBoFmGAU6"],"license":"MIT"},"contracts/erc4626/factory/IOwnable.sol":{"keccak256":"0x2c53b9e793371e79122b6f0113e623c0c910ad687f0627d3c9a44076cbc7e845","urls":["bzz-raw://2b323ced23d527f19241fa7a33f83138a808acbf10ace0e2a3fdf555d08a72b8","dweb:/ipfs/QmRT7JM2PHFoLwo7JhQzp79VWujpQE2VRmbgAtcF5XtRuG"],"license":"MIT"},"contracts/erc4626/factory/IVaultFactory.sol":{"keccak256":"0xd3651257845b7bc2e3c6c123daf01fdab212dfcee95265dd34b00ae466c5f3d9","urls":["bzz-raw://29dfdeb56a2cfc78fb15d9afd3fd6094763e9d10e86d55e73ac2106b5457f807","dweb:/ipfs/QmUj1LHyTobZeEZJoV8aWaQaPh5v2s7DDmeovyyxpCxdLi"],"license":"MIT"},"contracts/erc4626/factory/VaultFactory.sol":{"keccak256":"0x8126767f9a553f262d3d6a71304c10e5a4462c247fdc8b59798c89d791f0b306","urls":["bzz-raw://27f23d5bccc7015cc47f6190aaf48eca1a35af64b33289eeedfce89a1390f3f2","dweb:/ipfs/QmYAqWj6jCLtT9GdehD1rzqjnZdefJRoeME7D8TQwsy1gK"],"license":"MIT"},"contracts/erc4626/interfaces/IERC4626.sol":{"keccak256":"0x7935c852530f140c6a6b9c295503a4d3ccf83cb5ac5c5f1615e2d7248690e1b3","urls":["bzz-raw://2b26de597cefe1da676035b5f64766fdb7628355bddb14c67ee55b910f31419f","dweb:/ipfs/QmUfmGqb4rP17aTeQ1uwZrHbe9jBJ8amCEhdpBoFN2gzRk"],"license":"AGPL-3.0-only"},"contracts/erc4626/interfaces/ISaucerSwap.sol":{"keccak256":"0xa7bb2678e1375e9973578dbdc07d82bc838d360256bb974e1382ed60fc3be3c9","urls":["bzz-raw://94f426b7f3c149e2d7f25a1734f877494ab15a55fd641b84d9a88def7705a761","dweb:/ipfs/QmZa5XUCWyFkeaDBcFZ6czUaaKmdwahVeL7Z3ssxopfDC2"],"license":"MIT"},"contracts/erc4626/libraries/FixedPointMathLib.sol":{"keccak256":"0x2958e993700b05ee4c2d92e7a90939c97324c1466512a252085f461d154a4ab9","urls":["bzz-raw://774aa54a350733f7e48bfd7271fd529514d4e89c34ee59e05f896bccdc870ce9","dweb:/ipfs/QmWJ1zAHM3cCtVo4VmxZA7S7xuDbcvS3fkqTJY5zrkuGEJ"],"license":"AGPL-3.0-only"},"contracts/erc4626/libraries/SafeTransferLib.sol":{"keccak256":"0x97357325a0f635274a84341d6c3f8b7a9003b2aa38976e2f5fcbb7cd9a31d5de","urls":["bzz-raw://275077abf697e5a2ad66e9181e83013f3fdd54dc4d5d752fd6e4c3c878125c6b","dweb:/ipfs/QmdRTBWEUrYGdcbCzA12HYWkJNXrd8XgQgGUtUws2f2HnC"],"license":"AGPL-3.0-only"},"node_modules/@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@pythnetwork/pyth-sdk-solidity/IPyth.sol":{"keccak256":"0xe06dbd61ccf409fffc0a2449eb8bb6c2d245609698c3c6eddad7cd0f3822d215","urls":["bzz-raw://62867dd9f8a439d091da28c4d6cbd6f4d4ec0606291cdea7b70841e37c43e0da","dweb:/ipfs/Qme4kF7yC3k2zxC87k9b6rhEbSjPNWZ5kLZCBdKqk43FbE"],"license":"Apache-2.0"},"node_modules/@pythnetwork/pyth-sdk-solidity/IPythEvents.sol":{"keccak256":"0x7ca8e03315d4516d6833c425a52c43e8cacf2077492074d2d36ae5c17899c9c8","urls":["bzz-raw://ad1c69d157eccb09ce248e1ec021f2e58b61dd36160f5be3973a7bea4a899f64","dweb:/ipfs/QmW1yXsDrMsuQKxtZanSZXpyUW2QwnCKVoCjS5fC3NoSVY"],"license":"Apache-2.0"},"node_modules/@pythnetwork/pyth-sdk-solidity/PythStructs.sol":{"keccak256":"0xade221177dda98ebd194c363f264ceea125bde0e6a7a72f7b54da3ac60316894","urls":["bzz-raw://a404dbbc64183995326c345cae27601d37c783b3d9030c8dc0ab4943fa2bf1da","dweb:/ipfs/QmfNFesQffYisafmJFbKHxVFSD8fY49X1z9f8N7qtfW8AX"],"license":"Apache-2.0"}},"version":1},"id":106} \ No newline at end of file diff --git a/out/VaultToken.sol/VaultToken.json b/out/VaultToken.sol/VaultToken.json new file mode 100644 index 0000000..cb82cf1 --- /dev/null +++ b/out/VaultToken.sol/VaultToken.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60e06040523480156200001157600080fd5b506040518060400160405280600a8152602001692b30bab63a2a37b5b2b760b11b8152506040518060400160405280600381526020016215931560ea1b8152506008826000908162000064919062000258565b50600162000073838262000258565b5060ff81166080524660a05262000089620000a8565b60c05250620000a2915033905064174876e80062000144565b620003ca565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051620000dc919062000324565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b8060026000828254620001589190620003a2565b90915550506001600160a01b0382166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001dc57607f821691505b602082108103620001fd57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000253576000816000526020600020601f850160051c810160208610156200022e5750805b601f850160051c820191505b818110156200024f578281556001016200023a565b5050505b505050565b81516001600160401b03811115620002745762000274620001b1565b6200028c81620002858454620001c7565b8462000203565b602080601f831160018114620002c45760008415620002ab5750858301515b600019600386901b1c1916600185901b1785556200024f565b600085815260208120601f198616915b82811015620002f557888601518255948401946001909101908401620002d4565b5085821015620003145787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200033481620001c7565b600182811680156200034f5760018114620003655762000396565b60ff198416875282151583028701945062000396565b8760005260208060002060005b858110156200038d5781548a82015290840190820162000372565b50505082870194505b50929695505050505050565b80820180821115620003c457634e487b7160e01b600052601160045260246000fd5b92915050565b60805160a05160c051610a7b620003fa6000396000610426015260006103f1015260006101290152610a7b6000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a08231146101655780637ecebe001461018557806395d89b41146101a5578063a9059cbb146101ad578063d505accf146101c0578063dd62ed3e146101d557600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd14610111578063313ce567146101245780633644e5151461015d575b600080fd5b6100c1610200565b6040516100ce91906107b0565b60405180910390f35b6100ea6100e536600461081b565b61028e565b60405190151581526020016100ce565b61010360025481565b6040519081526020016100ce565b6100ea61011f366004610845565b6102fb565b61014b7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016100ce565b6101036103ed565b610103610173366004610881565b60036020526000908152604090205481565b610103610193366004610881565b60056020526000908152604090205481565b6100c1610448565b6100ea6101bb36600461081b565b610455565b6101d36101ce3660046108a3565b6104cd565b005b6101036101e3366004610916565b600460209081526000928352604080842090915290825290205481565b6000805461020d90610949565b80601f016020809104026020016040519081016040528092919081815260200182805461023990610949565b80156102865780601f1061025b57610100808354040283529160200191610286565b820191906000526020600020905b81548152906001019060200180831161026957829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102e99086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526004602090815260408083203384529091528120546000198114610357576103328382610983565b6001600160a01b03861660009081526004602090815260408083203384529091529020555b6001600160a01b0385166000908152600360205260408120805485929061037f908490610983565b90915550506001600160a01b03808516600081815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103da9087815260200190565b60405180910390a3506001949350505050565b60007f000000000000000000000000000000000000000000000000000000000000000046146104235761041e610716565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b6001805461020d90610949565b33600090815260036020526040812080548391908390610476908490610983565b90915550506001600160a01b038316600081815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906102e99086815260200190565b428410156105225760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064015b60405180910390fd5b6000600161052e6103ed565b6001600160a01b038a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa15801561063a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906106705750876001600160a01b0316816001600160a01b0316145b6106ad5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610519565b6001600160a01b0390811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600060405161074891906109a4565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60006020808352835180602085015260005b818110156107de578581018301518582016040015282016107c2565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461081657600080fd5b919050565b6000806040838503121561082e57600080fd5b610837836107ff565b946020939093013593505050565b60008060006060848603121561085a57600080fd5b610863846107ff565b9250610871602085016107ff565b9150604084013590509250925092565b60006020828403121561089357600080fd5b61089c826107ff565b9392505050565b600080600080600080600060e0888a0312156108be57600080fd5b6108c7886107ff565b96506108d5602089016107ff565b95506040880135945060608801359350608088013560ff811681146108f957600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561092957600080fd5b610932836107ff565b9150610940602084016107ff565b90509250929050565b600181811c9082168061095d57607f821691505b60208210810361097d57634e487b7160e01b600052602260045260246000fd5b50919050565b818103818111156102f557634e487b7160e01b600052601160045260246000fd5b60008083548160018260011c915060018316806109c257607f831692505b602080841082036109e157634e487b7160e01b86526022600452602486fd5b8180156109f55760018114610a0a57610a37565b60ff1986168952841515850289019650610a37565b60008a81526020902060005b86811015610a2f5781548b820152908501908301610a16565b505084890196505b50949897505050505050505056fea26469706673582212207fd6dd11245815e868a5b2763fa58f56a700c61afd5a69924ac0ecbbdadf847964736f6c63430008180033","sourceMap":"98:131:103:-:0;;;133:94;;;;;;;;;;1980:262:99;;;;;;;;;;;;;-1:-1:-1;;;1980:262:99;;;;;;;;;;;;;;;;-1:-1:-1;;;1980:262:99;;;174:1:103;2070:5:99;2063:4;:12;;;;;;:::i;:::-;-1:-1:-1;2085:6:99;:16;2094:7;2085:6;:16;:::i;:::-;-1:-1:-1;2111:20:99;;;;;2161:13;2142:32;;2211:24;:22;:24::i;:::-;2184:51;;-1:-1:-1;187:33:103::1;::::0;-1:-1:-1;193:10:103::1;::::0;-1:-1:-1;205:14:103::1;187:5;:33::i;:::-;98:131:::0;;5449:446:99;5514:7;5611:95;5744:4;5728:22;;;;;;:::i;:::-;;;;;;;;;;5579:295;;;3835:25:165;;;;3876:18;;3869:34;;;;5772:14:99;3919:18:165;;;3912:34;5808:13:99;3962:18:165;;;3955:34;5851:4:99;4005:19:165;;;3998:61;3807:19;;5579:295:99;;;;;;;;;;;;5552:336;;;;;;5533:355;;5449:446;:::o;6089:325::-;6174:6;6159:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;6326:13:99;;;;;;:9;:13;;;;;;;;:23;;;;;;6375:32;4443:25:165;;;6375:32:99;;4416:18:165;6375:32:99;;;;;;;6089:325;;:::o;14:127:165:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:543::-;759:2;754:3;751:11;748:446;;;795:1;819:5;816:1;809:16;863:4;860:1;850:18;933:2;921:10;917:19;914:1;910:27;904:4;900:38;969:4;957:10;954:20;951:47;;;-1:-1:-1;992:4:165;951:47;1047:2;1042:3;1038:12;1035:1;1031:20;1025:4;1021:31;1011:41;;1102:82;1120:2;1113:5;1110:13;1102:82;;;1165:17;;;1146:1;1135:13;1102:82;;;1106:3;;;748:446;657:543;;;:::o;1376:1345::-;1496:10;;-1:-1:-1;;;;;1518:30:165;;1515:56;;;1551:18;;:::i;:::-;1580:97;1670:6;1630:38;1662:4;1656:11;1630:38;:::i;:::-;1624:4;1580:97;:::i;:::-;1732:4;;1789:2;1778:14;;1806:1;1801:663;;;;2508:1;2525:6;2522:89;;;-1:-1:-1;2577:19:165;;;2571:26;2522:89;-1:-1:-1;;1333:1:165;1329:11;;;1325:24;1321:29;1311:40;1357:1;1353:11;;;1308:57;2624:81;;1771:944;;1801:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1837:20:165;;;1955:236;1969:7;1966:1;1963:14;1955:236;;;2058:19;;;2052:26;2037:42;;2150:27;;;;2118:1;2106:14;;;;1985:19;;1955:236;;;1959:3;2219:6;2210:7;2207:19;2204:201;;;2280:19;;;2274:26;-1:-1:-1;;2363:1:165;2359:14;;;2375:3;2355:24;2351:37;2347:42;2332:58;2317:74;;2204:201;-1:-1:-1;;;;;2451:1:165;2435:14;;;2431:22;2418:36;;-1:-1:-1;1376:1345:165:o;2726:845::-;2856:3;2885:1;2918:6;2912:13;2948:36;2974:9;2948:36;:::i;:::-;3003:1;3020:17;;;3046:133;;;;3193:1;3188:358;;;;3013:533;;3046:133;-1:-1:-1;;3079:24:165;;3067:37;;3152:14;;3145:22;3133:35;;3124:45;;;-1:-1:-1;3046:133:165;;3188:358;3219:6;3216:1;3209:17;3249:4;3294;3291:1;3281:18;3321:1;3335:165;3349:6;3346:1;3343:13;3335:165;;;3427:14;;3414:11;;;3407:35;3470:16;;;;3364:10;;3335:165;;;3339:3;;;3529:6;3524:3;3520:16;3513:23;;3013:533;-1:-1:-1;3562:3:165;;2726:845;-1:-1:-1;;;;;;2726:845:165:o;4070:222::-;4135:9;;;4156:10;;;4153:133;;;4208:10;4203:3;4199:20;4196:1;4189:31;4243:4;4240:1;4233:15;4271:4;4268:1;4261:15;4153:133;4070:222;;;;:::o;4297:177::-;98:131:103;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a08231146101655780637ecebe001461018557806395d89b41146101a5578063a9059cbb146101ad578063d505accf146101c0578063dd62ed3e146101d557600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd14610111578063313ce567146101245780633644e5151461015d575b600080fd5b6100c1610200565b6040516100ce91906107b0565b60405180910390f35b6100ea6100e536600461081b565b61028e565b60405190151581526020016100ce565b61010360025481565b6040519081526020016100ce565b6100ea61011f366004610845565b6102fb565b61014b7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016100ce565b6101036103ed565b610103610173366004610881565b60036020526000908152604090205481565b610103610193366004610881565b60056020526000908152604090205481565b6100c1610448565b6100ea6101bb36600461081b565b610455565b6101d36101ce3660046108a3565b6104cd565b005b6101036101e3366004610916565b600460209081526000928352604080842090915290825290205481565b6000805461020d90610949565b80601f016020809104026020016040519081016040528092919081815260200182805461023990610949565b80156102865780601f1061025b57610100808354040283529160200191610286565b820191906000526020600020905b81548152906001019060200180831161026957829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102e99086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526004602090815260408083203384529091528120546000198114610357576103328382610983565b6001600160a01b03861660009081526004602090815260408083203384529091529020555b6001600160a01b0385166000908152600360205260408120805485929061037f908490610983565b90915550506001600160a01b03808516600081815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103da9087815260200190565b60405180910390a3506001949350505050565b60007f000000000000000000000000000000000000000000000000000000000000000046146104235761041e610716565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b6001805461020d90610949565b33600090815260036020526040812080548391908390610476908490610983565b90915550506001600160a01b038316600081815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906102e99086815260200190565b428410156105225760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064015b60405180910390fd5b6000600161052e6103ed565b6001600160a01b038a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa15801561063a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906106705750876001600160a01b0316816001600160a01b0316145b6106ad5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610519565b6001600160a01b0390811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600060405161074891906109a4565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60006020808352835180602085015260005b818110156107de578581018301518582016040015282016107c2565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461081657600080fd5b919050565b6000806040838503121561082e57600080fd5b610837836107ff565b946020939093013593505050565b60008060006060848603121561085a57600080fd5b610863846107ff565b9250610871602085016107ff565b9150604084013590509250925092565b60006020828403121561089357600080fd5b61089c826107ff565b9392505050565b600080600080600080600060e0888a0312156108be57600080fd5b6108c7886107ff565b96506108d5602089016107ff565b95506040880135945060608801359350608088013560ff811681146108f957600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561092957600080fd5b610932836107ff565b9150610940602084016107ff565b90509250929050565b600181811c9082168061095d57607f821691505b60208210810361097d57634e487b7160e01b600052602260045260246000fd5b50919050565b818103818111156102f557634e487b7160e01b600052601160045260246000fd5b60008083548160018260011c915060018316806109c257607f831692505b602080841082036109e157634e487b7160e01b86526022600452602486fd5b8180156109f55760018114610a0a57610a37565b60ff1986168952841515850289019650610a37565b60008a81526020902060005b86811015610a2f5781548b820152908501908301610a16565b505084890196505b50949897505050505050505056fea26469706673582212207fd6dd11245815e868a5b2763fa58f56a700c61afd5a69924ac0ecbbdadf847964736f6c63430008180033","sourceMap":"98:131:103:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1030:18:99;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2430:211;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:165;;1162:22;1144:41;;1132:2;1117:18;2430:211:99;1004:187:165;1303:26:99;;;;;;;;;1342:25:165;;;1330:2;1315:18;1303:26:99;1196:177:165;3026:562:99;;;;;;:::i;:::-;;:::i;1082:31::-;;;;;;;;1883:4:165;1871:17;;;1853:36;;1841:2;1826:18;1082:31:99;1711:184:165;5266:177:99;;;:::i;1336:44::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1750:41;;;;;;:::i;:::-;;;;;;;;;;;;;;1055:20;;;:::i;2647:373::-;;;;;;:::i;:::-;;:::i;3777:1483::-;;;;;;:::i;:::-;;:::i;:::-;;1387:64;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1030:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2430:211::-;2530:10;2504:4;2520:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2520:30:99;;;;;;;;;;:39;;;2575:37;2504:4;;2520:30;;2575:37;;;;2553:6;1342:25:165;;1330:2;1315:18;;1196:177;2575:37:99;;;;;;;;-1:-1:-1;2630:4:99;2430:211;;;;;:::o;3026:562::-;-1:-1:-1;;;;;3148:15:99;;3114:4;3148:15;;;:9;:15;;;;;;;;3164:10;3148:27;;;;;;;;-1:-1:-1;;3226:28:99;;3222:80;;3286:16;3296:6;3286:7;:16;:::i;:::-;-1:-1:-1;;;;;3256:15:99;;;;;;:9;:15;;;;;;;;3272:10;3256:27;;;;;;;:46;3222:80;-1:-1:-1;;;;;3313:15:99;;;;;;:9;:15;;;;;:25;;3332:6;;3313:15;:25;;3332:6;;3313:25;:::i;:::-;;;;-1:-1:-1;;;;;;;3484:13:99;;;;;;;:9;:13;;;;;;;:23;;;;;;3533:26;3484:13;;3533:26;;;;;;;3501:6;1342:25:165;;1330:2;1315:18;;1196:177;3533:26:99;;;;;;;;-1:-1:-1;3577:4:99;;3026:562;-1:-1:-1;;;;3026:562:99:o;5266:177::-;5323:7;5366:16;5349:13;:33;:87;;5412:24;:22;:24::i;:::-;5342:94;;5266:177;:::o;5349:87::-;-1:-1:-1;5385:24:99;;5266:177::o;1055:20::-;;;;;;;:::i;2647:373::-;2743:10;2717:4;2733:21;;;:9;:21;;;;;:31;;2758:6;;2733:21;2717:4;;2733:31;;2758:6;;2733:31;:::i;:::-;;;;-1:-1:-1;;;;;;;2910:13:99;;;;;;:9;:13;;;;;;;:23;;;;;;2959:32;2968:10;;2959:32;;;;2927:6;1342:25:165;;1330:2;1315:18;;1196:177;3777:1483:99;3996:15;3984:8;:27;;3976:63;;;;-1:-1:-1;;;3976:63:99;;4053:2:165;3976:63:99;;;4035:21:165;4092:2;4072:18;;;4065:30;4131:25;4111:18;;;4104:53;4174:18;;3976:63:99;;;;;;;;;4204:24;4231:805;4367:18;:16;:18::i;:::-;-1:-1:-1;;;;;4812:13:99;;;;;;;:6;:13;;;;;;;;;:15;;;;;;;;4450:449;;4494:165;4450:449;;;4490:25:165;4569:18;;;4562:43;;;;4641:15;;;4621:18;;;4614:43;4673:18;;;4666:34;;;4716:19;;;4709:35;;;;4760:19;;;;4753:35;;;4450:449:99;;;;;;;;;;4462:19:165;;;4450:449:99;;;4411:514;;;;;;;;-1:-1:-1;;;4289:658:99;;;5057:27:165;5100:11;;;5093:27;;;;5136:12;;;5129:28;;;;5173:12;;4289:658:99;;;-1:-1:-1;;4289:658:99;;;;;;;;;4258:707;;4289:658;4258:707;;;;4231:805;;;;;;;;;5423:25:165;5496:4;5484:17;;5464:18;;;5457:45;5518:18;;;5511:34;;;5561:18;;;5554:34;;;5395:19;;4231:805:99;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4231:805:99;;-1:-1:-1;;4231:805:99;;;-1:-1:-1;;;;;;;5059:30:99;;;;;;:59;;;5113:5;-1:-1:-1;;;;;5093:25:99;:16;-1:-1:-1;;;;;5093:25:99;;5059:59;5051:86;;;;-1:-1:-1;;;5051:86:99;;5801:2:165;5051:86:99;;;5783:21:165;5840:2;5820:18;;;5813:30;-1:-1:-1;;;5859:18:165;;;5852:44;5913:18;;5051:86:99;5599:338:165;5051:86:99;-1:-1:-1;;;;;5152:27:99;;;;;;;:9;:27;;;;;;;;:36;;;;;;;;;;;;;:44;;;5222:31;1342:25:165;;;5152:36:99;;5222:31;;;;;1315:18:165;5222:31:99;;;;;;;3777:1483;;;;;;;:::o;5449:446::-;5514:7;5611:95;5744:4;5728:22;;;;;;:::i;:::-;;;;;;;;;;5579:295;;;7466:25:165;;;;7507:18;;7500:34;;;;5772:14:99;7550:18:165;;;7543:34;5808:13:99;7593:18:165;;;7586:34;5851:4:99;7636:19:165;;;7629:61;7438:19;;5579:295:99;;;;;;;;;;;;5552:336;;;;;;5533:355;;5449:446;:::o;14:548:165:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:165;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:165:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;2082:186::-;2141:6;2194:2;2182:9;2173:7;2169:23;2165:32;2162:52;;;2210:1;2207;2200:12;2162:52;2233:29;2252:9;2233:29;:::i;:::-;2223:39;2082:186;-1:-1:-1;;;2082:186:165:o;2273:693::-;2384:6;2392;2400;2408;2416;2424;2432;2485:3;2473:9;2464:7;2460:23;2456:33;2453:53;;;2502:1;2499;2492:12;2453:53;2525:29;2544:9;2525:29;:::i;:::-;2515:39;;2573:38;2607:2;2596:9;2592:18;2573:38;:::i;:::-;2563:48;;2658:2;2647:9;2643:18;2630:32;2620:42;;2709:2;2698:9;2694:18;2681:32;2671:42;;2763:3;2752:9;2748:19;2735:33;2808:4;2801:5;2797:16;2790:5;2787:27;2777:55;;2828:1;2825;2818:12;2777:55;2273:693;;;;-1:-1:-1;2273:693:165;;;;2851:5;2903:3;2888:19;;2875:33;;-1:-1:-1;2955:3:165;2940:19;;;2927:33;;2273:693;-1:-1:-1;;2273:693:165:o;2971:260::-;3039:6;3047;3100:2;3088:9;3079:7;3075:23;3071:32;3068:52;;;3116:1;3113;3106:12;3068:52;3139:29;3158:9;3139:29;:::i;:::-;3129:39;;3187:38;3221:2;3210:9;3206:18;3187:38;:::i;:::-;3177:48;;2971:260;;;;;:::o;3236:380::-;3315:1;3311:12;;;;3358;;;3379:61;;3433:4;3425:6;3421:17;3411:27;;3379:61;3486:2;3478:6;3475:14;3455:18;3452:38;3449:161;;3532:10;3527:3;3523:20;3520:1;3513:31;3567:4;3564:1;3557:15;3595:4;3592:1;3585:15;3449:161;;3236:380;;;:::o;3621:225::-;3688:9;;;3709:11;;;3706:134;;;3762:10;3757:3;3753:20;3750:1;3743:31;3797:4;3794:1;3787:15;3825:4;3822:1;3815:15;6071:1131;6201:3;6230:1;6263:6;6257:13;6293:3;6315:1;6342:9;6339:1;6335:17;6325:27;;6402:1;6391:9;6387:17;6423:18;6413:61;;6467:4;6459:6;6455:17;6445:27;;6413:61;6493:2;6541;6533:6;6530:14;6510:18;6507:38;6504:165;;-1:-1:-1;;;6568:33:165;;6624:4;6621:1;6614:15;6654:4;6575:3;6642:17;6504:165;6685:18;6712:133;;;;6859:1;6854:323;;;;6678:499;;6712:133;-1:-1:-1;;6745:24:165;;6733:37;;6818:14;;6811:22;6799:35;;6790:45;;;-1:-1:-1;6712:133:165;;6854:323;6018:1;6011:14;;;6055:4;6042:18;;6952:1;6966:165;6980:6;6977:1;6974:13;6966:165;;;7058:14;;7045:11;;;7038:35;7101:16;;;;6995:10;;6966:165;;;6970:3;;7160:6;7155:3;7151:16;7144:23;;6678:499;-1:-1:-1;7193:3:165;;6071:1131;-1:-1:-1;;;;;;;;6071:1131:165:o","linkReferences":{},"immutableReferences":{"39092":[{"start":297,"length":32}],"39106":[{"start":1009,"length":32}],"39108":[{"start":1062,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"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\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"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\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/erc4626/VaultToken.sol\":\"VaultToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/erc4626/ERC20.sol\":{\"keccak256\":\"0x33fe85bf9c3a26cc53c74f425a248df6664a2c85c7b872ce9567a8b785619879\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://b42e32a0a88263829f727e8cc5efae644c89db3ad3900daad3918aa75bea756f\",\"dweb:/ipfs/QmQC7KSYBVuNnojtMrJ99rcSsfBhBAK5wSjuTVjANxLvCB\"]},\"contracts/erc4626/VaultToken.sol\":{\"keccak256\":\"0xb51989bc031731de2e910e7df3e07c5c17ac677ffdf9088ac7bb007be3f23e87\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f61e6921c5da112572190414541a05cdc56753c9cdc214778c5637bc29b625dc\",\"dweb:/ipfs/QmQebM5ZoenFKoQEGhNSE9JgVWvcGjs6Wen5HAPc2GUhgS\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/erc4626/VaultToken.sol":"VaultToken"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/erc4626/ERC20.sol":{"keccak256":"0x33fe85bf9c3a26cc53c74f425a248df6664a2c85c7b872ce9567a8b785619879","urls":["bzz-raw://b42e32a0a88263829f727e8cc5efae644c89db3ad3900daad3918aa75bea756f","dweb:/ipfs/QmQC7KSYBVuNnojtMrJ99rcSsfBhBAK5wSjuTVjANxLvCB"],"license":"AGPL-3.0-only"},"contracts/erc4626/VaultToken.sol":{"keccak256":"0xb51989bc031731de2e910e7df3e07c5c17ac677ffdf9088ac7bb007be3f23e87","urls":["bzz-raw://f61e6921c5da112572190414541a05cdc56753c9cdc214778c5637bc29b625dc","dweb:/ipfs/QmQebM5ZoenFKoQEGhNSE9JgVWvcGjs6Wen5HAPc2GUhgS"],"license":"GPL-3.0"}},"version":1},"id":103} \ No newline at end of file diff --git a/out/Verifier.sol/Verifier.json b/out/Verifier.sol/Verifier.json new file mode 100644 index 0000000..c5174a2 --- /dev/null +++ b/out/Verifier.sol/Verifier.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addClaimTopic","inputs":[{"name":"claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTrustedIssuer","inputs":[{"name":"trustedIssuer","type":"address","internalType":"contract IClaimIssuer"},{"name":"claimTopics","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimTopicsToTrustedIssuers","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"contract IClaimIssuer"}],"stateMutability":"view"},{"type":"function","name":"getTrustedIssuerClaimTopics","inputs":[{"name":"trustedIssuer","type":"address","internalType":"contract IClaimIssuer"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getTrustedIssuers","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"contract IClaimIssuer[]"}],"stateMutability":"view"},{"type":"function","name":"getTrustedIssuersForClaimTopic","inputs":[{"name":"claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"contract IClaimIssuer[]"}],"stateMutability":"view"},{"type":"function","name":"hasClaimTopic","inputs":[{"name":"issuer","type":"address","internalType":"address"},{"name":"claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isClaimTopicRequired","inputs":[{"name":"claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTrustedIssuer","inputs":[{"name":"issuer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeClaimTopic","inputs":[{"name":"claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTrustedIssuer","inputs":[{"name":"trustedIssuer","type":"address","internalType":"contract IClaimIssuer"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requiredClaimTopics","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"trustedIssuerClaimTopics","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"trustedIssuers","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"contract IClaimIssuer"}],"stateMutability":"view"},{"type":"function","name":"updateIssuerClaimTopics","inputs":[{"name":"trustedIssuer","type":"address","internalType":"contract IClaimIssuer"},{"name":"newClaimTopics","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verify","inputs":[{"name":"identity","type":"address","internalType":"address"}],"outputs":[{"name":"isVerified","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"ClaimTopicAdded","inputs":[{"name":"claimTopic","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimTopicRemoved","inputs":[{"name":"claimTopic","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimTopicsUpdated","inputs":[{"name":"trustedIssuer","type":"address","indexed":true,"internalType":"contract IClaimIssuer"},{"name":"claimTopics","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TrustedIssuerAdded","inputs":[{"name":"trustedIssuer","type":"address","indexed":true,"internalType":"contract IClaimIssuer"},{"name":"claimTopics","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TrustedIssuerRemoved","inputs":[{"name":"trustedIssuer","type":"address","indexed":true,"internalType":"contract IClaimIssuer"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611d01806100a56000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063b5fa8693116100ad578063c7b2255111610071578063c7b2255114610276578063c801dd4014610289578063d9dd24c51461029c578063ef2ed1a4146102a4578063f2fde38b146102b757600080fd5b8063b5fa8693146101fc578063b93d28eb1461021d578063ba64c34114610230578063be36359f14610243578063c28fb2781461025657600080fd5b806363a9c3d7116100f457806363a9c3d714610196578063715018a6146101a95780638da5cb5b146101b157806393e9f801146101d65780639f63ea98146101e957600080fd5b806304bc7e8414610126578063082978461461013b57806334a899871461014e57806352c111d114610176575b600080fd5b610139610134366004611730565b6102ca565b005b6101396101493660046117b8565b610649565b61016161015c3660046117d1565b61072f565b60405190151581526020015b60405180910390f35b6101896101843660046117b8565b6107e4565b60405161016d91906117fd565b6101616101a436600461184a565b610850565b610139610c26565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161016d565b6101be6101e436600461186e565b610c3a565b6101396101f7366004611730565b610c72565b61020f61020a3660046117b8565b610ef1565b60405190815260200161016d565b61013961022b36600461184a565b610f12565b61020f61023e3660046117d1565b611294565b6101616102513660046117b8565b6112c5565b61026961026436600461184a565b611315565b60405161016d9190611890565b6101396102843660046117b8565b6113e7565b6101be6102973660046117b8565b61152c565b610189611556565b6101616102b236600461184a565b6115b8565b6101396102c536600461184a565b6115e6565b6102d2611624565b6001600160a01b0383166103015760405162461bcd60e51b81526004016102f8906118c8565b60405180910390fd5b6001600160a01b038316600090815260036020526040812054900361035f5760405162461bcd60e51b81526020600482015260146024820152732727aa1030903a393ab9ba32b21034b9b9bab2b960611b60448201526064016102f8565b600f8111156103805760405162461bcd60e51b81526004016102f8906118ff565b806103cd5760405162461bcd60e51b815260206004820152601c60248201527f636c61696d20746f706963732063616e6e6f7420626520656d7074790000000060448201526064016102f8565b60005b6001600160a01b03841660009081526003602052604090205481101561056c576001600160a01b038416600090815260036020526040812080548390811061041a5761041a611944565b600091825260208083209091015480835260049091526040822054909250905b8181101561056157600083815260046020526040902080546001600160a01b03891691908390811061046e5761046e611944565b6000918252602090912001546001600160a01b0316036105595760008381526004602052604090206104a1600184611970565b815481106104b1576104b1611944565b60009182526020808320909101548583526004909152604090912080546001600160a01b0390921691839081106104ea576104ea611944565b600091825260208083209190910180546001600160a01b0319166001600160a01b03949094169390931790925584815260049091526040902080548061053257610532611983565b600082815260209020810160001990810180546001600160a01b0319169055019055610561565b60010161043a565b5050506001016103d0565b506001600160a01b03831660009081526003602052604090206105909083836116a1565b5060005b8181101561060057600460008484848181106105b2576105b2611944565b602090810292909201358352508181019290925260400160009081208054600180820183559183529290912090910180546001600160a01b0319166001600160a01b03871617905501610594565b50826001600160a01b03167fec753cfc52044f61676f18a11e500093a9f2b1cd5e4942bc476f2b0438159bcf838360405161063c929190611999565b60405180910390a2505050565b610651611624565b60015460005b8181101561072a57826001828154811061067357610673611944565b90600052602060002001540361072257600161068f8184611970565b8154811061069f5761069f611944565b9060005260206000200154600182815481106106bd576106bd611944565b60009182526020909120015560018054806106da576106da611983565b60019003818190600052602060002001600090559055827f0b1381093c776453c1bbe54fd68be1b235c65db61d099cb50d194b2991e0eec560405160405180910390a2505050565b600101610657565b505050565b6001600160a01b03821660009081526003602090815260408083208054825181850281018501909352808352849383018282801561078c57602002820191906000526020600020905b815481526020019060010190808311610778575b505083519394506000925050505b818110156107d657848382815181106107b5576107b5611944565b6020026020010151036107ce57600193505050506107de565b60010161079a565b506000925050505b92915050565b60008181526004602090815260409182902080548351818402810184019094528084526060939283018282801561084457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610826575b50505050509050919050565b600154600090810361086457506001919050565b600080600060608060005b600154811015610c18576000306001600160a01b03166352c111d16001848154811061089d5761089d611944565b90600052602060002001546040518263ffffffff1660e01b81526004016108c691815260200190565b600060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261090b9190810190611a19565b905080516000036109255750600098975050505050505050565b6000815167ffffffffffffffff811115610941576109416119d2565b60405190808252806020026020018201604052801561096a578160200160208202803683370190505b50905060005b8251811015610a115782818151811061098b5761098b611944565b6020026020010151600185815481106109a6576109a6611944565b90600052602060002001546040516020016109d69291906001600160a01b03929092168252602082015260400190565b604051602081830303815290604052805190602001208282815181106109fe576109fe611944565b6020908102919091010152600101610970565b5060005b8151811015610c0d578a6001600160a01b031663c9100bcb838381518110610a3f57610a3f611944565b60200260200101516040518263ffffffff1660e01b8152600401610a6591815260200190565b600060405180830381865afa158015610a82573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aaa9190810190611b5e565b5060018054959e50939c50919a50985096509085908110610acd57610acd611944565b90600052602060002001548903610bd657866001600160a01b031663c0969a6e8c60018781548110610b0157610b01611944565b906000526020600020015489896040518563ffffffff1660e01b8152600401610b2d9493929190611c4c565b602060405180830381865afa925050508015610b66575060408051601f3d908101601f19168201909252610b6391810190611c90565b60015b610b945760018251610b789190611970565b8103610b8f575060009a9950505050505050505050565b610bfb565b8015610b9f57825191505b80158015610bb9575060018351610bb69190611970565b82145b15610bd0575060009b9a5050505050505050505050565b50610bfb565b60018251610be49190611970565b8103610bfb575060009a9950505050505050505050565b80610c0581611cb2565b915050610a15565b50505060010161086f565b506001979650505050505050565b610c2e611624565b610c386000611651565b565b60046020528160005260406000208181548110610c5657600080fd5b6000918252602090912001546001600160a01b03169150829050565b610c7a611624565b6001600160a01b038316610ca05760405162461bcd60e51b81526004016102f8906118c8565b6001600160a01b03831660009081526003602052604090205415610d065760405162461bcd60e51b815260206004820152601d60248201527f747275737465642049737375657220616c72656164792065786973747300000060448201526064016102f8565b80610d5f5760405162461bcd60e51b8152602060048201526024808201527f7472757374656420636c61696d20746f706963732063616e6e6f7420626520656044820152636d70747960e01b60648201526084016102f8565b600f811115610d805760405162461bcd60e51b81526004016102f8906118ff565b600254603211610de35760405162461bcd60e51b815260206004820152602860248201527f63616e6e6f742068617665206d6f7265207468616e2035302074727573746564604482015267206973737565727360c01b60648201526084016102f8565b60028054600181019091557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0385169081179091556000908152600360205260409020610e459083836116a1565b5060005b81811015610eb55760046000848484818110610e6757610e67611944565b602090810292909201358352508181019290925260400160009081208054600180820183559183529290912090910180546001600160a01b0319166001600160a01b03871617905501610e49565b50826001600160a01b03167ffedc33fd34859594822c0ff6f3f4f9fc279cc6d5cae53068f706a088e4500872838360405161063c929190611999565b60018181548110610f0157600080fd5b600091825260209091200154905081565b610f1a611624565b6001600160a01b038116610f405760405162461bcd60e51b81526004016102f8906118c8565b6001600160a01b0381166000908152600360205260408120549003610f9e5760405162461bcd60e51b81526020600482015260146024820152732727aa1030903a393ab9ba32b21034b9b9bab2b960611b60448201526064016102f8565b60025460005b8181101561109a57826001600160a01b031660028281548110610fc957610fc9611944565b6000918252602090912001546001600160a01b031603611092576002610ff0600184611970565b8154811061100057611000611944565b600091825260209091200154600280546001600160a01b03909216918390811061102c5761102c611944565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600280548061106b5761106b611983565b600082815260209020810160001990810180546001600160a01b031916905501905561109a565b600101610fa4565b5060005b6001600160a01b03831660009081526003602052604090205481101561123a576001600160a01b03831660009081526003602052604081208054839081106110e8576110e8611944565b600091825260208083209091015480835260049091526040822054909250905b8181101561122f57600083815260046020526040902080546001600160a01b03881691908390811061113c5761113c611944565b6000918252602090912001546001600160a01b03160361122757600083815260046020526040902061116f600184611970565b8154811061117f5761117f611944565b60009182526020808320909101548583526004909152604090912080546001600160a01b0390921691839081106111b8576111b8611944565b600091825260208083209190910180546001600160a01b0319166001600160a01b03949094169390931790925584815260049091526040902080548061120057611200611983565b600082815260209020810160001990810180546001600160a01b031916905501905561122f565b600101611108565b50505060010161109e565b506001600160a01b038216600090815260036020526040812061125c916116ec565b6040516001600160a01b038316907f2214ded40113cc3fb63fc206cafee88270b0a903dac7245d54efdde30ebb032190600090a25050565b600360205281600052604060002081815481106112b057600080fd5b90600052602060002001600091509150505481565b600154600090815b8181101561130b5783600182815481106112e9576112e9611944565b906000526020600020015403611303575060019392505050565b6001016112cd565b5060009392505050565b6001600160a01b0381166000908152600360205260408120546060910361137e5760405162461bcd60e51b815260206004820152601c60248201527f747275737465642049737375657220646f65736e27742065786973740000000060448201526064016102f8565b6001600160a01b0382166000908152600360209081526040918290208054835181840281018401909452808452909183018282801561084457602002820191906000526020600020905b8154815260200190600101908083116113c85750505050509050919050565b6113ef611624565b600154600f811061144d5760405162461bcd60e51b815260206004820152602260248201527f63616e6e6f742072657175697265206d6f7265207468616e20313520746f7069604482015261637360f01b60648201526084016102f8565b60005b818110156114cc57826001828154811061146c5761146c611944565b9060005260206000200154036114c45760405162461bcd60e51b815260206004820152601960248201527f636c61696d546f70696320616c7265616479206578697374730000000000000060448201526064016102f8565b600101611450565b5060018054808201825560009182527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60183905560405183917f01c928b7f7ade2949e92366aa9454dbef3a416b731cf6ec786ba9595bbd814d691a25050565b6002818154811061153c57600080fd5b6000918252602090912001546001600160a01b0316905081565b606060028054806020026020016040519081016040528092919081815260200182805480156115ae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611590575b5050505050905090565b6001600160a01b038116600090815260036020526040812054156115de57506001919050565b506000919050565b6115ee611624565b6001600160a01b03811661161857604051631e4fbdf760e01b8152600060048201526024016102f8565b61162181611651565b50565b6000546001600160a01b03163314610c385760405163118cdaa760e01b81523360048201526024016102f8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8280548282559060005260206000209081019282156116dc579160200282015b828111156116dc5782358255916020019190600101906116c1565b506116e8929150611706565b5090565b508054600082559060005260206000209081019061162191905b5b808211156116e85760008155600101611707565b6001600160a01b038116811461162157600080fd5b60008060006040848603121561174557600080fd5b83356117508161171b565b9250602084013567ffffffffffffffff8082111561176d57600080fd5b818601915086601f83011261178157600080fd5b81358181111561179057600080fd5b8760208260051b85010111156117a557600080fd5b6020830194508093505050509250925092565b6000602082840312156117ca57600080fd5b5035919050565b600080604083850312156117e457600080fd5b82356117ef8161171b565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561183e5783516001600160a01b031683529284019291840191600101611819565b50909695505050505050565b60006020828403121561185c57600080fd5b81356118678161171b565b9392505050565b6000806040838503121561188157600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b8181101561183e578351835292840192918401916001016118ac565b6020808252601f908201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604082015260600190565b60208082526025908201527f63616e6e6f742068617665206d6f7265207468616e20313520636c61696d20746040820152646f7069637360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156107de576107de61195a565b634e487b7160e01b600052603160045260246000fd5b6020808252810182905260006001600160fb1b038311156119b957600080fd5b8260051b80856040850137919091016040019392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611a1157611a116119d2565b604052919050565b60006020808385031215611a2c57600080fd5b825167ffffffffffffffff80821115611a4457600080fd5b818501915085601f830112611a5857600080fd5b815181811115611a6a57611a6a6119d2565b8060051b9150611a7b8483016119e8565b8181529183018401918481019088841115611a9557600080fd5b938501935b83851015611abf5784519250611aaf8361171b565b8282529385019390850190611a9a565b98975050505050505050565b60005b83811015611ae6578181015183820152602001611ace565b50506000910152565b600067ffffffffffffffff831115611b0957611b096119d2565b611b1c601f8401601f19166020016119e8565b9050828152838383011115611b3057600080fd5b611867836020830184611acb565b600082601f830112611b4f57600080fd5b61186783835160208501611aef565b60008060008060008060c08789031215611b7757600080fd5b86519550602087015194506040870151611b908161171b565b606088015190945067ffffffffffffffff80821115611bae57600080fd5b611bba8a838b01611b3e565b94506080890151915080821115611bd057600080fd5b611bdc8a838b01611b3e565b935060a0890151915080821115611bf257600080fd5b508701601f81018913611c0457600080fd5b611c1389825160208401611aef565b9150509295509295509295565b60008151808452611c38816020860160208601611acb565b601f01601f19169290920160200192915050565b60018060a01b0385168152836020820152608060408201526000611c736080830185611c20565b8281036060840152611c858185611c20565b979650505050505050565b600060208284031215611ca257600080fd5b8151801515811461186757600080fd5b600060018201611cc457611cc461195a565b506001019056fea26469706673582212203b28da46937b8ef308730e73bffb0bfda12ddb1b3c5f54df22b55abe58d23c5864736f6c63430008180033","sourceMap":"156:11815:128:-:0;;;2624:36;;;;;;;;;-1:-1:-1;2646:10:128;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;160:51:165;133:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;156:11815:128;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:165:-;156:11815:128;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101215760003560e01c8063b5fa8693116100ad578063c7b2255111610071578063c7b2255114610276578063c801dd4014610289578063d9dd24c51461029c578063ef2ed1a4146102a4578063f2fde38b146102b757600080fd5b8063b5fa8693146101fc578063b93d28eb1461021d578063ba64c34114610230578063be36359f14610243578063c28fb2781461025657600080fd5b806363a9c3d7116100f457806363a9c3d714610196578063715018a6146101a95780638da5cb5b146101b157806393e9f801146101d65780639f63ea98146101e957600080fd5b806304bc7e8414610126578063082978461461013b57806334a899871461014e57806352c111d114610176575b600080fd5b610139610134366004611730565b6102ca565b005b6101396101493660046117b8565b610649565b61016161015c3660046117d1565b61072f565b60405190151581526020015b60405180910390f35b6101896101843660046117b8565b6107e4565b60405161016d91906117fd565b6101616101a436600461184a565b610850565b610139610c26565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161016d565b6101be6101e436600461186e565b610c3a565b6101396101f7366004611730565b610c72565b61020f61020a3660046117b8565b610ef1565b60405190815260200161016d565b61013961022b36600461184a565b610f12565b61020f61023e3660046117d1565b611294565b6101616102513660046117b8565b6112c5565b61026961026436600461184a565b611315565b60405161016d9190611890565b6101396102843660046117b8565b6113e7565b6101be6102973660046117b8565b61152c565b610189611556565b6101616102b236600461184a565b6115b8565b6101396102c536600461184a565b6115e6565b6102d2611624565b6001600160a01b0383166103015760405162461bcd60e51b81526004016102f8906118c8565b60405180910390fd5b6001600160a01b038316600090815260036020526040812054900361035f5760405162461bcd60e51b81526020600482015260146024820152732727aa1030903a393ab9ba32b21034b9b9bab2b960611b60448201526064016102f8565b600f8111156103805760405162461bcd60e51b81526004016102f8906118ff565b806103cd5760405162461bcd60e51b815260206004820152601c60248201527f636c61696d20746f706963732063616e6e6f7420626520656d7074790000000060448201526064016102f8565b60005b6001600160a01b03841660009081526003602052604090205481101561056c576001600160a01b038416600090815260036020526040812080548390811061041a5761041a611944565b600091825260208083209091015480835260049091526040822054909250905b8181101561056157600083815260046020526040902080546001600160a01b03891691908390811061046e5761046e611944565b6000918252602090912001546001600160a01b0316036105595760008381526004602052604090206104a1600184611970565b815481106104b1576104b1611944565b60009182526020808320909101548583526004909152604090912080546001600160a01b0390921691839081106104ea576104ea611944565b600091825260208083209190910180546001600160a01b0319166001600160a01b03949094169390931790925584815260049091526040902080548061053257610532611983565b600082815260209020810160001990810180546001600160a01b0319169055019055610561565b60010161043a565b5050506001016103d0565b506001600160a01b03831660009081526003602052604090206105909083836116a1565b5060005b8181101561060057600460008484848181106105b2576105b2611944565b602090810292909201358352508181019290925260400160009081208054600180820183559183529290912090910180546001600160a01b0319166001600160a01b03871617905501610594565b50826001600160a01b03167fec753cfc52044f61676f18a11e500093a9f2b1cd5e4942bc476f2b0438159bcf838360405161063c929190611999565b60405180910390a2505050565b610651611624565b60015460005b8181101561072a57826001828154811061067357610673611944565b90600052602060002001540361072257600161068f8184611970565b8154811061069f5761069f611944565b9060005260206000200154600182815481106106bd576106bd611944565b60009182526020909120015560018054806106da576106da611983565b60019003818190600052602060002001600090559055827f0b1381093c776453c1bbe54fd68be1b235c65db61d099cb50d194b2991e0eec560405160405180910390a2505050565b600101610657565b505050565b6001600160a01b03821660009081526003602090815260408083208054825181850281018501909352808352849383018282801561078c57602002820191906000526020600020905b815481526020019060010190808311610778575b505083519394506000925050505b818110156107d657848382815181106107b5576107b5611944565b6020026020010151036107ce57600193505050506107de565b60010161079a565b506000925050505b92915050565b60008181526004602090815260409182902080548351818402810184019094528084526060939283018282801561084457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610826575b50505050509050919050565b600154600090810361086457506001919050565b600080600060608060005b600154811015610c18576000306001600160a01b03166352c111d16001848154811061089d5761089d611944565b90600052602060002001546040518263ffffffff1660e01b81526004016108c691815260200190565b600060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261090b9190810190611a19565b905080516000036109255750600098975050505050505050565b6000815167ffffffffffffffff811115610941576109416119d2565b60405190808252806020026020018201604052801561096a578160200160208202803683370190505b50905060005b8251811015610a115782818151811061098b5761098b611944565b6020026020010151600185815481106109a6576109a6611944565b90600052602060002001546040516020016109d69291906001600160a01b03929092168252602082015260400190565b604051602081830303815290604052805190602001208282815181106109fe576109fe611944565b6020908102919091010152600101610970565b5060005b8151811015610c0d578a6001600160a01b031663c9100bcb838381518110610a3f57610a3f611944565b60200260200101516040518263ffffffff1660e01b8152600401610a6591815260200190565b600060405180830381865afa158015610a82573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aaa9190810190611b5e565b5060018054959e50939c50919a50985096509085908110610acd57610acd611944565b90600052602060002001548903610bd657866001600160a01b031663c0969a6e8c60018781548110610b0157610b01611944565b906000526020600020015489896040518563ffffffff1660e01b8152600401610b2d9493929190611c4c565b602060405180830381865afa925050508015610b66575060408051601f3d908101601f19168201909252610b6391810190611c90565b60015b610b945760018251610b789190611970565b8103610b8f575060009a9950505050505050505050565b610bfb565b8015610b9f57825191505b80158015610bb9575060018351610bb69190611970565b82145b15610bd0575060009b9a5050505050505050505050565b50610bfb565b60018251610be49190611970565b8103610bfb575060009a9950505050505050505050565b80610c0581611cb2565b915050610a15565b50505060010161086f565b506001979650505050505050565b610c2e611624565b610c386000611651565b565b60046020528160005260406000208181548110610c5657600080fd5b6000918252602090912001546001600160a01b03169150829050565b610c7a611624565b6001600160a01b038316610ca05760405162461bcd60e51b81526004016102f8906118c8565b6001600160a01b03831660009081526003602052604090205415610d065760405162461bcd60e51b815260206004820152601d60248201527f747275737465642049737375657220616c72656164792065786973747300000060448201526064016102f8565b80610d5f5760405162461bcd60e51b8152602060048201526024808201527f7472757374656420636c61696d20746f706963732063616e6e6f7420626520656044820152636d70747960e01b60648201526084016102f8565b600f811115610d805760405162461bcd60e51b81526004016102f8906118ff565b600254603211610de35760405162461bcd60e51b815260206004820152602860248201527f63616e6e6f742068617665206d6f7265207468616e2035302074727573746564604482015267206973737565727360c01b60648201526084016102f8565b60028054600181019091557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0385169081179091556000908152600360205260409020610e459083836116a1565b5060005b81811015610eb55760046000848484818110610e6757610e67611944565b602090810292909201358352508181019290925260400160009081208054600180820183559183529290912090910180546001600160a01b0319166001600160a01b03871617905501610e49565b50826001600160a01b03167ffedc33fd34859594822c0ff6f3f4f9fc279cc6d5cae53068f706a088e4500872838360405161063c929190611999565b60018181548110610f0157600080fd5b600091825260209091200154905081565b610f1a611624565b6001600160a01b038116610f405760405162461bcd60e51b81526004016102f8906118c8565b6001600160a01b0381166000908152600360205260408120549003610f9e5760405162461bcd60e51b81526020600482015260146024820152732727aa1030903a393ab9ba32b21034b9b9bab2b960611b60448201526064016102f8565b60025460005b8181101561109a57826001600160a01b031660028281548110610fc957610fc9611944565b6000918252602090912001546001600160a01b031603611092576002610ff0600184611970565b8154811061100057611000611944565b600091825260209091200154600280546001600160a01b03909216918390811061102c5761102c611944565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600280548061106b5761106b611983565b600082815260209020810160001990810180546001600160a01b031916905501905561109a565b600101610fa4565b5060005b6001600160a01b03831660009081526003602052604090205481101561123a576001600160a01b03831660009081526003602052604081208054839081106110e8576110e8611944565b600091825260208083209091015480835260049091526040822054909250905b8181101561122f57600083815260046020526040902080546001600160a01b03881691908390811061113c5761113c611944565b6000918252602090912001546001600160a01b03160361122757600083815260046020526040902061116f600184611970565b8154811061117f5761117f611944565b60009182526020808320909101548583526004909152604090912080546001600160a01b0390921691839081106111b8576111b8611944565b600091825260208083209190910180546001600160a01b0319166001600160a01b03949094169390931790925584815260049091526040902080548061120057611200611983565b600082815260209020810160001990810180546001600160a01b031916905501905561122f565b600101611108565b50505060010161109e565b506001600160a01b038216600090815260036020526040812061125c916116ec565b6040516001600160a01b038316907f2214ded40113cc3fb63fc206cafee88270b0a903dac7245d54efdde30ebb032190600090a25050565b600360205281600052604060002081815481106112b057600080fd5b90600052602060002001600091509150505481565b600154600090815b8181101561130b5783600182815481106112e9576112e9611944565b906000526020600020015403611303575060019392505050565b6001016112cd565b5060009392505050565b6001600160a01b0381166000908152600360205260408120546060910361137e5760405162461bcd60e51b815260206004820152601c60248201527f747275737465642049737375657220646f65736e27742065786973740000000060448201526064016102f8565b6001600160a01b0382166000908152600360209081526040918290208054835181840281018401909452808452909183018282801561084457602002820191906000526020600020905b8154815260200190600101908083116113c85750505050509050919050565b6113ef611624565b600154600f811061144d5760405162461bcd60e51b815260206004820152602260248201527f63616e6e6f742072657175697265206d6f7265207468616e20313520746f7069604482015261637360f01b60648201526084016102f8565b60005b818110156114cc57826001828154811061146c5761146c611944565b9060005260206000200154036114c45760405162461bcd60e51b815260206004820152601960248201527f636c61696d546f70696320616c7265616479206578697374730000000000000060448201526064016102f8565b600101611450565b5060018054808201825560009182527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60183905560405183917f01c928b7f7ade2949e92366aa9454dbef3a416b731cf6ec786ba9595bbd814d691a25050565b6002818154811061153c57600080fd5b6000918252602090912001546001600160a01b0316905081565b606060028054806020026020016040519081016040528092919081815260200182805480156115ae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611590575b5050505050905090565b6001600160a01b038116600090815260036020526040812054156115de57506001919050565b506000919050565b6115ee611624565b6001600160a01b03811661161857604051631e4fbdf760e01b8152600060048201526024016102f8565b61162181611651565b50565b6000546001600160a01b03163314610c385760405163118cdaa760e01b81523360048201526024016102f8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8280548282559060005260206000209081019282156116dc579160200282015b828111156116dc5782358255916020019190600101906116c1565b506116e8929150611706565b5090565b508054600082559060005260206000209081019061162191905b5b808211156116e85760008155600101611707565b6001600160a01b038116811461162157600080fd5b60008060006040848603121561174557600080fd5b83356117508161171b565b9250602084013567ffffffffffffffff8082111561176d57600080fd5b818601915086601f83011261178157600080fd5b81358181111561179057600080fd5b8760208260051b85010111156117a557600080fd5b6020830194508093505050509250925092565b6000602082840312156117ca57600080fd5b5035919050565b600080604083850312156117e457600080fd5b82356117ef8161171b565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561183e5783516001600160a01b031683529284019291840191600101611819565b50909695505050505050565b60006020828403121561185c57600080fd5b81356118678161171b565b9392505050565b6000806040838503121561188157600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b8181101561183e578351835292840192918401916001016118ac565b6020808252601f908201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604082015260600190565b60208082526025908201527f63616e6e6f742068617665206d6f7265207468616e20313520636c61696d20746040820152646f7069637360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156107de576107de61195a565b634e487b7160e01b600052603160045260246000fd5b6020808252810182905260006001600160fb1b038311156119b957600080fd5b8260051b80856040850137919091016040019392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611a1157611a116119d2565b604052919050565b60006020808385031215611a2c57600080fd5b825167ffffffffffffffff80821115611a4457600080fd5b818501915085601f830112611a5857600080fd5b815181811115611a6a57611a6a6119d2565b8060051b9150611a7b8483016119e8565b8181529183018401918481019088841115611a9557600080fd5b938501935b83851015611abf5784519250611aaf8361171b565b8282529385019390850190611a9a565b98975050505050505050565b60005b83811015611ae6578181015183820152602001611ace565b50506000910152565b600067ffffffffffffffff831115611b0957611b096119d2565b611b1c601f8401601f19166020016119e8565b9050828152838383011115611b3057600080fd5b611867836020830184611acb565b600082601f830112611b4f57600080fd5b61186783835160208501611aef565b60008060008060008060c08789031215611b7757600080fd5b86519550602087015194506040870151611b908161171b565b606088015190945067ffffffffffffffff80821115611bae57600080fd5b611bba8a838b01611b3e565b94506080890151915080821115611bd057600080fd5b611bdc8a838b01611b3e565b935060a0890151915080821115611bf257600080fd5b508701601f81018913611c0457600080fd5b611c1389825160208401611aef565b9150509295509295509295565b60008151808452611c38816020860160208601611acb565b601f01601f19169290920160200192915050565b60018060a01b0385168152836020820152608060408201526000611c736080830185611c20565b8281036060840152611c858185611c20565b979650505050505050565b600060208284031215611ca257600080fd5b8151801515811461186757600080fd5b600060018201611cc457611cc461195a565b506001019056fea26469706673582212203b28da46937b8ef308730e73bffb0bfda12ddb1b3c5f54df22b55abe58d23c5864736f6c63430008180033","sourceMap":"156:11815:128:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6314:1473;;;;;;:::i;:::-;;:::i;:::-;;3239:442;;;;;;:::i;:::-;;:::i;8980:381::-;;;;;;:::i;:::-;;:::i;:::-;;;1639:14:165;;1632:22;1614:41;;1602:2;1587:18;8980:381:128;;;;;;;;8079:167;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;9926:2043::-;;;;;;:::i;:::-;;:::i;2293:101:141:-;;;:::i;1638:85::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;1638:85;;;-1:-1:-1;;;;;2781:32:165;;;2763:51;;2751:2;2736:18;1638:85:141;2617:203:165;703:69:128;;;;;;:::i;:::-;;:::i;3764:889::-;;;;;;:::i;:::-;;:::i;256:36::-;;;;;;:::i;:::-;;:::i;:::-;;;3454:25:165;;;3442:2;3427:18;256:36:128;3308:177:165;4739:1485:128;;;;;;:::i;:::-;;:::i;552:61::-;;;;;;:::i;:::-;;:::i;9367:317::-;;;;;;:::i;:::-;;:::i;8612:288::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2740:421::-;;;;;;:::i;:::-;;:::i;408:36::-;;;;;;:::i;:::-;;:::i;7871:111::-;;;:::i;8328:190::-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;6314:1473:128:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;6445:36:128;::::1;6437:80;;;;-1:-1:-1::0;;;6437:80:128::1;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1::0;;;;;6535:48:128;::::1;;::::0;;;:24:::1;:48;::::0;;;;:55;:60;;6527:93:::1;;;::::0;-1:-1:-1;;;6527:93:128;;4977:2:165;6527:93:128::1;::::0;::::1;4959:21:165::0;5016:2;4996:18;;;4989:30;-1:-1:-1;;;5035:18:165;;;5028:50;5095:18;;6527:93:128::1;4775:344:165::0;6527:93:128::1;6663:2;6638:27:::0;::::1;;6630:77;;;;-1:-1:-1::0;;;6630:77:128::1;;;;;;;:::i;:::-;6725:25:::0;6717:66:::1;;;::::0;-1:-1:-1;;;6717:66:128;;5732:2:165;6717:66:128::1;::::0;::::1;5714:21:165::0;5771:2;5751:18;;;5744:30;5810;5790:18;;;5783:58;5858:18;;6717:66:128::1;5530:352:165::0;6717:66:128::1;6799:9;6794:696;-1:-1:-1::0;;;;;6818:48:128;::::1;;::::0;;;:24:::1;:48;::::0;;;;:55;6814:59;::::1;6794:696;;;-1:-1:-1::0;;;;;6915:48:128;::::1;6894:18;6915:48:::0;;;:24:::1;:48;::::0;;;;:51;;6964:1;;6915:51;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;7003:39;;;:27:::1;:39:::0;;;;;;:46;6915:51;;-1:-1:-1;7003:46:128;7063:417:::1;7087:12;7083:1;:16;7063:417;;;7128:39;::::0;;;:27:::1;:39;::::0;;;;:42;;-1:-1:-1;;;;;7128:59:128;::::1;::::0;:39;7168:1;;7128:42;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;7128:42:128::1;:59:::0;7124:342:::1;;7296:39;::::0;;;:27:::1;:39;::::0;;;;7336:16:::1;7351:1;7336:12:::0;:16:::1;:::i;:::-;7296:57;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;7211:39;;;:27:::1;:39:::0;;;;;;;:42;;-1:-1:-1;;;;;7296:57:128;;::::1;::::0;7251:1;;7211:42;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:142:::0;;-1:-1:-1;;;;;;7211:142:128::1;-1:-1:-1::0;;;;;7211:142:128;;;::::1;::::0;;;::::1;::::0;;;7375:39;;;:27:::1;:39:::0;;;;;;:45;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;7375:45:128;;;;;-1:-1:-1;;;;;;7375:45:128::1;::::0;;;;;7442:5:::1;;7124:342;7101:3;;7063:417;;;-1:-1:-1::0;;;6875:3:128::1;;6794:696;;;-1:-1:-1::0;;;;;;7499:48:128;::::1;;::::0;;;:24:::1;:48;::::0;;;;:65:::1;::::0;7550:14;;7499:65:::1;:::i;:::-;;7579:9;7574:143;7594:25:::0;;::::1;7574:143;;;7640:27;:46;7668:14;;7683:1;7668:17;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;7640:46:::0;;-1:-1:-1;7640:46:128;;::::1;::::0;;;;;;-1:-1:-1;7640:46:128;;;:66;;::::1;::::0;;::::1;::::0;;;;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;7640:66:128::1;-1:-1:-1::0;;;;;7640:66:128;::::1;;::::0;;7621:3:::1;7574:143;;;;7750:13;-1:-1:-1::0;;;;;7731:49:128::1;;7765:14;;7731:49;;;;;;;:::i;:::-;;;;;;;;6314:1473:::0;;;:::o;3239:442::-;1531:13:141;:11;:13::i;:::-;3329:19:128::1;:26:::0;3312:14:::1;3365:310;3389:6;3385:1;:10;3365:310;;;3446:10;3420:19;3440:1;3420:22;;;;;;;;:::i;:::-;;;;;;;;;:36:::0;3416:249:::1;;3501:19;3521:10;3501:19:::0;3521:6;:10:::1;:::i;:::-;3501:31;;;;;;;;:::i;:::-;;;;;;;;;3476:19;3496:1;3476:22;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;:56:::0;3550:19:::1;:25:::0;;;::::1;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3616:10;3598:29;;;;;;;;;;3365:310;3302:379;3239:442:::0;:::o;3416:249::-:1;3397:3;;3365:310;;;;3302:379;3239:442:::0;:::o;8980:381::-;-1:-1:-1;;;;;9107:32:128;;9060:4;9107:32;;;:24;:32;;;;;;;;9076:63;;;;;;;;;;;;;;;;;9060:4;;9076:63;;9107:32;9076:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9166:18:128;;9076:63;;-1:-1:-1;9149:14:128;;-1:-1:-1;;;9194:139:128;9218:6;9214:1;:10;9194:139;;;9267:10;9249:11;9261:1;9249:14;;;;;;;;:::i;:::-;;;;;;;:28;9245:78;;9304:4;9297:11;;;;;;;9245:78;9226:3;;9194:139;;;;9349:5;9342:12;;;;8980:381;;;;;:::o;8079:167::-;8200:39;;;;:27;:39;;;;;;;;;8193:46;;;;;;;;;;;;;;;;;8160:21;;8193:46;;;8200:39;8193:46;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8193:46:128;;;;;;;;;;;;;;;;;;;;;;;8079:167;;;:::o;9926:2043::-;10011:19;:26;9980:15;;10011:31;;10007:73;;-1:-1:-1;10065:4:128;;9926:2043;-1:-1:-1;9926:2043:128:o;10007:73::-;10090:23;10123:14;10147;10171:16;10197:17;10224:18;10252:1689;10286:19;:26;10273:39;;10252:1689;;;10342:49;10426:4;-1:-1:-1;;;;;10426:35:128;;10462:19;10482:10;10462:31;;;;;;;;:::i;:::-;;;;;;;;;10426:68;;;;;;;;;;;;;3454:25:165;;3442:2;3427:18;;3308:177;10426:68:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10426:68:128;;;;;;;;;;;;:::i;:::-;10342:152;;10513:27;:34;10551:1;10513:39;10509:90;;-1:-1:-1;10579:5:128;;9926:2043;-1:-1:-1;;;;;;;;9926:2043:128:o;10509:90::-;10613:25;10655:27;:34;10641:49;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10641:49:128;;10613:77;;10709:9;10704:198;10728:27;:34;10724:1;:38;10704:198;;;10822:27;10850:1;10822:30;;;;;;;;:::i;:::-;;;;;;;10854:19;10874:10;10854:31;;;;;;;;:::i;:::-;;;;;;;;;10811:75;;;;;;;;-1:-1:-1;;;;;8542:32:165;;;;8524:51;;8606:2;8591:18;;8584:34;8512:2;8497:18;;8328:296;10811:75:128;;;;;;;;;;;;;10801:86;;;;;;10787:8;10796:1;10787:11;;;;;;;;:::i;:::-;;;;;;;;;;:100;10764:3;;10704:198;;;;10921:9;10916:1015;10940:8;:15;10936:1;:19;10916:1015;;;11039:8;-1:-1:-1;;;;;11029:28:128;;11058:8;11067:1;11058:11;;;;;;;;:::i;:::-;;;;;;;11029:41;;;;;;;;;;;;;3454:25:165;;3442:2;3427:18;;3308:177;11029:41:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11029:41:128;;;;;;;;;;;;:::i;:::-;-1:-1:-1;11112:19:128;:31;;10980:90;;-1:-1:-1;10980:90:128;;-1:-1:-1;10980:90:128;;-1:-1:-1;10980:90:128;-1:-1:-1;10980:90:128;-1:-1:-1;11112:19:128;11132:10;;11112:31;;;;;;:::i;:::-;;;;;;;;;11093:15;:50;11089:828;;11184:6;-1:-1:-1;;;;;11171:33:128;;11215:8;11226:19;11246:10;11226:31;;;;;;;;:::i;:::-;;;;;;;;;11259:3;11288:4;11171:122;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;11171:122:128;;;;;;;;-1:-1:-1;;11171:122:128;;;;;;;;;;;;:::i;:::-;;;11167:641;;11713:1;11695:8;:15;:19;;;;:::i;:::-;11689:1;:26;11685:101;;-1:-1:-1;11754:5:128;;9926:2043;-1:-1:-1;;;;;;;;;;9926:2043:128:o;11685:101::-;11089:828;;11167:641;11378:9;11345:145;;;11448:8;:15;11444:19;;11345:145;11520:9;11519:10;:40;;;;;11557:1;11539:8;:15;:19;;;;:::i;:::-;11533:1;:26;11519:40;11515:115;;;-1:-1:-1;11598:5:128;;9926:2043;-1:-1:-1;;;;;;;;;;;9926:2043:128:o;11515:115::-;11294:358;11089:828;;;11860:1;11842:8;:15;:19;;;;:::i;:::-;11836:1;:26;11832:85;;-1:-1:-1;11893:5:128;;9926:2043;-1:-1:-1;;;;;;;;;;9926:2043:128:o;11832:85::-;10957:3;;;;:::i;:::-;;;;10916:1015;;;-1:-1:-1;;;10314:12:128;;10252:1689;;;-1:-1:-1;11958:4:128;;9926:2043;-1:-1:-1;;;;;;;9926:2043:128:o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;703:69:128:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;703:69:128;;-1:-1:-1;703:69:128;;-1:-1:-1;703:69:128:o;3764:889::-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;3885:36:128;::::1;3877:80;;;;-1:-1:-1::0;;;3877:80:128::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;3975:48:128;::::1;;::::0;;;:24:::1;:48;::::0;;;;:55;:60;3967:102:::1;;;::::0;-1:-1:-1;;;3967:102:128;;12326:2:165;3967:102:128::1;::::0;::::1;12308:21:165::0;12365:2;12345:18;;;12338:30;12404:31;12384:18;;;12377:59;12453:18;;3967:102:128::1;12124:353:165::0;3967:102:128::1;4087:22:::0;4079:71:::1;;;::::0;-1:-1:-1;;;4079:71:128;;12684:2:165;4079:71:128::1;::::0;::::1;12666:21:165::0;12723:2;12703:18;;;12696:30;12762:34;12742:18;;;12735:62;-1:-1:-1;;;12813:18:165;;;12806:34;12857:19;;4079:71:128::1;12482:400:165::0;4079:71:128::1;4190:2;4168:24:::0;::::1;;4160:74;;;;-1:-1:-1::0;;;4160:74:128::1;;;;;;;:::i;:::-;4252:14;:21:::0;4276:2:::1;-1:-1:-1::0;4244:79:128::1;;;::::0;-1:-1:-1;;;4244:79:128;;13089:2:165;4244:79:128::1;::::0;::::1;13071:21:165::0;13128:2;13108:18;;;13101:30;13167:34;13147:18;;;13140:62;-1:-1:-1;;;13218:18:165;;;13211:38;13266:19;;4244:79:128::1;12887:404:165::0;4244:79:128::1;4333:14;:34:::0;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;-1:-1:-1;;;;;;4333:34:128::1;-1:-1:-1::0;;;;;4333:34:128;::::1;::::0;;::::1;::::0;;;-1:-1:-1;4377:48:128;;;:24:::1;4333:34;4377:48:::0;;;;:62:::1;::::0;4428:11;;4377:62:::1;:::i;:::-;;4454:9;4449:137;4469:22:::0;;::::1;4449:137;;;4512:27;:43;4540:11;;4552:1;4540:14;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;4512:43:::0;;-1:-1:-1;4512:43:128;;::::1;::::0;;;;;;-1:-1:-1;4512:43:128;;;:63;;::::1;::::0;;::::1;::::0;;;;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;4512:63:128::1;-1:-1:-1::0;;;;;4512:63:128;::::1;;::::0;;4493:3:::1;4449:137;;;;4619:13;-1:-1:-1::0;;;;;4600:46:128::1;;4634:11;;4600:46;;;;;;;:::i;256:36::-:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;256:36:128;:::o;4739:1485::-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4831:36:128;::::1;4823:80;;;;-1:-1:-1::0;;;4823:80:128::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4921:48:128;::::1;;::::0;;;:24:::1;:48;::::0;;;;:55;:60;;4913:93:::1;;;::::0;-1:-1:-1;;;4913:93:128;;4977:2:165;4913:93:128::1;::::0;::::1;4959:21:165::0;5016:2;4996:18;;;4989:30;-1:-1:-1;;;5035:18:165;;;5028:50;5095:18;;4913:93:128::1;4775:344:165::0;4913:93:128::1;5033:14;:21:::0;5016:14:::1;5064:241;5088:6;5084:1;:10;5064:241;;;5140:13;-1:-1:-1::0;;;;;5119:34:128::1;:14;5134:1;5119:17;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;5119:17:128::1;:34:::0;5115:180:::1;;5193:14;5208:10;5217:1;5208:6:::0;:10:::1;:::i;:::-;5193:26;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;5173:14:::1;:17:::0;;-1:-1:-1;;;;;5193:26:128;;::::1;::::0;5188:1;;5173:17;::::1;;;;;:::i;:::-;;;;;;;;;:46;;;;;-1:-1:-1::0;;;;;5173:46:128::1;;;;;-1:-1:-1::0;;;;;5173:46:128::1;;;;;;5237:14;:20;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;5237:20:128;;;;;-1:-1:-1;;;;;;5237:20:128::1;::::0;;;;;5275:5:::1;;5115:180;5096:3;;5064:241;;;;5332:23;5314:789;-1:-1:-1::0;;;;;5391:48:128;::::1;;::::0;;;:24:::1;:48;::::0;;;;:55;5373:73;::::1;5314:789;;;-1:-1:-1::0;;;;;5514:48:128;::::1;5493:18;5514:48:::0;;;:24:::1;:48;::::0;;;;:65;;5563:15;;5514:65;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;5616:39;;;:27:::1;:39:::0;;;;;;:46;5514:65;;-1:-1:-1;5616:46:128;5676:417:::1;5700:12;5696:1;:16;5676:417;;;5741:39;::::0;;;:27:::1;:39;::::0;;;;:42;;-1:-1:-1;;;;;5741:59:128;::::1;::::0;:39;5781:1;;5741:42;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;5741:42:128::1;:59:::0;5737:342:::1;;5909:39;::::0;;;:27:::1;:39;::::0;;;;5949:16:::1;5964:1;5949:12:::0;:16:::1;:::i;:::-;5909:57;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;5824:39;;;:27:::1;:39:::0;;;;;;;:42;;-1:-1:-1;;;;;5909:57:128;;::::1;::::0;5864:1;;5824:42;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:142:::0;;-1:-1:-1;;;;;;5824:142:128::1;-1:-1:-1::0;;;;;5824:142:128;;;::::1;::::0;;;::::1;::::0;;;5988:39;;;:27:::1;:39:::0;;;;;;:45;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;5988:45:128;;;;;-1:-1:-1;;;;;;5988:45:128::1;::::0;;;;;6055:5:::1;;5737:342;5714:3;;5676:417;;;-1:-1:-1::0;;;5460:17:128::1;;5314:789;;;-1:-1:-1::0;;;;;;6119:48:128;::::1;;::::0;;;:24:::1;:48;::::0;;;;6112:55:::1;::::0;::::1;:::i;:::-;6182:35;::::0;-1:-1:-1;;;;;6182:35:128;::::1;::::0;::::1;::::0;;;::::1;4813:1411;4739:1485:::0;:::o;552:61::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9367:317::-;9471:19;:26;9438:4;;;9508:147;9532:6;9528:1;:10;9508:147;;;9589:10;9563:19;9583:1;9563:22;;;;;;;;:::i;:::-;;;;;;;;;:36;9559:86;;-1:-1:-1;9626:4:128;;9367:317;-1:-1:-1;;;9367:317:128:o;9559:86::-;9540:3;;9508:147;;;-1:-1:-1;9672:5:128;;9367:317;-1:-1:-1;;;9367:317:128:o;8612:288::-;-1:-1:-1;;;;;8734:48:128;;;;;;:24;:48;;;;;:55;8698:16;;8734:60;8726:102;;;;-1:-1:-1;;;8726:102:128;;13498:2:165;8726:102:128;;;13480:21:165;13537:2;13517:18;;;13510:30;13576;13556:18;;;13549:58;13624:18;;8726:102:128;13296:352:165;8726:102:128;-1:-1:-1;;;;;8845:48:128;;;;;;:24;:48;;;;;;;;;8838:55;;;;;;;;;;;;;;;;;8845:48;;8838:55;;8845:48;8838:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8612:288;;;:::o;2740:421::-;1531:13:141;:11;:13::i;:::-;2827:19:128::1;:26:::0;2880:2:::1;2871:11:::0;::::1;2863:58;;;::::0;-1:-1:-1;;;2863:58:128;;13855:2:165;2863:58:128::1;::::0;::::1;13837:21:165::0;13894:2;13874:18;;;13867:30;13933:34;13913:18;;;13906:62;-1:-1:-1;;;13984:18:165;;;13977:32;14026:19;;2863:58:128::1;13653:398:165::0;2863:58:128::1;2936:9;2931:136;2955:6;2951:1;:10;2931:136;;;3016:10;2990:19;3010:1;2990:22;;;;;;;;:::i;:::-;;;;;;;;;:36:::0;2982:74:::1;;;::::0;-1:-1:-1;;;2982:74:128;;14258:2:165;2982:74:128::1;::::0;::::1;14240:21:165::0;14297:2;14277:18;;;14270:30;14336:27;14316:18;;;14309:55;14381:18;;2982:74:128::1;14056:349:165::0;2982:74:128::1;2963:3;;2931:136;;;-1:-1:-1::0;3076:19:128::1;:36:::0;;;;::::1;::::0;;-1:-1:-1;3076:36:128;;;;::::1;::::0;;;3127:27:::1;::::0;3101:10;;3127:27:::1;::::0;::::1;2800:361;2740:421:::0;:::o;408:36::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;408:36:128;;-1:-1:-1;408:36:128;:::o;7871:111::-;7921:21;7961:14;7954:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7954:21:128;;;;;;;;;;;;;;;;;;;;;;;7871:111;:::o;8328:190::-;-1:-1:-1;;;;;8409:32:128;;8390:4;8409:32;;;:24;:32;;;;;:39;:43;8406:84;;-1:-1:-1;8475:4:128;;8328:190;-1:-1:-1;8328:190:128:o;8406:84::-;-1:-1:-1;8506:5:128;;8328:190;-1:-1:-1;8328:190:128:o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;2763:51:165::0;2736:18;;2672:31:141::1;2617:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;2763:51:165;2736:18;;1901:40:141;2617:203:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:145:165;-1:-1:-1;;;;;103:31:165;;93:42;;83:70;;149:1;146;139:12;164:786;281:6;289;297;350:2;338:9;329:7;325:23;321:32;318:52;;;366:1;363;356:12;318:52;405:9;392:23;424:45;463:5;424:45;:::i;:::-;488:5;-1:-1:-1;544:2:165;529:18;;516:32;567:18;597:14;;;594:34;;;624:1;621;614:12;594:34;662:6;651:9;647:22;637:32;;707:7;700:4;696:2;692:13;688:27;678:55;;729:1;726;719:12;678:55;769:2;756:16;795:2;787:6;784:14;781:34;;;811:1;808;801:12;781:34;864:7;859:2;849:6;846:1;842:14;838:2;834:23;830:32;827:45;824:65;;;885:1;882;875:12;824:65;916:2;912;908:11;898:21;;938:6;928:16;;;;;164:786;;;;;:::o;955:180::-;1014:6;1067:2;1055:9;1046:7;1042:23;1038:32;1035:52;;;1083:1;1080;1073:12;1035:52;-1:-1:-1;1106:23:165;;955:180;-1:-1:-1;955:180:165:o;1140:329::-;1208:6;1216;1269:2;1257:9;1248:7;1244:23;1240:32;1237:52;;;1285:1;1282;1275:12;1237:52;1324:9;1311:23;1343:45;1382:5;1343:45;:::i;:::-;1407:5;1459:2;1444:18;;;;1431:32;;-1:-1:-1;;;1140:329:165:o;1666:680::-;1859:2;1911:21;;;1981:13;;1884:18;;;2003:22;;;1830:4;;1859:2;2082:15;;;;2056:2;2041:18;;;1830:4;2125:195;2139:6;2136:1;2133:13;2125:195;;;2204:13;;-1:-1:-1;;;;;2200:39:165;2188:52;;2295:15;;;;2260:12;;;;2236:1;2154:9;2125:195;;;-1:-1:-1;2337:3:165;;1666:680;-1:-1:-1;;;;;;1666:680:165:o;2351:261::-;2410:6;2463:2;2451:9;2442:7;2438:23;2434:32;2431:52;;;2479:1;2476;2469:12;2431:52;2518:9;2505:23;2537:45;2576:5;2537:45;:::i;:::-;2601:5;2351:261;-1:-1:-1;;;2351:261:165:o;2825:248::-;2893:6;2901;2954:2;2942:9;2933:7;2929:23;2925:32;2922:52;;;2970:1;2967;2960:12;2922:52;-1:-1:-1;;2993:23:165;;;3063:2;3048:18;;;3035:32;;-1:-1:-1;2825:248:165:o;3778:632::-;3949:2;4001:21;;;4071:13;;3974:18;;;4093:22;;;3920:4;;3949:2;4172:15;;;;4146:2;4131:18;;;3920:4;4215:169;4229:6;4226:1;4223:13;4215:169;;;4290:13;;4278:26;;4359:15;;;;4324:12;;;;4251:1;4244:9;4215:169;;4415:355;4617:2;4599:21;;;4656:2;4636:18;;;4629:30;4695:33;4690:2;4675:18;;4668:61;4761:2;4746:18;;4415:355::o;5124:401::-;5326:2;5308:21;;;5365:2;5345:18;;;5338:30;5404:34;5399:2;5384:18;;5377:62;-1:-1:-1;;;5470:2:165;5455:18;;5448:35;5515:3;5500:19;;5124:401::o;5887:127::-;5948:10;5943:3;5939:20;5936:1;5929:31;5979:4;5976:1;5969:15;6003:4;6000:1;5993:15;6019:127;6080:10;6075:3;6071:20;6068:1;6061:31;6111:4;6108:1;6101:15;6135:4;6132:1;6125:15;6151:128;6218:9;;;6239:11;;;6236:37;;;6253:18;;:::i;6284:127::-;6345:10;6340:3;6336:20;6333:1;6326:31;6376:4;6373:1;6366:15;6400:4;6397:1;6390:15;6416:443;6605:2;6587:21;;;6624:18;;6617:34;;;-1:-1:-1;;;;;;6663:31:165;;6660:51;;;6707:1;6704;6697:12;6660:51;6741:6;6738:1;6734:14;6798:6;6790;6785:2;6774:9;6770:18;6757:48;6826:22;;;;6850:2;6822:31;;6416:443;-1:-1:-1;;;6416:443:165:o;6864:127::-;6925:10;6920:3;6916:20;6913:1;6906:31;6956:4;6953:1;6946:15;6980:4;6977:1;6970:15;6996:275;7067:2;7061:9;7132:2;7113:13;;-1:-1:-1;;7109:27:165;7097:40;;7167:18;7152:34;;7188:22;;;7149:62;7146:88;;;7214:18;;:::i;:::-;7250:2;7243:22;6996:275;;-1:-1:-1;6996:275:165:o;7276:1047::-;7393:6;7424:2;7467;7455:9;7446:7;7442:23;7438:32;7435:52;;;7483:1;7480;7473:12;7435:52;7516:9;7510:16;7545:18;7586:2;7578:6;7575:14;7572:34;;;7602:1;7599;7592:12;7572:34;7640:6;7629:9;7625:22;7615:32;;7685:7;7678:4;7674:2;7670:13;7666:27;7656:55;;7707:1;7704;7697:12;7656:55;7736:2;7730:9;7758:2;7754;7751:10;7748:36;;;7764:18;;:::i;:::-;7810:2;7807:1;7803:10;7793:20;;7833:28;7857:2;7853;7849:11;7833:28;:::i;:::-;7895:15;;;7965:11;;;7961:20;;;7926:12;;;;7993:19;;;7990:39;;;8025:1;8022;8015:12;7990:39;8049:11;;;;8069:224;8085:6;8080:3;8077:15;8069:224;;;8158:3;8152:10;8139:23;;8175:45;8214:5;8175:45;:::i;:::-;8233:18;;;8102:12;;;;8271;;;;8069:224;;;8312:5;7276:1047;-1:-1:-1;;;;;;;;7276:1047:165:o;8811:250::-;8896:1;8906:113;8920:6;8917:1;8914:13;8906:113;;;8996:11;;;8990:18;8977:11;;;8970:39;8942:2;8935:10;8906:113;;;-1:-1:-1;;9053:1:165;9035:16;;9028:27;8811:250::o;9066:390::-;9141:5;9175:18;9167:6;9164:30;9161:56;;;9197:18;;:::i;:::-;9235:57;9280:2;9259:15;;-1:-1:-1;;9255:29:165;9286:4;9251:40;9235:57;:::i;:::-;9226:66;;9315:6;9308:5;9301:21;9355:3;9346:6;9341:3;9337:16;9334:25;9331:45;;;9372:1;9369;9362:12;9331:45;9385:65;9443:6;9436:4;9429:5;9425:16;9420:3;9385:65;:::i;9461:235::-;9514:5;9567:3;9560:4;9552:6;9548:17;9544:27;9534:55;;9585:1;9582;9575:12;9534:55;9607:83;9686:3;9677:6;9671:13;9664:4;9656:6;9652:17;9607:83;:::i;9701:1150::-;9844:6;9852;9860;9868;9876;9884;9937:3;9925:9;9916:7;9912:23;9908:33;9905:53;;;9954:1;9951;9944:12;9905:53;9983:9;9977:16;9967:26;;10033:2;10022:9;10018:18;10012:25;10002:35;;10080:2;10069:9;10065:18;10059:25;10093:45;10132:5;10093:45;:::i;:::-;10206:2;10191:18;;10185:25;10157:5;;-1:-1:-1;10229:18:165;10259:14;;;10256:34;;;10286:1;10283;10276:12;10256:34;10309:60;10361:7;10352:6;10341:9;10337:22;10309:60;:::i;:::-;10299:70;;10415:3;10404:9;10400:19;10394:26;10378:42;;10445:2;10435:8;10432:16;10429:36;;;10461:1;10458;10451:12;10429:36;10484:62;10538:7;10527:8;10516:9;10512:24;10484:62;:::i;:::-;10474:72;;10592:3;10581:9;10577:19;10571:26;10555:42;;10622:2;10612:8;10609:16;10606:36;;;10638:1;10635;10628:12;10606:36;-1:-1:-1;10661:24:165;;10716:4;10708:13;;10704:27;-1:-1:-1;10694:55:165;;10745:1;10742;10735:12;10694:55;10768:77;10837:7;10832:2;10826:9;10821:2;10817;10813:11;10768:77;:::i;:::-;10758:87;;;9701:1150;;;;;;;;:::o;10856:270::-;10897:3;10935:5;10929:12;10962:6;10957:3;10950:19;10978:76;11047:6;11040:4;11035:3;11031:14;11024:4;11017:5;11013:16;10978:76;:::i;:::-;11108:2;11087:15;-1:-1:-1;;11083:29:165;11074:39;;;;11115:4;11070:50;;10856:270;-1:-1:-1;;10856:270:165:o;11131:566::-;11428:1;11424;11419:3;11415:11;11411:19;11403:6;11399:32;11388:9;11381:51;11468:6;11463:2;11452:9;11448:18;11441:34;11511:3;11506:2;11495:9;11491:18;11484:31;11362:4;11538:45;11578:3;11567:9;11563:19;11555:6;11538:45;:::i;:::-;11631:9;11623:6;11619:22;11614:2;11603:9;11599:18;11592:50;11659:32;11684:6;11676;11659:32;:::i;:::-;11651:40;11131:566;-1:-1:-1;;;;;;;11131:566:165:o;11702:277::-;11769:6;11822:2;11810:9;11801:7;11797:23;11793:32;11790:52;;;11838:1;11835;11828:12;11790:52;11870:9;11864:16;11923:5;11916:13;11909:21;11902:5;11899:32;11889:60;;11945:1;11942;11935:12;11984:135;12023:3;12044:17;;;12041:43;;12064:18;;:::i;:::-;-1:-1:-1;12111:1:165;12100:13;;11984:135::o","linkReferences":{}},"methodIdentifiers":{"addClaimTopic(uint256)":"c7b22551","addTrustedIssuer(address,uint256[])":"9f63ea98","claimTopicsToTrustedIssuers(uint256,uint256)":"93e9f801","getTrustedIssuerClaimTopics(address)":"c28fb278","getTrustedIssuers()":"d9dd24c5","getTrustedIssuersForClaimTopic(uint256)":"52c111d1","hasClaimTopic(address,uint256)":"34a89987","isClaimTopicRequired(uint256)":"be36359f","isTrustedIssuer(address)":"ef2ed1a4","owner()":"8da5cb5b","removeClaimTopic(uint256)":"08297846","removeTrustedIssuer(address)":"b93d28eb","renounceOwnership()":"715018a6","requiredClaimTopics(uint256)":"b5fa8693","transferOwnership(address)":"f2fde38b","trustedIssuerClaimTopics(address,uint256)":"ba64c341","trustedIssuers(uint256)":"c801dd40","updateIssuerClaimTopics(address,uint256[])":"04bc7e84","verify(address)":"63a9c3d7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"ClaimTopicAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"ClaimTopicRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"ClaimTopicsUpdated\",\"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\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"TrustedIssuerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"}],\"name\":\"TrustedIssuerRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"addClaimTopic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"addTrustedIssuer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"claimTopicsToTrustedIssuers\",\"outputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"}],\"name\":\"getTrustedIssuerClaimTopics\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTrustedIssuers\",\"outputs\":[{\"internalType\":\"contract IClaimIssuer[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"getTrustedIssuersForClaimTopic\",\"outputs\":[{\"internalType\":\"contract IClaimIssuer[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"hasClaimTopic\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"isClaimTopicRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"}],\"name\":\"isTrustedIssuer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"removeClaimTopic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"}],\"name\":\"removeTrustedIssuer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"requiredClaimTopics\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"trustedIssuerClaimTopics\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"trustedIssuers\",\"outputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"newClaimTopics\",\"type\":\"uint256[]\"}],\"name\":\"updateIssuerClaimTopics\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isVerified\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addClaimTopic(uint256)\":{\"details\":\"See {IClaimTopicsRegistry-removeClaimTopic}.\"},\"addTrustedIssuer(address,uint256[])\":{\"details\":\"See {ITrustedIssuersRegistry-addTrustedIssuer}.\"},\"getTrustedIssuerClaimTopics(address)\":{\"details\":\"See {ITrustedIssuersRegistry-getTrustedIssuerClaimTopics}.\"},\"getTrustedIssuers()\":{\"details\":\"See {ITrustedIssuersRegistry-getTrustedIssuers}.\"},\"getTrustedIssuersForClaimTopic(uint256)\":{\"details\":\"See {ITrustedIssuersRegistry-getTrustedIssuersForClaimTopic}.\"},\"hasClaimTopic(address,uint256)\":{\"details\":\"See {ITrustedIssuersRegistry-hasClaimTopic}.\"},\"isTrustedIssuer(address)\":{\"details\":\"See {ITrustedIssuersRegistry-isTrustedIssuer}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeClaimTopic(uint256)\":{\"details\":\"See {IClaimTopicsRegistry-getClaimTopics}.\"},\"removeTrustedIssuer(address)\":{\"details\":\"See {ITrustedIssuersRegistry-removeTrustedIssuer}.\"},\"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.\"},\"updateIssuerClaimTopics(address,uint256[])\":{\"details\":\"See {ITrustedIssuersRegistry-updateIssuerClaimTopics}.\"},\"verify(address)\":{\"details\":\"Verify an identity (ONCHAINID) by checking if the identity has at least one valid claim from a trusted issuer for each required claim topic. Returns true if the identity is compliant, false otherwise.\"}},\"stateVariables\":{\"claimTopicsToTrustedIssuers\":{\"details\":\"Mapping between a claim topic and the trusted issuers trusted for it.\"},\"requiredClaimTopics\":{\"details\":\"All topics of claims required to pass verification.\"},\"trustedIssuerClaimTopics\":{\"details\":\"Mapping between a trusted issuer address and the topics of claims they are trusted for.\"},\"trustedIssuers\":{\"details\":\"Array containing all TrustedIssuers identity contract address allowed to issue claims required.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ClaimTopicAdded(uint256)\":{\"notice\":\"this event is emitted when a claim topic has been added to the requirement list the event is emitted by the 'addClaimTopic' function `claimTopic` is the required claim topic added\"},\"ClaimTopicRemoved(uint256)\":{\"notice\":\"this event is emitted when a claim topic has been removed from the requirement list the event is emitted by the 'removeClaimTopic' function `claimTopic` is the required claim removed\"},\"ClaimTopicsUpdated(address,uint256[])\":{\"notice\":\"this event is emitted when the set of claim topics is changed for a given trusted issuer. the event is emitted by the updateIssuerClaimTopics function `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract `claimTopics` is the set of claims that the trusted issuer is allowed to emit\"},\"TrustedIssuerAdded(address,uint256[])\":{\"notice\":\"this event is emitted when an issuer is added to the trusted list. the event is emitted by the addTrustedIssuer function `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract `claimTopics` is the set of claims that the trusted issuer is allowed to emit\"},\"TrustedIssuerRemoved(address)\":{\"notice\":\"this event is emitted when an issuer is removed from the trusted list. the event is emitted by the removeTrustedIssuer function `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onchainid/verifiers/Verifier.sol\":\"Verifier\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"contracts/onchainid/verifiers/Verifier.sol\":{\"keccak256\":\"0x6ad583ba0afe21fac995e4bf23270ebbd07763f32551c6d36cc1bb79c2787b51\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403749d9bad7c560c4c682ba205cc235575775aa9f4662765e7a714d9b71ad49\",\"dweb:/ipfs/QmSFzXjrCquLjQAd9DWEVRGs8y6yQ5ZWYiKTgPe1ZAJoeJ\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256","indexed":true}],"type":"event","name":"ClaimTopicAdded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256","indexed":true}],"type":"event","name":"ClaimTopicRemoved","anonymous":false},{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address","indexed":true},{"internalType":"uint256[]","name":"claimTopics","type":"uint256[]","indexed":false}],"type":"event","name":"ClaimTopicsUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address","indexed":true},{"internalType":"uint256[]","name":"claimTopics","type":"uint256[]","indexed":false}],"type":"event","name":"TrustedIssuerAdded","anonymous":false},{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address","indexed":true}],"type":"event","name":"TrustedIssuerRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addClaimTopic"},{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address"},{"internalType":"uint256[]","name":"claimTopics","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"addTrustedIssuer"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"claimTopicsToTrustedIssuers","outputs":[{"internalType":"contract IClaimIssuer","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address"}],"stateMutability":"view","type":"function","name":"getTrustedIssuerClaimTopics","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTrustedIssuers","outputs":[{"internalType":"contract IClaimIssuer[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256"}],"stateMutability":"view","type":"function","name":"getTrustedIssuersForClaimTopic","outputs":[{"internalType":"contract IClaimIssuer[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"issuer","type":"address"},{"internalType":"uint256","name":"claimTopic","type":"uint256"}],"stateMutability":"view","type":"function","name":"hasClaimTopic","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256"}],"stateMutability":"view","type":"function","name":"isClaimTopicRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"issuer","type":"address"}],"stateMutability":"view","type":"function","name":"isTrustedIssuer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeClaimTopic"},{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTrustedIssuer"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"requiredClaimTopics","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"trustedIssuerClaimTopics","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"trustedIssuers","outputs":[{"internalType":"contract IClaimIssuer","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address"},{"internalType":"uint256[]","name":"newClaimTopics","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"updateIssuerClaimTopics"},{"inputs":[{"internalType":"address","name":"identity","type":"address"}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"isVerified","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"addClaimTopic(uint256)":{"details":"See {IClaimTopicsRegistry-removeClaimTopic}."},"addTrustedIssuer(address,uint256[])":{"details":"See {ITrustedIssuersRegistry-addTrustedIssuer}."},"getTrustedIssuerClaimTopics(address)":{"details":"See {ITrustedIssuersRegistry-getTrustedIssuerClaimTopics}."},"getTrustedIssuers()":{"details":"See {ITrustedIssuersRegistry-getTrustedIssuers}."},"getTrustedIssuersForClaimTopic(uint256)":{"details":"See {ITrustedIssuersRegistry-getTrustedIssuersForClaimTopic}."},"hasClaimTopic(address,uint256)":{"details":"See {ITrustedIssuersRegistry-hasClaimTopic}."},"isTrustedIssuer(address)":{"details":"See {ITrustedIssuersRegistry-isTrustedIssuer}."},"owner()":{"details":"Returns the address of the current owner."},"removeClaimTopic(uint256)":{"details":"See {IClaimTopicsRegistry-getClaimTopics}."},"removeTrustedIssuer(address)":{"details":"See {ITrustedIssuersRegistry-removeTrustedIssuer}."},"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."},"updateIssuerClaimTopics(address,uint256[])":{"details":"See {ITrustedIssuersRegistry-updateIssuerClaimTopics}."},"verify(address)":{"details":"Verify an identity (ONCHAINID) by checking if the identity has at least one valid claim from a trusted issuer for each required claim topic. Returns true if the identity is compliant, false otherwise."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onchainid/verifiers/Verifier.sol":"Verifier"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"contracts/onchainid/verifiers/Verifier.sol":{"keccak256":"0x6ad583ba0afe21fac995e4bf23270ebbd07763f32551c6d36cc1bb79c2787b51","urls":["bzz-raw://403749d9bad7c560c4c682ba205cc235575775aa9f4662765e7a714d9b71ad49","dweb:/ipfs/QmSFzXjrCquLjQAd9DWEVRGs8y6yQ5ZWYiKTgPe1ZAJoeJ"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":128} \ No newline at end of file diff --git a/out/VerifierUser.sol/VerifierUser.json b/out/VerifierUser.sol/VerifierUser.json new file mode 100644 index 0000000..4a4269f --- /dev/null +++ b/out/VerifierUser.sol/VerifierUser.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addClaimTopic","inputs":[{"name":"claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addTrustedIssuer","inputs":[{"name":"trustedIssuer","type":"address","internalType":"contract IClaimIssuer"},{"name":"claimTopics","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimTopicsToTrustedIssuers","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"contract IClaimIssuer"}],"stateMutability":"view"},{"type":"function","name":"doSomething","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getTrustedIssuerClaimTopics","inputs":[{"name":"trustedIssuer","type":"address","internalType":"contract IClaimIssuer"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getTrustedIssuers","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"contract IClaimIssuer[]"}],"stateMutability":"view"},{"type":"function","name":"getTrustedIssuersForClaimTopic","inputs":[{"name":"claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"contract IClaimIssuer[]"}],"stateMutability":"view"},{"type":"function","name":"hasClaimTopic","inputs":[{"name":"issuer","type":"address","internalType":"address"},{"name":"claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isClaimTopicRequired","inputs":[{"name":"claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTrustedIssuer","inputs":[{"name":"issuer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeClaimTopic","inputs":[{"name":"claimTopic","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeTrustedIssuer","inputs":[{"name":"trustedIssuer","type":"address","internalType":"contract IClaimIssuer"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requiredClaimTopics","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"trustedIssuerClaimTopics","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"trustedIssuers","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"contract IClaimIssuer"}],"stateMutability":"view"},{"type":"function","name":"updateIssuerClaimTopics","inputs":[{"name":"trustedIssuer","type":"address","internalType":"contract IClaimIssuer"},{"name":"newClaimTopics","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verify","inputs":[{"name":"identity","type":"address","internalType":"address"}],"outputs":[{"name":"isVerified","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"ClaimTopicAdded","inputs":[{"name":"claimTopic","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimTopicRemoved","inputs":[{"name":"claimTopic","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimTopicsUpdated","inputs":[{"name":"trustedIssuer","type":"address","indexed":true,"internalType":"contract IClaimIssuer"},{"name":"claimTopics","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TrustedIssuerAdded","inputs":[{"name":"trustedIssuer","type":"address","indexed":true,"internalType":"contract IClaimIssuer"},{"name":"claimTopics","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TrustedIssuerRemoved","inputs":[{"name":"trustedIssuer","type":"address","indexed":true,"internalType":"contract IClaimIssuer"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611d62806100a56000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063b5fa8693116100ad578063c7b2255111610071578063c7b2255114610289578063c801dd401461029c578063d9dd24c5146102af578063ef2ed1a4146102b7578063f2fde38b146102ca57600080fd5b8063b5fa86931461020f578063b93d28eb14610230578063ba64c34114610243578063be36359f14610256578063c28fb2781461026957600080fd5b8063715018a6116100f4578063715018a6146101b457806382692679146101bc5780638da5cb5b146101c457806393e9f801146101e95780639f63ea98146101fc57600080fd5b806304bc7e8414610131578063082978461461014657806334a899871461015957806352c111d11461018157806363a9c3d7146101a1575b600080fd5b61014461013f366004611791565b6102dd565b005b610144610154366004611819565b61065c565b61016c610167366004611832565b610742565b60405190151581526020015b60405180910390f35b61019461018f366004611819565b6107f7565b604051610178919061185e565b61016c6101af3660046118ab565b610863565b610144610c39565b610144610c4d565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610178565b6101d16101f73660046118cf565b610c9b565b61014461020a366004611791565b610cd3565b61022261021d366004611819565b610f52565b604051908152602001610178565b61014461023e3660046118ab565b610f73565b610222610251366004611832565b6112f5565b61016c610264366004611819565b611326565b61027c6102773660046118ab565b611376565b60405161017891906118f1565b610144610297366004611819565b611448565b6101d16102aa366004611819565b61158d565b6101946115b7565b61016c6102c53660046118ab565b611619565b6101446102d83660046118ab565b611647565b6102e5611685565b6001600160a01b0383166103145760405162461bcd60e51b815260040161030b90611929565b60405180910390fd5b6001600160a01b03831660009081526003602052604081205490036103725760405162461bcd60e51b81526020600482015260146024820152732727aa1030903a393ab9ba32b21034b9b9bab2b960611b604482015260640161030b565b600f8111156103935760405162461bcd60e51b815260040161030b90611960565b806103e05760405162461bcd60e51b815260206004820152601c60248201527f636c61696d20746f706963732063616e6e6f7420626520656d70747900000000604482015260640161030b565b60005b6001600160a01b03841660009081526003602052604090205481101561057f576001600160a01b038416600090815260036020526040812080548390811061042d5761042d6119a5565b600091825260208083209091015480835260049091526040822054909250905b8181101561057457600083815260046020526040902080546001600160a01b038916919083908110610481576104816119a5565b6000918252602090912001546001600160a01b03160361056c5760008381526004602052604090206104b46001846119d1565b815481106104c4576104c46119a5565b60009182526020808320909101548583526004909152604090912080546001600160a01b0390921691839081106104fd576104fd6119a5565b600091825260208083209190910180546001600160a01b0319166001600160a01b039490941693909317909255848152600490915260409020805480610545576105456119e4565b600082815260209020810160001990810180546001600160a01b0319169055019055610574565b60010161044d565b5050506001016103e3565b506001600160a01b03831660009081526003602052604090206105a3908383611702565b5060005b8181101561061357600460008484848181106105c5576105c56119a5565b602090810292909201358352508181019290925260400160009081208054600180820183559183529290912090910180546001600160a01b0319166001600160a01b038716179055016105a7565b50826001600160a01b03167fec753cfc52044f61676f18a11e500093a9f2b1cd5e4942bc476f2b0438159bcf838360405161064f9291906119fa565b60405180910390a2505050565b610664611685565b60015460005b8181101561073d578260018281548110610686576106866119a5565b9060005260206000200154036107355760016106a281846119d1565b815481106106b2576106b26119a5565b9060005260206000200154600182815481106106d0576106d06119a5565b60009182526020909120015560018054806106ed576106ed6119e4565b60019003818190600052602060002001600090559055827f0b1381093c776453c1bbe54fd68be1b235c65db61d099cb50d194b2991e0eec560405160405180910390a2505050565b60010161066a565b505050565b6001600160a01b03821660009081526003602090815260408083208054825181850281018501909352808352849383018282801561079f57602002820191906000526020600020905b81548152602001906001019080831161078b575b505083519394506000925050505b818110156107e957848382815181106107c8576107c86119a5565b6020026020010151036107e157600193505050506107f1565b6001016107ad565b506000925050505b92915050565b60008181526004602090815260409182902080548351818402810184019094528084526060939283018282801561085757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610839575b50505050509050919050565b600154600090810361087757506001919050565b600080600060608060005b600154811015610c2b576000306001600160a01b03166352c111d1600184815481106108b0576108b06119a5565b90600052602060002001546040518263ffffffff1660e01b81526004016108d991815260200190565b600060405180830381865afa1580156108f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261091e9190810190611a7a565b905080516000036109385750600098975050505050505050565b6000815167ffffffffffffffff81111561095457610954611a33565b60405190808252806020026020018201604052801561097d578160200160208202803683370190505b50905060005b8251811015610a245782818151811061099e5761099e6119a5565b6020026020010151600185815481106109b9576109b96119a5565b90600052602060002001546040516020016109e99291906001600160a01b03929092168252602082015260400190565b60405160208183030381529060405280519060200120828281518110610a1157610a116119a5565b6020908102919091010152600101610983565b5060005b8151811015610c20578a6001600160a01b031663c9100bcb838381518110610a5257610a526119a5565b60200260200101516040518263ffffffff1660e01b8152600401610a7891815260200190565b600060405180830381865afa158015610a95573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610abd9190810190611bbf565b5060018054959e50939c50919a50985096509085908110610ae057610ae06119a5565b90600052602060002001548903610be957866001600160a01b031663c0969a6e8c60018781548110610b1457610b146119a5565b906000526020600020015489896040518563ffffffff1660e01b8152600401610b409493929190611cad565b602060405180830381865afa925050508015610b79575060408051601f3d908101601f19168201909252610b7691810190611cf1565b60015b610ba75760018251610b8b91906119d1565b8103610ba2575060009a9950505050505050505050565b610c0e565b8015610bb257825191505b80158015610bcc575060018351610bc991906119d1565b82145b15610be3575060009b9a5050505050505050505050565b50610c0e565b60018251610bf791906119d1565b8103610c0e575060009a9950505050505050505050565b80610c1881611d13565b915050610a28565b505050600101610882565b506001979650505050505050565b610c41611685565b610c4b60006116b2565b565b610c5633610863565b610c4b5760405162461bcd60e51b81526020600482015260166024820152751cd95b99195c881a5cc81b9bdd081d995c9a599a595960521b604482015260640161030b565b60046020528160005260406000208181548110610cb757600080fd5b6000918252602090912001546001600160a01b03169150829050565b610cdb611685565b6001600160a01b038316610d015760405162461bcd60e51b815260040161030b90611929565b6001600160a01b03831660009081526003602052604090205415610d675760405162461bcd60e51b815260206004820152601d60248201527f747275737465642049737375657220616c726561647920657869737473000000604482015260640161030b565b80610dc05760405162461bcd60e51b8152602060048201526024808201527f7472757374656420636c61696d20746f706963732063616e6e6f7420626520656044820152636d70747960e01b606482015260840161030b565b600f811115610de15760405162461bcd60e51b815260040161030b90611960565b600254603211610e445760405162461bcd60e51b815260206004820152602860248201527f63616e6e6f742068617665206d6f7265207468616e2035302074727573746564604482015267206973737565727360c01b606482015260840161030b565b60028054600181019091557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0385169081179091556000908152600360205260409020610ea6908383611702565b5060005b81811015610f165760046000848484818110610ec857610ec86119a5565b602090810292909201358352508181019290925260400160009081208054600180820183559183529290912090910180546001600160a01b0319166001600160a01b03871617905501610eaa565b50826001600160a01b03167ffedc33fd34859594822c0ff6f3f4f9fc279cc6d5cae53068f706a088e4500872838360405161064f9291906119fa565b60018181548110610f6257600080fd5b600091825260209091200154905081565b610f7b611685565b6001600160a01b038116610fa15760405162461bcd60e51b815260040161030b90611929565b6001600160a01b0381166000908152600360205260408120549003610fff5760405162461bcd60e51b81526020600482015260146024820152732727aa1030903a393ab9ba32b21034b9b9bab2b960611b604482015260640161030b565b60025460005b818110156110fb57826001600160a01b03166002828154811061102a5761102a6119a5565b6000918252602090912001546001600160a01b0316036110f35760026110516001846119d1565b81548110611061576110616119a5565b600091825260209091200154600280546001600160a01b03909216918390811061108d5761108d6119a5565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060028054806110cc576110cc6119e4565b600082815260209020810160001990810180546001600160a01b03191690550190556110fb565b600101611005565b5060005b6001600160a01b03831660009081526003602052604090205481101561129b576001600160a01b0383166000908152600360205260408120805483908110611149576111496119a5565b600091825260208083209091015480835260049091526040822054909250905b8181101561129057600083815260046020526040902080546001600160a01b03881691908390811061119d5761119d6119a5565b6000918252602090912001546001600160a01b0316036112885760008381526004602052604090206111d06001846119d1565b815481106111e0576111e06119a5565b60009182526020808320909101548583526004909152604090912080546001600160a01b039092169183908110611219576112196119a5565b600091825260208083209190910180546001600160a01b0319166001600160a01b039490941693909317909255848152600490915260409020805480611261576112616119e4565b600082815260209020810160001990810180546001600160a01b0319169055019055611290565b600101611169565b5050506001016110ff565b506001600160a01b03821660009081526003602052604081206112bd9161174d565b6040516001600160a01b038316907f2214ded40113cc3fb63fc206cafee88270b0a903dac7245d54efdde30ebb032190600090a25050565b6003602052816000526040600020818154811061131157600080fd5b90600052602060002001600091509150505481565b600154600090815b8181101561136c57836001828154811061134a5761134a6119a5565b906000526020600020015403611364575060019392505050565b60010161132e565b5060009392505050565b6001600160a01b038116600090815260036020526040812054606091036113df5760405162461bcd60e51b815260206004820152601c60248201527f747275737465642049737375657220646f65736e277420657869737400000000604482015260640161030b565b6001600160a01b0382166000908152600360209081526040918290208054835181840281018401909452808452909183018282801561085757602002820191906000526020600020905b8154815260200190600101908083116114295750505050509050919050565b611450611685565b600154600f81106114ae5760405162461bcd60e51b815260206004820152602260248201527f63616e6e6f742072657175697265206d6f7265207468616e20313520746f7069604482015261637360f01b606482015260840161030b565b60005b8181101561152d5782600182815481106114cd576114cd6119a5565b9060005260206000200154036115255760405162461bcd60e51b815260206004820152601960248201527f636c61696d546f70696320616c72656164792065786973747300000000000000604482015260640161030b565b6001016114b1565b5060018054808201825560009182527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60183905560405183917f01c928b7f7ade2949e92366aa9454dbef3a416b731cf6ec786ba9595bbd814d691a25050565b6002818154811061159d57600080fd5b6000918252602090912001546001600160a01b0316905081565b6060600280548060200260200160405190810160405280929190818152602001828054801561160f57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116115f1575b5050505050905090565b6001600160a01b0381166000908152600360205260408120541561163f57506001919050565b506000919050565b61164f611685565b6001600160a01b03811661167957604051631e4fbdf760e01b81526000600482015260240161030b565b611682816116b2565b50565b6000546001600160a01b03163314610c4b5760405163118cdaa760e01b815233600482015260240161030b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82805482825590600052602060002090810192821561173d579160200282015b8281111561173d578235825591602001919060010190611722565b50611749929150611767565b5090565b508054600082559060005260206000209081019061168291905b5b808211156117495760008155600101611768565b6001600160a01b038116811461168257600080fd5b6000806000604084860312156117a657600080fd5b83356117b18161177c565b9250602084013567ffffffffffffffff808211156117ce57600080fd5b818601915086601f8301126117e257600080fd5b8135818111156117f157600080fd5b8760208260051b850101111561180657600080fd5b6020830194508093505050509250925092565b60006020828403121561182b57600080fd5b5035919050565b6000806040838503121561184557600080fd5b82356118508161177c565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561189f5783516001600160a01b03168352928401929184019160010161187a565b50909695505050505050565b6000602082840312156118bd57600080fd5b81356118c88161177c565b9392505050565b600080604083850312156118e257600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b8181101561189f5783518352928401929184019160010161190d565b6020808252601f908201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604082015260600190565b60208082526025908201527f63616e6e6f742068617665206d6f7265207468616e20313520636c61696d20746040820152646f7069637360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156107f1576107f16119bb565b634e487b7160e01b600052603160045260246000fd5b6020808252810182905260006001600160fb1b03831115611a1a57600080fd5b8260051b80856040850137919091016040019392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611a7257611a72611a33565b604052919050565b60006020808385031215611a8d57600080fd5b825167ffffffffffffffff80821115611aa557600080fd5b818501915085601f830112611ab957600080fd5b815181811115611acb57611acb611a33565b8060051b9150611adc848301611a49565b8181529183018401918481019088841115611af657600080fd5b938501935b83851015611b205784519250611b108361177c565b8282529385019390850190611afb565b98975050505050505050565b60005b83811015611b47578181015183820152602001611b2f565b50506000910152565b600067ffffffffffffffff831115611b6a57611b6a611a33565b611b7d601f8401601f1916602001611a49565b9050828152838383011115611b9157600080fd5b6118c8836020830184611b2c565b600082601f830112611bb057600080fd5b6118c883835160208501611b50565b60008060008060008060c08789031215611bd857600080fd5b86519550602087015194506040870151611bf18161177c565b606088015190945067ffffffffffffffff80821115611c0f57600080fd5b611c1b8a838b01611b9f565b94506080890151915080821115611c3157600080fd5b611c3d8a838b01611b9f565b935060a0890151915080821115611c5357600080fd5b508701601f81018913611c6557600080fd5b611c7489825160208401611b50565b9150509295509295509295565b60008151808452611c99816020860160208601611b2c565b601f01601f19169290920160200192915050565b60018060a01b0385168152836020820152608060408201526000611cd46080830185611c81565b8281036060840152611ce68185611c81565b979650505050505050565b600060208284031215611d0357600080fd5b815180151581146118c857600080fd5b600060018201611d2557611d256119bb565b506001019056fea264697066735822122066b8c636d3fea79d1059bfb81b3eae64a4d35f3f21fe0f0e66ee185ba0c63f1264736f6c63430008180033","sourceMap":"121:126:115:-:0;;;161:27;;;;;;;;;-1:-1:-1;2646:10:128;;1269:95:141;;1322:31;;-1:-1:-1;;;1322:31:141;;1350:1;1322:31;;;160:51:165;133:18;;1322:31:141;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;121:126:115;;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:165:-;121:126:115;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063b5fa8693116100ad578063c7b2255111610071578063c7b2255114610289578063c801dd401461029c578063d9dd24c5146102af578063ef2ed1a4146102b7578063f2fde38b146102ca57600080fd5b8063b5fa86931461020f578063b93d28eb14610230578063ba64c34114610243578063be36359f14610256578063c28fb2781461026957600080fd5b8063715018a6116100f4578063715018a6146101b457806382692679146101bc5780638da5cb5b146101c457806393e9f801146101e95780639f63ea98146101fc57600080fd5b806304bc7e8414610131578063082978461461014657806334a899871461015957806352c111d11461018157806363a9c3d7146101a1575b600080fd5b61014461013f366004611791565b6102dd565b005b610144610154366004611819565b61065c565b61016c610167366004611832565b610742565b60405190151581526020015b60405180910390f35b61019461018f366004611819565b6107f7565b604051610178919061185e565b61016c6101af3660046118ab565b610863565b610144610c39565b610144610c4d565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610178565b6101d16101f73660046118cf565b610c9b565b61014461020a366004611791565b610cd3565b61022261021d366004611819565b610f52565b604051908152602001610178565b61014461023e3660046118ab565b610f73565b610222610251366004611832565b6112f5565b61016c610264366004611819565b611326565b61027c6102773660046118ab565b611376565b60405161017891906118f1565b610144610297366004611819565b611448565b6101d16102aa366004611819565b61158d565b6101946115b7565b61016c6102c53660046118ab565b611619565b6101446102d83660046118ab565b611647565b6102e5611685565b6001600160a01b0383166103145760405162461bcd60e51b815260040161030b90611929565b60405180910390fd5b6001600160a01b03831660009081526003602052604081205490036103725760405162461bcd60e51b81526020600482015260146024820152732727aa1030903a393ab9ba32b21034b9b9bab2b960611b604482015260640161030b565b600f8111156103935760405162461bcd60e51b815260040161030b90611960565b806103e05760405162461bcd60e51b815260206004820152601c60248201527f636c61696d20746f706963732063616e6e6f7420626520656d70747900000000604482015260640161030b565b60005b6001600160a01b03841660009081526003602052604090205481101561057f576001600160a01b038416600090815260036020526040812080548390811061042d5761042d6119a5565b600091825260208083209091015480835260049091526040822054909250905b8181101561057457600083815260046020526040902080546001600160a01b038916919083908110610481576104816119a5565b6000918252602090912001546001600160a01b03160361056c5760008381526004602052604090206104b46001846119d1565b815481106104c4576104c46119a5565b60009182526020808320909101548583526004909152604090912080546001600160a01b0390921691839081106104fd576104fd6119a5565b600091825260208083209190910180546001600160a01b0319166001600160a01b039490941693909317909255848152600490915260409020805480610545576105456119e4565b600082815260209020810160001990810180546001600160a01b0319169055019055610574565b60010161044d565b5050506001016103e3565b506001600160a01b03831660009081526003602052604090206105a3908383611702565b5060005b8181101561061357600460008484848181106105c5576105c56119a5565b602090810292909201358352508181019290925260400160009081208054600180820183559183529290912090910180546001600160a01b0319166001600160a01b038716179055016105a7565b50826001600160a01b03167fec753cfc52044f61676f18a11e500093a9f2b1cd5e4942bc476f2b0438159bcf838360405161064f9291906119fa565b60405180910390a2505050565b610664611685565b60015460005b8181101561073d578260018281548110610686576106866119a5565b9060005260206000200154036107355760016106a281846119d1565b815481106106b2576106b26119a5565b9060005260206000200154600182815481106106d0576106d06119a5565b60009182526020909120015560018054806106ed576106ed6119e4565b60019003818190600052602060002001600090559055827f0b1381093c776453c1bbe54fd68be1b235c65db61d099cb50d194b2991e0eec560405160405180910390a2505050565b60010161066a565b505050565b6001600160a01b03821660009081526003602090815260408083208054825181850281018501909352808352849383018282801561079f57602002820191906000526020600020905b81548152602001906001019080831161078b575b505083519394506000925050505b818110156107e957848382815181106107c8576107c86119a5565b6020026020010151036107e157600193505050506107f1565b6001016107ad565b506000925050505b92915050565b60008181526004602090815260409182902080548351818402810184019094528084526060939283018282801561085757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610839575b50505050509050919050565b600154600090810361087757506001919050565b600080600060608060005b600154811015610c2b576000306001600160a01b03166352c111d1600184815481106108b0576108b06119a5565b90600052602060002001546040518263ffffffff1660e01b81526004016108d991815260200190565b600060405180830381865afa1580156108f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261091e9190810190611a7a565b905080516000036109385750600098975050505050505050565b6000815167ffffffffffffffff81111561095457610954611a33565b60405190808252806020026020018201604052801561097d578160200160208202803683370190505b50905060005b8251811015610a245782818151811061099e5761099e6119a5565b6020026020010151600185815481106109b9576109b96119a5565b90600052602060002001546040516020016109e99291906001600160a01b03929092168252602082015260400190565b60405160208183030381529060405280519060200120828281518110610a1157610a116119a5565b6020908102919091010152600101610983565b5060005b8151811015610c20578a6001600160a01b031663c9100bcb838381518110610a5257610a526119a5565b60200260200101516040518263ffffffff1660e01b8152600401610a7891815260200190565b600060405180830381865afa158015610a95573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610abd9190810190611bbf565b5060018054959e50939c50919a50985096509085908110610ae057610ae06119a5565b90600052602060002001548903610be957866001600160a01b031663c0969a6e8c60018781548110610b1457610b146119a5565b906000526020600020015489896040518563ffffffff1660e01b8152600401610b409493929190611cad565b602060405180830381865afa925050508015610b79575060408051601f3d908101601f19168201909252610b7691810190611cf1565b60015b610ba75760018251610b8b91906119d1565b8103610ba2575060009a9950505050505050505050565b610c0e565b8015610bb257825191505b80158015610bcc575060018351610bc991906119d1565b82145b15610be3575060009b9a5050505050505050505050565b50610c0e565b60018251610bf791906119d1565b8103610c0e575060009a9950505050505050505050565b80610c1881611d13565b915050610a28565b505050600101610882565b506001979650505050505050565b610c41611685565b610c4b60006116b2565b565b610c5633610863565b610c4b5760405162461bcd60e51b81526020600482015260166024820152751cd95b99195c881a5cc81b9bdd081d995c9a599a595960521b604482015260640161030b565b60046020528160005260406000208181548110610cb757600080fd5b6000918252602090912001546001600160a01b03169150829050565b610cdb611685565b6001600160a01b038316610d015760405162461bcd60e51b815260040161030b90611929565b6001600160a01b03831660009081526003602052604090205415610d675760405162461bcd60e51b815260206004820152601d60248201527f747275737465642049737375657220616c726561647920657869737473000000604482015260640161030b565b80610dc05760405162461bcd60e51b8152602060048201526024808201527f7472757374656420636c61696d20746f706963732063616e6e6f7420626520656044820152636d70747960e01b606482015260840161030b565b600f811115610de15760405162461bcd60e51b815260040161030b90611960565b600254603211610e445760405162461bcd60e51b815260206004820152602860248201527f63616e6e6f742068617665206d6f7265207468616e2035302074727573746564604482015267206973737565727360c01b606482015260840161030b565b60028054600181019091557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0385169081179091556000908152600360205260409020610ea6908383611702565b5060005b81811015610f165760046000848484818110610ec857610ec86119a5565b602090810292909201358352508181019290925260400160009081208054600180820183559183529290912090910180546001600160a01b0319166001600160a01b03871617905501610eaa565b50826001600160a01b03167ffedc33fd34859594822c0ff6f3f4f9fc279cc6d5cae53068f706a088e4500872838360405161064f9291906119fa565b60018181548110610f6257600080fd5b600091825260209091200154905081565b610f7b611685565b6001600160a01b038116610fa15760405162461bcd60e51b815260040161030b90611929565b6001600160a01b0381166000908152600360205260408120549003610fff5760405162461bcd60e51b81526020600482015260146024820152732727aa1030903a393ab9ba32b21034b9b9bab2b960611b604482015260640161030b565b60025460005b818110156110fb57826001600160a01b03166002828154811061102a5761102a6119a5565b6000918252602090912001546001600160a01b0316036110f35760026110516001846119d1565b81548110611061576110616119a5565b600091825260209091200154600280546001600160a01b03909216918390811061108d5761108d6119a5565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060028054806110cc576110cc6119e4565b600082815260209020810160001990810180546001600160a01b03191690550190556110fb565b600101611005565b5060005b6001600160a01b03831660009081526003602052604090205481101561129b576001600160a01b0383166000908152600360205260408120805483908110611149576111496119a5565b600091825260208083209091015480835260049091526040822054909250905b8181101561129057600083815260046020526040902080546001600160a01b03881691908390811061119d5761119d6119a5565b6000918252602090912001546001600160a01b0316036112885760008381526004602052604090206111d06001846119d1565b815481106111e0576111e06119a5565b60009182526020808320909101548583526004909152604090912080546001600160a01b039092169183908110611219576112196119a5565b600091825260208083209190910180546001600160a01b0319166001600160a01b039490941693909317909255848152600490915260409020805480611261576112616119e4565b600082815260209020810160001990810180546001600160a01b0319169055019055611290565b600101611169565b5050506001016110ff565b506001600160a01b03821660009081526003602052604081206112bd9161174d565b6040516001600160a01b038316907f2214ded40113cc3fb63fc206cafee88270b0a903dac7245d54efdde30ebb032190600090a25050565b6003602052816000526040600020818154811061131157600080fd5b90600052602060002001600091509150505481565b600154600090815b8181101561136c57836001828154811061134a5761134a6119a5565b906000526020600020015403611364575060019392505050565b60010161132e565b5060009392505050565b6001600160a01b038116600090815260036020526040812054606091036113df5760405162461bcd60e51b815260206004820152601c60248201527f747275737465642049737375657220646f65736e277420657869737400000000604482015260640161030b565b6001600160a01b0382166000908152600360209081526040918290208054835181840281018401909452808452909183018282801561085757602002820191906000526020600020905b8154815260200190600101908083116114295750505050509050919050565b611450611685565b600154600f81106114ae5760405162461bcd60e51b815260206004820152602260248201527f63616e6e6f742072657175697265206d6f7265207468616e20313520746f7069604482015261637360f01b606482015260840161030b565b60005b8181101561152d5782600182815481106114cd576114cd6119a5565b9060005260206000200154036115255760405162461bcd60e51b815260206004820152601960248201527f636c61696d546f70696320616c72656164792065786973747300000000000000604482015260640161030b565b6001016114b1565b5060018054808201825560009182527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60183905560405183917f01c928b7f7ade2949e92366aa9454dbef3a416b731cf6ec786ba9595bbd814d691a25050565b6002818154811061159d57600080fd5b6000918252602090912001546001600160a01b0316905081565b6060600280548060200260200160405190810160405280929190818152602001828054801561160f57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116115f1575b5050505050905090565b6001600160a01b0381166000908152600360205260408120541561163f57506001919050565b506000919050565b61164f611685565b6001600160a01b03811661167957604051631e4fbdf760e01b81526000600482015260240161030b565b611682816116b2565b50565b6000546001600160a01b03163314610c4b5760405163118cdaa760e01b815233600482015260240161030b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82805482825590600052602060002090810192821561173d579160200282015b8281111561173d578235825591602001919060010190611722565b50611749929150611767565b5090565b508054600082559060005260206000209081019061168291905b5b808211156117495760008155600101611768565b6001600160a01b038116811461168257600080fd5b6000806000604084860312156117a657600080fd5b83356117b18161177c565b9250602084013567ffffffffffffffff808211156117ce57600080fd5b818601915086601f8301126117e257600080fd5b8135818111156117f157600080fd5b8760208260051b850101111561180657600080fd5b6020830194508093505050509250925092565b60006020828403121561182b57600080fd5b5035919050565b6000806040838503121561184557600080fd5b82356118508161177c565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561189f5783516001600160a01b03168352928401929184019160010161187a565b50909695505050505050565b6000602082840312156118bd57600080fd5b81356118c88161177c565b9392505050565b600080604083850312156118e257600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b8181101561189f5783518352928401929184019160010161190d565b6020808252601f908201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604082015260600190565b60208082526025908201527f63616e6e6f742068617665206d6f7265207468616e20313520636c61696d20746040820152646f7069637360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156107f1576107f16119bb565b634e487b7160e01b600052603160045260246000fd5b6020808252810182905260006001600160fb1b03831115611a1a57600080fd5b8260051b80856040850137919091016040019392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611a7257611a72611a33565b604052919050565b60006020808385031215611a8d57600080fd5b825167ffffffffffffffff80821115611aa557600080fd5b818501915085601f830112611ab957600080fd5b815181811115611acb57611acb611a33565b8060051b9150611adc848301611a49565b8181529183018401918481019088841115611af657600080fd5b938501935b83851015611b205784519250611b108361177c565b8282529385019390850190611afb565b98975050505050505050565b60005b83811015611b47578181015183820152602001611b2f565b50506000910152565b600067ffffffffffffffff831115611b6a57611b6a611a33565b611b7d601f8401601f1916602001611a49565b9050828152838383011115611b9157600080fd5b6118c8836020830184611b2c565b600082601f830112611bb057600080fd5b6118c883835160208501611b50565b60008060008060008060c08789031215611bd857600080fd5b86519550602087015194506040870151611bf18161177c565b606088015190945067ffffffffffffffff80821115611c0f57600080fd5b611c1b8a838b01611b9f565b94506080890151915080821115611c3157600080fd5b611c3d8a838b01611b9f565b935060a0890151915080821115611c5357600080fd5b508701601f81018913611c6557600080fd5b611c7489825160208401611b50565b9150509295509295509295565b60008151808452611c99816020860160208601611b2c565b601f01601f19169290920160200192915050565b60018060a01b0385168152836020820152608060408201526000611cd46080830185611c81565b8281036060840152611ce68185611c81565b979650505050505050565b600060208284031215611d0357600080fd5b815180151581146118c857600080fd5b600060018201611d2557611d256119bb565b506001019056fea264697066735822122066b8c636d3fea79d1059bfb81b3eae64a4d35f3f21fe0f0e66ee185ba0c63f1264736f6c63430008180033","sourceMap":"121:126:115:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6314:1473:128;;;;;;:::i;:::-;;:::i;:::-;;3239:442;;;;;;:::i;:::-;;:::i;8980:381::-;;;;;;:::i;:::-;;:::i;:::-;;;1639:14:165;;1632:22;1614:41;;1602:2;1587:18;8980:381:128;;;;;;;;8079:167;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;9926:2043::-;;;;;;:::i;:::-;;:::i;2293:101:141:-;;;:::i;194:51:115:-;;;:::i;1638:85:141:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;1638:85;;;-1:-1:-1;;;;;2781:32:165;;;2763:51;;2751:2;2736:18;1638:85:141;2617:203:165;703:69:128;;;;;;:::i;:::-;;:::i;3764:889::-;;;;;;:::i;:::-;;:::i;256:36::-;;;;;;:::i;:::-;;:::i;:::-;;;3454:25:165;;;3442:2;3427:18;256:36:128;3308:177:165;4739:1485:128;;;;;;:::i;:::-;;:::i;552:61::-;;;;;;:::i;:::-;;:::i;9367:317::-;;;;;;:::i;:::-;;:::i;8612:288::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2740:421::-;;;;;;:::i;:::-;;:::i;408:36::-;;;;;;:::i;:::-;;:::i;7871:111::-;;;:::i;8328:190::-;;;;;;:::i;:::-;;:::i;2543:215:141:-;;;;;;:::i;:::-;;:::i;6314:1473:128:-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;6445:36:128;::::1;6437:80;;;;-1:-1:-1::0;;;6437:80:128::1;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1::0;;;;;6535:48:128;::::1;;::::0;;;:24:::1;:48;::::0;;;;:55;:60;;6527:93:::1;;;::::0;-1:-1:-1;;;6527:93:128;;4977:2:165;6527:93:128::1;::::0;::::1;4959:21:165::0;5016:2;4996:18;;;4989:30;-1:-1:-1;;;5035:18:165;;;5028:50;5095:18;;6527:93:128::1;4775:344:165::0;6527:93:128::1;6663:2;6638:27:::0;::::1;;6630:77;;;;-1:-1:-1::0;;;6630:77:128::1;;;;;;;:::i;:::-;6725:25:::0;6717:66:::1;;;::::0;-1:-1:-1;;;6717:66:128;;5732:2:165;6717:66:128::1;::::0;::::1;5714:21:165::0;5771:2;5751:18;;;5744:30;5810;5790:18;;;5783:58;5858:18;;6717:66:128::1;5530:352:165::0;6717:66:128::1;6799:9;6794:696;-1:-1:-1::0;;;;;6818:48:128;::::1;;::::0;;;:24:::1;:48;::::0;;;;:55;6814:59;::::1;6794:696;;;-1:-1:-1::0;;;;;6915:48:128;::::1;6894:18;6915:48:::0;;;:24:::1;:48;::::0;;;;:51;;6964:1;;6915:51;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;7003:39;;;:27:::1;:39:::0;;;;;;:46;6915:51;;-1:-1:-1;7003:46:128;7063:417:::1;7087:12;7083:1;:16;7063:417;;;7128:39;::::0;;;:27:::1;:39;::::0;;;;:42;;-1:-1:-1;;;;;7128:59:128;::::1;::::0;:39;7168:1;;7128:42;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;7128:42:128::1;:59:::0;7124:342:::1;;7296:39;::::0;;;:27:::1;:39;::::0;;;;7336:16:::1;7351:1;7336:12:::0;:16:::1;:::i;:::-;7296:57;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;7211:39;;;:27:::1;:39:::0;;;;;;;:42;;-1:-1:-1;;;;;7296:57:128;;::::1;::::0;7251:1;;7211:42;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:142:::0;;-1:-1:-1;;;;;;7211:142:128::1;-1:-1:-1::0;;;;;7211:142:128;;;::::1;::::0;;;::::1;::::0;;;7375:39;;;:27:::1;:39:::0;;;;;;:45;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;7375:45:128;;;;;-1:-1:-1;;;;;;7375:45:128::1;::::0;;;;;7442:5:::1;;7124:342;7101:3;;7063:417;;;-1:-1:-1::0;;;6875:3:128::1;;6794:696;;;-1:-1:-1::0;;;;;;7499:48:128;::::1;;::::0;;;:24:::1;:48;::::0;;;;:65:::1;::::0;7550:14;;7499:65:::1;:::i;:::-;;7579:9;7574:143;7594:25:::0;;::::1;7574:143;;;7640:27;:46;7668:14;;7683:1;7668:17;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;7640:46:::0;;-1:-1:-1;7640:46:128;;::::1;::::0;;;;;;-1:-1:-1;7640:46:128;;;:66;;::::1;::::0;;::::1;::::0;;;;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;7640:66:128::1;-1:-1:-1::0;;;;;7640:66:128;::::1;;::::0;;7621:3:::1;7574:143;;;;7750:13;-1:-1:-1::0;;;;;7731:49:128::1;;7765:14;;7731:49;;;;;;;:::i;:::-;;;;;;;;6314:1473:::0;;;:::o;3239:442::-;1531:13:141;:11;:13::i;:::-;3329:19:128::1;:26:::0;3312:14:::1;3365:310;3389:6;3385:1;:10;3365:310;;;3446:10;3420:19;3440:1;3420:22;;;;;;;;:::i;:::-;;;;;;;;;:36:::0;3416:249:::1;;3501:19;3521:10;3501:19:::0;3521:6;:10:::1;:::i;:::-;3501:31;;;;;;;;:::i;:::-;;;;;;;;;3476:19;3496:1;3476:22;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;:56:::0;3550:19:::1;:25:::0;;;::::1;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3616:10;3598:29;;;;;;;;;;3365:310;3302:379;3239:442:::0;:::o;3416:249::-:1;3397:3;;3365:310;;;;3302:379;3239:442:::0;:::o;8980:381::-;-1:-1:-1;;;;;9107:32:128;;9060:4;9107:32;;;:24;:32;;;;;;;;9076:63;;;;;;;;;;;;;;;;;9060:4;;9076:63;;9107:32;9076:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9166:18:128;;9076:63;;-1:-1:-1;9149:14:128;;-1:-1:-1;;;9194:139:128;9218:6;9214:1;:10;9194:139;;;9267:10;9249:11;9261:1;9249:14;;;;;;;;:::i;:::-;;;;;;;:28;9245:78;;9304:4;9297:11;;;;;;;9245:78;9226:3;;9194:139;;;;9349:5;9342:12;;;;8980:381;;;;;:::o;8079:167::-;8200:39;;;;:27;:39;;;;;;;;;8193:46;;;;;;;;;;;;;;;;;8160:21;;8193:46;;;8200:39;8193:46;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8193:46:128;;;;;;;;;;;;;;;;;;;;;;;8079:167;;;:::o;9926:2043::-;10011:19;:26;9980:15;;10011:31;;10007:73;;-1:-1:-1;10065:4:128;;9926:2043;-1:-1:-1;9926:2043:128:o;10007:73::-;10090:23;10123:14;10147;10171:16;10197:17;10224:18;10252:1689;10286:19;:26;10273:39;;10252:1689;;;10342:49;10426:4;-1:-1:-1;;;;;10426:35:128;;10462:19;10482:10;10462:31;;;;;;;;:::i;:::-;;;;;;;;;10426:68;;;;;;;;;;;;;3454:25:165;;3442:2;3427:18;;3308:177;10426:68:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10426:68:128;;;;;;;;;;;;:::i;:::-;10342:152;;10513:27;:34;10551:1;10513:39;10509:90;;-1:-1:-1;10579:5:128;;9926:2043;-1:-1:-1;;;;;;;;9926:2043:128:o;10509:90::-;10613:25;10655:27;:34;10641:49;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10641:49:128;;10613:77;;10709:9;10704:198;10728:27;:34;10724:1;:38;10704:198;;;10822:27;10850:1;10822:30;;;;;;;;:::i;:::-;;;;;;;10854:19;10874:10;10854:31;;;;;;;;:::i;:::-;;;;;;;;;10811:75;;;;;;;;-1:-1:-1;;;;;8542:32:165;;;;8524:51;;8606:2;8591:18;;8584:34;8512:2;8497:18;;8328:296;10811:75:128;;;;;;;;;;;;;10801:86;;;;;;10787:8;10796:1;10787:11;;;;;;;;:::i;:::-;;;;;;;;;;:100;10764:3;;10704:198;;;;10921:9;10916:1015;10940:8;:15;10936:1;:19;10916:1015;;;11039:8;-1:-1:-1;;;;;11029:28:128;;11058:8;11067:1;11058:11;;;;;;;;:::i;:::-;;;;;;;11029:41;;;;;;;;;;;;;3454:25:165;;3442:2;3427:18;;3308:177;11029:41:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11029:41:128;;;;;;;;;;;;:::i;:::-;-1:-1:-1;11112:19:128;:31;;10980:90;;-1:-1:-1;10980:90:128;;-1:-1:-1;10980:90:128;;-1:-1:-1;10980:90:128;-1:-1:-1;10980:90:128;-1:-1:-1;11112:19:128;11132:10;;11112:31;;;;;;:::i;:::-;;;;;;;;;11093:15;:50;11089:828;;11184:6;-1:-1:-1;;;;;11171:33:128;;11215:8;11226:19;11246:10;11226:31;;;;;;;;:::i;:::-;;;;;;;;;11259:3;11288:4;11171:122;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;11171:122:128;;;;;;;;-1:-1:-1;;11171:122:128;;;;;;;;;;;;:::i;:::-;;;11167:641;;11713:1;11695:8;:15;:19;;;;:::i;:::-;11689:1;:26;11685:101;;-1:-1:-1;11754:5:128;;9926:2043;-1:-1:-1;;;;;;;;;;9926:2043:128:o;11685:101::-;11089:828;;11167:641;11378:9;11345:145;;;11448:8;:15;11444:19;;11345:145;11520:9;11519:10;:40;;;;;11557:1;11539:8;:15;:19;;;;:::i;:::-;11533:1;:26;11519:40;11515:115;;;-1:-1:-1;11598:5:128;;9926:2043;-1:-1:-1;;;;;;;;;;;9926:2043:128:o;11515:115::-;11294:358;11089:828;;;11860:1;11842:8;:15;:19;;;;:::i;:::-;11836:1;:26;11832:85;;-1:-1:-1;11893:5:128;;9926:2043;-1:-1:-1;;;;;;;;;;9926:2043:128:o;11832:85::-;10957:3;;;;:::i;:::-;;;;10916:1015;;;-1:-1:-1;;;10314:12:128;;10252:1689;;;-1:-1:-1;11958:4:128;;9926:2043;-1:-1:-1;;;;;;;9926:2043:128:o;2293:101:141:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;194:51:115:-;2553:20:128;735:10:152;9926:2043:128;:::i;2553:20::-;2545:55;;;;-1:-1:-1;;;2545:55:128;;12326:2:165;2545:55:128;;;12308:21:165;12365:2;12345:18;;;12338:30;-1:-1:-1;;;12384:18:165;;;12377:52;12446:18;;2545:55:128;12124:346:165;703:69:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;703:69:128;;-1:-1:-1;703:69:128;;-1:-1:-1;703:69:128:o;3764:889::-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;3885:36:128;::::1;3877:80;;;;-1:-1:-1::0;;;3877:80:128::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;3975:48:128;::::1;;::::0;;;:24:::1;:48;::::0;;;;:55;:60;3967:102:::1;;;::::0;-1:-1:-1;;;3967:102:128;;12677:2:165;3967:102:128::1;::::0;::::1;12659:21:165::0;12716:2;12696:18;;;12689:30;12755:31;12735:18;;;12728:59;12804:18;;3967:102:128::1;12475:353:165::0;3967:102:128::1;4087:22:::0;4079:71:::1;;;::::0;-1:-1:-1;;;4079:71:128;;13035:2:165;4079:71:128::1;::::0;::::1;13017:21:165::0;13074:2;13054:18;;;13047:30;13113:34;13093:18;;;13086:62;-1:-1:-1;;;13164:18:165;;;13157:34;13208:19;;4079:71:128::1;12833:400:165::0;4079:71:128::1;4190:2;4168:24:::0;::::1;;4160:74;;;;-1:-1:-1::0;;;4160:74:128::1;;;;;;;:::i;:::-;4252:14;:21:::0;4276:2:::1;-1:-1:-1::0;4244:79:128::1;;;::::0;-1:-1:-1;;;4244:79:128;;13440:2:165;4244:79:128::1;::::0;::::1;13422:21:165::0;13479:2;13459:18;;;13452:30;13518:34;13498:18;;;13491:62;-1:-1:-1;;;13569:18:165;;;13562:38;13617:19;;4244:79:128::1;13238:404:165::0;4244:79:128::1;4333:14;:34:::0;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;-1:-1:-1;;;;;;4333:34:128::1;-1:-1:-1::0;;;;;4333:34:128;::::1;::::0;;::::1;::::0;;;-1:-1:-1;4377:48:128;;;:24:::1;4333:34;4377:48:::0;;;;:62:::1;::::0;4428:11;;4377:62:::1;:::i;:::-;;4454:9;4449:137;4469:22:::0;;::::1;4449:137;;;4512:27;:43;4540:11;;4552:1;4540:14;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;4512:43:::0;;-1:-1:-1;4512:43:128;;::::1;::::0;;;;;;-1:-1:-1;4512:43:128;;;:63;;::::1;::::0;;::::1;::::0;;;;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;4512:63:128::1;-1:-1:-1::0;;;;;4512:63:128;::::1;;::::0;;4493:3:::1;4449:137;;;;4619:13;-1:-1:-1::0;;;;;4600:46:128::1;;4634:11;;4600:46;;;;;;;:::i;256:36::-:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;256:36:128;:::o;4739:1485::-;1531:13:141;:11;:13::i;:::-;-1:-1:-1;;;;;4831:36:128;::::1;4823:80;;;;-1:-1:-1::0;;;4823:80:128::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4921:48:128;::::1;;::::0;;;:24:::1;:48;::::0;;;;:55;:60;;4913:93:::1;;;::::0;-1:-1:-1;;;4913:93:128;;4977:2:165;4913:93:128::1;::::0;::::1;4959:21:165::0;5016:2;4996:18;;;4989:30;-1:-1:-1;;;5035:18:165;;;5028:50;5095:18;;4913:93:128::1;4775:344:165::0;4913:93:128::1;5033:14;:21:::0;5016:14:::1;5064:241;5088:6;5084:1;:10;5064:241;;;5140:13;-1:-1:-1::0;;;;;5119:34:128::1;:14;5134:1;5119:17;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;5119:17:128::1;:34:::0;5115:180:::1;;5193:14;5208:10;5217:1;5208:6:::0;:10:::1;:::i;:::-;5193:26;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;5173:14:::1;:17:::0;;-1:-1:-1;;;;;5193:26:128;;::::1;::::0;5188:1;;5173:17;::::1;;;;;:::i;:::-;;;;;;;;;:46;;;;;-1:-1:-1::0;;;;;5173:46:128::1;;;;;-1:-1:-1::0;;;;;5173:46:128::1;;;;;;5237:14;:20;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;5237:20:128;;;;;-1:-1:-1;;;;;;5237:20:128::1;::::0;;;;;5275:5:::1;;5115:180;5096:3;;5064:241;;;;5332:23;5314:789;-1:-1:-1::0;;;;;5391:48:128;::::1;;::::0;;;:24:::1;:48;::::0;;;;:55;5373:73;::::1;5314:789;;;-1:-1:-1::0;;;;;5514:48:128;::::1;5493:18;5514:48:::0;;;:24:::1;:48;::::0;;;;:65;;5563:15;;5514:65;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;5616:39;;;:27:::1;:39:::0;;;;;;:46;5514:65;;-1:-1:-1;5616:46:128;5676:417:::1;5700:12;5696:1;:16;5676:417;;;5741:39;::::0;;;:27:::1;:39;::::0;;;;:42;;-1:-1:-1;;;;;5741:59:128;::::1;::::0;:39;5781:1;;5741:42;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;5741:42:128::1;:59:::0;5737:342:::1;;5909:39;::::0;;;:27:::1;:39;::::0;;;;5949:16:::1;5964:1;5949:12:::0;:16:::1;:::i;:::-;5909:57;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;5824:39;;;:27:::1;:39:::0;;;;;;;:42;;-1:-1:-1;;;;;5909:57:128;;::::1;::::0;5864:1;;5824:42;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:142:::0;;-1:-1:-1;;;;;;5824:142:128::1;-1:-1:-1::0;;;;;5824:142:128;;;::::1;::::0;;;::::1;::::0;;;5988:39;;;:27:::1;:39:::0;;;;;;:45;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;5988:45:128;;;;;-1:-1:-1;;;;;;5988:45:128::1;::::0;;;;;6055:5:::1;;5737:342;5714:3;;5676:417;;;-1:-1:-1::0;;;5460:17:128::1;;5314:789;;;-1:-1:-1::0;;;;;;6119:48:128;::::1;;::::0;;;:24:::1;:48;::::0;;;;6112:55:::1;::::0;::::1;:::i;:::-;6182:35;::::0;-1:-1:-1;;;;;6182:35:128;::::1;::::0;::::1;::::0;;;::::1;4813:1411;4739:1485:::0;:::o;552:61::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9367:317::-;9471:19;:26;9438:4;;;9508:147;9532:6;9528:1;:10;9508:147;;;9589:10;9563:19;9583:1;9563:22;;;;;;;;:::i;:::-;;;;;;;;;:36;9559:86;;-1:-1:-1;9626:4:128;;9367:317;-1:-1:-1;;;9367:317:128:o;9559:86::-;9540:3;;9508:147;;;-1:-1:-1;9672:5:128;;9367:317;-1:-1:-1;;;9367:317:128:o;8612:288::-;-1:-1:-1;;;;;8734:48:128;;;;;;:24;:48;;;;;:55;8698:16;;8734:60;8726:102;;;;-1:-1:-1;;;8726:102:128;;13849:2:165;8726:102:128;;;13831:21:165;13888:2;13868:18;;;13861:30;13927;13907:18;;;13900:58;13975:18;;8726:102:128;13647:352:165;8726:102:128;-1:-1:-1;;;;;8845:48:128;;;;;;:24;:48;;;;;;;;;8838:55;;;;;;;;;;;;;;;;;8845:48;;8838:55;;8845:48;8838:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8612:288;;;:::o;2740:421::-;1531:13:141;:11;:13::i;:::-;2827:19:128::1;:26:::0;2880:2:::1;2871:11:::0;::::1;2863:58;;;::::0;-1:-1:-1;;;2863:58:128;;14206:2:165;2863:58:128::1;::::0;::::1;14188:21:165::0;14245:2;14225:18;;;14218:30;14284:34;14264:18;;;14257:62;-1:-1:-1;;;14335:18:165;;;14328:32;14377:19;;2863:58:128::1;14004:398:165::0;2863:58:128::1;2936:9;2931:136;2955:6;2951:1;:10;2931:136;;;3016:10;2990:19;3010:1;2990:22;;;;;;;;:::i;:::-;;;;;;;;;:36:::0;2982:74:::1;;;::::0;-1:-1:-1;;;2982:74:128;;14609:2:165;2982:74:128::1;::::0;::::1;14591:21:165::0;14648:2;14628:18;;;14621:30;14687:27;14667:18;;;14660:55;14732:18;;2982:74:128::1;14407:349:165::0;2982:74:128::1;2963:3;;2931:136;;;-1:-1:-1::0;3076:19:128::1;:36:::0;;;;::::1;::::0;;-1:-1:-1;3076:36:128;;;;::::1;::::0;;;3127:27:::1;::::0;3101:10;;3127:27:::1;::::0;::::1;2800:361;2740:421:::0;:::o;408:36::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;408:36:128;;-1:-1:-1;408:36:128;:::o;7871:111::-;7921:21;7961:14;7954:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7954:21:128;;;;;;;;;;;;;;;;;;;;;;;7871:111;:::o;8328:190::-;-1:-1:-1;;;;;8409:32:128;;8390:4;8409:32;;;:24;:32;;;;;:39;:43;8406:84;;-1:-1:-1;8475:4:128;;8328:190;-1:-1:-1;8328:190:128:o;8406:84::-;-1:-1:-1;8506:5:128;;8328:190;-1:-1:-1;8328:190:128:o;2543:215:141:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:141;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:141;;2700:1:::1;2672:31;::::0;::::1;2763:51:165::0;2736:18;;2672:31:141::1;2617:203:165::0;2623:91:141::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:141;735:10:152;1855:23:141;1851:101;;1901:40;;-1:-1:-1;;;1901:40:141;;735:10:152;1901:40:141;;;2763:51:165;2736:18;;1901:40:141;2617:203:165;2912:187:141;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:141;;;-1:-1:-1;;;;;;3020:17:141;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:145:165;-1:-1:-1;;;;;103:31:165;;93:42;;83:70;;149:1;146;139:12;164:786;281:6;289;297;350:2;338:9;329:7;325:23;321:32;318:52;;;366:1;363;356:12;318:52;405:9;392:23;424:45;463:5;424:45;:::i;:::-;488:5;-1:-1:-1;544:2:165;529:18;;516:32;567:18;597:14;;;594:34;;;624:1;621;614:12;594:34;662:6;651:9;647:22;637:32;;707:7;700:4;696:2;692:13;688:27;678:55;;729:1;726;719:12;678:55;769:2;756:16;795:2;787:6;784:14;781:34;;;811:1;808;801:12;781:34;864:7;859:2;849:6;846:1;842:14;838:2;834:23;830:32;827:45;824:65;;;885:1;882;875:12;824:65;916:2;912;908:11;898:21;;938:6;928:16;;;;;164:786;;;;;:::o;955:180::-;1014:6;1067:2;1055:9;1046:7;1042:23;1038:32;1035:52;;;1083:1;1080;1073:12;1035:52;-1:-1:-1;1106:23:165;;955:180;-1:-1:-1;955:180:165:o;1140:329::-;1208:6;1216;1269:2;1257:9;1248:7;1244:23;1240:32;1237:52;;;1285:1;1282;1275:12;1237:52;1324:9;1311:23;1343:45;1382:5;1343:45;:::i;:::-;1407:5;1459:2;1444:18;;;;1431:32;;-1:-1:-1;;;1140:329:165:o;1666:680::-;1859:2;1911:21;;;1981:13;;1884:18;;;2003:22;;;1830:4;;1859:2;2082:15;;;;2056:2;2041:18;;;1830:4;2125:195;2139:6;2136:1;2133:13;2125:195;;;2204:13;;-1:-1:-1;;;;;2200:39:165;2188:52;;2295:15;;;;2260:12;;;;2236:1;2154:9;2125:195;;;-1:-1:-1;2337:3:165;;1666:680;-1:-1:-1;;;;;;1666:680:165:o;2351:261::-;2410:6;2463:2;2451:9;2442:7;2438:23;2434:32;2431:52;;;2479:1;2476;2469:12;2431:52;2518:9;2505:23;2537:45;2576:5;2537:45;:::i;:::-;2601:5;2351:261;-1:-1:-1;;;2351:261:165:o;2825:248::-;2893:6;2901;2954:2;2942:9;2933:7;2929:23;2925:32;2922:52;;;2970:1;2967;2960:12;2922:52;-1:-1:-1;;2993:23:165;;;3063:2;3048:18;;;3035:32;;-1:-1:-1;2825:248:165:o;3778:632::-;3949:2;4001:21;;;4071:13;;3974:18;;;4093:22;;;3920:4;;3949:2;4172:15;;;;4146:2;4131:18;;;3920:4;4215:169;4229:6;4226:1;4223:13;4215:169;;;4290:13;;4278:26;;4359:15;;;;4324:12;;;;4251:1;4244:9;4215:169;;4415:355;4617:2;4599:21;;;4656:2;4636:18;;;4629:30;4695:33;4690:2;4675:18;;4668:61;4761:2;4746:18;;4415:355::o;5124:401::-;5326:2;5308:21;;;5365:2;5345:18;;;5338:30;5404:34;5399:2;5384:18;;5377:62;-1:-1:-1;;;5470:2:165;5455:18;;5448:35;5515:3;5500:19;;5124:401::o;5887:127::-;5948:10;5943:3;5939:20;5936:1;5929:31;5979:4;5976:1;5969:15;6003:4;6000:1;5993:15;6019:127;6080:10;6075:3;6071:20;6068:1;6061:31;6111:4;6108:1;6101:15;6135:4;6132:1;6125:15;6151:128;6218:9;;;6239:11;;;6236:37;;;6253:18;;:::i;6284:127::-;6345:10;6340:3;6336:20;6333:1;6326:31;6376:4;6373:1;6366:15;6400:4;6397:1;6390:15;6416:443;6605:2;6587:21;;;6624:18;;6617:34;;;-1:-1:-1;;;;;;6663:31:165;;6660:51;;;6707:1;6704;6697:12;6660:51;6741:6;6738:1;6734:14;6798:6;6790;6785:2;6774:9;6770:18;6757:48;6826:22;;;;6850:2;6822:31;;6416:443;-1:-1:-1;;;6416:443:165:o;6864:127::-;6925:10;6920:3;6916:20;6913:1;6906:31;6956:4;6953:1;6946:15;6980:4;6977:1;6970:15;6996:275;7067:2;7061:9;7132:2;7113:13;;-1:-1:-1;;7109:27:165;7097:40;;7167:18;7152:34;;7188:22;;;7149:62;7146:88;;;7214:18;;:::i;:::-;7250:2;7243:22;6996:275;;-1:-1:-1;6996:275:165:o;7276:1047::-;7393:6;7424:2;7467;7455:9;7446:7;7442:23;7438:32;7435:52;;;7483:1;7480;7473:12;7435:52;7516:9;7510:16;7545:18;7586:2;7578:6;7575:14;7572:34;;;7602:1;7599;7592:12;7572:34;7640:6;7629:9;7625:22;7615:32;;7685:7;7678:4;7674:2;7670:13;7666:27;7656:55;;7707:1;7704;7697:12;7656:55;7736:2;7730:9;7758:2;7754;7751:10;7748:36;;;7764:18;;:::i;:::-;7810:2;7807:1;7803:10;7793:20;;7833:28;7857:2;7853;7849:11;7833:28;:::i;:::-;7895:15;;;7965:11;;;7961:20;;;7926:12;;;;7993:19;;;7990:39;;;8025:1;8022;8015:12;7990:39;8049:11;;;;8069:224;8085:6;8080:3;8077:15;8069:224;;;8158:3;8152:10;8139:23;;8175:45;8214:5;8175:45;:::i;:::-;8233:18;;;8102:12;;;;8271;;;;8069:224;;;8312:5;7276:1047;-1:-1:-1;;;;;;;;7276:1047:165:o;8811:250::-;8896:1;8906:113;8920:6;8917:1;8914:13;8906:113;;;8996:11;;;8990:18;8977:11;;;8970:39;8942:2;8935:10;8906:113;;;-1:-1:-1;;9053:1:165;9035:16;;9028:27;8811:250::o;9066:390::-;9141:5;9175:18;9167:6;9164:30;9161:56;;;9197:18;;:::i;:::-;9235:57;9280:2;9259:15;;-1:-1:-1;;9255:29:165;9286:4;9251:40;9235:57;:::i;:::-;9226:66;;9315:6;9308:5;9301:21;9355:3;9346:6;9341:3;9337:16;9334:25;9331:45;;;9372:1;9369;9362:12;9331:45;9385:65;9443:6;9436:4;9429:5;9425:16;9420:3;9385:65;:::i;9461:235::-;9514:5;9567:3;9560:4;9552:6;9548:17;9544:27;9534:55;;9585:1;9582;9575:12;9534:55;9607:83;9686:3;9677:6;9671:13;9664:4;9656:6;9652:17;9607:83;:::i;9701:1150::-;9844:6;9852;9860;9868;9876;9884;9937:3;9925:9;9916:7;9912:23;9908:33;9905:53;;;9954:1;9951;9944:12;9905:53;9983:9;9977:16;9967:26;;10033:2;10022:9;10018:18;10012:25;10002:35;;10080:2;10069:9;10065:18;10059:25;10093:45;10132:5;10093:45;:::i;:::-;10206:2;10191:18;;10185:25;10157:5;;-1:-1:-1;10229:18:165;10259:14;;;10256:34;;;10286:1;10283;10276:12;10256:34;10309:60;10361:7;10352:6;10341:9;10337:22;10309:60;:::i;:::-;10299:70;;10415:3;10404:9;10400:19;10394:26;10378:42;;10445:2;10435:8;10432:16;10429:36;;;10461:1;10458;10451:12;10429:36;10484:62;10538:7;10527:8;10516:9;10512:24;10484:62;:::i;:::-;10474:72;;10592:3;10581:9;10577:19;10571:26;10555:42;;10622:2;10612:8;10609:16;10606:36;;;10638:1;10635;10628:12;10606:36;-1:-1:-1;10661:24:165;;10716:4;10708:13;;10704:27;-1:-1:-1;10694:55:165;;10745:1;10742;10735:12;10694:55;10768:77;10837:7;10832:2;10826:9;10821:2;10817;10813:11;10768:77;:::i;:::-;10758:87;;;9701:1150;;;;;;;;:::o;10856:270::-;10897:3;10935:5;10929:12;10962:6;10957:3;10950:19;10978:76;11047:6;11040:4;11035:3;11031:14;11024:4;11017:5;11013:16;10978:76;:::i;:::-;11108:2;11087:15;-1:-1:-1;;11083:29:165;11074:39;;;;11115:4;11070:50;;10856:270;-1:-1:-1;;10856:270:165:o;11131:566::-;11428:1;11424;11419:3;11415:11;11411:19;11403:6;11399:32;11388:9;11381:51;11468:6;11463:2;11452:9;11448:18;11441:34;11511:3;11506:2;11495:9;11491:18;11484:31;11362:4;11538:45;11578:3;11567:9;11563:19;11555:6;11538:45;:::i;:::-;11631:9;11623:6;11619:22;11614:2;11603:9;11599:18;11592:50;11659:32;11684:6;11676;11659:32;:::i;:::-;11651:40;11131:566;-1:-1:-1;;;;;;;11131:566:165:o;11702:277::-;11769:6;11822:2;11810:9;11801:7;11797:23;11793:32;11790:52;;;11838:1;11835;11828:12;11790:52;11870:9;11864:16;11923:5;11916:13;11909:21;11902:5;11899:32;11889:60;;11945:1;11942;11935:12;11984:135;12023:3;12044:17;;;12041:43;;12064:18;;:::i;:::-;-1:-1:-1;12111:1:165;12100:13;;11984:135::o","linkReferences":{}},"methodIdentifiers":{"addClaimTopic(uint256)":"c7b22551","addTrustedIssuer(address,uint256[])":"9f63ea98","claimTopicsToTrustedIssuers(uint256,uint256)":"93e9f801","doSomething()":"82692679","getTrustedIssuerClaimTopics(address)":"c28fb278","getTrustedIssuers()":"d9dd24c5","getTrustedIssuersForClaimTopic(uint256)":"52c111d1","hasClaimTopic(address,uint256)":"34a89987","isClaimTopicRequired(uint256)":"be36359f","isTrustedIssuer(address)":"ef2ed1a4","owner()":"8da5cb5b","removeClaimTopic(uint256)":"08297846","removeTrustedIssuer(address)":"b93d28eb","renounceOwnership()":"715018a6","requiredClaimTopics(uint256)":"b5fa8693","transferOwnership(address)":"f2fde38b","trustedIssuerClaimTopics(address,uint256)":"ba64c341","trustedIssuers(uint256)":"c801dd40","updateIssuerClaimTopics(address,uint256[])":"04bc7e84","verify(address)":"63a9c3d7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"ClaimTopicAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"ClaimTopicRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"ClaimTopicsUpdated\",\"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\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"TrustedIssuerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"}],\"name\":\"TrustedIssuerRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"addClaimTopic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"addTrustedIssuer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"claimTopicsToTrustedIssuers\",\"outputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"doSomething\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"}],\"name\":\"getTrustedIssuerClaimTopics\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTrustedIssuers\",\"outputs\":[{\"internalType\":\"contract IClaimIssuer[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"getTrustedIssuersForClaimTopic\",\"outputs\":[{\"internalType\":\"contract IClaimIssuer[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"hasClaimTopic\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"isClaimTopicRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"}],\"name\":\"isTrustedIssuer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"removeClaimTopic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"}],\"name\":\"removeTrustedIssuer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"requiredClaimTopics\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"trustedIssuerClaimTopics\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"trustedIssuers\",\"outputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"newClaimTopics\",\"type\":\"uint256[]\"}],\"name\":\"updateIssuerClaimTopics\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isVerified\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addClaimTopic(uint256)\":{\"details\":\"See {IClaimTopicsRegistry-removeClaimTopic}.\"},\"addTrustedIssuer(address,uint256[])\":{\"details\":\"See {ITrustedIssuersRegistry-addTrustedIssuer}.\"},\"getTrustedIssuerClaimTopics(address)\":{\"details\":\"See {ITrustedIssuersRegistry-getTrustedIssuerClaimTopics}.\"},\"getTrustedIssuers()\":{\"details\":\"See {ITrustedIssuersRegistry-getTrustedIssuers}.\"},\"getTrustedIssuersForClaimTopic(uint256)\":{\"details\":\"See {ITrustedIssuersRegistry-getTrustedIssuersForClaimTopic}.\"},\"hasClaimTopic(address,uint256)\":{\"details\":\"See {ITrustedIssuersRegistry-hasClaimTopic}.\"},\"isTrustedIssuer(address)\":{\"details\":\"See {ITrustedIssuersRegistry-isTrustedIssuer}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeClaimTopic(uint256)\":{\"details\":\"See {IClaimTopicsRegistry-getClaimTopics}.\"},\"removeTrustedIssuer(address)\":{\"details\":\"See {ITrustedIssuersRegistry-removeTrustedIssuer}.\"},\"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.\"},\"updateIssuerClaimTopics(address,uint256[])\":{\"details\":\"See {ITrustedIssuersRegistry-updateIssuerClaimTopics}.\"},\"verify(address)\":{\"details\":\"Verify an identity (ONCHAINID) by checking if the identity has at least one valid claim from a trusted issuer for each required claim topic. Returns true if the identity is compliant, false otherwise.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ClaimTopicAdded(uint256)\":{\"notice\":\"this event is emitted when a claim topic has been added to the requirement list the event is emitted by the 'addClaimTopic' function `claimTopic` is the required claim topic added\"},\"ClaimTopicRemoved(uint256)\":{\"notice\":\"this event is emitted when a claim topic has been removed from the requirement list the event is emitted by the 'removeClaimTopic' function `claimTopic` is the required claim removed\"},\"ClaimTopicsUpdated(address,uint256[])\":{\"notice\":\"this event is emitted when the set of claim topics is changed for a given trusted issuer. the event is emitted by the updateIssuerClaimTopics function `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract `claimTopics` is the set of claims that the trusted issuer is allowed to emit\"},\"TrustedIssuerAdded(address,uint256[])\":{\"notice\":\"this event is emitted when an issuer is added to the trusted list. the event is emitted by the addTrustedIssuer function `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract `claimTopics` is the set of claims that the trusted issuer is allowed to emit\"},\"TrustedIssuerRemoved(address)\":{\"notice\":\"this event is emitted when an issuer is removed from the trusted list. the event is emitted by the removeTrustedIssuer function `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onchainid/_testContracts/VerifierUser.sol\":\"VerifierUser\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/onchainid/_testContracts/VerifierUser.sol\":{\"keccak256\":\"0x4d3e3f2e3e09e105139239787d0dbc58c15d005ac268b112898977fa972b6f1c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3ac637247ee5f6e362d5abf48902100b2331381d2c39e3f5ac228e4b6d4e5408\",\"dweb:/ipfs/QmNmEcb8VX9nqTpq6gy5huUDg9N3ewxhVbpAyAZjD57jGt\"]},\"contracts/onchainid/interface/IClaimIssuer.sol\":{\"keccak256\":\"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5\",\"dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32\"]},\"contracts/onchainid/interface/IERC734.sol\":{\"keccak256\":\"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa\",\"dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds\"]},\"contracts/onchainid/interface/IERC735.sol\":{\"keccak256\":\"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6\",\"dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB\"]},\"contracts/onchainid/interface/IIdentity.sol\":{\"keccak256\":\"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5\",\"dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum\"]},\"contracts/onchainid/verifiers/Verifier.sol\":{\"keccak256\":\"0x6ad583ba0afe21fac995e4bf23270ebbd07763f32551c6d36cc1bb79c2787b51\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://403749d9bad7c560c4c682ba205cc235575775aa9f4662765e7a714d9b71ad49\",\"dweb:/ipfs/QmSFzXjrCquLjQAd9DWEVRGs8y6yQ5ZWYiKTgPe1ZAJoeJ\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256","indexed":true}],"type":"event","name":"ClaimTopicAdded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256","indexed":true}],"type":"event","name":"ClaimTopicRemoved","anonymous":false},{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address","indexed":true},{"internalType":"uint256[]","name":"claimTopics","type":"uint256[]","indexed":false}],"type":"event","name":"ClaimTopicsUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address","indexed":true},{"internalType":"uint256[]","name":"claimTopics","type":"uint256[]","indexed":false}],"type":"event","name":"TrustedIssuerAdded","anonymous":false},{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address","indexed":true}],"type":"event","name":"TrustedIssuerRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addClaimTopic"},{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address"},{"internalType":"uint256[]","name":"claimTopics","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"addTrustedIssuer"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"claimTopicsToTrustedIssuers","outputs":[{"internalType":"contract IClaimIssuer","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"doSomething"},{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address"}],"stateMutability":"view","type":"function","name":"getTrustedIssuerClaimTopics","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTrustedIssuers","outputs":[{"internalType":"contract IClaimIssuer[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256"}],"stateMutability":"view","type":"function","name":"getTrustedIssuersForClaimTopic","outputs":[{"internalType":"contract IClaimIssuer[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"issuer","type":"address"},{"internalType":"uint256","name":"claimTopic","type":"uint256"}],"stateMutability":"view","type":"function","name":"hasClaimTopic","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256"}],"stateMutability":"view","type":"function","name":"isClaimTopicRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"issuer","type":"address"}],"stateMutability":"view","type":"function","name":"isTrustedIssuer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"claimTopic","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeClaimTopic"},{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeTrustedIssuer"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"requiredClaimTopics","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"trustedIssuerClaimTopics","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"trustedIssuers","outputs":[{"internalType":"contract IClaimIssuer","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IClaimIssuer","name":"trustedIssuer","type":"address"},{"internalType":"uint256[]","name":"newClaimTopics","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"updateIssuerClaimTopics"},{"inputs":[{"internalType":"address","name":"identity","type":"address"}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"isVerified","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"addClaimTopic(uint256)":{"details":"See {IClaimTopicsRegistry-removeClaimTopic}."},"addTrustedIssuer(address,uint256[])":{"details":"See {ITrustedIssuersRegistry-addTrustedIssuer}."},"getTrustedIssuerClaimTopics(address)":{"details":"See {ITrustedIssuersRegistry-getTrustedIssuerClaimTopics}."},"getTrustedIssuers()":{"details":"See {ITrustedIssuersRegistry-getTrustedIssuers}."},"getTrustedIssuersForClaimTopic(uint256)":{"details":"See {ITrustedIssuersRegistry-getTrustedIssuersForClaimTopic}."},"hasClaimTopic(address,uint256)":{"details":"See {ITrustedIssuersRegistry-hasClaimTopic}."},"isTrustedIssuer(address)":{"details":"See {ITrustedIssuersRegistry-isTrustedIssuer}."},"owner()":{"details":"Returns the address of the current owner."},"removeClaimTopic(uint256)":{"details":"See {IClaimTopicsRegistry-getClaimTopics}."},"removeTrustedIssuer(address)":{"details":"See {ITrustedIssuersRegistry-removeTrustedIssuer}."},"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."},"updateIssuerClaimTopics(address,uint256[])":{"details":"See {ITrustedIssuersRegistry-updateIssuerClaimTopics}."},"verify(address)":{"details":"Verify an identity (ONCHAINID) by checking if the identity has at least one valid claim from a trusted issuer for each required claim topic. Returns true if the identity is compliant, false otherwise."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onchainid/_testContracts/VerifierUser.sol":"VerifierUser"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onchainid/_testContracts/VerifierUser.sol":{"keccak256":"0x4d3e3f2e3e09e105139239787d0dbc58c15d005ac268b112898977fa972b6f1c","urls":["bzz-raw://3ac637247ee5f6e362d5abf48902100b2331381d2c39e3f5ac228e4b6d4e5408","dweb:/ipfs/QmNmEcb8VX9nqTpq6gy5huUDg9N3ewxhVbpAyAZjD57jGt"],"license":"GPL-3.0"},"contracts/onchainid/interface/IClaimIssuer.sol":{"keccak256":"0x92e375808930842a1d68eaccebd9bc217ccb95991491c91fb138d1d4bc16388a","urls":["bzz-raw://815938c289ffa9426073a10a9748103f50ba4174ffb760505fecbd3159e8d2a5","dweb:/ipfs/QmQw6e1vDL31kZPFHeuW7NVym2NCd1oUbw6QarbpWW9j32"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC734.sol":{"keccak256":"0x67bbcf9b182b7f30e869e65b6d82cb9b2df9881635b74e99cf3c132639032f9f","urls":["bzz-raw://7c59d814dd394340507ab2a3393f5a904fc8e11c44998685c1810a47116d17aa","dweb:/ipfs/QmdVhP6yMj9Mmd54nAKZxkafFvdMiZjEWW57r57oBrp7Ds"],"license":"GPL-3.0"},"contracts/onchainid/interface/IERC735.sol":{"keccak256":"0x074374c0cdcb706606f1c2082037c8d8cac77e416bdc3aaaabb2b09bafd3f18e","urls":["bzz-raw://68b5e2df5bfaf4b76f285ae2b2fa5608ef13b373c470416273f0c99fa17f34b6","dweb:/ipfs/QmTqikGhLTkzjGj3KsFCvneeDhPKTCgfwAFv7QBjj9cGuB"],"license":"GPL-3.0"},"contracts/onchainid/interface/IIdentity.sol":{"keccak256":"0xe1feb936b7ee377a7874c46899cc2db24b77f40b8f48cbeadb8b2b1a6fbc5db0","urls":["bzz-raw://cbd4f4708dea22981418a5221f7dd45be25dbb2a56d4e14c9c726170d081abd5","dweb:/ipfs/QmUj4gTdijqYc4ndLg2xhxCZxb7weey5uiQDev8tRpFjum"],"license":"GPL-3.0"},"contracts/onchainid/verifiers/Verifier.sol":{"keccak256":"0x6ad583ba0afe21fac995e4bf23270ebbd07763f32551c6d36cc1bb79c2787b51","urls":["bzz-raw://403749d9bad7c560c4c682ba205cc235575775aa9f4662765e7a714d9b71ad49","dweb:/ipfs/QmSFzXjrCquLjQAd9DWEVRGs8y6yQ5ZWYiKTgPe1ZAJoeJ"],"license":"GPL-3.0"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":115} \ No newline at end of file diff --git a/out/Version.sol/Version.json b/out/Version.sol/Version.json new file mode 100644 index 0000000..0f5a938 --- /dev/null +++ b/out/Version.sol/Version.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060de8061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806354fd4d5014602d575b600080fd5b6040805180820182526005815264322e322e3160d81b6020820152905160529190605b565b60405180910390f35b60006020808352835180602085015260005b81811015608757858101830151858201604001528201606d565b506000604082860101526040601f19601f830116850101925050509291505056fea26469706673582212201ec691ed6d41748e20e87db9389dfb2e81edef6e182df00345cf64b1ecf4d1ee64736f6c63430008180033","sourceMap":"159:209:129:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c806354fd4d5014602d575b600080fd5b6040805180820182526005815264322e322e3160d81b6020820152905160529190605b565b60405180910390f35b60006020808352835180602085015260005b81811015608757858101830151858201604001528201606d565b506000604082860101526040601f19601f830116850101925050509291505056fea26469706673582212201ec691ed6d41748e20e87db9389dfb2e81edef6e182df00345cf64b1ecf4d1ee64736f6c63430008180033","sourceMap":"159:209:129:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;253:113;345:14;;;;;;;;;;;-1:-1:-1;;;345:14:129;;;;253:113;;;;345:14;253:113;:::i;:::-;;;;;;;;14:548:165;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o","linkReferences":{}},"methodIdentifiers":{"version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Version contract gives the versioning information of the implementation contract\",\"kind\":\"dev\",\"methods\":{\"version()\":{\"details\":\"Returns the string of the current version.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onchainid/version/Version.sol\":\"Version\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/onchainid/version/Version.sol\":{\"keccak256\":\"0x400b5649726c17f41dbb8882928d020616684f26dbdacf1acd37d2019f47d716\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c4db1bcaec955efa7e3ba4e20c8b81434241743a91ee357fbe980b4d3b43bb64\",\"dweb:/ipfs/QmaP5BaXD2aahn5QV7EvY6Jm4vfT61MHkrmjAqFmb3jmqv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"version()":{"details":"Returns the string of the current version."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onchainid/version/Version.sol":"Version"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onchainid/version/Version.sol":{"keccak256":"0x400b5649726c17f41dbb8882928d020616684f26dbdacf1acd37d2019f47d716","urls":["bzz-raw://c4db1bcaec955efa7e3ba4e20c8b81434241743a91ee357fbe980b4d3b43bb64","dweb:/ipfs/QmaP5BaXD2aahn5QV7EvY6Jm4vfT61MHkrmjAqFmb3jmqv"],"license":"GPL-3.0"}},"version":1},"id":129} \ No newline at end of file diff --git a/out/Vm.sol/Vm.json b/out/Vm.sol/Vm.json new file mode 100644 index 0000000..e630a6d --- /dev/null +++ b/out/Vm.sol/Vm.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"accesses","inputs":[{"name":"target","type":"address","internalType":"address"}],"outputs":[{"name":"readSlots","type":"bytes32[]","internalType":"bytes32[]"},{"name":"writeSlots","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"activeFork","inputs":[],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"addr","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"allowCheatcodes","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assume","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"blobBaseFee","inputs":[{"name":"newBlobBaseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blobhashes","inputs":[{"name":"hashes","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"chainId","inputs":[{"name":"newChainId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"clearMockedCalls","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"closeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"coinbase","inputs":[{"name":"newCoinbase","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"},{"name":"deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreateAddress","inputs":[{"name":"deployer","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"copyFile","inputs":[{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"copied","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"createDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSelectFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSelectFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSelectFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"deal","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newBalance","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deleteSnapshot","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"deleteSnapshots","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"difficulty","inputs":[{"name":"newDifficulty","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"dumpState","inputs":[{"name":"pathToStateJson","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"ensNamehash","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envExists","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool","internalType":"bool"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256","internalType":"int256"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"etch","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"newRuntimeBytecode","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"eth_getLogs","inputs":[{"name":"fromBlock","type":"uint256","internalType":"uint256"},{"name":"toBlock","type":"uint256","internalType":"uint256"},{"name":"target","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.EthGetLogs[]","components":[{"name":"emitter","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"transactionHash","type":"bytes32","internalType":"bytes32"},{"name":"transactionIndex","type":"uint64","internalType":"uint64"},{"name":"logIndex","type":"uint256","internalType":"uint256"},{"name":"removed","type":"bool","internalType":"bool"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"exists","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCallMinGas","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCallMinGas","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"},{"name":"emitter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"emitter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectSafeMemory","inputs":[{"name":"min","type":"uint64","internalType":"uint64"},{"name":"max","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectSafeMemoryCall","inputs":[{"name":"min","type":"uint64","internalType":"uint64"},{"name":"max","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fee","inputs":[{"name":"newBasefee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"ffi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"fsMetadata","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct VmSafe.FsMetadata","components":[{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"readOnly","type":"bool","internalType":"bool"},{"name":"modified","type":"uint256","internalType":"uint256"},{"name":"accessed","type":"uint256","internalType":"uint256"},{"name":"created","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getBlobBaseFee","inputs":[],"outputs":[{"name":"blobBaseFee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlobhashes","inputs":[],"outputs":[{"name":"hashes","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"height","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"creationBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDeployedCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"runtimeBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getLabel","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"currentLabel","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getMappingKeyAndParentOf","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"elementSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"found","type":"bool","internalType":"bool"},{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"parent","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingLength","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"length","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingSlotAt","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"},{"name":"idx","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"getRecordedLogs","inputs":[],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.Log[]","components":[{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"emitter","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"indexOf","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"isContext","inputs":[{"name":"context","type":"uint8","internalType":"enum VmSafe.ForgeContext"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"isFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"isPersistent","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"persistent","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExists","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"label","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newLabel","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lastCallGas","inputs":[],"outputs":[{"name":"gas","type":"tuple","internalType":"struct VmSafe.Gas","components":[{"name":"gasLimit","type":"uint64","internalType":"uint64"},{"name":"gasTotalUsed","type":"uint64","internalType":"uint64"},{"name":"gasMemoryUsed","type":"uint64","internalType":"uint64"},{"name":"gasRefunded","type":"int64","internalType":"int64"},{"name":"gasRemaining","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"load","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"data","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"loadAllocs","inputs":[{"name":"pathToAllocsJson","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"account0","type":"address","internalType":"address"},{"name":"account1","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"account0","type":"address","internalType":"address"},{"name":"account1","type":"address","internalType":"address"},{"name":"account2","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"returnData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"returnData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCallRevert","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCallRevert","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"parseAddress","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseBool","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes32","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseInt","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddress","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddressArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBool","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBoolArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32Array","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytesArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonInt","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonIntArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonKeys","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonString","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonStringArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUint","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUintArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddress","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddressArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBool","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBoolArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32Array","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytesArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlInt","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlIntArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlKeys","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlString","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlStringArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUint","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUintArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseUint","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"pauseGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prank","inputs":[{"name":"msgSender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prevrandao","inputs":[{"name":"newPrevrandao","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prevrandao","inputs":[{"name":"newPrevrandao","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"projectRoot","inputs":[],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"prompt","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptAddress","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptSecret","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptSecretUint","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptUint","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomUint","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomUint","inputs":[{"name":"min","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"readCallers","inputs":[],"outputs":[{"name":"callerMode","type":"uint8","internalType":"enum VmSafe.CallerMode"},{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"},{"name":"followLinks","type":"bool","internalType":"bool"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"readLine","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"line","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readLink","inputs":[{"name":"linkPath","type":"string","internalType":"string"}],"outputs":[{"name":"targetPath","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"record","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recordLogs","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKey","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"replace","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"resetNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resumeGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revertTo","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revertToAndDelete","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokePersistent","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokePersistent","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"roll","inputs":[{"name":"newHeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rpc","inputs":[{"name":"method","type":"string","internalType":"string"},{"name":"params","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"rpcUrl","inputs":[{"name":"rpcAlias","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"rpcUrlStructs","inputs":[],"outputs":[{"name":"urls","type":"tuple[]","internalType":"struct VmSafe.Rpc[]","components":[{"name":"key","type":"string","internalType":"string"},{"name":"url","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"rpcUrls","inputs":[],"outputs":[{"name":"urls","type":"string[2][]","internalType":"string[2][]"}],"stateMutability":"view"},{"type":"function","name":"selectFork","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeJson","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUintToHex","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"setEnv","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newNonce","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNonceUnsafe","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newNonce","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"sign","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"sign","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signP256","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"skip","inputs":[{"name":"skipTest","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sleep","inputs":[{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"snapshot","inputs":[],"outputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"split","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"delimiter","type":"string","internalType":"string"}],"outputs":[{"name":"outputs","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"startBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startPrank","inputs":[{"name":"msgSender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startPrank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startStateDiffRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopAndReturnStateDiff","inputs":[],"outputs":[{"name":"accountAccesses","type":"tuple[]","internalType":"struct VmSafe.AccountAccess[]","components":[{"name":"chainInfo","type":"tuple","internalType":"struct VmSafe.ChainInfo","components":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"}]},{"name":"kind","type":"uint8","internalType":"enum VmSafe.AccountAccessKind"},{"name":"account","type":"address","internalType":"address"},{"name":"accessor","type":"address","internalType":"address"},{"name":"initialized","type":"bool","internalType":"bool"},{"name":"oldBalance","type":"uint256","internalType":"uint256"},{"name":"newBalance","type":"uint256","internalType":"uint256"},{"name":"deployedCode","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"reverted","type":"bool","internalType":"bool"},{"name":"storageAccesses","type":"tuple[]","internalType":"struct VmSafe.StorageAccess[]","components":[{"name":"account","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"},{"name":"isWrite","type":"bool","internalType":"bool"},{"name":"previousValue","type":"bytes32","internalType":"bytes32"},{"name":"newValue","type":"bytes32","internalType":"bytes32"},{"name":"reverted","type":"bool","internalType":"bool"}]},{"name":"depth","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"stopBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopExpectSafeMemory","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopPrank","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"store","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toLowercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toUppercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"transact","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transact","inputs":[{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"trim","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"tryFfi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct VmSafe.FfiResult","components":[{"name":"exitCode","type":"int32","internalType":"int32"},{"name":"stdout","type":"bytes","internalType":"bytes"},{"name":"stderr","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"txGasPrice","inputs":[{"name":"newGasPrice","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unixTime","inputs":[],"outputs":[{"name":"milliseconds","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"warp","inputs":[{"name":"newTimestamp","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeFile","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeLine","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeToml","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeToml","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"accesses(address)":"65bc9481","activeFork()":"2f103f22","addr(uint256)":"ffa18649","allowCheatcodes(address)":"ea060291","assertApproxEqAbs(int256,int256,uint256)":"240f839d","assertApproxEqAbs(int256,int256,uint256,string)":"8289e621","assertApproxEqAbs(uint256,uint256,uint256)":"16d207c6","assertApproxEqAbs(uint256,uint256,uint256,string)":"f710b062","assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":"3d5bc8bc","assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":"6a5066d4","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":"045c55ce","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":"60429eb2","assertApproxEqRel(int256,int256,uint256)":"fea2d14f","assertApproxEqRel(int256,int256,uint256,string)":"ef277d72","assertApproxEqRel(uint256,uint256,uint256)":"8cf25ef4","assertApproxEqRel(uint256,uint256,uint256,string)":"1ecb7d33","assertApproxEqRelDecimal(int256,int256,uint256,uint256)":"abbf21cc","assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":"fccc11c4","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":"21ed2977","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":"82d6c8fd","assertEq(address,address)":"515361f6","assertEq(address,address,string)":"2f2769d1","assertEq(address[],address[])":"3868ac34","assertEq(address[],address[],string)":"3e9173c5","assertEq(bool,bool)":"f7fe3477","assertEq(bool,bool,string)":"4db19e7e","assertEq(bool[],bool[])":"707df785","assertEq(bool[],bool[],string)":"e48a8f8d","assertEq(bytes,bytes)":"97624631","assertEq(bytes,bytes,string)":"e24fed00","assertEq(bytes32,bytes32)":"7c84c69b","assertEq(bytes32,bytes32,string)":"c1fa1ed0","assertEq(bytes32[],bytes32[])":"0cc9ee84","assertEq(bytes32[],bytes32[],string)":"e03e9177","assertEq(bytes[],bytes[])":"e5fb9b4a","assertEq(bytes[],bytes[],string)":"f413f0b6","assertEq(int256,int256)":"fe74f05b","assertEq(int256,int256,string)":"714a2f13","assertEq(int256[],int256[])":"711043ac","assertEq(int256[],int256[],string)":"191f1b30","assertEq(string,string)":"f320d963","assertEq(string,string,string)":"36f656d8","assertEq(string[],string[])":"cf1c049c","assertEq(string[],string[],string)":"eff6b27d","assertEq(uint256,uint256)":"98296c54","assertEq(uint256,uint256,string)":"88b44c85","assertEq(uint256[],uint256[])":"975d5a12","assertEq(uint256[],uint256[],string)":"5d18c73a","assertEqDecimal(int256,int256,uint256)":"48016c04","assertEqDecimal(int256,int256,uint256,string)":"7e77b0c5","assertEqDecimal(uint256,uint256,uint256)":"27af7d9c","assertEqDecimal(uint256,uint256,uint256,string)":"d0cbbdef","assertFalse(bool)":"a5982885","assertFalse(bool,string)":"7ba04809","assertGe(int256,int256)":"0a30b771","assertGe(int256,int256,string)":"a84328dd","assertGe(uint256,uint256)":"a8d4d1d9","assertGe(uint256,uint256,string)":"e25242c0","assertGeDecimal(int256,int256,uint256)":"dc28c0f1","assertGeDecimal(int256,int256,uint256,string)":"5df93c9b","assertGeDecimal(uint256,uint256,uint256)":"3d1fe08a","assertGeDecimal(uint256,uint256,uint256,string)":"8bff9133","assertGt(int256,int256)":"5a362d45","assertGt(int256,int256,string)":"f8d33b9b","assertGt(uint256,uint256)":"db07fcd2","assertGt(uint256,uint256,string)":"d9a3c4d2","assertGtDecimal(int256,int256,uint256)":"78611f0e","assertGtDecimal(int256,int256,uint256,string)":"04a5c7ab","assertGtDecimal(uint256,uint256,uint256)":"eccd2437","assertGtDecimal(uint256,uint256,uint256,string)":"64949a8d","assertLe(int256,int256)":"95fd154e","assertLe(int256,int256,string)":"4dfe692c","assertLe(uint256,uint256)":"8466f415","assertLe(uint256,uint256,string)":"d17d4b0d","assertLeDecimal(int256,int256,uint256)":"11d1364a","assertLeDecimal(int256,int256,uint256,string)":"aa5cf788","assertLeDecimal(uint256,uint256,uint256)":"c304aab7","assertLeDecimal(uint256,uint256,uint256,string)":"7fefbbe0","assertLt(int256,int256)":"3e914080","assertLt(int256,int256,string)":"9ff531e3","assertLt(uint256,uint256)":"b12fc005","assertLt(uint256,uint256,string)":"65d5c135","assertLtDecimal(int256,int256,uint256)":"dbe8d88b","assertLtDecimal(int256,int256,uint256,string)":"40f0b4e0","assertLtDecimal(uint256,uint256,uint256)":"2077337e","assertLtDecimal(uint256,uint256,uint256,string)":"a972d037","assertNotEq(address,address)":"b12e1694","assertNotEq(address,address,string)":"8775a591","assertNotEq(address[],address[])":"46d0b252","assertNotEq(address[],address[],string)":"72c7e0b5","assertNotEq(bool,bool)":"236e4d66","assertNotEq(bool,bool,string)":"1091a261","assertNotEq(bool[],bool[])":"286fafea","assertNotEq(bool[],bool[],string)":"62c6f9fb","assertNotEq(bytes,bytes)":"3cf78e28","assertNotEq(bytes,bytes,string)":"9507540e","assertNotEq(bytes32,bytes32)":"898e83fc","assertNotEq(bytes32,bytes32,string)":"b2332f51","assertNotEq(bytes32[],bytes32[])":"0603ea68","assertNotEq(bytes32[],bytes32[],string)":"b873634c","assertNotEq(bytes[],bytes[])":"edecd035","assertNotEq(bytes[],bytes[],string)":"1dcd1f68","assertNotEq(int256,int256)":"f4c004e3","assertNotEq(int256,int256,string)":"4724c5b9","assertNotEq(int256[],int256[])":"0b72f4ef","assertNotEq(int256[],int256[],string)":"d3977322","assertNotEq(string,string)":"6a8237b3","assertNotEq(string,string,string)":"78bdcea7","assertNotEq(string[],string[])":"bdfacbe8","assertNotEq(string[],string[],string)":"b67187f3","assertNotEq(uint256,uint256)":"b7909320","assertNotEq(uint256,uint256,string)":"98f9bdbd","assertNotEq(uint256[],uint256[])":"56f29cba","assertNotEq(uint256[],uint256[],string)":"9a7fbd8f","assertNotEqDecimal(int256,int256,uint256)":"14e75680","assertNotEqDecimal(int256,int256,uint256,string)":"33949f0b","assertNotEqDecimal(uint256,uint256,uint256)":"669efca7","assertNotEqDecimal(uint256,uint256,uint256,string)":"f5a55558","assertTrue(bool)":"0c9fd581","assertTrue(bool,string)":"a34edc03","assume(bool)":"4c63e562","blobBaseFee(uint256)":"6d315d7e","blobhashes(bytes32[])":"129de7eb","breakpoint(string)":"f0259e92","breakpoint(string,bool)":"f7d39a8d","broadcast()":"afc98040","broadcast(address)":"e6962cdb","broadcast(uint256)":"f67a965b","chainId(uint256)":"4049ddd2","clearMockedCalls()":"3fdf4e15","closeFile(string)":"48c3241f","coinbase(address)":"ff483c54","computeCreate2Address(bytes32,bytes32)":"890c283b","computeCreate2Address(bytes32,bytes32,address)":"d323826a","computeCreateAddress(address,uint256)":"74637a7a","copyFile(string,string)":"a54a87d8","createDir(string,bool)":"168b64d3","createFork(string)":"31ba3498","createFork(string,bytes32)":"7ca29682","createFork(string,uint256)":"6ba3ba2b","createSelectFork(string)":"98680034","createSelectFork(string,bytes32)":"84d52b7a","createSelectFork(string,uint256)":"71ee464d","createWallet(string)":"7404f1d2","createWallet(uint256)":"7a675bb6","createWallet(uint256,string)":"ed7c5462","deal(address,uint256)":"c88a5e6d","deleteSnapshot(uint256)":"a6368557","deleteSnapshots()":"421ae469","deriveKey(string,string,uint32)":"6bcb2c1b","deriveKey(string,string,uint32,string)":"29233b1f","deriveKey(string,uint32)":"6229498b","deriveKey(string,uint32,string)":"32c8176d","difficulty(uint256)":"46cc92d9","dumpState(string)":"709ecd3f","ensNamehash(string)":"8c374c65","envAddress(string)":"350d56bf","envAddress(string,string)":"ad31b9fa","envBool(string)":"7ed1ec7d","envBool(string,string)":"aaaddeaf","envBytes(string)":"4d7baf06","envBytes(string,string)":"ddc2651b","envBytes32(string)":"97949042","envBytes32(string,string)":"5af231c1","envExists(string)":"ce8365f9","envInt(string)":"892a0c61","envInt(string,string)":"42181150","envOr(string,address)":"561fe540","envOr(string,bool)":"4777f3cf","envOr(string,bytes)":"b3e47705","envOr(string,bytes32)":"b4a85892","envOr(string,int256)":"bbcb713e","envOr(string,string)":"d145736c","envOr(string,string,address[])":"c74e9deb","envOr(string,string,bool[])":"eb85e83b","envOr(string,string,bytes32[])":"2281f367","envOr(string,string,bytes[])":"64bc3e64","envOr(string,string,int256[])":"4700d74b","envOr(string,string,string[])":"859216bc","envOr(string,string,uint256[])":"74318528","envOr(string,uint256)":"5e97348f","envString(string)":"f877cb19","envString(string,string)":"14b02bc9","envUint(string)":"c1978d1f","envUint(string,string)":"f3dec099","etch(address,bytes)":"b4d6c782","eth_getLogs(uint256,uint256,address,bytes32[])":"35e1349b","exists(string)":"261a323e","expectCall(address,bytes)":"bd6af434","expectCall(address,bytes,uint64)":"c1adbbff","expectCall(address,uint256,bytes)":"f30c7ba3","expectCall(address,uint256,bytes,uint64)":"a2b1a1ae","expectCall(address,uint256,uint64,bytes)":"23361207","expectCall(address,uint256,uint64,bytes,uint64)":"65b7b7cc","expectCallMinGas(address,uint256,uint64,bytes)":"08e4e116","expectCallMinGas(address,uint256,uint64,bytes,uint64)":"e13a1834","expectEmit()":"440ed10d","expectEmit(address)":"86b9620d","expectEmit(bool,bool,bool,bool)":"491cc7c2","expectEmit(bool,bool,bool,bool,address)":"81bad6f3","expectRevert()":"f4844814","expectRevert(bytes)":"f28dceb3","expectRevert(bytes4)":"c31eb0e0","expectSafeMemory(uint64,uint64)":"6d016688","expectSafeMemoryCall(uint64,uint64)":"05838bf4","fee(uint256)":"39b37ab0","ffi(string[])":"89160467","fsMetadata(string)":"af368a08","getBlobBaseFee()":"1f6d6ef7","getBlobhashes()":"f56ff18b","getBlockNumber()":"42cbb15c","getBlockTimestamp()":"796b89b9","getCode(string)":"8d1cc925","getDeployedCode(string)":"3ebf73b4","getLabel(address)":"28a249b0","getMappingKeyAndParentOf(address,bytes32)":"876e24e6","getMappingLength(address,bytes32)":"2f2fd63f","getMappingSlotAt(address,bytes32,uint256)":"ebc73ab4","getNonce((address,uint256,uint256,uint256))":"a5748aad","getNonce(address)":"2d0335ab","getRecordedLogs()":"191553a4","indexOf(string,string)":"8a0807b7","isContext(uint8)":"64af255d","isDir(string)":"7d15d019","isFile(string)":"e0eb04d4","isPersistent(address)":"d92d8efd","keyExists(string,string)":"528a683c","keyExistsJson(string,string)":"db4235f6","keyExistsToml(string,string)":"600903ad","label(address,string)":"c657c718","lastCallGas()":"2b589b28","load(address,bytes32)":"667f9d70","loadAllocs(string)":"b3a056d7","makePersistent(address)":"57e22dde","makePersistent(address,address)":"4074e0a8","makePersistent(address,address,address)":"efb77a75","makePersistent(address[])":"1d9e269e","mockCall(address,bytes,bytes)":"b96213e4","mockCall(address,uint256,bytes,bytes)":"81409b91","mockCallRevert(address,bytes,bytes)":"dbaad147","mockCallRevert(address,uint256,bytes,bytes)":"d23cd037","parseAddress(string)":"c6ce059d","parseBool(string)":"974ef924","parseBytes(string)":"8f5d232d","parseBytes32(string)":"087e6e81","parseInt(string)":"42346c5e","parseJson(string)":"6a82600a","parseJson(string,string)":"85940ef1","parseJsonAddress(string,string)":"1e19e657","parseJsonAddressArray(string,string)":"2fce7883","parseJsonBool(string,string)":"9f86dc91","parseJsonBoolArray(string,string)":"91f3b94f","parseJsonBytes(string,string)":"fd921be8","parseJsonBytes32(string,string)":"1777e59d","parseJsonBytes32Array(string,string)":"91c75bc3","parseJsonBytesArray(string,string)":"6631aa99","parseJsonInt(string,string)":"7b048ccd","parseJsonIntArray(string,string)":"9983c28a","parseJsonKeys(string,string)":"213e4198","parseJsonString(string,string)":"49c4fac8","parseJsonStringArray(string,string)":"498fdcf4","parseJsonUint(string,string)":"addde2b6","parseJsonUintArray(string,string)":"522074ab","parseToml(string)":"592151f0","parseToml(string,string)":"37736e08","parseTomlAddress(string,string)":"65e7c844","parseTomlAddressArray(string,string)":"65c428e7","parseTomlBool(string,string)":"d30dced6","parseTomlBoolArray(string,string)":"127cfe9a","parseTomlBytes(string,string)":"d77bfdb9","parseTomlBytes32(string,string)":"8e214810","parseTomlBytes32Array(string,string)":"3e716f81","parseTomlBytesArray(string,string)":"b197c247","parseTomlInt(string,string)":"c1350739","parseTomlIntArray(string,string)":"d3522ae6","parseTomlKeys(string,string)":"812a44b2","parseTomlString(string,string)":"8bb8dd43","parseTomlStringArray(string,string)":"9f629281","parseTomlUint(string,string)":"cc7b0487","parseTomlUintArray(string,string)":"b5df27c8","parseUint(string)":"fa91454d","pauseGasMetering()":"d1a5b36f","prank(address)":"ca669fa7","prank(address,address)":"47e50cce","prevrandao(bytes32)":"3b925549","prevrandao(uint256)":"9cb1c0d4","projectRoot()":"d930a0e6","prompt(string)":"47eaf474","promptAddress(string)":"62ee05f4","promptSecret(string)":"1e279d41","promptSecretUint(string)":"69ca02b7","promptUint(string)":"652fd489","randomAddress()":"d5bee9f5","randomUint()":"25124730","randomUint(uint256,uint256)":"d61b051b","readCallers()":"4ad0bac9","readDir(string)":"c4bc59e0","readDir(string,uint64)":"1497876c","readDir(string,uint64,bool)":"8102d70d","readFile(string)":"60f9bb11","readFileBinary(string)":"16ed7bc4","readLine(string)":"70f55728","readLink(string)":"9f5684a2","record()":"266cf109","recordLogs()":"41af2f52","rememberKey(uint256)":"22100064","removeDir(string,bool)":"45c62011","removeFile(string)":"f1afe04d","replace(string,string,string)":"e00ad03e","resetNonce(address)":"1c72346d","resumeGasMetering()":"2bcd50e0","revertTo(uint256)":"44d7f0a4","revertToAndDelete(uint256)":"03e0aca9","revokePersistent(address)":"997a0222","revokePersistent(address[])":"3ce969e6","roll(uint256)":"1f7b4f30","rollFork(bytes32)":"0f29772b","rollFork(uint256)":"d9bbf3a1","rollFork(uint256,bytes32)":"f2830f7b","rollFork(uint256,uint256)":"d74c83a4","rpc(string,string)":"1206c8a8","rpcUrl(string)":"975a6ce9","rpcUrlStructs()":"9d2ad72a","rpcUrls()":"a85a8418","selectFork(uint256)":"9ebf6827","serializeAddress(string,string,address)":"972c6062","serializeAddress(string,string,address[])":"1e356e1a","serializeBool(string,string,bool)":"ac22e971","serializeBool(string,string,bool[])":"92925aa1","serializeBytes(string,string,bytes)":"f21d52c7","serializeBytes(string,string,bytes[])":"9884b232","serializeBytes32(string,string,bytes32)":"2d812b44","serializeBytes32(string,string,bytes32[])":"201e43e2","serializeInt(string,string,int256)":"3f33db60","serializeInt(string,string,int256[])":"7676e127","serializeJson(string,string)":"9b3358b0","serializeString(string,string,string)":"88da6d35","serializeString(string,string,string[])":"561cd6f3","serializeUint(string,string,uint256)":"129e9002","serializeUint(string,string,uint256[])":"fee9a469","serializeUintToHex(string,string,uint256)":"ae5a2ae8","setEnv(string,string)":"3d5923ee","setNonce(address,uint64)":"f8e18b57","setNonceUnsafe(address,uint64)":"9b67b21c","sign((address,uint256,uint256,uint256),bytes32)":"b25c5a25","sign(address,bytes32)":"8c1aa205","sign(bytes32)":"799cd333","sign(uint256,bytes32)":"e341eaa4","signP256(uint256,bytes32)":"83211b40","skip(bool)":"dd82d13e","sleep(uint256)":"fa9d8713","snapshot()":"9711715a","split(string,string)":"8bb75533","startBroadcast()":"7fb5297f","startBroadcast(address)":"7fec2a8d","startBroadcast(uint256)":"ce817d47","startMappingRecording()":"3e9705c0","startPrank(address)":"06447d56","startPrank(address,address)":"45b56078","startStateDiffRecording()":"cf22e3c9","stopAndReturnStateDiff()":"aa5cf90e","stopBroadcast()":"76eadd36","stopExpectSafeMemory()":"0956441b","stopMappingRecording()":"0d4aae9b","stopPrank()":"90c5013b","store(address,bytes32,bytes32)":"70ca10bb","toBase64(bytes)":"a5cbfe65","toBase64(string)":"3f8be2c8","toBase64URL(bytes)":"c8bd0e4a","toBase64URL(string)":"ae3165b3","toLowercase(string)":"50bb0884","toString(address)":"56ca623e","toString(bool)":"71dce7da","toString(bytes)":"71aad10d","toString(bytes32)":"b11a19e8","toString(int256)":"a322c40e","toString(uint256)":"6900a3ae","toUppercase(string)":"074ae3d7","transact(bytes32)":"be646da1","transact(uint256,bytes32)":"4d8abc4b","trim(string)":"b2dad155","tryFfi(string[])":"f45c1ce7","txGasPrice(uint256)":"48f50c0f","unixTime()":"625387dc","warp(uint256)":"e5d6bf02","writeFile(string,string)":"897e0a97","writeFileBinary(string,bytes)":"1f21fc80","writeJson(string,string)":"e23cd19f","writeJson(string,string,string)":"35d6ad46","writeLine(string,string)":"619d897f","writeToml(string,string)":"c0865ba7","writeToml(string,string,string)":"51ac6a33"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"accesses\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"readSlots\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"writeSlots\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"allowCheatcodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assume\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBlobBaseFee\",\"type\":\"uint256\"}],\"name\":\"blobBaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashes\",\"type\":\"bytes32[]\"}],\"name\":\"blobhashes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newChainId\",\"type\":\"uint256\"}],\"name\":\"chainId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"clearMockedCalls\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"closeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newCoinbase\",\"type\":\"address\"}],\"name\":\"coinbase\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"computeCreateAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"copyFile\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"copied\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"createDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"deal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"deleteSnapshot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deleteSnapshots\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDifficulty\",\"type\":\"uint256\"}],\"name\":\"difficulty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"pathToStateJson\",\"type\":\"string\"}],\"name\":\"dumpState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"ensNamehash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"defaultValue\",\"type\":\"bytes32[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"defaultValue\",\"type\":\"int256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"defaultValue\",\"type\":\"bool\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"defaultValue\",\"type\":\"address\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"defaultValue\",\"type\":\"uint256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"defaultValue\",\"type\":\"bytes[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"defaultValue\",\"type\":\"uint256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"defaultValue\",\"type\":\"string[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"defaultValue\",\"type\":\"bytes\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"defaultValue\",\"type\":\"bytes32\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"defaultValue\",\"type\":\"int256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"defaultValue\",\"type\":\"address[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultValue\",\"type\":\"string\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"defaultValue\",\"type\":\"bool[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"newRuntimeBytecode\",\"type\":\"bytes\"}],\"name\":\"etch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"}],\"name\":\"eth_getLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"transactionIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"logIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"removed\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.EthGetLogs[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minGas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCallMinGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minGas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCallMinGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"revertData\",\"type\":\"bytes4\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"expectSafeMemory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"expectSafeMemoryCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBasefee\",\"type\":\"uint256\"}],\"name\":\"fee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"ffi\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"fsMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"readOnly\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"modified\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"created\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.FsMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlobBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blobBaseFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlobhashes\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashes\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"creationBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getDeployedCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"runtimeBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getLabel\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"currentLabel\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"elementSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingKeyAndParentOf\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"found\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"parent\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getMappingSlotAt\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRecordedLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.Log[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"indexOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum VmSafe.ForgeContext\",\"name\":\"context\",\"type\":\"uint8\"}],\"name\":\"isContext\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isDir\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isFile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isPersistent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"persistent\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsJson\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsToml\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"newLabel\",\"type\":\"string\"}],\"name\":\"label\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCallGas\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasTotalUsed\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasMemoryUsed\",\"type\":\"uint64\"},{\"internalType\":\"int64\",\"name\":\"gasRefunded\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"gasRemaining\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.Gas\",\"name\":\"gas\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"load\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"pathToAllocsJson\",\"type\":\"string\"}],\"name\":\"loadAllocs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account1\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account2\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"mockCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"mockCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"mockCallRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"mockCallRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"parsedValue\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"parsedValue\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"parsedValue\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"parsedValue\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"parsedValue\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"parsedValue\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"name\":\"prank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"prank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"newPrevrandao\",\"type\":\"bytes32\"}],\"name\":\"prevrandao\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPrevrandao\",\"type\":\"uint256\"}],\"name\":\"prevrandao\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"projectRoot\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"prompt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecret\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecretUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"readCallers\",\"outputs\":[{\"internalType\":\"enum VmSafe.CallerMode\",\"name\":\"callerMode\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"followLinks\",\"type\":\"bool\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFile\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFileBinary\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readLine\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"line\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"linkPath\",\"type\":\"string\"}],\"name\":\"readLink\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"targetPath\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"record\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordLogs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"rememberKey\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"removeDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"removeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"replace\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"resetNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"revertTo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"revertToAndDelete\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"}],\"name\":\"revokePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newHeight\",\"type\":\"uint256\"}],\"name\":\"roll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"rpcAlias\",\"type\":\"string\"}],\"name\":\"rpcUrl\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrlStructs\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"internalType\":\"struct VmSafe.Rpc[]\",\"name\":\"urls\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrls\",\"outputs\":[{\"internalType\":\"string[2][]\",\"name\":\"urls\",\"type\":\"string[2][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"name\":\"selectFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"values\",\"type\":\"address[]\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"values\",\"type\":\"bool[]\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"values\",\"type\":\"bytes[]\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"values\",\"type\":\"bytes32[]\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"values\",\"type\":\"int256[]\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeJson\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"values\",\"type\":\"string[]\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUintToHex\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"setEnv\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newNonce\",\"type\":\"uint64\"}],\"name\":\"setNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newNonce\",\"type\":\"uint64\"}],\"name\":\"setNonceUnsafe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signP256\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"skipTest\",\"type\":\"bool\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"sleep\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delimiter\",\"type\":\"string\"}],\"name\":\"split\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"outputs\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"startPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"name\":\"startPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startStateDiffRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopAndReturnStateDiff\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.ChainInfo\",\"name\":\"chainInfo\",\"type\":\"tuple\"},{\"internalType\":\"enum VmSafe.AccountAccessKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"accessor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"oldBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"deployedCode\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isWrite\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"previousValue\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"newValue\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.StorageAccess[]\",\"name\":\"storageAccesses\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.AccountAccess[]\",\"name\":\"accountAccesses\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopExpectSafeMemory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"store\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toLowercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toUppercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"transact\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"transact\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"trim\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"tryFfi\",\"outputs\":[{\"components\":[{\"internalType\":\"int32\",\"name\":\"exitCode\",\"type\":\"int32\"},{\"internalType\":\"bytes\",\"name\":\"stdout\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"stderr\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.FfiResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newGasPrice\",\"type\":\"uint256\"}],\"name\":\"txGasPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unixTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"milliseconds\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newTimestamp\",\"type\":\"uint256\"}],\"name\":\"warp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"writeFileBinary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeLine\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"accesses(address)\":{\"notice\":\"Gets all accessed reads and write slot from a `vm.record` session, for a given address.\"},\"activeFork()\":{\"notice\":\"Returns the identifier of the currently active fork. Reverts if no fork is currently active.\"},\"addr(uint256)\":{\"notice\":\"Gets the address for a given private key.\"},\"allowCheatcodes(address)\":{\"notice\":\"In forking mode, explicitly grant the given address cheatcode access.\"},\"assertApproxEqAbs(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbs(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRel(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRel(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEq(address,address)\":{\"notice\":\"Asserts that two `address` values are equal.\"},\"assertEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are equal.\"},\"assertEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are equal.\"},\"assertEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are equal.\"},\"assertEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are equal.\"},\"assertEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are equal.\"},\"assertEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal.\"},\"assertEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal.\"},\"assertEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are equal.\"},\"assertEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are equal.\"},\"assertEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(string,string)\":{\"notice\":\"Asserts that two `string` values are equal.\"},\"assertEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are equal.\"},\"assertEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal.\"},\"assertEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256 values are equal.\"},\"assertEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertFalse(bool)\":{\"notice\":\"Asserts that the given condition is false.\"},\"assertFalse(bool,string)\":{\"notice\":\"Asserts that the given condition is false and includes error message into revert string on failure.\"},\"assertGe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second.\"},\"assertGt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second.\"},\"assertGt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second.\"},\"assertLe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second.\"},\"assertLe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second.\"},\"assertLt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second.\"},\"assertLt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEq(address,address)\":{\"notice\":\"Asserts that two `address` values are not equal.\"},\"assertNotEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are not equal.\"},\"assertNotEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are not equal.\"},\"assertNotEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal.\"},\"assertNotEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are not equal.\"},\"assertNotEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are not equal.\"},\"assertNotEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal.\"},\"assertNotEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal.\"},\"assertNotEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are not equal.\"},\"assertNotEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal.\"},\"assertNotEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string,string)\":{\"notice\":\"Asserts that two `string` values are not equal.\"},\"assertNotEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are not equal.\"},\"assertNotEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal.\"},\"assertNotEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal.\"},\"assertNotEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertTrue(bool)\":{\"notice\":\"Asserts that the given condition is true.\"},\"assertTrue(bool,string)\":{\"notice\":\"Asserts that the given condition is true and includes error message into revert string on failure.\"},\"assume(bool)\":{\"notice\":\"If the condition is false, discard this run's fuzz inputs and generate new ones.\"},\"blobBaseFee(uint256)\":{\"notice\":\"Sets `block.blobbasefee`\"},\"blobhashes(bytes32[])\":{\"notice\":\"Sets the blobhashes in the transaction. Not available on EVM versions before Cancun. If used on unsupported EVM versions it will revert.\"},\"breakpoint(string)\":{\"notice\":\"Writes a breakpoint to jump to in the debugger.\"},\"breakpoint(string,bool)\":{\"notice\":\"Writes a conditional breakpoint to jump to in the debugger.\"},\"broadcast()\":{\"notice\":\"Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"broadcast(address)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain.\"},\"broadcast(uint256)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain.\"},\"chainId(uint256)\":{\"notice\":\"Sets `block.chainid`.\"},\"clearMockedCalls()\":{\"notice\":\"Clears all mocked calls.\"},\"closeFile(string)\":{\"notice\":\"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root.\"},\"coinbase(address)\":{\"notice\":\"Sets `block.coinbase`.\"},\"computeCreate2Address(bytes32,bytes32)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer.\"},\"computeCreate2Address(bytes32,bytes32,address)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer.\"},\"computeCreateAddress(address,uint256)\":{\"notice\":\"Compute the address a contract will be deployed at for a given deployer address and nonce.\"},\"copyFile(string,string)\":{\"notice\":\"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root.\"},\"createDir(string,bool)\":{\"notice\":\"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root.\"},\"createFork(string)\":{\"notice\":\"Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork.\"},\"createFork(string,bytes32)\":{\"notice\":\"Creates a new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, and returns the identifier of the fork.\"},\"createFork(string,uint256)\":{\"notice\":\"Creates a new fork with the given endpoint and block and returns the identifier of the fork.\"},\"createSelectFork(string)\":{\"notice\":\"Creates and also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork.\"},\"createSelectFork(string,bytes32)\":{\"notice\":\"Creates and also selects new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, returns the identifier of the fork.\"},\"createSelectFork(string,uint256)\":{\"notice\":\"Creates and also selects a new fork with the given endpoint and block and returns the identifier of the fork.\"},\"createWallet(string)\":{\"notice\":\"Derives a private key from the name, labels the account with that name, and returns the wallet.\"},\"createWallet(uint256)\":{\"notice\":\"Generates a wallet from the private key and returns the wallet.\"},\"createWallet(uint256,string)\":{\"notice\":\"Generates a wallet from the private key, labels the account with that name, and returns the wallet.\"},\"deal(address,uint256)\":{\"notice\":\"Sets an address' balance.\"},\"deleteSnapshot(uint256)\":{\"notice\":\"Removes the snapshot with the given ID created by `snapshot`. Takes the snapshot ID to delete. Returns `true` if the snapshot was successfully deleted. Returns `false` if the snapshot does not exist.\"},\"deleteSnapshots()\":{\"notice\":\"Removes _all_ snapshots previously created by `snapshot`.\"},\"deriveKey(string,string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`.\"},\"deriveKey(string,string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`.\"},\"deriveKey(string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"deriveKey(string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"difficulty(uint256)\":{\"notice\":\"Sets `block.difficulty`. Not available on EVM versions from Paris onwards. Use `prevrandao` instead. Reverts if used on unsupported EVM versions.\"},\"dumpState(string)\":{\"notice\":\"Dump a genesis JSON file's `allocs` to disk.\"},\"ensNamehash(string)\":{\"notice\":\"Returns ENS namehash for provided string.\"},\"envAddress(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed.\"},\"envAddress(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envExists(string)\":{\"notice\":\"Gets the environment variable `name` and returns true if it exists, else returns false.\"},\"envInt(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed.\"},\"envInt(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envOr(string,address)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bool)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes32)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,int256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,address[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bool[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes32[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,int256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,string[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,uint256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,uint256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envString(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed.\"},\"envString(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"etch(address,bytes)\":{\"notice\":\"Sets an address' code.\"},\"eth_getLogs(uint256,uint256,address,bytes32[])\":{\"notice\":\"Gets all the logs according to specified filter.\"},\"exists(string)\":{\"notice\":\"Returns true if the given path points to an existing entity, else returns false.\"},\"expectCall(address,bytes)\":{\"notice\":\"Expects a call to an address with the specified calldata. Calldata can either be a strict or a partial match.\"},\"expectCall(address,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified calldata.\"},\"expectCall(address,uint256,bytes)\":{\"notice\":\"Expects a call to an address with the specified `msg.value` and calldata.\"},\"expectCall(address,uint256,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified `msg.value` and calldata.\"},\"expectCall(address,uint256,uint64,bytes)\":{\"notice\":\"Expect a call to an address with the specified `msg.value`, gas, and calldata.\"},\"expectCall(address,uint256,uint64,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified `msg.value`, gas, and calldata.\"},\"expectCallMinGas(address,uint256,uint64,bytes)\":{\"notice\":\"Expect a call to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas.\"},\"expectCallMinGas(address,uint256,uint64,bytes,uint64)\":{\"notice\":\"Expect given number of calls to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas.\"},\"expectEmit()\":{\"notice\":\"Prepare an expected log with all topic and data checks enabled. Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data.\"},\"expectEmit(address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectEmit(bool,bool,bool,bool)\":{\"notice\":\"Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data (as specified by the booleans).\"},\"expectEmit(bool,bool,bool,bool,address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectRevert()\":{\"notice\":\"Expects an error on next call with any revert data.\"},\"expectRevert(bytes)\":{\"notice\":\"Expects an error on next call that exactly matches the revert data.\"},\"expectRevert(bytes4)\":{\"notice\":\"Expects an error on next call that starts with the revert data.\"},\"expectSafeMemory(uint64,uint64)\":{\"notice\":\"Only allows memory writes to offsets [0x00, 0x60) \\u222a [min, max) in the current subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set.\"},\"expectSafeMemoryCall(uint64,uint64)\":{\"notice\":\"Only allows memory writes to offsets [0x00, 0x60) \\u222a [min, max) in the next created subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set.\"},\"fee(uint256)\":{\"notice\":\"Sets `block.basefee`.\"},\"ffi(string[])\":{\"notice\":\"Performs a foreign function call via the terminal.\"},\"fsMetadata(string)\":{\"notice\":\"Given a path, query the file system to get information about a file, directory, etc.\"},\"getBlobBaseFee()\":{\"notice\":\"Gets the current `block.blobbasefee`. You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlobhashes()\":{\"notice\":\"Gets the blockhashes from the current transaction. Not available on EVM versions before Cancun. If used on unsupported EVM versions it will revert.\"},\"getBlockNumber()\":{\"notice\":\"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlockTimestamp()\":{\"notice\":\"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getCode(string)\":{\"notice\":\"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getDeployedCode(string)\":{\"notice\":\"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getLabel(address)\":{\"notice\":\"Gets the label for the specified address.\"},\"getMappingKeyAndParentOf(address,bytes32)\":{\"notice\":\"Gets the map key and parent of a mapping at a given slot, for a given address.\"},\"getMappingLength(address,bytes32)\":{\"notice\":\"Gets the number of elements in the mapping at the given slot, for a given address.\"},\"getMappingSlotAt(address,bytes32,uint256)\":{\"notice\":\"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping).\"},\"getNonce((address,uint256,uint256,uint256))\":{\"notice\":\"Get a `Wallet`'s nonce.\"},\"getNonce(address)\":{\"notice\":\"Gets the nonce of an account.\"},\"getRecordedLogs()\":{\"notice\":\"Gets all the recorded logs.\"},\"indexOf(string,string)\":{\"notice\":\"Returns the index of the first occurrence of a `key` in an `input` string. Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. Returns 0 in case of an empty `key`.\"},\"isContext(uint8)\":{\"notice\":\"Returns true if `forge` command was executed in given context.\"},\"isDir(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a directory, else returns false.\"},\"isFile(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a regular file, else returns false.\"},\"isPersistent(address)\":{\"notice\":\"Returns true if the account is marked as persistent.\"},\"keyExists(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions.\"},\"keyExistsJson(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object.\"},\"keyExistsToml(string,string)\":{\"notice\":\"Checks if `key` exists in a TOML table.\"},\"label(address,string)\":{\"notice\":\"Labels an address in call traces.\"},\"lastCallGas()\":{\"notice\":\"Gets the gas used in the last call.\"},\"load(address,bytes32)\":{\"notice\":\"Loads a storage slot from an address.\"},\"loadAllocs(string)\":{\"notice\":\"Load a genesis JSON file's `allocs` into the in-memory revm state.\"},\"makePersistent(address)\":{\"notice\":\"Marks that the account(s) should use persistent storage across fork swaps in a multifork setup Meaning, changes made to the state of this account will be kept when switching forks.\"},\"makePersistent(address,address)\":{\"notice\":\"See `makePersistent(address)`.\"},\"makePersistent(address,address,address)\":{\"notice\":\"See `makePersistent(address)`.\"},\"makePersistent(address[])\":{\"notice\":\"See `makePersistent(address)`.\"},\"mockCall(address,bytes,bytes)\":{\"notice\":\"Mocks a call to an address, returning specified data. Calldata can either be strict or a partial match, e.g. if you only pass a Solidity selector to the expected calldata, then the entire Solidity function will be mocked.\"},\"mockCall(address,uint256,bytes,bytes)\":{\"notice\":\"Mocks a call to an address with a specific `msg.value`, returning specified data. Calldata match takes precedence over `msg.value` in case of ambiguity.\"},\"mockCallRevert(address,bytes,bytes)\":{\"notice\":\"Reverts a call to an address with specified revert data.\"},\"mockCallRevert(address,uint256,bytes,bytes)\":{\"notice\":\"Reverts a call to an address with a specific `msg.value`, with specified revert data.\"},\"parseAddress(string)\":{\"notice\":\"Parses the given `string` into an `address`.\"},\"parseBool(string)\":{\"notice\":\"Parses the given `string` into a `bool`.\"},\"parseBytes(string)\":{\"notice\":\"Parses the given `string` into `bytes`.\"},\"parseBytes32(string)\":{\"notice\":\"Parses the given `string` into a `bytes32`.\"},\"parseInt(string)\":{\"notice\":\"Parses the given `string` into a `int256`.\"},\"parseJson(string)\":{\"notice\":\"ABI-encodes a JSON object.\"},\"parseJson(string,string)\":{\"notice\":\"ABI-encodes a JSON object at `key`.\"},\"parseJsonAddress(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address`.\"},\"parseJsonAddressArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address[]`.\"},\"parseJsonBool(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool`.\"},\"parseJsonBoolArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool[]`.\"},\"parseJsonBytes(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes`.\"},\"parseJsonBytes32(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32`.\"},\"parseJsonBytes32Array(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32[]`.\"},\"parseJsonBytesArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes[]`.\"},\"parseJsonInt(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256`.\"},\"parseJsonIntArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256[]`.\"},\"parseJsonKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a JSON object.\"},\"parseJsonString(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string`.\"},\"parseJsonStringArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string[]`.\"},\"parseJsonUint(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256`.\"},\"parseJsonUintArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256[]`.\"},\"parseToml(string)\":{\"notice\":\"ABI-encodes a TOML table.\"},\"parseToml(string,string)\":{\"notice\":\"ABI-encodes a TOML table at `key`.\"},\"parseTomlAddress(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address`.\"},\"parseTomlAddressArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address[]`.\"},\"parseTomlBool(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool`.\"},\"parseTomlBoolArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool[]`.\"},\"parseTomlBytes(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes`.\"},\"parseTomlBytes32(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32`.\"},\"parseTomlBytes32Array(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32[]`.\"},\"parseTomlBytesArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes[]`.\"},\"parseTomlInt(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256`.\"},\"parseTomlIntArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256[]`.\"},\"parseTomlKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a TOML table.\"},\"parseTomlString(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string`.\"},\"parseTomlStringArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string[]`.\"},\"parseTomlUint(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256`.\"},\"parseTomlUintArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256[]`.\"},\"parseUint(string)\":{\"notice\":\"Parses the given `string` into a `uint256`.\"},\"pauseGasMetering()\":{\"notice\":\"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused.\"},\"prank(address)\":{\"notice\":\"Sets the *next* call's `msg.sender` to be the input address.\"},\"prank(address,address)\":{\"notice\":\"Sets the *next* call's `msg.sender` to be the input address, and the `tx.origin` to be the second input.\"},\"prevrandao(bytes32)\":{\"notice\":\"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert.\"},\"prevrandao(uint256)\":{\"notice\":\"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert.\"},\"projectRoot()\":{\"notice\":\"Get the path of the current project root.\"},\"prompt(string)\":{\"notice\":\"Prompts the user for a string value in the terminal.\"},\"promptAddress(string)\":{\"notice\":\"Prompts the user for an address in the terminal.\"},\"promptSecret(string)\":{\"notice\":\"Prompts the user for a hidden string value in the terminal.\"},\"promptSecretUint(string)\":{\"notice\":\"Prompts the user for hidden uint256 in the terminal (usually pk).\"},\"promptUint(string)\":{\"notice\":\"Prompts the user for uint256 in the terminal.\"},\"randomAddress()\":{\"notice\":\"Returns a random `address`.\"},\"randomUint()\":{\"notice\":\"Returns a random uint256 value.\"},\"randomUint(uint256,uint256)\":{\"notice\":\"Returns random uin256 value between the provided range (=min..=max).\"},\"readCallers()\":{\"notice\":\"Reads the current `msg.sender` and `tx.origin` from state and reports if there is any active caller modification.\"},\"readDir(string)\":{\"notice\":\"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true.\"},\"readDir(string,uint64)\":{\"notice\":\"See `readDir(string)`.\"},\"readDir(string,uint64,bool)\":{\"notice\":\"See `readDir(string)`.\"},\"readFile(string)\":{\"notice\":\"Reads the entire content of file to string. `path` is relative to the project root.\"},\"readFileBinary(string)\":{\"notice\":\"Reads the entire content of file as binary. `path` is relative to the project root.\"},\"readLine(string)\":{\"notice\":\"Reads next line of file to string.\"},\"readLink(string)\":{\"notice\":\"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist.\"},\"record()\":{\"notice\":\"Records all storage reads and writes.\"},\"recordLogs()\":{\"notice\":\"Record all the transaction logs.\"},\"rememberKey(uint256)\":{\"notice\":\"Adds a private key to the local forge wallet and returns the address.\"},\"removeDir(string,bool)\":{\"notice\":\"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root.\"},\"removeFile(string)\":{\"notice\":\"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root.\"},\"replace(string,string,string)\":{\"notice\":\"Replaces occurrences of `from` in the given `string` with `to`.\"},\"resetNonce(address)\":{\"notice\":\"Resets the nonce of an account to 0 for EOAs and 1 for contract accounts.\"},\"resumeGasMetering()\":{\"notice\":\"Resumes gas metering (i.e. gas usage is counted again). Noop if already on.\"},\"revertTo(uint256)\":{\"notice\":\"Revert the state of the EVM to a previous snapshot Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted. Returns `false` if the snapshot does not exist. **Note:** This does not automatically delete the snapshot. To delete the snapshot use `deleteSnapshot`.\"},\"revertToAndDelete(uint256)\":{\"notice\":\"Revert the state of the EVM to a previous snapshot and automatically deletes the snapshots Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted and deleted. Returns `false` if the snapshot does not exist.\"},\"revokePersistent(address)\":{\"notice\":\"Revokes persistent status from the address, previously added via `makePersistent`.\"},\"revokePersistent(address[])\":{\"notice\":\"See `revokePersistent(address)`.\"},\"roll(uint256)\":{\"notice\":\"Sets `block.height`.\"},\"rollFork(bytes32)\":{\"notice\":\"Updates the currently active fork to given transaction. This will `rollFork` with the number of the block the transaction was mined in and replays all transaction mined before it in the block.\"},\"rollFork(uint256)\":{\"notice\":\"Updates the currently active fork to given block number This is similar to `roll` but for the currently active fork.\"},\"rollFork(uint256,bytes32)\":{\"notice\":\"Updates the given fork to block number of the given transaction and replays all transaction mined before it in the block.\"},\"rollFork(uint256,uint256)\":{\"notice\":\"Updates the given fork to given block number.\"},\"rpc(string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the current fork URL.\"},\"rpcUrl(string)\":{\"notice\":\"Returns the RPC url for the given alias.\"},\"rpcUrlStructs()\":{\"notice\":\"Returns all rpc urls and their aliases as structs.\"},\"rpcUrls()\":{\"notice\":\"Returns all rpc urls and their aliases `[alias, url][]`.\"},\"selectFork(uint256)\":{\"notice\":\"Takes a fork identifier created by `createFork` and sets the corresponding forked state as active.\"},\"serializeAddress(string,string,address)\":{\"notice\":\"See `serializeJson`.\"},\"serializeAddress(string,string,address[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeJson(string,string)\":{\"notice\":\"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment.\"},\"serializeString(string,string,string)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUintToHex(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"setEnv(string,string)\":{\"notice\":\"Sets environment variables.\"},\"setNonce(address,uint64)\":{\"notice\":\"Sets the nonce of an account. Must be higher than the current nonce of the account.\"},\"setNonceUnsafe(address,uint64)\":{\"notice\":\"Sets the nonce of an account to an arbitrary value.\"},\"sign((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`.\"},\"sign(address,bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Raises error if none of the signers passed into the script have provided address.\"},\"sign(bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script.\"},\"sign(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve.\"},\"signP256(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256r1 curve.\"},\"skip(bool)\":{\"notice\":\"Marks a test as skipped. Must be called at the top of the test.\"},\"sleep(uint256)\":{\"notice\":\"Suspends execution of the main thread for `duration` milliseconds.\"},\"snapshot()\":{\"notice\":\"Snapshot the current state of the evm. Returns the ID of the snapshot that was created. To revert a snapshot use `revertTo`.\"},\"split(string,string)\":{\"notice\":\"Splits the given `string` into an array of strings divided by the `delimiter`.\"},\"startBroadcast()\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"startBroadcast(address)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain.\"},\"startBroadcast(uint256)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain.\"},\"startMappingRecording()\":{\"notice\":\"Starts recording all map SSTOREs for later retrieval.\"},\"startPrank(address)\":{\"notice\":\"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called.\"},\"startPrank(address,address)\":{\"notice\":\"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input.\"},\"startStateDiffRecording()\":{\"notice\":\"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls\"},\"stopAndReturnStateDiff()\":{\"notice\":\"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session.\"},\"stopBroadcast()\":{\"notice\":\"Stops collecting onchain transactions.\"},\"stopExpectSafeMemory()\":{\"notice\":\"Stops all safe memory expectation in the current subcontext.\"},\"stopMappingRecording()\":{\"notice\":\"Stops recording all map SSTOREs for later retrieval and clears the recorded data.\"},\"stopPrank()\":{\"notice\":\"Resets subsequent calls' `msg.sender` to be `address(this)`.\"},\"store(address,bytes32,bytes32)\":{\"notice\":\"Stores a value to an address' storage slot.\"},\"toBase64(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64 string.\"},\"toBase64(string)\":{\"notice\":\"Encodes a `string` value to a base64 string.\"},\"toBase64URL(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64url string.\"},\"toBase64URL(string)\":{\"notice\":\"Encodes a `string` value to a base64url string.\"},\"toLowercase(string)\":{\"notice\":\"Converts the given `string` value to Lowercase.\"},\"toString(address)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bool)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes32)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(int256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(uint256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toUppercase(string)\":{\"notice\":\"Converts the given `string` value to Uppercase.\"},\"transact(bytes32)\":{\"notice\":\"Fetches the given transaction from the active fork and executes it on the current state.\"},\"transact(uint256,bytes32)\":{\"notice\":\"Fetches the given transaction from the given fork and executes it on the current state.\"},\"trim(string)\":{\"notice\":\"Trims leading and trailing whitespace from the given `string` value.\"},\"tryFfi(string[])\":{\"notice\":\"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr.\"},\"txGasPrice(uint256)\":{\"notice\":\"Sets `tx.gasprice`.\"},\"unixTime()\":{\"notice\":\"Returns the time since unix epoch in milliseconds.\"},\"warp(uint256)\":{\"notice\":\"Sets `block.timestamp`.\"},\"writeFile(string,string)\":{\"notice\":\"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeFileBinary(string,bytes)\":{\"notice\":\"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeJson(string,string)\":{\"notice\":\"Write a serialized JSON object to a file. If the file exists, it will be overwritten.\"},\"writeJson(string,string,string)\":{\"notice\":\"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing.\"},\"writeLine(string,string)\":{\"notice\":\"Writes line to file, creating a file if it does not exist. `path` is relative to the project root.\"},\"writeToml(string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML to a file.\"},\"writeToml(string,string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing.\"}},\"notice\":\"The `Vm` interface does allow manipulation of the EVM state. These are all intended to be used in tests, but it is not recommended to use these cheats in scripts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Vm.sol\":\"Vm\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8\",\"dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"accesses","outputs":[{"internalType":"bytes32[]","name":"readSlots","type":"bytes32[]"},{"internalType":"bytes32[]","name":"writeSlots","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"addr","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"allowCheatcodes"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assume"},{"inputs":[{"internalType":"uint256","name":"newBlobBaseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"blobBaseFee"},{"inputs":[{"internalType":"bytes32[]","name":"hashes","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"blobhashes"},{"inputs":[{"internalType":"string","name":"char","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"breakpoint"},{"inputs":[{"internalType":"string","name":"char","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"breakpoint"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"uint256","name":"newChainId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"chainId"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"clearMockedCalls"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"closeFile"},{"inputs":[{"internalType":"address","name":"newCoinbase","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"coinbase"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"},{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"deployer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"pure","type":"function","name":"computeCreateAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"copyFile","outputs":[{"internalType":"uint64","name":"copied","type":"uint64"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"createDir"},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"newBalance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deal"},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deleteSnapshot","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"deleteSnapshots"},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"newDifficulty","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"difficulty"},{"inputs":[{"internalType":"string","name":"pathToStateJson","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"dumpState"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"pure","type":"function","name":"ensNamehash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envExists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes32[]","name":"defaultValue","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"int256[]","name":"defaultValue","type":"int256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"defaultValue","type":"bool"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"defaultValue","type":"address"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"defaultValue","type":"uint256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes[]","name":"defaultValue","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"uint256[]","name":"defaultValue","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"string[]","name":"defaultValue","type":"string[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes","name":"defaultValue","type":"bytes"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"defaultValue","type":"bytes32"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"int256","name":"defaultValue","type":"int256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"address[]","name":"defaultValue","type":"address[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"defaultValue","type":"string"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bool[]","name":"defaultValue","type":"bool[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"newRuntimeBytecode","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"etch"},{"inputs":[{"internalType":"uint256","name":"fromBlock","type":"uint256"},{"internalType":"uint256","name":"toBlock","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"eth_getLogs","outputs":[{"internalType":"struct VmSafe.EthGetLogs[]","name":"logs","type":"tuple[]","components":[{"internalType":"address","name":"emitter","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes32","name":"transactionHash","type":"bytes32"},{"internalType":"uint64","name":"transactionIndex","type":"uint64"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"bool","name":"removed","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"exists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"minGas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCallMinGas"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"minGas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCallMinGas"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"},{"internalType":"address","name":"emitter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"address","name":"emitter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"bytes4","name":"revertData","type":"bytes4"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"uint64","name":"min","type":"uint64"},{"internalType":"uint64","name":"max","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectSafeMemory"},{"inputs":[{"internalType":"uint64","name":"min","type":"uint64"},{"internalType":"uint64","name":"max","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectSafeMemoryCall"},{"inputs":[{"internalType":"uint256","name":"newBasefee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"fee"},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"ffi","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"fsMetadata","outputs":[{"internalType":"struct VmSafe.FsMetadata","name":"metadata","type":"tuple","components":[{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"readOnly","type":"bool"},{"internalType":"uint256","name":"modified","type":"uint256"},{"internalType":"uint256","name":"accessed","type":"uint256"},{"internalType":"uint256","name":"created","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlobBaseFee","outputs":[{"internalType":"uint256","name":"blobBaseFee","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlobhashes","outputs":[{"internalType":"bytes32[]","name":"hashes","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"height","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getCode","outputs":[{"internalType":"bytes","name":"creationBytecode","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getDeployedCode","outputs":[{"internalType":"bytes","name":"runtimeBytecode","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getLabel","outputs":[{"internalType":"string","name":"currentLabel","type":"string"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"elementSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingKeyAndParentOf","outputs":[{"internalType":"bool","name":"found","type":"bool"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"parent","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingLength","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"},{"internalType":"uint256","name":"idx","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getMappingSlotAt","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getRecordedLogs","outputs":[{"internalType":"struct VmSafe.Log[]","name":"logs","type":"tuple[]","components":[{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address","name":"emitter","type":"address"}]}]},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"indexOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum VmSafe.ForgeContext","name":"context","type":"uint8"}],"stateMutability":"view","type":"function","name":"isContext","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"isDir","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"isFile","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isPersistent","outputs":[{"internalType":"bool","name":"persistent","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsJson","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsToml","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"newLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"label"},{"inputs":[],"stateMutability":"view","type":"function","name":"lastCallGas","outputs":[{"internalType":"struct VmSafe.Gas","name":"gas","type":"tuple","components":[{"internalType":"uint64","name":"gasLimit","type":"uint64"},{"internalType":"uint64","name":"gasTotalUsed","type":"uint64"},{"internalType":"uint64","name":"gasMemoryUsed","type":"uint64"},{"internalType":"int64","name":"gasRefunded","type":"int64"},{"internalType":"uint64","name":"gasRemaining","type":"uint64"}]}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"load","outputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"pathToAllocsJson","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"loadAllocs"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"account0","type":"address"},{"internalType":"address","name":"account1","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"account0","type":"address"},{"internalType":"address","name":"account1","type":"address"},{"internalType":"address","name":"account2","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCallRevert"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCallRevert"},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseAddress","outputs":[{"internalType":"address","name":"parsedValue","type":"address"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBool","outputs":[{"internalType":"bool","name":"parsedValue","type":"bool"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes","outputs":[{"internalType":"bytes","name":"parsedValue","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes32","outputs":[{"internalType":"bytes32","name":"parsedValue","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseInt","outputs":[{"internalType":"int256","name":"parsedValue","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseUint","outputs":[{"internalType":"uint256","name":"parsedValue","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pauseGasMetering"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"prank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"prank"},{"inputs":[{"internalType":"bytes32","name":"newPrevrandao","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"prevrandao"},{"inputs":[{"internalType":"uint256","name":"newPrevrandao","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"prevrandao"},{"inputs":[],"stateMutability":"view","type":"function","name":"projectRoot","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"prompt","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptSecret","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptSecretUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"min","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"readCallers","outputs":[{"internalType":"enum VmSafe.CallerMode","name":"callerMode","type":"uint8"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"},{"internalType":"bool","name":"followLinks","type":"bool"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFile","outputs":[{"internalType":"string","name":"data","type":"string"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFileBinary","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readLine","outputs":[{"internalType":"string","name":"line","type":"string"}]},{"inputs":[{"internalType":"string","name":"linkPath","type":"string"}],"stateMutability":"view","type":"function","name":"readLink","outputs":[{"internalType":"string","name":"targetPath","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"record"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recordLogs"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rememberKey","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"removeDir"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"removeFile"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"pure","type":"function","name":"replace","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"resetNonce"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resumeGasMetering"},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"revertTo","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"revertToAndDelete","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"revokePersistent"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokePersistent"},{"inputs":[{"internalType":"uint256","name":"newHeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"roll"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"rpcAlias","type":"string"}],"stateMutability":"view","type":"function","name":"rpcUrl","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrlStructs","outputs":[{"internalType":"struct VmSafe.Rpc[]","name":"urls","type":"tuple[]","components":[{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"url","type":"string"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrls","outputs":[{"internalType":"string[2][]","name":"urls","type":"string[2][]"}]},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"selectFork"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address[]","name":"values","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address","name":"value","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool[]","name":"values","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes[]","name":"values","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32[]","name":"values","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256[]","name":"values","type":"int256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeJson","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUintToHex","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setEnv"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint64","name":"newNonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setNonce"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint64","name":"newNonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setNonceUnsafe"},{"inputs":[{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signP256","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"bool","name":"skipTest","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"skip"},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sleep"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"snapshot","outputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"delimiter","type":"string"}],"stateMutability":"pure","type":"function","name":"split","outputs":[{"internalType":"string[]","name":"outputs","type":"string[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startMappingRecording"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startPrank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startPrank"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startStateDiffRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopAndReturnStateDiff","outputs":[{"internalType":"struct VmSafe.AccountAccess[]","name":"accountAccesses","type":"tuple[]","components":[{"internalType":"struct VmSafe.ChainInfo","name":"chainInfo","type":"tuple","components":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}]},{"internalType":"enum VmSafe.AccountAccessKind","name":"kind","type":"uint8"},{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"accessor","type":"address"},{"internalType":"bool","name":"initialized","type":"bool"},{"internalType":"uint256","name":"oldBalance","type":"uint256"},{"internalType":"uint256","name":"newBalance","type":"uint256"},{"internalType":"bytes","name":"deployedCode","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"reverted","type":"bool"},{"internalType":"struct VmSafe.StorageAccess[]","name":"storageAccesses","type":"tuple[]","components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bool","name":"isWrite","type":"bool"},{"internalType":"bytes32","name":"previousValue","type":"bytes32"},{"internalType":"bytes32","name":"newValue","type":"bytes32"},{"internalType":"bool","name":"reverted","type":"bool"}]},{"internalType":"uint64","name":"depth","type":"uint64"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopExpectSafeMemory"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopMappingRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopPrank"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"store"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toLowercase","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toUppercase","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"transact"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"transact"},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"trim","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"tryFfi","outputs":[{"internalType":"struct VmSafe.FfiResult","name":"result","type":"tuple","components":[{"internalType":"int32","name":"exitCode","type":"int32"},{"internalType":"bytes","name":"stdout","type":"bytes"},{"internalType":"bytes","name":"stderr","type":"bytes"}]}]},{"inputs":[{"internalType":"uint256","name":"newGasPrice","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"txGasPrice"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unixTime","outputs":[{"internalType":"uint256","name":"milliseconds","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"newTimestamp","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"warp"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeFile"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"writeFileBinary"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeLine"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"accesses(address)":{"notice":"Gets all accessed reads and write slot from a `vm.record` session, for a given address."},"activeFork()":{"notice":"Returns the identifier of the currently active fork. Reverts if no fork is currently active."},"addr(uint256)":{"notice":"Gets the address for a given private key."},"allowCheatcodes(address)":{"notice":"In forking mode, explicitly grant the given address cheatcode access."},"assertApproxEqAbs(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbs(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRel(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRel(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertEq(address,address)":{"notice":"Asserts that two `address` values are equal."},"assertEq(address,address,string)":{"notice":"Asserts that two `address` values are equal and includes error message into revert string on failure."},"assertEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are equal."},"assertEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure."},"assertEq(bool,bool)":{"notice":"Asserts that two `bool` values are equal."},"assertEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are equal and includes error message into revert string on failure."},"assertEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are equal."},"assertEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure."},"assertEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are equal."},"assertEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are equal and includes error message into revert string on failure."},"assertEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are equal."},"assertEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are equal."},"assertEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are equal."},"assertEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure."},"assertEq(int256,int256)":{"notice":"Asserts that two `int256` values are equal."},"assertEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are equal and includes error message into revert string on failure."},"assertEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are equal."},"assertEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure."},"assertEq(string,string)":{"notice":"Asserts that two `string` values are equal."},"assertEq(string,string,string)":{"notice":"Asserts that two `string` values are equal and includes error message into revert string on failure."},"assertEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are equal."},"assertEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure."},"assertEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal."},"assertEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal and includes error message into revert string on failure."},"assertEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256 values are equal."},"assertEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure."},"assertEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertFalse(bool)":{"notice":"Asserts that the given condition is false."},"assertFalse(bool,string)":{"notice":"Asserts that the given condition is false and includes error message into revert string on failure."},"assertGe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second."},"assertGe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second."},"assertGe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second."},"assertGt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second."},"assertGt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second."},"assertLe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second."},"assertLe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than second."},"assertLt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second."},"assertLt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertNotEq(address,address)":{"notice":"Asserts that two `address` values are not equal."},"assertNotEq(address,address,string)":{"notice":"Asserts that two `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are not equal."},"assertNotEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool,bool)":{"notice":"Asserts that two `bool` values are not equal."},"assertNotEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are not equal."},"assertNotEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are not equal."},"assertNotEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are not equal."},"assertNotEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are not equal."},"assertNotEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are not equal."},"assertNotEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256,int256)":{"notice":"Asserts that two `int256` values are not equal."},"assertNotEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are not equal."},"assertNotEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(string,string)":{"notice":"Asserts that two `string` values are not equal."},"assertNotEq(string,string,string)":{"notice":"Asserts that two `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are not equal."},"assertNotEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal."},"assertNotEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256` values are not equal."},"assertNotEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertNotEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertTrue(bool)":{"notice":"Asserts that the given condition is true."},"assertTrue(bool,string)":{"notice":"Asserts that the given condition is true and includes error message into revert string on failure."},"assume(bool)":{"notice":"If the condition is false, discard this run's fuzz inputs and generate new ones."},"blobBaseFee(uint256)":{"notice":"Sets `block.blobbasefee`"},"blobhashes(bytes32[])":{"notice":"Sets the blobhashes in the transaction. Not available on EVM versions before Cancun. If used on unsupported EVM versions it will revert."},"breakpoint(string)":{"notice":"Writes a breakpoint to jump to in the debugger."},"breakpoint(string,bool)":{"notice":"Writes a conditional breakpoint to jump to in the debugger."},"broadcast()":{"notice":"Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."},"broadcast(address)":{"notice":"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain."},"broadcast(uint256)":{"notice":"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain."},"chainId(uint256)":{"notice":"Sets `block.chainid`."},"clearMockedCalls()":{"notice":"Clears all mocked calls."},"closeFile(string)":{"notice":"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root."},"coinbase(address)":{"notice":"Sets `block.coinbase`."},"computeCreate2Address(bytes32,bytes32)":{"notice":"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer."},"computeCreate2Address(bytes32,bytes32,address)":{"notice":"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer."},"computeCreateAddress(address,uint256)":{"notice":"Compute the address a contract will be deployed at for a given deployer address and nonce."},"copyFile(string,string)":{"notice":"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root."},"createDir(string,bool)":{"notice":"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root."},"createFork(string)":{"notice":"Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork."},"createFork(string,bytes32)":{"notice":"Creates a new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, and returns the identifier of the fork."},"createFork(string,uint256)":{"notice":"Creates a new fork with the given endpoint and block and returns the identifier of the fork."},"createSelectFork(string)":{"notice":"Creates and also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork."},"createSelectFork(string,bytes32)":{"notice":"Creates and also selects new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, returns the identifier of the fork."},"createSelectFork(string,uint256)":{"notice":"Creates and also selects a new fork with the given endpoint and block and returns the identifier of the fork."},"createWallet(string)":{"notice":"Derives a private key from the name, labels the account with that name, and returns the wallet."},"createWallet(uint256)":{"notice":"Generates a wallet from the private key and returns the wallet."},"createWallet(uint256,string)":{"notice":"Generates a wallet from the private key, labels the account with that name, and returns the wallet."},"deal(address,uint256)":{"notice":"Sets an address' balance."},"deleteSnapshot(uint256)":{"notice":"Removes the snapshot with the given ID created by `snapshot`. Takes the snapshot ID to delete. Returns `true` if the snapshot was successfully deleted. Returns `false` if the snapshot does not exist."},"deleteSnapshots()":{"notice":"Removes _all_ snapshots previously created by `snapshot`."},"deriveKey(string,string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`."},"deriveKey(string,string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`."},"deriveKey(string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`."},"deriveKey(string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`."},"difficulty(uint256)":{"notice":"Sets `block.difficulty`. Not available on EVM versions from Paris onwards. Use `prevrandao` instead. Reverts if used on unsupported EVM versions."},"dumpState(string)":{"notice":"Dump a genesis JSON file's `allocs` to disk."},"ensNamehash(string)":{"notice":"Returns ENS namehash for provided string."},"envAddress(string)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed."},"envAddress(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBool(string)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed."},"envBool(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed."},"envBytes(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envExists(string)":{"notice":"Gets the environment variable `name` and returns true if it exists, else returns false."},"envInt(string)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed."},"envInt(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envOr(string,address)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bool)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes32)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,int256)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,address[])":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bool[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes32[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,int256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,string[])":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,uint256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,uint256)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envString(string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed."},"envString(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envUint(string)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed."},"envUint(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"etch(address,bytes)":{"notice":"Sets an address' code."},"eth_getLogs(uint256,uint256,address,bytes32[])":{"notice":"Gets all the logs according to specified filter."},"exists(string)":{"notice":"Returns true if the given path points to an existing entity, else returns false."},"expectCall(address,bytes)":{"notice":"Expects a call to an address with the specified calldata. Calldata can either be a strict or a partial match."},"expectCall(address,bytes,uint64)":{"notice":"Expects given number of calls to an address with the specified calldata."},"expectCall(address,uint256,bytes)":{"notice":"Expects a call to an address with the specified `msg.value` and calldata."},"expectCall(address,uint256,bytes,uint64)":{"notice":"Expects given number of calls to an address with the specified `msg.value` and calldata."},"expectCall(address,uint256,uint64,bytes)":{"notice":"Expect a call to an address with the specified `msg.value`, gas, and calldata."},"expectCall(address,uint256,uint64,bytes,uint64)":{"notice":"Expects given number of calls to an address with the specified `msg.value`, gas, and calldata."},"expectCallMinGas(address,uint256,uint64,bytes)":{"notice":"Expect a call to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas."},"expectCallMinGas(address,uint256,uint64,bytes,uint64)":{"notice":"Expect given number of calls to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas."},"expectEmit()":{"notice":"Prepare an expected log with all topic and data checks enabled. Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data."},"expectEmit(address)":{"notice":"Same as the previous method, but also checks supplied address against emitting contract."},"expectEmit(bool,bool,bool,bool)":{"notice":"Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data (as specified by the booleans)."},"expectEmit(bool,bool,bool,bool,address)":{"notice":"Same as the previous method, but also checks supplied address against emitting contract."},"expectRevert()":{"notice":"Expects an error on next call with any revert data."},"expectRevert(bytes)":{"notice":"Expects an error on next call that exactly matches the revert data."},"expectRevert(bytes4)":{"notice":"Expects an error on next call that starts with the revert data."},"expectSafeMemory(uint64,uint64)":{"notice":"Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the current subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set."},"expectSafeMemoryCall(uint64,uint64)":{"notice":"Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the next created subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set."},"fee(uint256)":{"notice":"Sets `block.basefee`."},"ffi(string[])":{"notice":"Performs a foreign function call via the terminal."},"fsMetadata(string)":{"notice":"Given a path, query the file system to get information about a file, directory, etc."},"getBlobBaseFee()":{"notice":"Gets the current `block.blobbasefee`. You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlobhashes()":{"notice":"Gets the blockhashes from the current transaction. Not available on EVM versions before Cancun. If used on unsupported EVM versions it will revert."},"getBlockNumber()":{"notice":"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlockTimestamp()":{"notice":"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getCode(string)":{"notice":"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"getDeployedCode(string)":{"notice":"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"getLabel(address)":{"notice":"Gets the label for the specified address."},"getMappingKeyAndParentOf(address,bytes32)":{"notice":"Gets the map key and parent of a mapping at a given slot, for a given address."},"getMappingLength(address,bytes32)":{"notice":"Gets the number of elements in the mapping at the given slot, for a given address."},"getMappingSlotAt(address,bytes32,uint256)":{"notice":"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping)."},"getNonce((address,uint256,uint256,uint256))":{"notice":"Get a `Wallet`'s nonce."},"getNonce(address)":{"notice":"Gets the nonce of an account."},"getRecordedLogs()":{"notice":"Gets all the recorded logs."},"indexOf(string,string)":{"notice":"Returns the index of the first occurrence of a `key` in an `input` string. Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. Returns 0 in case of an empty `key`."},"isContext(uint8)":{"notice":"Returns true if `forge` command was executed in given context."},"isDir(string)":{"notice":"Returns true if the path exists on disk and is pointing at a directory, else returns false."},"isFile(string)":{"notice":"Returns true if the path exists on disk and is pointing at a regular file, else returns false."},"isPersistent(address)":{"notice":"Returns true if the account is marked as persistent."},"keyExists(string,string)":{"notice":"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions."},"keyExistsJson(string,string)":{"notice":"Checks if `key` exists in a JSON object."},"keyExistsToml(string,string)":{"notice":"Checks if `key` exists in a TOML table."},"label(address,string)":{"notice":"Labels an address in call traces."},"lastCallGas()":{"notice":"Gets the gas used in the last call."},"load(address,bytes32)":{"notice":"Loads a storage slot from an address."},"loadAllocs(string)":{"notice":"Load a genesis JSON file's `allocs` into the in-memory revm state."},"makePersistent(address)":{"notice":"Marks that the account(s) should use persistent storage across fork swaps in a multifork setup Meaning, changes made to the state of this account will be kept when switching forks."},"makePersistent(address,address)":{"notice":"See `makePersistent(address)`."},"makePersistent(address,address,address)":{"notice":"See `makePersistent(address)`."},"makePersistent(address[])":{"notice":"See `makePersistent(address)`."},"mockCall(address,bytes,bytes)":{"notice":"Mocks a call to an address, returning specified data. Calldata can either be strict or a partial match, e.g. if you only pass a Solidity selector to the expected calldata, then the entire Solidity function will be mocked."},"mockCall(address,uint256,bytes,bytes)":{"notice":"Mocks a call to an address with a specific `msg.value`, returning specified data. Calldata match takes precedence over `msg.value` in case of ambiguity."},"mockCallRevert(address,bytes,bytes)":{"notice":"Reverts a call to an address with specified revert data."},"mockCallRevert(address,uint256,bytes,bytes)":{"notice":"Reverts a call to an address with a specific `msg.value`, with specified revert data."},"parseAddress(string)":{"notice":"Parses the given `string` into an `address`."},"parseBool(string)":{"notice":"Parses the given `string` into a `bool`."},"parseBytes(string)":{"notice":"Parses the given `string` into `bytes`."},"parseBytes32(string)":{"notice":"Parses the given `string` into a `bytes32`."},"parseInt(string)":{"notice":"Parses the given `string` into a `int256`."},"parseJson(string)":{"notice":"ABI-encodes a JSON object."},"parseJson(string,string)":{"notice":"ABI-encodes a JSON object at `key`."},"parseJsonAddress(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address`."},"parseJsonAddressArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address[]`."},"parseJsonBool(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool`."},"parseJsonBoolArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool[]`."},"parseJsonBytes(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes`."},"parseJsonBytes32(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32`."},"parseJsonBytes32Array(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32[]`."},"parseJsonBytesArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes[]`."},"parseJsonInt(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256`."},"parseJsonIntArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256[]`."},"parseJsonKeys(string,string)":{"notice":"Returns an array of all the keys in a JSON object."},"parseJsonString(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string`."},"parseJsonStringArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string[]`."},"parseJsonUint(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256`."},"parseJsonUintArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256[]`."},"parseToml(string)":{"notice":"ABI-encodes a TOML table."},"parseToml(string,string)":{"notice":"ABI-encodes a TOML table at `key`."},"parseTomlAddress(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address`."},"parseTomlAddressArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address[]`."},"parseTomlBool(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool`."},"parseTomlBoolArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool[]`."},"parseTomlBytes(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes`."},"parseTomlBytes32(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32`."},"parseTomlBytes32Array(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32[]`."},"parseTomlBytesArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes[]`."},"parseTomlInt(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256`."},"parseTomlIntArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256[]`."},"parseTomlKeys(string,string)":{"notice":"Returns an array of all the keys in a TOML table."},"parseTomlString(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string`."},"parseTomlStringArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string[]`."},"parseTomlUint(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256`."},"parseTomlUintArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256[]`."},"parseUint(string)":{"notice":"Parses the given `string` into a `uint256`."},"pauseGasMetering()":{"notice":"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused."},"prank(address)":{"notice":"Sets the *next* call's `msg.sender` to be the input address."},"prank(address,address)":{"notice":"Sets the *next* call's `msg.sender` to be the input address, and the `tx.origin` to be the second input."},"prevrandao(bytes32)":{"notice":"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert."},"prevrandao(uint256)":{"notice":"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert."},"projectRoot()":{"notice":"Get the path of the current project root."},"prompt(string)":{"notice":"Prompts the user for a string value in the terminal."},"promptAddress(string)":{"notice":"Prompts the user for an address in the terminal."},"promptSecret(string)":{"notice":"Prompts the user for a hidden string value in the terminal."},"promptSecretUint(string)":{"notice":"Prompts the user for hidden uint256 in the terminal (usually pk)."},"promptUint(string)":{"notice":"Prompts the user for uint256 in the terminal."},"randomAddress()":{"notice":"Returns a random `address`."},"randomUint()":{"notice":"Returns a random uint256 value."},"randomUint(uint256,uint256)":{"notice":"Returns random uin256 value between the provided range (=min..=max)."},"readCallers()":{"notice":"Reads the current `msg.sender` and `tx.origin` from state and reports if there is any active caller modification."},"readDir(string)":{"notice":"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true."},"readDir(string,uint64)":{"notice":"See `readDir(string)`."},"readDir(string,uint64,bool)":{"notice":"See `readDir(string)`."},"readFile(string)":{"notice":"Reads the entire content of file to string. `path` is relative to the project root."},"readFileBinary(string)":{"notice":"Reads the entire content of file as binary. `path` is relative to the project root."},"readLine(string)":{"notice":"Reads next line of file to string."},"readLink(string)":{"notice":"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist."},"record()":{"notice":"Records all storage reads and writes."},"recordLogs()":{"notice":"Record all the transaction logs."},"rememberKey(uint256)":{"notice":"Adds a private key to the local forge wallet and returns the address."},"removeDir(string,bool)":{"notice":"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root."},"removeFile(string)":{"notice":"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root."},"replace(string,string,string)":{"notice":"Replaces occurrences of `from` in the given `string` with `to`."},"resetNonce(address)":{"notice":"Resets the nonce of an account to 0 for EOAs and 1 for contract accounts."},"resumeGasMetering()":{"notice":"Resumes gas metering (i.e. gas usage is counted again). Noop if already on."},"revertTo(uint256)":{"notice":"Revert the state of the EVM to a previous snapshot Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted. Returns `false` if the snapshot does not exist. **Note:** This does not automatically delete the snapshot. To delete the snapshot use `deleteSnapshot`."},"revertToAndDelete(uint256)":{"notice":"Revert the state of the EVM to a previous snapshot and automatically deletes the snapshots Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted and deleted. Returns `false` if the snapshot does not exist."},"revokePersistent(address)":{"notice":"Revokes persistent status from the address, previously added via `makePersistent`."},"revokePersistent(address[])":{"notice":"See `revokePersistent(address)`."},"roll(uint256)":{"notice":"Sets `block.height`."},"rollFork(bytes32)":{"notice":"Updates the currently active fork to given transaction. This will `rollFork` with the number of the block the transaction was mined in and replays all transaction mined before it in the block."},"rollFork(uint256)":{"notice":"Updates the currently active fork to given block number This is similar to `roll` but for the currently active fork."},"rollFork(uint256,bytes32)":{"notice":"Updates the given fork to block number of the given transaction and replays all transaction mined before it in the block."},"rollFork(uint256,uint256)":{"notice":"Updates the given fork to given block number."},"rpc(string,string)":{"notice":"Performs an Ethereum JSON-RPC request to the current fork URL."},"rpcUrl(string)":{"notice":"Returns the RPC url for the given alias."},"rpcUrlStructs()":{"notice":"Returns all rpc urls and their aliases as structs."},"rpcUrls()":{"notice":"Returns all rpc urls and their aliases `[alias, url][]`."},"selectFork(uint256)":{"notice":"Takes a fork identifier created by `createFork` and sets the corresponding forked state as active."},"serializeAddress(string,string,address)":{"notice":"See `serializeJson`."},"serializeAddress(string,string,address[])":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool)":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool[])":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes)":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes[])":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32)":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32[])":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256)":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256[])":{"notice":"See `serializeJson`."},"serializeJson(string,string)":{"notice":"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment."},"serializeString(string,string,string)":{"notice":"See `serializeJson`."},"serializeString(string,string,string[])":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256)":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256[])":{"notice":"See `serializeJson`."},"serializeUintToHex(string,string,uint256)":{"notice":"See `serializeJson`."},"setEnv(string,string)":{"notice":"Sets environment variables."},"setNonce(address,uint64)":{"notice":"Sets the nonce of an account. Must be higher than the current nonce of the account."},"setNonceUnsafe(address,uint64)":{"notice":"Sets the nonce of an account to an arbitrary value."},"sign((address,uint256,uint256,uint256),bytes32)":{"notice":"Signs data with a `Wallet`."},"sign(address,bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. Raises error if none of the signers passed into the script have provided address."},"sign(bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script."},"sign(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256k1 curve."},"signP256(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256r1 curve."},"skip(bool)":{"notice":"Marks a test as skipped. Must be called at the top of the test."},"sleep(uint256)":{"notice":"Suspends execution of the main thread for `duration` milliseconds."},"snapshot()":{"notice":"Snapshot the current state of the evm. Returns the ID of the snapshot that was created. To revert a snapshot use `revertTo`."},"split(string,string)":{"notice":"Splits the given `string` into an array of strings divided by the `delimiter`."},"startBroadcast()":{"notice":"Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."},"startBroadcast(address)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain."},"startBroadcast(uint256)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain."},"startMappingRecording()":{"notice":"Starts recording all map SSTOREs for later retrieval."},"startPrank(address)":{"notice":"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called."},"startPrank(address,address)":{"notice":"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input."},"startStateDiffRecording()":{"notice":"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls"},"stopAndReturnStateDiff()":{"notice":"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session."},"stopBroadcast()":{"notice":"Stops collecting onchain transactions."},"stopExpectSafeMemory()":{"notice":"Stops all safe memory expectation in the current subcontext."},"stopMappingRecording()":{"notice":"Stops recording all map SSTOREs for later retrieval and clears the recorded data."},"stopPrank()":{"notice":"Resets subsequent calls' `msg.sender` to be `address(this)`."},"store(address,bytes32,bytes32)":{"notice":"Stores a value to an address' storage slot."},"toBase64(bytes)":{"notice":"Encodes a `bytes` value to a base64 string."},"toBase64(string)":{"notice":"Encodes a `string` value to a base64 string."},"toBase64URL(bytes)":{"notice":"Encodes a `bytes` value to a base64url string."},"toBase64URL(string)":{"notice":"Encodes a `string` value to a base64url string."},"toLowercase(string)":{"notice":"Converts the given `string` value to Lowercase."},"toString(address)":{"notice":"Converts the given value to a `string`."},"toString(bool)":{"notice":"Converts the given value to a `string`."},"toString(bytes)":{"notice":"Converts the given value to a `string`."},"toString(bytes32)":{"notice":"Converts the given value to a `string`."},"toString(int256)":{"notice":"Converts the given value to a `string`."},"toString(uint256)":{"notice":"Converts the given value to a `string`."},"toUppercase(string)":{"notice":"Converts the given `string` value to Uppercase."},"transact(bytes32)":{"notice":"Fetches the given transaction from the active fork and executes it on the current state."},"transact(uint256,bytes32)":{"notice":"Fetches the given transaction from the given fork and executes it on the current state."},"trim(string)":{"notice":"Trims leading and trailing whitespace from the given `string` value."},"tryFfi(string[])":{"notice":"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr."},"txGasPrice(uint256)":{"notice":"Sets `tx.gasprice`."},"unixTime()":{"notice":"Returns the time since unix epoch in milliseconds."},"warp(uint256)":{"notice":"Sets `block.timestamp`."},"writeFile(string,string)":{"notice":"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeFileBinary(string,bytes)":{"notice":"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeJson(string,string)":{"notice":"Write a serialized JSON object to a file. If the file exists, it will be overwritten."},"writeJson(string,string,string)":{"notice":"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing."},"writeLine(string,string)":{"notice":"Writes line to file, creating a file if it does not exist. `path` is relative to the project root."},"writeToml(string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML to a file."},"writeToml(string,string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing."}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Vm.sol":"Vm"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/Vm.sol":{"keccak256":"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4","urls":["bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8","dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy"],"license":"MIT OR Apache-2.0"}},"version":1},"id":9} \ No newline at end of file diff --git a/out/Vm.sol/VmSafe.json b/out/Vm.sol/VmSafe.json new file mode 100644 index 0000000..484cc7c --- /dev/null +++ b/out/Vm.sol/VmSafe.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"accesses","inputs":[{"name":"target","type":"address","internalType":"address"}],"outputs":[{"name":"readSlots","type":"bytes32[]","internalType":"bytes32[]"},{"name":"writeSlots","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"addr","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assume","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"closeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"},{"name":"deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreateAddress","inputs":[{"name":"deployer","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"copyFile","inputs":[{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"copied","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"createDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"ensNamehash","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envExists","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool","internalType":"bool"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256","internalType":"int256"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"eth_getLogs","inputs":[{"name":"fromBlock","type":"uint256","internalType":"uint256"},{"name":"toBlock","type":"uint256","internalType":"uint256"},{"name":"target","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.EthGetLogs[]","components":[{"name":"emitter","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"transactionHash","type":"bytes32","internalType":"bytes32"},{"name":"transactionIndex","type":"uint64","internalType":"uint64"},{"name":"logIndex","type":"uint256","internalType":"uint256"},{"name":"removed","type":"bool","internalType":"bool"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"exists","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"ffi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"fsMetadata","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct VmSafe.FsMetadata","components":[{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"readOnly","type":"bool","internalType":"bool"},{"name":"modified","type":"uint256","internalType":"uint256"},{"name":"accessed","type":"uint256","internalType":"uint256"},{"name":"created","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getBlobBaseFee","inputs":[],"outputs":[{"name":"blobBaseFee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"height","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"creationBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDeployedCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"runtimeBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getLabel","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"currentLabel","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getMappingKeyAndParentOf","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"elementSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"found","type":"bool","internalType":"bool"},{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"parent","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingLength","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"length","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingSlotAt","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"},{"name":"idx","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"getRecordedLogs","inputs":[],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.Log[]","components":[{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"emitter","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"indexOf","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"isContext","inputs":[{"name":"context","type":"uint8","internalType":"enum VmSafe.ForgeContext"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"isFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"keyExists","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"label","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newLabel","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lastCallGas","inputs":[],"outputs":[{"name":"gas","type":"tuple","internalType":"struct VmSafe.Gas","components":[{"name":"gasLimit","type":"uint64","internalType":"uint64"},{"name":"gasTotalUsed","type":"uint64","internalType":"uint64"},{"name":"gasMemoryUsed","type":"uint64","internalType":"uint64"},{"name":"gasRefunded","type":"int64","internalType":"int64"},{"name":"gasRemaining","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"load","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"data","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"parseAddress","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseBool","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes32","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseInt","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddress","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddressArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBool","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBoolArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32Array","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytesArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonInt","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonIntArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonKeys","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonString","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonStringArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUint","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUintArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddress","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddressArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBool","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBoolArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32Array","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytesArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlInt","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlIntArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlKeys","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlString","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlStringArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUint","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUintArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseUint","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"pauseGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"projectRoot","inputs":[],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"prompt","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptAddress","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptSecret","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptSecretUint","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptUint","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomUint","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomUint","inputs":[{"name":"min","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"},{"name":"followLinks","type":"bool","internalType":"bool"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"readLine","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"line","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readLink","inputs":[{"name":"linkPath","type":"string","internalType":"string"}],"outputs":[{"name":"targetPath","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"record","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recordLogs","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKey","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"replace","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"resumeGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rpc","inputs":[{"name":"method","type":"string","internalType":"string"},{"name":"params","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"rpcUrl","inputs":[{"name":"rpcAlias","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"rpcUrlStructs","inputs":[],"outputs":[{"name":"urls","type":"tuple[]","internalType":"struct VmSafe.Rpc[]","components":[{"name":"key","type":"string","internalType":"string"},{"name":"url","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"rpcUrls","inputs":[],"outputs":[{"name":"urls","type":"string[2][]","internalType":"string[2][]"}],"stateMutability":"view"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeJson","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUintToHex","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"setEnv","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"sign","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"sign","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signP256","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"sleep","inputs":[{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"split","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"delimiter","type":"string","internalType":"string"}],"outputs":[{"name":"outputs","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"startBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startStateDiffRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopAndReturnStateDiff","inputs":[],"outputs":[{"name":"accountAccesses","type":"tuple[]","internalType":"struct VmSafe.AccountAccess[]","components":[{"name":"chainInfo","type":"tuple","internalType":"struct VmSafe.ChainInfo","components":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"}]},{"name":"kind","type":"uint8","internalType":"enum VmSafe.AccountAccessKind"},{"name":"account","type":"address","internalType":"address"},{"name":"accessor","type":"address","internalType":"address"},{"name":"initialized","type":"bool","internalType":"bool"},{"name":"oldBalance","type":"uint256","internalType":"uint256"},{"name":"newBalance","type":"uint256","internalType":"uint256"},{"name":"deployedCode","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"reverted","type":"bool","internalType":"bool"},{"name":"storageAccesses","type":"tuple[]","internalType":"struct VmSafe.StorageAccess[]","components":[{"name":"account","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"},{"name":"isWrite","type":"bool","internalType":"bool"},{"name":"previousValue","type":"bytes32","internalType":"bytes32"},{"name":"newValue","type":"bytes32","internalType":"bytes32"},{"name":"reverted","type":"bool","internalType":"bool"}]},{"name":"depth","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"stopBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toLowercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toUppercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"trim","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"tryFfi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct VmSafe.FfiResult","components":[{"name":"exitCode","type":"int32","internalType":"int32"},{"name":"stdout","type":"bytes","internalType":"bytes"},{"name":"stderr","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"unixTime","inputs":[],"outputs":[{"name":"milliseconds","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"writeFile","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeLine","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeToml","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeToml","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"accesses(address)":"65bc9481","addr(uint256)":"ffa18649","assertApproxEqAbs(int256,int256,uint256)":"240f839d","assertApproxEqAbs(int256,int256,uint256,string)":"8289e621","assertApproxEqAbs(uint256,uint256,uint256)":"16d207c6","assertApproxEqAbs(uint256,uint256,uint256,string)":"f710b062","assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":"3d5bc8bc","assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":"6a5066d4","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":"045c55ce","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":"60429eb2","assertApproxEqRel(int256,int256,uint256)":"fea2d14f","assertApproxEqRel(int256,int256,uint256,string)":"ef277d72","assertApproxEqRel(uint256,uint256,uint256)":"8cf25ef4","assertApproxEqRel(uint256,uint256,uint256,string)":"1ecb7d33","assertApproxEqRelDecimal(int256,int256,uint256,uint256)":"abbf21cc","assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":"fccc11c4","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":"21ed2977","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":"82d6c8fd","assertEq(address,address)":"515361f6","assertEq(address,address,string)":"2f2769d1","assertEq(address[],address[])":"3868ac34","assertEq(address[],address[],string)":"3e9173c5","assertEq(bool,bool)":"f7fe3477","assertEq(bool,bool,string)":"4db19e7e","assertEq(bool[],bool[])":"707df785","assertEq(bool[],bool[],string)":"e48a8f8d","assertEq(bytes,bytes)":"97624631","assertEq(bytes,bytes,string)":"e24fed00","assertEq(bytes32,bytes32)":"7c84c69b","assertEq(bytes32,bytes32,string)":"c1fa1ed0","assertEq(bytes32[],bytes32[])":"0cc9ee84","assertEq(bytes32[],bytes32[],string)":"e03e9177","assertEq(bytes[],bytes[])":"e5fb9b4a","assertEq(bytes[],bytes[],string)":"f413f0b6","assertEq(int256,int256)":"fe74f05b","assertEq(int256,int256,string)":"714a2f13","assertEq(int256[],int256[])":"711043ac","assertEq(int256[],int256[],string)":"191f1b30","assertEq(string,string)":"f320d963","assertEq(string,string,string)":"36f656d8","assertEq(string[],string[])":"cf1c049c","assertEq(string[],string[],string)":"eff6b27d","assertEq(uint256,uint256)":"98296c54","assertEq(uint256,uint256,string)":"88b44c85","assertEq(uint256[],uint256[])":"975d5a12","assertEq(uint256[],uint256[],string)":"5d18c73a","assertEqDecimal(int256,int256,uint256)":"48016c04","assertEqDecimal(int256,int256,uint256,string)":"7e77b0c5","assertEqDecimal(uint256,uint256,uint256)":"27af7d9c","assertEqDecimal(uint256,uint256,uint256,string)":"d0cbbdef","assertFalse(bool)":"a5982885","assertFalse(bool,string)":"7ba04809","assertGe(int256,int256)":"0a30b771","assertGe(int256,int256,string)":"a84328dd","assertGe(uint256,uint256)":"a8d4d1d9","assertGe(uint256,uint256,string)":"e25242c0","assertGeDecimal(int256,int256,uint256)":"dc28c0f1","assertGeDecimal(int256,int256,uint256,string)":"5df93c9b","assertGeDecimal(uint256,uint256,uint256)":"3d1fe08a","assertGeDecimal(uint256,uint256,uint256,string)":"8bff9133","assertGt(int256,int256)":"5a362d45","assertGt(int256,int256,string)":"f8d33b9b","assertGt(uint256,uint256)":"db07fcd2","assertGt(uint256,uint256,string)":"d9a3c4d2","assertGtDecimal(int256,int256,uint256)":"78611f0e","assertGtDecimal(int256,int256,uint256,string)":"04a5c7ab","assertGtDecimal(uint256,uint256,uint256)":"eccd2437","assertGtDecimal(uint256,uint256,uint256,string)":"64949a8d","assertLe(int256,int256)":"95fd154e","assertLe(int256,int256,string)":"4dfe692c","assertLe(uint256,uint256)":"8466f415","assertLe(uint256,uint256,string)":"d17d4b0d","assertLeDecimal(int256,int256,uint256)":"11d1364a","assertLeDecimal(int256,int256,uint256,string)":"aa5cf788","assertLeDecimal(uint256,uint256,uint256)":"c304aab7","assertLeDecimal(uint256,uint256,uint256,string)":"7fefbbe0","assertLt(int256,int256)":"3e914080","assertLt(int256,int256,string)":"9ff531e3","assertLt(uint256,uint256)":"b12fc005","assertLt(uint256,uint256,string)":"65d5c135","assertLtDecimal(int256,int256,uint256)":"dbe8d88b","assertLtDecimal(int256,int256,uint256,string)":"40f0b4e0","assertLtDecimal(uint256,uint256,uint256)":"2077337e","assertLtDecimal(uint256,uint256,uint256,string)":"a972d037","assertNotEq(address,address)":"b12e1694","assertNotEq(address,address,string)":"8775a591","assertNotEq(address[],address[])":"46d0b252","assertNotEq(address[],address[],string)":"72c7e0b5","assertNotEq(bool,bool)":"236e4d66","assertNotEq(bool,bool,string)":"1091a261","assertNotEq(bool[],bool[])":"286fafea","assertNotEq(bool[],bool[],string)":"62c6f9fb","assertNotEq(bytes,bytes)":"3cf78e28","assertNotEq(bytes,bytes,string)":"9507540e","assertNotEq(bytes32,bytes32)":"898e83fc","assertNotEq(bytes32,bytes32,string)":"b2332f51","assertNotEq(bytes32[],bytes32[])":"0603ea68","assertNotEq(bytes32[],bytes32[],string)":"b873634c","assertNotEq(bytes[],bytes[])":"edecd035","assertNotEq(bytes[],bytes[],string)":"1dcd1f68","assertNotEq(int256,int256)":"f4c004e3","assertNotEq(int256,int256,string)":"4724c5b9","assertNotEq(int256[],int256[])":"0b72f4ef","assertNotEq(int256[],int256[],string)":"d3977322","assertNotEq(string,string)":"6a8237b3","assertNotEq(string,string,string)":"78bdcea7","assertNotEq(string[],string[])":"bdfacbe8","assertNotEq(string[],string[],string)":"b67187f3","assertNotEq(uint256,uint256)":"b7909320","assertNotEq(uint256,uint256,string)":"98f9bdbd","assertNotEq(uint256[],uint256[])":"56f29cba","assertNotEq(uint256[],uint256[],string)":"9a7fbd8f","assertNotEqDecimal(int256,int256,uint256)":"14e75680","assertNotEqDecimal(int256,int256,uint256,string)":"33949f0b","assertNotEqDecimal(uint256,uint256,uint256)":"669efca7","assertNotEqDecimal(uint256,uint256,uint256,string)":"f5a55558","assertTrue(bool)":"0c9fd581","assertTrue(bool,string)":"a34edc03","assume(bool)":"4c63e562","breakpoint(string)":"f0259e92","breakpoint(string,bool)":"f7d39a8d","broadcast()":"afc98040","broadcast(address)":"e6962cdb","broadcast(uint256)":"f67a965b","closeFile(string)":"48c3241f","computeCreate2Address(bytes32,bytes32)":"890c283b","computeCreate2Address(bytes32,bytes32,address)":"d323826a","computeCreateAddress(address,uint256)":"74637a7a","copyFile(string,string)":"a54a87d8","createDir(string,bool)":"168b64d3","createWallet(string)":"7404f1d2","createWallet(uint256)":"7a675bb6","createWallet(uint256,string)":"ed7c5462","deriveKey(string,string,uint32)":"6bcb2c1b","deriveKey(string,string,uint32,string)":"29233b1f","deriveKey(string,uint32)":"6229498b","deriveKey(string,uint32,string)":"32c8176d","ensNamehash(string)":"8c374c65","envAddress(string)":"350d56bf","envAddress(string,string)":"ad31b9fa","envBool(string)":"7ed1ec7d","envBool(string,string)":"aaaddeaf","envBytes(string)":"4d7baf06","envBytes(string,string)":"ddc2651b","envBytes32(string)":"97949042","envBytes32(string,string)":"5af231c1","envExists(string)":"ce8365f9","envInt(string)":"892a0c61","envInt(string,string)":"42181150","envOr(string,address)":"561fe540","envOr(string,bool)":"4777f3cf","envOr(string,bytes)":"b3e47705","envOr(string,bytes32)":"b4a85892","envOr(string,int256)":"bbcb713e","envOr(string,string)":"d145736c","envOr(string,string,address[])":"c74e9deb","envOr(string,string,bool[])":"eb85e83b","envOr(string,string,bytes32[])":"2281f367","envOr(string,string,bytes[])":"64bc3e64","envOr(string,string,int256[])":"4700d74b","envOr(string,string,string[])":"859216bc","envOr(string,string,uint256[])":"74318528","envOr(string,uint256)":"5e97348f","envString(string)":"f877cb19","envString(string,string)":"14b02bc9","envUint(string)":"c1978d1f","envUint(string,string)":"f3dec099","eth_getLogs(uint256,uint256,address,bytes32[])":"35e1349b","exists(string)":"261a323e","ffi(string[])":"89160467","fsMetadata(string)":"af368a08","getBlobBaseFee()":"1f6d6ef7","getBlockNumber()":"42cbb15c","getBlockTimestamp()":"796b89b9","getCode(string)":"8d1cc925","getDeployedCode(string)":"3ebf73b4","getLabel(address)":"28a249b0","getMappingKeyAndParentOf(address,bytes32)":"876e24e6","getMappingLength(address,bytes32)":"2f2fd63f","getMappingSlotAt(address,bytes32,uint256)":"ebc73ab4","getNonce((address,uint256,uint256,uint256))":"a5748aad","getNonce(address)":"2d0335ab","getRecordedLogs()":"191553a4","indexOf(string,string)":"8a0807b7","isContext(uint8)":"64af255d","isDir(string)":"7d15d019","isFile(string)":"e0eb04d4","keyExists(string,string)":"528a683c","keyExistsJson(string,string)":"db4235f6","keyExistsToml(string,string)":"600903ad","label(address,string)":"c657c718","lastCallGas()":"2b589b28","load(address,bytes32)":"667f9d70","parseAddress(string)":"c6ce059d","parseBool(string)":"974ef924","parseBytes(string)":"8f5d232d","parseBytes32(string)":"087e6e81","parseInt(string)":"42346c5e","parseJson(string)":"6a82600a","parseJson(string,string)":"85940ef1","parseJsonAddress(string,string)":"1e19e657","parseJsonAddressArray(string,string)":"2fce7883","parseJsonBool(string,string)":"9f86dc91","parseJsonBoolArray(string,string)":"91f3b94f","parseJsonBytes(string,string)":"fd921be8","parseJsonBytes32(string,string)":"1777e59d","parseJsonBytes32Array(string,string)":"91c75bc3","parseJsonBytesArray(string,string)":"6631aa99","parseJsonInt(string,string)":"7b048ccd","parseJsonIntArray(string,string)":"9983c28a","parseJsonKeys(string,string)":"213e4198","parseJsonString(string,string)":"49c4fac8","parseJsonStringArray(string,string)":"498fdcf4","parseJsonUint(string,string)":"addde2b6","parseJsonUintArray(string,string)":"522074ab","parseToml(string)":"592151f0","parseToml(string,string)":"37736e08","parseTomlAddress(string,string)":"65e7c844","parseTomlAddressArray(string,string)":"65c428e7","parseTomlBool(string,string)":"d30dced6","parseTomlBoolArray(string,string)":"127cfe9a","parseTomlBytes(string,string)":"d77bfdb9","parseTomlBytes32(string,string)":"8e214810","parseTomlBytes32Array(string,string)":"3e716f81","parseTomlBytesArray(string,string)":"b197c247","parseTomlInt(string,string)":"c1350739","parseTomlIntArray(string,string)":"d3522ae6","parseTomlKeys(string,string)":"812a44b2","parseTomlString(string,string)":"8bb8dd43","parseTomlStringArray(string,string)":"9f629281","parseTomlUint(string,string)":"cc7b0487","parseTomlUintArray(string,string)":"b5df27c8","parseUint(string)":"fa91454d","pauseGasMetering()":"d1a5b36f","projectRoot()":"d930a0e6","prompt(string)":"47eaf474","promptAddress(string)":"62ee05f4","promptSecret(string)":"1e279d41","promptSecretUint(string)":"69ca02b7","promptUint(string)":"652fd489","randomAddress()":"d5bee9f5","randomUint()":"25124730","randomUint(uint256,uint256)":"d61b051b","readDir(string)":"c4bc59e0","readDir(string,uint64)":"1497876c","readDir(string,uint64,bool)":"8102d70d","readFile(string)":"60f9bb11","readFileBinary(string)":"16ed7bc4","readLine(string)":"70f55728","readLink(string)":"9f5684a2","record()":"266cf109","recordLogs()":"41af2f52","rememberKey(uint256)":"22100064","removeDir(string,bool)":"45c62011","removeFile(string)":"f1afe04d","replace(string,string,string)":"e00ad03e","resumeGasMetering()":"2bcd50e0","rpc(string,string)":"1206c8a8","rpcUrl(string)":"975a6ce9","rpcUrlStructs()":"9d2ad72a","rpcUrls()":"a85a8418","serializeAddress(string,string,address)":"972c6062","serializeAddress(string,string,address[])":"1e356e1a","serializeBool(string,string,bool)":"ac22e971","serializeBool(string,string,bool[])":"92925aa1","serializeBytes(string,string,bytes)":"f21d52c7","serializeBytes(string,string,bytes[])":"9884b232","serializeBytes32(string,string,bytes32)":"2d812b44","serializeBytes32(string,string,bytes32[])":"201e43e2","serializeInt(string,string,int256)":"3f33db60","serializeInt(string,string,int256[])":"7676e127","serializeJson(string,string)":"9b3358b0","serializeString(string,string,string)":"88da6d35","serializeString(string,string,string[])":"561cd6f3","serializeUint(string,string,uint256)":"129e9002","serializeUint(string,string,uint256[])":"fee9a469","serializeUintToHex(string,string,uint256)":"ae5a2ae8","setEnv(string,string)":"3d5923ee","sign((address,uint256,uint256,uint256),bytes32)":"b25c5a25","sign(address,bytes32)":"8c1aa205","sign(bytes32)":"799cd333","sign(uint256,bytes32)":"e341eaa4","signP256(uint256,bytes32)":"83211b40","sleep(uint256)":"fa9d8713","split(string,string)":"8bb75533","startBroadcast()":"7fb5297f","startBroadcast(address)":"7fec2a8d","startBroadcast(uint256)":"ce817d47","startMappingRecording()":"3e9705c0","startStateDiffRecording()":"cf22e3c9","stopAndReturnStateDiff()":"aa5cf90e","stopBroadcast()":"76eadd36","stopMappingRecording()":"0d4aae9b","toBase64(bytes)":"a5cbfe65","toBase64(string)":"3f8be2c8","toBase64URL(bytes)":"c8bd0e4a","toBase64URL(string)":"ae3165b3","toLowercase(string)":"50bb0884","toString(address)":"56ca623e","toString(bool)":"71dce7da","toString(bytes)":"71aad10d","toString(bytes32)":"b11a19e8","toString(int256)":"a322c40e","toString(uint256)":"6900a3ae","toUppercase(string)":"074ae3d7","trim(string)":"b2dad155","tryFfi(string[])":"f45c1ce7","unixTime()":"625387dc","writeFile(string,string)":"897e0a97","writeFileBinary(string,bytes)":"1f21fc80","writeJson(string,string)":"e23cd19f","writeJson(string,string,string)":"35d6ad46","writeLine(string,string)":"619d897f","writeToml(string,string)":"c0865ba7","writeToml(string,string,string)":"51ac6a33"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"accesses\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"readSlots\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"writeSlots\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assume\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"closeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"computeCreateAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"copyFile\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"copied\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"createDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"ensNamehash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"defaultValue\",\"type\":\"bytes32[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"defaultValue\",\"type\":\"int256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"defaultValue\",\"type\":\"bool\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"defaultValue\",\"type\":\"address\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"defaultValue\",\"type\":\"uint256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"defaultValue\",\"type\":\"bytes[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"defaultValue\",\"type\":\"uint256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"defaultValue\",\"type\":\"string[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"defaultValue\",\"type\":\"bytes\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"defaultValue\",\"type\":\"bytes32\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"defaultValue\",\"type\":\"int256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"defaultValue\",\"type\":\"address[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultValue\",\"type\":\"string\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"defaultValue\",\"type\":\"bool[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"}],\"name\":\"eth_getLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"transactionIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"logIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"removed\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.EthGetLogs[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"ffi\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"fsMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"readOnly\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"modified\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"created\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.FsMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlobBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blobBaseFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"creationBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getDeployedCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"runtimeBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getLabel\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"currentLabel\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"elementSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingKeyAndParentOf\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"found\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"parent\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getMappingSlotAt\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRecordedLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.Log[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"indexOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum VmSafe.ForgeContext\",\"name\":\"context\",\"type\":\"uint8\"}],\"name\":\"isContext\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isDir\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isFile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsJson\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsToml\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"newLabel\",\"type\":\"string\"}],\"name\":\"label\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCallGas\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasTotalUsed\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasMemoryUsed\",\"type\":\"uint64\"},{\"internalType\":\"int64\",\"name\":\"gasRefunded\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"gasRemaining\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.Gas\",\"name\":\"gas\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"load\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"parsedValue\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"parsedValue\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"parsedValue\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"parsedValue\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"parsedValue\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"parsedValue\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"projectRoot\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"prompt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecret\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecretUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"followLinks\",\"type\":\"bool\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFile\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFileBinary\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readLine\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"line\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"linkPath\",\"type\":\"string\"}],\"name\":\"readLink\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"targetPath\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"record\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordLogs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"rememberKey\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"removeDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"removeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"replace\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"rpcAlias\",\"type\":\"string\"}],\"name\":\"rpcUrl\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrlStructs\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"internalType\":\"struct VmSafe.Rpc[]\",\"name\":\"urls\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrls\",\"outputs\":[{\"internalType\":\"string[2][]\",\"name\":\"urls\",\"type\":\"string[2][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"values\",\"type\":\"address[]\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"values\",\"type\":\"bool[]\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"values\",\"type\":\"bytes[]\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"values\",\"type\":\"bytes32[]\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"values\",\"type\":\"int256[]\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeJson\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"values\",\"type\":\"string[]\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUintToHex\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"setEnv\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signP256\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"sleep\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delimiter\",\"type\":\"string\"}],\"name\":\"split\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"outputs\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startStateDiffRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopAndReturnStateDiff\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.ChainInfo\",\"name\":\"chainInfo\",\"type\":\"tuple\"},{\"internalType\":\"enum VmSafe.AccountAccessKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"accessor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"oldBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"deployedCode\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isWrite\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"previousValue\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"newValue\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.StorageAccess[]\",\"name\":\"storageAccesses\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.AccountAccess[]\",\"name\":\"accountAccesses\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toLowercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toUppercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"trim\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"tryFfi\",\"outputs\":[{\"components\":[{\"internalType\":\"int32\",\"name\":\"exitCode\",\"type\":\"int32\"},{\"internalType\":\"bytes\",\"name\":\"stdout\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"stderr\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.FfiResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unixTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"milliseconds\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"writeFileBinary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeLine\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"accesses(address)\":{\"notice\":\"Gets all accessed reads and write slot from a `vm.record` session, for a given address.\"},\"addr(uint256)\":{\"notice\":\"Gets the address for a given private key.\"},\"assertApproxEqAbs(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbs(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRel(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRel(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEq(address,address)\":{\"notice\":\"Asserts that two `address` values are equal.\"},\"assertEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are equal.\"},\"assertEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are equal.\"},\"assertEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are equal.\"},\"assertEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are equal.\"},\"assertEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are equal.\"},\"assertEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal.\"},\"assertEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal.\"},\"assertEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are equal.\"},\"assertEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are equal.\"},\"assertEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(string,string)\":{\"notice\":\"Asserts that two `string` values are equal.\"},\"assertEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are equal.\"},\"assertEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal.\"},\"assertEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256 values are equal.\"},\"assertEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertFalse(bool)\":{\"notice\":\"Asserts that the given condition is false.\"},\"assertFalse(bool,string)\":{\"notice\":\"Asserts that the given condition is false and includes error message into revert string on failure.\"},\"assertGe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second.\"},\"assertGt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second.\"},\"assertGt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second.\"},\"assertLe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second.\"},\"assertLe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second.\"},\"assertLt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second.\"},\"assertLt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEq(address,address)\":{\"notice\":\"Asserts that two `address` values are not equal.\"},\"assertNotEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are not equal.\"},\"assertNotEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are not equal.\"},\"assertNotEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal.\"},\"assertNotEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are not equal.\"},\"assertNotEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are not equal.\"},\"assertNotEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal.\"},\"assertNotEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal.\"},\"assertNotEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are not equal.\"},\"assertNotEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal.\"},\"assertNotEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string,string)\":{\"notice\":\"Asserts that two `string` values are not equal.\"},\"assertNotEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are not equal.\"},\"assertNotEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal.\"},\"assertNotEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal.\"},\"assertNotEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertTrue(bool)\":{\"notice\":\"Asserts that the given condition is true.\"},\"assertTrue(bool,string)\":{\"notice\":\"Asserts that the given condition is true and includes error message into revert string on failure.\"},\"assume(bool)\":{\"notice\":\"If the condition is false, discard this run's fuzz inputs and generate new ones.\"},\"breakpoint(string)\":{\"notice\":\"Writes a breakpoint to jump to in the debugger.\"},\"breakpoint(string,bool)\":{\"notice\":\"Writes a conditional breakpoint to jump to in the debugger.\"},\"broadcast()\":{\"notice\":\"Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"broadcast(address)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain.\"},\"broadcast(uint256)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain.\"},\"closeFile(string)\":{\"notice\":\"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root.\"},\"computeCreate2Address(bytes32,bytes32)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer.\"},\"computeCreate2Address(bytes32,bytes32,address)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer.\"},\"computeCreateAddress(address,uint256)\":{\"notice\":\"Compute the address a contract will be deployed at for a given deployer address and nonce.\"},\"copyFile(string,string)\":{\"notice\":\"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root.\"},\"createDir(string,bool)\":{\"notice\":\"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root.\"},\"createWallet(string)\":{\"notice\":\"Derives a private key from the name, labels the account with that name, and returns the wallet.\"},\"createWallet(uint256)\":{\"notice\":\"Generates a wallet from the private key and returns the wallet.\"},\"createWallet(uint256,string)\":{\"notice\":\"Generates a wallet from the private key, labels the account with that name, and returns the wallet.\"},\"deriveKey(string,string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`.\"},\"deriveKey(string,string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`.\"},\"deriveKey(string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"deriveKey(string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"ensNamehash(string)\":{\"notice\":\"Returns ENS namehash for provided string.\"},\"envAddress(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed.\"},\"envAddress(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envExists(string)\":{\"notice\":\"Gets the environment variable `name` and returns true if it exists, else returns false.\"},\"envInt(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed.\"},\"envInt(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envOr(string,address)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bool)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes32)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,int256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,address[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bool[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes32[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,int256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,string[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,uint256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,uint256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envString(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed.\"},\"envString(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"eth_getLogs(uint256,uint256,address,bytes32[])\":{\"notice\":\"Gets all the logs according to specified filter.\"},\"exists(string)\":{\"notice\":\"Returns true if the given path points to an existing entity, else returns false.\"},\"ffi(string[])\":{\"notice\":\"Performs a foreign function call via the terminal.\"},\"fsMetadata(string)\":{\"notice\":\"Given a path, query the file system to get information about a file, directory, etc.\"},\"getBlobBaseFee()\":{\"notice\":\"Gets the current `block.blobbasefee`. You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlockNumber()\":{\"notice\":\"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlockTimestamp()\":{\"notice\":\"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getCode(string)\":{\"notice\":\"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getDeployedCode(string)\":{\"notice\":\"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getLabel(address)\":{\"notice\":\"Gets the label for the specified address.\"},\"getMappingKeyAndParentOf(address,bytes32)\":{\"notice\":\"Gets the map key and parent of a mapping at a given slot, for a given address.\"},\"getMappingLength(address,bytes32)\":{\"notice\":\"Gets the number of elements in the mapping at the given slot, for a given address.\"},\"getMappingSlotAt(address,bytes32,uint256)\":{\"notice\":\"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping).\"},\"getNonce((address,uint256,uint256,uint256))\":{\"notice\":\"Get a `Wallet`'s nonce.\"},\"getNonce(address)\":{\"notice\":\"Gets the nonce of an account.\"},\"getRecordedLogs()\":{\"notice\":\"Gets all the recorded logs.\"},\"indexOf(string,string)\":{\"notice\":\"Returns the index of the first occurrence of a `key` in an `input` string. Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. Returns 0 in case of an empty `key`.\"},\"isContext(uint8)\":{\"notice\":\"Returns true if `forge` command was executed in given context.\"},\"isDir(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a directory, else returns false.\"},\"isFile(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a regular file, else returns false.\"},\"keyExists(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions.\"},\"keyExistsJson(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object.\"},\"keyExistsToml(string,string)\":{\"notice\":\"Checks if `key` exists in a TOML table.\"},\"label(address,string)\":{\"notice\":\"Labels an address in call traces.\"},\"lastCallGas()\":{\"notice\":\"Gets the gas used in the last call.\"},\"load(address,bytes32)\":{\"notice\":\"Loads a storage slot from an address.\"},\"parseAddress(string)\":{\"notice\":\"Parses the given `string` into an `address`.\"},\"parseBool(string)\":{\"notice\":\"Parses the given `string` into a `bool`.\"},\"parseBytes(string)\":{\"notice\":\"Parses the given `string` into `bytes`.\"},\"parseBytes32(string)\":{\"notice\":\"Parses the given `string` into a `bytes32`.\"},\"parseInt(string)\":{\"notice\":\"Parses the given `string` into a `int256`.\"},\"parseJson(string)\":{\"notice\":\"ABI-encodes a JSON object.\"},\"parseJson(string,string)\":{\"notice\":\"ABI-encodes a JSON object at `key`.\"},\"parseJsonAddress(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address`.\"},\"parseJsonAddressArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address[]`.\"},\"parseJsonBool(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool`.\"},\"parseJsonBoolArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool[]`.\"},\"parseJsonBytes(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes`.\"},\"parseJsonBytes32(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32`.\"},\"parseJsonBytes32Array(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32[]`.\"},\"parseJsonBytesArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes[]`.\"},\"parseJsonInt(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256`.\"},\"parseJsonIntArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256[]`.\"},\"parseJsonKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a JSON object.\"},\"parseJsonString(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string`.\"},\"parseJsonStringArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string[]`.\"},\"parseJsonUint(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256`.\"},\"parseJsonUintArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256[]`.\"},\"parseToml(string)\":{\"notice\":\"ABI-encodes a TOML table.\"},\"parseToml(string,string)\":{\"notice\":\"ABI-encodes a TOML table at `key`.\"},\"parseTomlAddress(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address`.\"},\"parseTomlAddressArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address[]`.\"},\"parseTomlBool(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool`.\"},\"parseTomlBoolArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool[]`.\"},\"parseTomlBytes(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes`.\"},\"parseTomlBytes32(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32`.\"},\"parseTomlBytes32Array(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32[]`.\"},\"parseTomlBytesArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes[]`.\"},\"parseTomlInt(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256`.\"},\"parseTomlIntArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256[]`.\"},\"parseTomlKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a TOML table.\"},\"parseTomlString(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string`.\"},\"parseTomlStringArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string[]`.\"},\"parseTomlUint(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256`.\"},\"parseTomlUintArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256[]`.\"},\"parseUint(string)\":{\"notice\":\"Parses the given `string` into a `uint256`.\"},\"pauseGasMetering()\":{\"notice\":\"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused.\"},\"projectRoot()\":{\"notice\":\"Get the path of the current project root.\"},\"prompt(string)\":{\"notice\":\"Prompts the user for a string value in the terminal.\"},\"promptAddress(string)\":{\"notice\":\"Prompts the user for an address in the terminal.\"},\"promptSecret(string)\":{\"notice\":\"Prompts the user for a hidden string value in the terminal.\"},\"promptSecretUint(string)\":{\"notice\":\"Prompts the user for hidden uint256 in the terminal (usually pk).\"},\"promptUint(string)\":{\"notice\":\"Prompts the user for uint256 in the terminal.\"},\"randomAddress()\":{\"notice\":\"Returns a random `address`.\"},\"randomUint()\":{\"notice\":\"Returns a random uint256 value.\"},\"randomUint(uint256,uint256)\":{\"notice\":\"Returns random uin256 value between the provided range (=min..=max).\"},\"readDir(string)\":{\"notice\":\"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true.\"},\"readDir(string,uint64)\":{\"notice\":\"See `readDir(string)`.\"},\"readDir(string,uint64,bool)\":{\"notice\":\"See `readDir(string)`.\"},\"readFile(string)\":{\"notice\":\"Reads the entire content of file to string. `path` is relative to the project root.\"},\"readFileBinary(string)\":{\"notice\":\"Reads the entire content of file as binary. `path` is relative to the project root.\"},\"readLine(string)\":{\"notice\":\"Reads next line of file to string.\"},\"readLink(string)\":{\"notice\":\"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist.\"},\"record()\":{\"notice\":\"Records all storage reads and writes.\"},\"recordLogs()\":{\"notice\":\"Record all the transaction logs.\"},\"rememberKey(uint256)\":{\"notice\":\"Adds a private key to the local forge wallet and returns the address.\"},\"removeDir(string,bool)\":{\"notice\":\"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root.\"},\"removeFile(string)\":{\"notice\":\"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root.\"},\"replace(string,string,string)\":{\"notice\":\"Replaces occurrences of `from` in the given `string` with `to`.\"},\"resumeGasMetering()\":{\"notice\":\"Resumes gas metering (i.e. gas usage is counted again). Noop if already on.\"},\"rpc(string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the current fork URL.\"},\"rpcUrl(string)\":{\"notice\":\"Returns the RPC url for the given alias.\"},\"rpcUrlStructs()\":{\"notice\":\"Returns all rpc urls and their aliases as structs.\"},\"rpcUrls()\":{\"notice\":\"Returns all rpc urls and their aliases `[alias, url][]`.\"},\"serializeAddress(string,string,address)\":{\"notice\":\"See `serializeJson`.\"},\"serializeAddress(string,string,address[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeJson(string,string)\":{\"notice\":\"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment.\"},\"serializeString(string,string,string)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUintToHex(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"setEnv(string,string)\":{\"notice\":\"Sets environment variables.\"},\"sign((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`.\"},\"sign(address,bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Raises error if none of the signers passed into the script have provided address.\"},\"sign(bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script.\"},\"sign(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve.\"},\"signP256(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256r1 curve.\"},\"sleep(uint256)\":{\"notice\":\"Suspends execution of the main thread for `duration` milliseconds.\"},\"split(string,string)\":{\"notice\":\"Splits the given `string` into an array of strings divided by the `delimiter`.\"},\"startBroadcast()\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"startBroadcast(address)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain.\"},\"startBroadcast(uint256)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain.\"},\"startMappingRecording()\":{\"notice\":\"Starts recording all map SSTOREs for later retrieval.\"},\"startStateDiffRecording()\":{\"notice\":\"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls\"},\"stopAndReturnStateDiff()\":{\"notice\":\"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session.\"},\"stopBroadcast()\":{\"notice\":\"Stops collecting onchain transactions.\"},\"stopMappingRecording()\":{\"notice\":\"Stops recording all map SSTOREs for later retrieval and clears the recorded data.\"},\"toBase64(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64 string.\"},\"toBase64(string)\":{\"notice\":\"Encodes a `string` value to a base64 string.\"},\"toBase64URL(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64url string.\"},\"toBase64URL(string)\":{\"notice\":\"Encodes a `string` value to a base64url string.\"},\"toLowercase(string)\":{\"notice\":\"Converts the given `string` value to Lowercase.\"},\"toString(address)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bool)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes32)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(int256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(uint256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toUppercase(string)\":{\"notice\":\"Converts the given `string` value to Uppercase.\"},\"trim(string)\":{\"notice\":\"Trims leading and trailing whitespace from the given `string` value.\"},\"tryFfi(string[])\":{\"notice\":\"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr.\"},\"unixTime()\":{\"notice\":\"Returns the time since unix epoch in milliseconds.\"},\"writeFile(string,string)\":{\"notice\":\"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeFileBinary(string,bytes)\":{\"notice\":\"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeJson(string,string)\":{\"notice\":\"Write a serialized JSON object to a file. If the file exists, it will be overwritten.\"},\"writeJson(string,string,string)\":{\"notice\":\"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing.\"},\"writeLine(string,string)\":{\"notice\":\"Writes line to file, creating a file if it does not exist. `path` is relative to the project root.\"},\"writeToml(string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML to a file.\"},\"writeToml(string,string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing.\"}},\"notice\":\"The `VmSafe` interface does not allow manipulation of the EVM state or other actions that may result in Script simulations differing from on-chain execution. It is recommended to only use these cheats in scripts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Vm.sol\":\"VmSafe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8\",\"dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"accesses","outputs":[{"internalType":"bytes32[]","name":"readSlots","type":"bytes32[]"},{"internalType":"bytes32[]","name":"writeSlots","type":"bytes32[]"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"addr","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assume"},{"inputs":[{"internalType":"string","name":"char","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"breakpoint"},{"inputs":[{"internalType":"string","name":"char","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"breakpoint"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"closeFile"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"},{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"deployer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"pure","type":"function","name":"computeCreateAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"copyFile","outputs":[{"internalType":"uint64","name":"copied","type":"uint64"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"createDir"},{"inputs":[{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"pure","type":"function","name":"ensNamehash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envExists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes32[]","name":"defaultValue","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"int256[]","name":"defaultValue","type":"int256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"defaultValue","type":"bool"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"defaultValue","type":"address"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"defaultValue","type":"uint256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes[]","name":"defaultValue","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"uint256[]","name":"defaultValue","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"string[]","name":"defaultValue","type":"string[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes","name":"defaultValue","type":"bytes"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"defaultValue","type":"bytes32"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"int256","name":"defaultValue","type":"int256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"address[]","name":"defaultValue","type":"address[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"defaultValue","type":"string"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bool[]","name":"defaultValue","type":"bool[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"fromBlock","type":"uint256"},{"internalType":"uint256","name":"toBlock","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"eth_getLogs","outputs":[{"internalType":"struct VmSafe.EthGetLogs[]","name":"logs","type":"tuple[]","components":[{"internalType":"address","name":"emitter","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes32","name":"transactionHash","type":"bytes32"},{"internalType":"uint64","name":"transactionIndex","type":"uint64"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"bool","name":"removed","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"exists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"ffi","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"fsMetadata","outputs":[{"internalType":"struct VmSafe.FsMetadata","name":"metadata","type":"tuple","components":[{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"readOnly","type":"bool"},{"internalType":"uint256","name":"modified","type":"uint256"},{"internalType":"uint256","name":"accessed","type":"uint256"},{"internalType":"uint256","name":"created","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlobBaseFee","outputs":[{"internalType":"uint256","name":"blobBaseFee","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"height","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getCode","outputs":[{"internalType":"bytes","name":"creationBytecode","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getDeployedCode","outputs":[{"internalType":"bytes","name":"runtimeBytecode","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getLabel","outputs":[{"internalType":"string","name":"currentLabel","type":"string"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"elementSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingKeyAndParentOf","outputs":[{"internalType":"bool","name":"found","type":"bool"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"parent","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingLength","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"},{"internalType":"uint256","name":"idx","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getMappingSlotAt","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getRecordedLogs","outputs":[{"internalType":"struct VmSafe.Log[]","name":"logs","type":"tuple[]","components":[{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address","name":"emitter","type":"address"}]}]},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"indexOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum VmSafe.ForgeContext","name":"context","type":"uint8"}],"stateMutability":"view","type":"function","name":"isContext","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"isDir","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"isFile","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsJson","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsToml","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"newLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"label"},{"inputs":[],"stateMutability":"view","type":"function","name":"lastCallGas","outputs":[{"internalType":"struct VmSafe.Gas","name":"gas","type":"tuple","components":[{"internalType":"uint64","name":"gasLimit","type":"uint64"},{"internalType":"uint64","name":"gasTotalUsed","type":"uint64"},{"internalType":"uint64","name":"gasMemoryUsed","type":"uint64"},{"internalType":"int64","name":"gasRefunded","type":"int64"},{"internalType":"uint64","name":"gasRemaining","type":"uint64"}]}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"load","outputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseAddress","outputs":[{"internalType":"address","name":"parsedValue","type":"address"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBool","outputs":[{"internalType":"bool","name":"parsedValue","type":"bool"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes","outputs":[{"internalType":"bytes","name":"parsedValue","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes32","outputs":[{"internalType":"bytes32","name":"parsedValue","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseInt","outputs":[{"internalType":"int256","name":"parsedValue","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseUint","outputs":[{"internalType":"uint256","name":"parsedValue","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pauseGasMetering"},{"inputs":[],"stateMutability":"view","type":"function","name":"projectRoot","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"prompt","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptSecret","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptSecretUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"min","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"},{"internalType":"bool","name":"followLinks","type":"bool"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFile","outputs":[{"internalType":"string","name":"data","type":"string"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFileBinary","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readLine","outputs":[{"internalType":"string","name":"line","type":"string"}]},{"inputs":[{"internalType":"string","name":"linkPath","type":"string"}],"stateMutability":"view","type":"function","name":"readLink","outputs":[{"internalType":"string","name":"targetPath","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"record"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recordLogs"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rememberKey","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"removeDir"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"removeFile"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"pure","type":"function","name":"replace","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resumeGasMetering"},{"inputs":[{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"rpcAlias","type":"string"}],"stateMutability":"view","type":"function","name":"rpcUrl","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrlStructs","outputs":[{"internalType":"struct VmSafe.Rpc[]","name":"urls","type":"tuple[]","components":[{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"url","type":"string"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrls","outputs":[{"internalType":"string[2][]","name":"urls","type":"string[2][]"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address[]","name":"values","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address","name":"value","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool[]","name":"values","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes[]","name":"values","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32[]","name":"values","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256[]","name":"values","type":"int256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeJson","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUintToHex","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setEnv"},{"inputs":[{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signP256","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sleep"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"delimiter","type":"string"}],"stateMutability":"pure","type":"function","name":"split","outputs":[{"internalType":"string[]","name":"outputs","type":"string[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startMappingRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startStateDiffRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopAndReturnStateDiff","outputs":[{"internalType":"struct VmSafe.AccountAccess[]","name":"accountAccesses","type":"tuple[]","components":[{"internalType":"struct VmSafe.ChainInfo","name":"chainInfo","type":"tuple","components":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}]},{"internalType":"enum VmSafe.AccountAccessKind","name":"kind","type":"uint8"},{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"accessor","type":"address"},{"internalType":"bool","name":"initialized","type":"bool"},{"internalType":"uint256","name":"oldBalance","type":"uint256"},{"internalType":"uint256","name":"newBalance","type":"uint256"},{"internalType":"bytes","name":"deployedCode","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"reverted","type":"bool"},{"internalType":"struct VmSafe.StorageAccess[]","name":"storageAccesses","type":"tuple[]","components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bool","name":"isWrite","type":"bool"},{"internalType":"bytes32","name":"previousValue","type":"bytes32"},{"internalType":"bytes32","name":"newValue","type":"bytes32"},{"internalType":"bool","name":"reverted","type":"bool"}]},{"internalType":"uint64","name":"depth","type":"uint64"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopMappingRecording"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toLowercase","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toUppercase","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"trim","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"tryFfi","outputs":[{"internalType":"struct VmSafe.FfiResult","name":"result","type":"tuple","components":[{"internalType":"int32","name":"exitCode","type":"int32"},{"internalType":"bytes","name":"stdout","type":"bytes"},{"internalType":"bytes","name":"stderr","type":"bytes"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unixTime","outputs":[{"internalType":"uint256","name":"milliseconds","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeFile"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"writeFileBinary"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeLine"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"accesses(address)":{"notice":"Gets all accessed reads and write slot from a `vm.record` session, for a given address."},"addr(uint256)":{"notice":"Gets the address for a given private key."},"assertApproxEqAbs(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbs(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRel(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRel(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertEq(address,address)":{"notice":"Asserts that two `address` values are equal."},"assertEq(address,address,string)":{"notice":"Asserts that two `address` values are equal and includes error message into revert string on failure."},"assertEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are equal."},"assertEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure."},"assertEq(bool,bool)":{"notice":"Asserts that two `bool` values are equal."},"assertEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are equal and includes error message into revert string on failure."},"assertEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are equal."},"assertEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure."},"assertEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are equal."},"assertEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are equal and includes error message into revert string on failure."},"assertEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are equal."},"assertEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are equal."},"assertEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are equal."},"assertEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure."},"assertEq(int256,int256)":{"notice":"Asserts that two `int256` values are equal."},"assertEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are equal and includes error message into revert string on failure."},"assertEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are equal."},"assertEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure."},"assertEq(string,string)":{"notice":"Asserts that two `string` values are equal."},"assertEq(string,string,string)":{"notice":"Asserts that two `string` values are equal and includes error message into revert string on failure."},"assertEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are equal."},"assertEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure."},"assertEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal."},"assertEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal and includes error message into revert string on failure."},"assertEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256 values are equal."},"assertEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure."},"assertEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertFalse(bool)":{"notice":"Asserts that the given condition is false."},"assertFalse(bool,string)":{"notice":"Asserts that the given condition is false and includes error message into revert string on failure."},"assertGe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second."},"assertGe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second."},"assertGe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second."},"assertGt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second."},"assertGt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second."},"assertLe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second."},"assertLe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than second."},"assertLt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second."},"assertLt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertNotEq(address,address)":{"notice":"Asserts that two `address` values are not equal."},"assertNotEq(address,address,string)":{"notice":"Asserts that two `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are not equal."},"assertNotEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool,bool)":{"notice":"Asserts that two `bool` values are not equal."},"assertNotEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are not equal."},"assertNotEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are not equal."},"assertNotEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are not equal."},"assertNotEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are not equal."},"assertNotEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are not equal."},"assertNotEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256,int256)":{"notice":"Asserts that two `int256` values are not equal."},"assertNotEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are not equal."},"assertNotEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(string,string)":{"notice":"Asserts that two `string` values are not equal."},"assertNotEq(string,string,string)":{"notice":"Asserts that two `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are not equal."},"assertNotEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal."},"assertNotEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256` values are not equal."},"assertNotEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertNotEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertTrue(bool)":{"notice":"Asserts that the given condition is true."},"assertTrue(bool,string)":{"notice":"Asserts that the given condition is true and includes error message into revert string on failure."},"assume(bool)":{"notice":"If the condition is false, discard this run's fuzz inputs and generate new ones."},"breakpoint(string)":{"notice":"Writes a breakpoint to jump to in the debugger."},"breakpoint(string,bool)":{"notice":"Writes a conditional breakpoint to jump to in the debugger."},"broadcast()":{"notice":"Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."},"broadcast(address)":{"notice":"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain."},"broadcast(uint256)":{"notice":"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain."},"closeFile(string)":{"notice":"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root."},"computeCreate2Address(bytes32,bytes32)":{"notice":"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer."},"computeCreate2Address(bytes32,bytes32,address)":{"notice":"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer."},"computeCreateAddress(address,uint256)":{"notice":"Compute the address a contract will be deployed at for a given deployer address and nonce."},"copyFile(string,string)":{"notice":"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root."},"createDir(string,bool)":{"notice":"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root."},"createWallet(string)":{"notice":"Derives a private key from the name, labels the account with that name, and returns the wallet."},"createWallet(uint256)":{"notice":"Generates a wallet from the private key and returns the wallet."},"createWallet(uint256,string)":{"notice":"Generates a wallet from the private key, labels the account with that name, and returns the wallet."},"deriveKey(string,string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`."},"deriveKey(string,string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`."},"deriveKey(string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`."},"deriveKey(string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`."},"ensNamehash(string)":{"notice":"Returns ENS namehash for provided string."},"envAddress(string)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed."},"envAddress(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBool(string)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed."},"envBool(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed."},"envBytes(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envExists(string)":{"notice":"Gets the environment variable `name` and returns true if it exists, else returns false."},"envInt(string)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed."},"envInt(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envOr(string,address)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bool)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes32)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,int256)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,address[])":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bool[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes32[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,int256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,string[])":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,uint256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,uint256)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envString(string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed."},"envString(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envUint(string)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed."},"envUint(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"eth_getLogs(uint256,uint256,address,bytes32[])":{"notice":"Gets all the logs according to specified filter."},"exists(string)":{"notice":"Returns true if the given path points to an existing entity, else returns false."},"ffi(string[])":{"notice":"Performs a foreign function call via the terminal."},"fsMetadata(string)":{"notice":"Given a path, query the file system to get information about a file, directory, etc."},"getBlobBaseFee()":{"notice":"Gets the current `block.blobbasefee`. You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlockNumber()":{"notice":"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlockTimestamp()":{"notice":"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getCode(string)":{"notice":"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"getDeployedCode(string)":{"notice":"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"getLabel(address)":{"notice":"Gets the label for the specified address."},"getMappingKeyAndParentOf(address,bytes32)":{"notice":"Gets the map key and parent of a mapping at a given slot, for a given address."},"getMappingLength(address,bytes32)":{"notice":"Gets the number of elements in the mapping at the given slot, for a given address."},"getMappingSlotAt(address,bytes32,uint256)":{"notice":"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping)."},"getNonce((address,uint256,uint256,uint256))":{"notice":"Get a `Wallet`'s nonce."},"getNonce(address)":{"notice":"Gets the nonce of an account."},"getRecordedLogs()":{"notice":"Gets all the recorded logs."},"indexOf(string,string)":{"notice":"Returns the index of the first occurrence of a `key` in an `input` string. Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. Returns 0 in case of an empty `key`."},"isContext(uint8)":{"notice":"Returns true if `forge` command was executed in given context."},"isDir(string)":{"notice":"Returns true if the path exists on disk and is pointing at a directory, else returns false."},"isFile(string)":{"notice":"Returns true if the path exists on disk and is pointing at a regular file, else returns false."},"keyExists(string,string)":{"notice":"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions."},"keyExistsJson(string,string)":{"notice":"Checks if `key` exists in a JSON object."},"keyExistsToml(string,string)":{"notice":"Checks if `key` exists in a TOML table."},"label(address,string)":{"notice":"Labels an address in call traces."},"lastCallGas()":{"notice":"Gets the gas used in the last call."},"load(address,bytes32)":{"notice":"Loads a storage slot from an address."},"parseAddress(string)":{"notice":"Parses the given `string` into an `address`."},"parseBool(string)":{"notice":"Parses the given `string` into a `bool`."},"parseBytes(string)":{"notice":"Parses the given `string` into `bytes`."},"parseBytes32(string)":{"notice":"Parses the given `string` into a `bytes32`."},"parseInt(string)":{"notice":"Parses the given `string` into a `int256`."},"parseJson(string)":{"notice":"ABI-encodes a JSON object."},"parseJson(string,string)":{"notice":"ABI-encodes a JSON object at `key`."},"parseJsonAddress(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address`."},"parseJsonAddressArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address[]`."},"parseJsonBool(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool`."},"parseJsonBoolArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool[]`."},"parseJsonBytes(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes`."},"parseJsonBytes32(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32`."},"parseJsonBytes32Array(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32[]`."},"parseJsonBytesArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes[]`."},"parseJsonInt(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256`."},"parseJsonIntArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256[]`."},"parseJsonKeys(string,string)":{"notice":"Returns an array of all the keys in a JSON object."},"parseJsonString(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string`."},"parseJsonStringArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string[]`."},"parseJsonUint(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256`."},"parseJsonUintArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256[]`."},"parseToml(string)":{"notice":"ABI-encodes a TOML table."},"parseToml(string,string)":{"notice":"ABI-encodes a TOML table at `key`."},"parseTomlAddress(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address`."},"parseTomlAddressArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address[]`."},"parseTomlBool(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool`."},"parseTomlBoolArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool[]`."},"parseTomlBytes(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes`."},"parseTomlBytes32(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32`."},"parseTomlBytes32Array(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32[]`."},"parseTomlBytesArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes[]`."},"parseTomlInt(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256`."},"parseTomlIntArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256[]`."},"parseTomlKeys(string,string)":{"notice":"Returns an array of all the keys in a TOML table."},"parseTomlString(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string`."},"parseTomlStringArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string[]`."},"parseTomlUint(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256`."},"parseTomlUintArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256[]`."},"parseUint(string)":{"notice":"Parses the given `string` into a `uint256`."},"pauseGasMetering()":{"notice":"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused."},"projectRoot()":{"notice":"Get the path of the current project root."},"prompt(string)":{"notice":"Prompts the user for a string value in the terminal."},"promptAddress(string)":{"notice":"Prompts the user for an address in the terminal."},"promptSecret(string)":{"notice":"Prompts the user for a hidden string value in the terminal."},"promptSecretUint(string)":{"notice":"Prompts the user for hidden uint256 in the terminal (usually pk)."},"promptUint(string)":{"notice":"Prompts the user for uint256 in the terminal."},"randomAddress()":{"notice":"Returns a random `address`."},"randomUint()":{"notice":"Returns a random uint256 value."},"randomUint(uint256,uint256)":{"notice":"Returns random uin256 value between the provided range (=min..=max)."},"readDir(string)":{"notice":"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true."},"readDir(string,uint64)":{"notice":"See `readDir(string)`."},"readDir(string,uint64,bool)":{"notice":"See `readDir(string)`."},"readFile(string)":{"notice":"Reads the entire content of file to string. `path` is relative to the project root."},"readFileBinary(string)":{"notice":"Reads the entire content of file as binary. `path` is relative to the project root."},"readLine(string)":{"notice":"Reads next line of file to string."},"readLink(string)":{"notice":"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist."},"record()":{"notice":"Records all storage reads and writes."},"recordLogs()":{"notice":"Record all the transaction logs."},"rememberKey(uint256)":{"notice":"Adds a private key to the local forge wallet and returns the address."},"removeDir(string,bool)":{"notice":"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root."},"removeFile(string)":{"notice":"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root."},"replace(string,string,string)":{"notice":"Replaces occurrences of `from` in the given `string` with `to`."},"resumeGasMetering()":{"notice":"Resumes gas metering (i.e. gas usage is counted again). Noop if already on."},"rpc(string,string)":{"notice":"Performs an Ethereum JSON-RPC request to the current fork URL."},"rpcUrl(string)":{"notice":"Returns the RPC url for the given alias."},"rpcUrlStructs()":{"notice":"Returns all rpc urls and their aliases as structs."},"rpcUrls()":{"notice":"Returns all rpc urls and their aliases `[alias, url][]`."},"serializeAddress(string,string,address)":{"notice":"See `serializeJson`."},"serializeAddress(string,string,address[])":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool)":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool[])":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes)":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes[])":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32)":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32[])":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256)":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256[])":{"notice":"See `serializeJson`."},"serializeJson(string,string)":{"notice":"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment."},"serializeString(string,string,string)":{"notice":"See `serializeJson`."},"serializeString(string,string,string[])":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256)":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256[])":{"notice":"See `serializeJson`."},"serializeUintToHex(string,string,uint256)":{"notice":"See `serializeJson`."},"setEnv(string,string)":{"notice":"Sets environment variables."},"sign((address,uint256,uint256,uint256),bytes32)":{"notice":"Signs data with a `Wallet`."},"sign(address,bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. Raises error if none of the signers passed into the script have provided address."},"sign(bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script."},"sign(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256k1 curve."},"signP256(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256r1 curve."},"sleep(uint256)":{"notice":"Suspends execution of the main thread for `duration` milliseconds."},"split(string,string)":{"notice":"Splits the given `string` into an array of strings divided by the `delimiter`."},"startBroadcast()":{"notice":"Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."},"startBroadcast(address)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain."},"startBroadcast(uint256)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain."},"startMappingRecording()":{"notice":"Starts recording all map SSTOREs for later retrieval."},"startStateDiffRecording()":{"notice":"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls"},"stopAndReturnStateDiff()":{"notice":"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session."},"stopBroadcast()":{"notice":"Stops collecting onchain transactions."},"stopMappingRecording()":{"notice":"Stops recording all map SSTOREs for later retrieval and clears the recorded data."},"toBase64(bytes)":{"notice":"Encodes a `bytes` value to a base64 string."},"toBase64(string)":{"notice":"Encodes a `string` value to a base64 string."},"toBase64URL(bytes)":{"notice":"Encodes a `bytes` value to a base64url string."},"toBase64URL(string)":{"notice":"Encodes a `string` value to a base64url string."},"toLowercase(string)":{"notice":"Converts the given `string` value to Lowercase."},"toString(address)":{"notice":"Converts the given value to a `string`."},"toString(bool)":{"notice":"Converts the given value to a `string`."},"toString(bytes)":{"notice":"Converts the given value to a `string`."},"toString(bytes32)":{"notice":"Converts the given value to a `string`."},"toString(int256)":{"notice":"Converts the given value to a `string`."},"toString(uint256)":{"notice":"Converts the given value to a `string`."},"toUppercase(string)":{"notice":"Converts the given `string` value to Uppercase."},"trim(string)":{"notice":"Trims leading and trailing whitespace from the given `string` value."},"tryFfi(string[])":{"notice":"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr."},"unixTime()":{"notice":"Returns the time since unix epoch in milliseconds."},"writeFile(string,string)":{"notice":"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeFileBinary(string,bytes)":{"notice":"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeJson(string,string)":{"notice":"Write a serialized JSON object to a file. If the file exists, it will be overwritten."},"writeJson(string,string,string)":{"notice":"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing."},"writeLine(string,string)":{"notice":"Writes line to file, creating a file if it does not exist. `path` is relative to the project root."},"writeToml(string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML to a file."},"writeToml(string,string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing."}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Vm.sol":"VmSafe"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/Vm.sol":{"keccak256":"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4","urls":["bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8","dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy"],"license":"MIT OR Apache-2.0"}},"version":1},"id":9} \ No newline at end of file diff --git a/out/console.sol/console.json b/out/console.sol/console.json new file mode 100644 index 0000000..89b5b3c --- /dev/null +++ b/out/console.sol/console.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200d1e7c4953ef8811cfdc638203b68061ada2f056dc2e2319859a053f3a9273db64736f6c63430008180033","sourceMap":"66:67248:10:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;66:67248:10;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200d1e7c4953ef8811cfdc638203b68061ada2f056dc2e2319859a053f3a9273db64736f6c63430008180033","sourceMap":"66:67248:10:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/console.sol\":\"console\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194\",\"dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/console.sol":"console"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/console.sol":{"keccak256":"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a","urls":["bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194","dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn"],"license":"MIT"}},"version":1},"id":10} \ No newline at end of file diff --git a/out/deposit.t.sol/ContractBTest.json b/out/deposit.t.sol/ContractBTest.json new file mode 100644 index 0000000..3154ef5 --- /dev/null +++ b/out/deposit.t.sol/ContractBTest.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"Deposit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080604052600c8054600160ff199182168117909255601f8054909116909117905534801561002d57600080fd5b50610dff8061003d6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063916a17c61161008c578063ba414fa611610066578063ba414fa61461018d578063e20c9f71146101a5578063ed21248c146101ad578063fa7626d4146101b557600080fd5b8063916a17c614610168578063b0464fdc1461017d578063b5508aa91461018557600080fd5b80633e5e3c23116100c85780633e5e3c231461012e5780633f7286f41461013657806366d9a9a01461013e57806385226c811461015357600080fd5b80630a9254e4146100ef5780631ed7831c146100fb5780632ade388014610119575b600080fd5b6100f9602a602055565b005b6101036101c2565b6040516101109190610a80565b60405180910390f35b610121610224565b6040516101109190610b1a565b610103610366565b6101036103c6565b610146610426565b6040516101109190610c1f565b61015b610593565b6040516101109190610ca4565b610170610663565b6040516101109190610d06565b610170610749565b61015b61082f565b6101956108ff565b6040519015158152602001610110565b6101036109a3565b6100f9610a03565b601f546101959060ff1681565b6060601680548060200260200160405190810160405280929190818152602001828054801561021a57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116101fc575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b8282101561035d57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156103465783829060005260206000200180546102b990610d75565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610d75565b80156103325780601f1061030757610100808354040283529160200191610332565b820191906000526020600020905b81548152906001019060200180831161031557829003601f168201915b50505050508152602001906001019061029a565b505050508152505081526020019060010190610248565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801561021a576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116101fc575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561021a576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116101fc575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101561035d578382906000526020600020906002020160405180604001604052908160008201805461047d90610d75565b80601f01602080910402602001604051908101604052809291908181526020018280546104a990610d75565b80156104f65780601f106104cb576101008083540402835291602001916104f6565b820191906000526020600020905b8154815290600101906020018083116104d957829003601f168201915b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561057b57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841161053d5790505b5050505050815250508152602001906001019061044a565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101561035d5783829060005260206000200180546105d690610d75565b80601f016020809104026020016040519081016040528092919081815260200182805461060290610d75565b801561064f5780601f106106245761010080835404028352916020019161064f565b820191906000526020600020905b81548152906001019060200180831161063257829003601f168201915b5050505050815260200190600101906105b7565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101561035d5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561073157602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116106f35790505b50505050508152505081526020019060010190610687565b6060601c805480602002602001604051908101604052809291908181526020016000905b8282101561035d5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561081757602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116107d95790505b5050505050815250508152602001906001019061076d565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101561035d57838290600052602060002001805461087290610d75565b80601f016020809104026020016040519081016040528092919081815260200182805461089e90610d75565b80156108eb5780601f106108c0576101008083540402835291602001916108eb565b820191906000526020600020905b8154815290600101906020018083116108ce57829003601f168201915b505050505081526020019060010190610853565b60085460009060ff1615610917575060085460ff1690565b604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190526519985a5b195960d21b602483015260009163667f9d7090604401602060405180830381865afa158015610978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099c9190610db0565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801561021a576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116101fc575050505050905090565b610a10602054602a610a12565b565b60405163260a5b1560e21b81526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c549060440160006040518083038186803b158015610a6457600080fd5b505afa158015610a78573d6000803e3d6000fd5b505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610ac15783516001600160a01b031683529284019291840191600101610a9c565b50909695505050505050565b6000815180845260005b81811015610af357602081850181015186830182015201610ad7565b81811115610b05576000602083870101525b50601f01601f19169290920160200192915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b85811015610bca57603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b81811015610bb457605f19898503018352610ba2848651610acd565b948e01949350918d0191600101610b86565b505050978a019794505091880191600101610b41565b50919a9950505050505050505050565b600081518084526020808501945080840160005b83811015610c145781516001600160e01b03191687529582019590820190600101610bee565b509495945050505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015610c9657888303603f1901855281518051878552610c6a88860182610acd565b91890151858303868b0152919050610c828183610bda565b968901969450505090860190600101610c46565b509098975050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015610cf957603f19888603018452610ce7858351610acd565b94509285019290850190600101610ccb565b5092979650505050505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015610c9657888303603f19018552815180516001600160a01b03168452870151878401879052610d6287850182610bda565b9588019593505090860190600101610d2d565b600181811c90821680610d8957607f821691505b60208210811415610daa57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215610dc257600080fd5b505191905056fea2646970667358221220aba4106e605cdf839aa449e057857308ac1880e50cf757f1a304a86c8a7b9fef64736f6c634300080a0033","sourceMap":"63:193:23:-:0;;;3126:44:2;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;;1016:26:12;;;;;;;;;;;63:193:23;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063916a17c61161008c578063ba414fa611610066578063ba414fa61461018d578063e20c9f71146101a5578063ed21248c146101ad578063fa7626d4146101b557600080fd5b8063916a17c614610168578063b0464fdc1461017d578063b5508aa91461018557600080fd5b80633e5e3c23116100c85780633e5e3c231461012e5780633f7286f41461013657806366d9a9a01461013e57806385226c811461015357600080fd5b80630a9254e4146100ef5780631ed7831c146100fb5780632ade388014610119575b600080fd5b6100f9602a602055565b005b6101036101c2565b6040516101109190610a80565b60405180910390f35b610121610224565b6040516101109190610b1a565b610103610366565b6101036103c6565b610146610426565b6040516101109190610c1f565b61015b610593565b6040516101109190610ca4565b610170610663565b6040516101109190610d06565b610170610749565b61015b61082f565b6101956108ff565b6040519015158152602001610110565b6101036109a3565b6100f9610a03565b601f546101959060ff1681565b6060601680548060200260200160405190810160405280929190818152602001828054801561021a57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116101fc575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b8282101561035d57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156103465783829060005260206000200180546102b990610d75565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610d75565b80156103325780601f1061030757610100808354040283529160200191610332565b820191906000526020600020905b81548152906001019060200180831161031557829003601f168201915b50505050508152602001906001019061029a565b505050508152505081526020019060010190610248565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801561021a576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116101fc575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561021a576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116101fc575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101561035d578382906000526020600020906002020160405180604001604052908160008201805461047d90610d75565b80601f01602080910402602001604051908101604052809291908181526020018280546104a990610d75565b80156104f65780601f106104cb576101008083540402835291602001916104f6565b820191906000526020600020905b8154815290600101906020018083116104d957829003601f168201915b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561057b57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841161053d5790505b5050505050815250508152602001906001019061044a565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101561035d5783829060005260206000200180546105d690610d75565b80601f016020809104026020016040519081016040528092919081815260200182805461060290610d75565b801561064f5780601f106106245761010080835404028352916020019161064f565b820191906000526020600020905b81548152906001019060200180831161063257829003601f168201915b5050505050815260200190600101906105b7565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101561035d5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561073157602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116106f35790505b50505050508152505081526020019060010190610687565b6060601c805480602002602001604051908101604052809291908181526020016000905b8282101561035d5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561081757602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116107d95790505b5050505050815250508152602001906001019061076d565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101561035d57838290600052602060002001805461087290610d75565b80601f016020809104026020016040519081016040528092919081815260200182805461089e90610d75565b80156108eb5780601f106108c0576101008083540402835291602001916108eb565b820191906000526020600020905b8154815290600101906020018083116108ce57829003601f168201915b505050505081526020019060010190610853565b60085460009060ff1615610917575060085460ff1690565b604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190526519985a5b195960d21b602483015260009163667f9d7090604401602060405180830381865afa158015610978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099c9190610db0565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801561021a576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116101fc575050505050905090565b610a10602054602a610a12565b565b60405163260a5b1560e21b81526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c549060440160006040518083038186803b158015610a6457600080fd5b505afa158015610a78573d6000803e3d6000fd5b505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610ac15783516001600160a01b031683529284019291840191600101610a9c565b50909695505050505050565b6000815180845260005b81811015610af357602081850181015186830182015201610ad7565b81811115610b05576000602083870101525b50601f01601f19169290920160200192915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b85811015610bca57603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b81811015610bb457605f19898503018352610ba2848651610acd565b948e01949350918d0191600101610b86565b505050978a019794505091880191600101610b41565b50919a9950505050505050505050565b600081518084526020808501945080840160005b83811015610c145781516001600160e01b03191687529582019590820190600101610bee565b509495945050505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015610c9657888303603f1901855281518051878552610c6a88860182610acd565b91890151858303868b0152919050610c828183610bda565b968901969450505090860190600101610c46565b509098975050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015610cf957603f19888603018452610ce7858351610acd565b94509285019290850190600101610ccb565b5092979650505050505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015610c9657888303603f19018552815180516001600160a01b03168452870151878401879052610d6287850182610bda565b9588019593505090860190600101610d2d565b600181811c90821680610d8957607f821691505b60208210811415610daa57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215610dc257600080fd5b505191905056fea2646970667358221220aba4106e605cdf839aa449e057857308ac1880e50cf757f1a304a86c8a7b9fef64736f6c634300080a0033","sourceMap":"63:193:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;125:56;;172:2;159:10;:15;125:56;;;2907:134:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3823:151;;;:::i;:::-;;;;;;;:::i;3684:133::-;;;:::i;3385:141::-;;;:::i;3193:186::-;;;:::i;:::-;;;;;;;:::i;3047:140::-;;;:::i;:::-;;;;;;;:::i;3532:146::-;;;:::i;:::-;;;;;;;:::i;2754:147::-;;;:::i;2459:141::-;;;:::i;1243:204:1:-;;;:::i;:::-;;;6608:14:24;;6601:22;6583:41;;6571:2;6556:18;1243:204:1;6443:187:24;2606:142:5;;;:::i;187:67:23:-;;;:::i;1016:26:12:-;;;;;;;;;2907:134:5;2954:33;3018:16;2999:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2999:35:5;;;;;;;;;;;;;;;;;;;;;;;2907:134;:::o;3823:151::-;3872:42;3948:19;3926:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3926:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3823:151;:::o;3684:133::-;3730:33;3794:16;3775:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3775:35:5;;;;;;;;;;;;;;;;;;;;;;3684:133;:::o;3385:141::-;3433:35;3501:18;3480:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3480:39:5;;;;;;;;;;;;;;;;;;;;;;3385:141;:::o;3193:186::-;3249:56;3346:26;3317:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3317:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3047:140;3095:34;3162:18;3141:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3532:146;3580:40;3653:18;3632:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3632:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3632:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2754:147;2803:40;2876:18;2855:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2855:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2855:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2459:141;2508:34;2575:18;2554:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:1;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;-1:-1:-1;;;1377:39:1;;:7;:39;;;7194:51:24;;;-1:-1:-1;;;7261:18:24;;;7254:34;1428:1:1;;1377:7;;7167:18:24;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2606:142:5:-;2655:35;2723:18;2702:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2702:39:5;;;;;;;;;;;;;;;;;;;;;;2606:142;:::o;187:67:23:-;223:24;232:10;;244:2;223:8;:24::i;:::-;187:67::o;2270:110:1:-;2349:24;;-1:-1:-1;;;2349:24:1;;;;;7662:25:24;;;7703:18;;;7696:34;;;2349:11:1;;;;7635:18:24;;2349:24:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2270:110;;:::o;14:658:24:-;185:2;237:21;;;307:13;;210:18;;;329:22;;;156:4;;185:2;408:15;;;;382:2;367:18;;;156:4;451:195;465:6;462:1;459:13;451:195;;;530:13;;-1:-1:-1;;;;;526:39:24;514:52;;621:15;;;;586:12;;;;562:1;480:9;451:195;;;-1:-1:-1;663:3:24;;14:658;-1:-1:-1;;;;;;14:658:24:o;677:472::-;719:3;757:5;751:12;784:6;779:3;772:19;809:1;819:162;833:6;830:1;827:13;819:162;;;895:4;951:13;;;947:22;;941:29;923:11;;;919:20;;912:59;848:12;819:162;;;999:6;996:1;993:13;990:87;;;1065:1;1058:4;1049:6;1044:3;1040:16;1036:27;1029:38;990:87;-1:-1:-1;1131:2:24;1110:15;-1:-1:-1;;1106:29:24;1097:39;;;;1138:4;1093:50;;677:472;-1:-1:-1;;677:472:24:o;1154:1742::-;1387:2;1439:21;;;1509:13;;1412:18;;;1531:22;;;1358:4;;1387:2;1572;;1590:18;;;;1627:1;1670:15;;;1655:31;;1651:40;;1714:15;;;1358:4;;1778:1089;1794:6;1789:3;1786:15;1778:1089;;;-1:-1:-1;;1863:22:24;;;1859:36;1847:49;;1919:13;;2006:9;;-1:-1:-1;;;;;2002:35:24;1987:51;;2077:11;;2071:18;2109:15;;;2102:27;;;2190:19;;1959:15;;;2222:24;;;2403:21;;;;2269:2;2351:17;;;2339:30;;2335:39;;;2293:15;;;;2448:1;2462:296;2478:8;2473:3;2470:17;2462:296;;;2584:2;2580:7;2571:6;2563;2559:19;2555:33;2548:5;2541:48;2616:42;2651:6;2640:8;2634:15;2616:42;:::i;:::-;2687:17;;;;2606:52;-1:-1:-1;2730:14:24;;;;2506:1;2497:11;2462:296;;;-1:-1:-1;;;2845:12:24;;;;2781:6;-1:-1:-1;;2810:15:24;;;;1820:1;1811:11;1778:1089;;;-1:-1:-1;2884:6:24;;1154:1742;-1:-1:-1;;;;;;;;;;1154:1742:24:o;2901:461::-;2953:3;2991:5;2985:12;3018:6;3013:3;3006:19;3044:4;3073:2;3068:3;3064:12;3057:19;;3110:2;3103:5;3099:14;3131:1;3141:196;3155:6;3152:1;3149:13;3141:196;;;3220:13;;-1:-1:-1;;;;;;3216:40:24;3204:53;;3277:12;;;;3312:15;;;;3177:1;3170:9;3141:196;;;-1:-1:-1;3353:3:24;;2901:461;-1:-1:-1;;;;;2901:461:24:o;3367:1185::-;3585:4;3614:2;3654;3643:9;3639:18;3684:2;3673:9;3666:21;3707:6;3742;3736:13;3773:6;3765;3758:22;3799:2;3789:12;;3832:2;3821:9;3817:18;3810:25;;3894:2;3884:6;3881:1;3877:14;3866:9;3862:30;3858:39;3932:2;3924:6;3920:15;3953:1;3963:560;3977:6;3974:1;3971:13;3963:560;;;4042:22;;;-1:-1:-1;;4038:36:24;4026:49;;4098:13;;4144:9;;4166:18;;;4211:48;4243:15;;;4144:9;4211:48;:::i;:::-;4300:11;;;4294:18;4349:19;;;4332:15;;;4325:44;4294:18;4197:62;-1:-1:-1;4392:51:24;4197:62;4294:18;4392:51;:::i;:::-;4501:12;;;;4382:61;-1:-1:-1;;;4466:15:24;;;;3999:1;3992:9;3963:560;;;-1:-1:-1;4540:6:24;;3367:1185;-1:-1:-1;;;;;;;;3367:1185:24:o;4557:803::-;4719:4;4748:2;4788;4777:9;4773:18;4818:2;4807:9;4800:21;4841:6;4876;4870:13;4907:6;4899;4892:22;4945:2;4934:9;4930:18;4923:25;;5007:2;4997:6;4994:1;4990:14;4979:9;4975:30;4971:39;4957:53;;5045:2;5037:6;5033:15;5066:1;5076:255;5090:6;5087:1;5084:13;5076:255;;;5183:2;5179:7;5167:9;5159:6;5155:22;5151:36;5146:3;5139:49;5211:40;5244:6;5235;5229:13;5211:40;:::i;:::-;5201:50;-1:-1:-1;5309:12:24;;;;5274:15;;;;5112:1;5105:9;5076:255;;;-1:-1:-1;5348:6:24;;4557:803;-1:-1:-1;;;;;;;4557:803:24:o;5365:1073::-;5567:4;5596:2;5636;5625:9;5621:18;5666:2;5655:9;5648:21;5689:6;5724;5718:13;5755:6;5747;5740:22;5781:2;5771:12;;5814:2;5803:9;5799:18;5792:25;;5876:2;5866:6;5863:1;5859:14;5848:9;5844:30;5840:39;5914:2;5906:6;5902:15;5935:1;5945:464;5959:6;5956:1;5953:13;5945:464;;;6024:22;;;-1:-1:-1;;6020:36:24;6008:49;;6080:13;;6125:9;;-1:-1:-1;;;;;6121:35:24;6106:51;;6196:11;;6190:18;6228:15;;;6221:27;;;6271:58;6313:15;;;6190:18;6271:58;:::i;:::-;6387:12;;;;6261:68;-1:-1:-1;;6352:15:24;;;;5981:1;5974:9;5945:464;;6635:380;6714:1;6710:12;;;;6757;;;6778:61;;6832:4;6824:6;6820:17;6810:27;;6778:61;6885:2;6877:6;6874:14;6854:18;6851:38;6848:161;;;6931:10;6926:3;6922:20;6919:1;6912:31;6966:4;6963:1;6956:15;6994:4;6991:1;6984:15;6848:161;;6635:380;;;:::o;7299:184::-;7369:6;7422:2;7410:9;7401:7;7397:23;7393:32;7390:52;;;7438:1;7435;7428:12;7390:52;-1:-1:-1;7461:16:24;;7299:184;-1:-1:-1;7299:184:24:o","linkReferences":{}},"methodIdentifiers":{"Deposit()":"ed21248c","IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"Deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/deposit.t.sol\":\"ContractBTest\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe\",\"dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x1e2c73d51d6b0d1101f3a4cf0e6def9818a891d6aa8d306f2b127943a69dca2d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ab436d74b405f890e2634c6077df15cc196b4032ec1bdabaaf021ef209e68db\",\"dweb:/ipfs/Qmbb1Qgtdn6S4aqrnpg3y9TDX7erFFcRir9GN62Y7QazaY\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391\",\"dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8\",\"dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194\",\"dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87\",\"dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"test/deposit.t.sol\":{\"keccak256\":\"0x9afebed79f7eae3602506c25b316591732bcfd3898eeca300a4f1c31d053f4d3\",\"urls\":[\"bzz-raw://fda171018ed53c75bfe85182c0823975993516e9e2054e06bd8745e297282156\",\"dweb:/ipfs/QmNkN4aTcCLAxEtnzVY7j1g7mUEJoaugoenwmCgZiLyj3w\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.10+commit.fc410830"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"Deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/deposit.t.sol":"ContractBTest"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270","urls":["bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe","dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x1e2c73d51d6b0d1101f3a4cf0e6def9818a891d6aa8d306f2b127943a69dca2d","urls":["bzz-raw://0ab436d74b405f890e2634c6077df15cc196b4032ec1bdabaaf021ef209e68db","dweb:/ipfs/Qmbb1Qgtdn6S4aqrnpg3y9TDX7erFFcRir9GN62Y7QazaY"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d","urls":["bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391","dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4","urls":["bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8","dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a","urls":["bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194","dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9","urls":["bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87","dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"test/deposit.t.sol":{"keccak256":"0x9afebed79f7eae3602506c25b316591732bcfd3898eeca300a4f1c31d053f4d3","urls":["bzz-raw://fda171018ed53c75bfe85182c0823975993516e9e2054e06bd8745e297282156","dweb:/ipfs/QmNkN4aTcCLAxEtnzVY7j1g7mUEJoaugoenwmCgZiLyj3w"],"license":null}},"version":1},"id":23} \ No newline at end of file diff --git a/out/draft-IERC6093.sol/IERC1155Errors.json b/out/draft-IERC6093.sol/IERC1155Errors.json new file mode 100644 index 0000000..b8e1c5c --- /dev/null +++ b/out/draft-IERC6093.sol/IERC1155Errors.json @@ -0,0 +1 @@ +{"abi":[{"type":"error","name":"ERC1155InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidArrayLength","inputs":[{"name":"idsLength","type":"uint256","internalType":"uint256"},{"name":"valuesLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155MissingApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC1155InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC1155InvalidApprover"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"type":"error","name":"ERC1155InvalidArrayLength"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC1155InvalidOperator"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC1155InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC1155InvalidSender"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC1155MissingApprovalForAll"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":"IERC1155Errors"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"}},"version":1},"id":142} \ No newline at end of file diff --git a/out/draft-IERC6093.sol/IERC20Errors.json b/out/draft-IERC6093.sol/IERC20Errors.json new file mode 100644 index 0000000..3bb57d9 --- /dev/null +++ b/out/draft-IERC6093.sol/IERC20Errors.json @@ -0,0 +1 @@ +{"abi":[{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":"IERC20Errors"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"}},"version":1},"id":142} \ No newline at end of file diff --git a/out/draft-IERC6093.sol/IERC721Errors.json b/out/draft-IERC6093.sol/IERC721Errors.json new file mode 100644 index 0000000..14c0203 --- /dev/null +++ b/out/draft-IERC6093.sol/IERC721Errors.json @@ -0,0 +1 @@ +{"abi":[{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":"IERC721Errors"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"}},"version":1},"id":142} \ No newline at end of file diff --git a/out/hedera/HederaResponseCodes.sol/HederaResponseCodes.json b/out/hedera/HederaResponseCodes.sol/HederaResponseCodes.json new file mode 100644 index 0000000..7bd5f76 --- /dev/null +++ b/out/hedera/HederaResponseCodes.sol/HederaResponseCodes.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cf2a5f44ed1d62e472808f6b588c000e3815e1c2281fd357ce44d434ed039b5464736f6c63430008180033","sourceMap":"72:39743:5:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;72:39743:5;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cf2a5f44ed1d62e472808f6b588c000e3815e1c2281fd357ce44d434ed039b5464736f6c63430008180033","sourceMap":"72:39743:5:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/hedera/HederaResponseCodes.sol\":\"HederaResponseCodes\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/hedera/HederaResponseCodes.sol\":{\"keccak256\":\"0x85734572347c25f45480488ad4fdb63ed749a794daac839540f5b0eb7dbb22e6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addc4c8c31e1b3fd001986599856bb39e9cb4532a922155f699aae1686563e63\",\"dweb:/ipfs/QmXJES7o4xoSowiDo3qm3Mr3LaWm7g5qTQosw5EAAiz9R5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/common/hedera/HederaResponseCodes.sol":"HederaResponseCodes"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/hedera/HederaResponseCodes.sol":{"keccak256":"0x85734572347c25f45480488ad4fdb63ed749a794daac839540f5b0eb7dbb22e6","urls":["bzz-raw://addc4c8c31e1b3fd001986599856bb39e9cb4532a922155f699aae1686563e63","dweb:/ipfs/QmXJES7o4xoSowiDo3qm3Mr3LaWm7g5qTQosw5EAAiz9R5"],"license":"Apache-2.0"}},"version":1},"id":5} \ No newline at end of file diff --git a/out/hedera/IHederaTokenService.sol/IHederaTokenService.json b/out/hedera/IHederaTokenService.sol/IHederaTokenService.json new file mode 100644 index 0000000..78af472 --- /dev/null +++ b/out/hedera/IHederaTokenService.sol/IHederaTokenService.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"allowance","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"approveNFT","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"approved","type":"address","internalType":"address"},{"name":"serialNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"associateToken","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"associateTokens","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"tokens","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"burnToken","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"int64","internalType":"int64"},{"name":"serialNumbers","type":"int64[]","internalType":"int64[]"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"newTotalSupply","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"createFungibleToken","inputs":[{"name":"token","type":"tuple","internalType":"struct IHederaTokenService.HederaToken","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"treasury","type":"address","internalType":"address"},{"name":"memo","type":"string","internalType":"string"},{"name":"tokenSupplyType","type":"bool","internalType":"bool"},{"name":"maxSupply","type":"int64","internalType":"int64"},{"name":"freezeDefault","type":"bool","internalType":"bool"},{"name":"tokenKeys","type":"tuple[]","internalType":"struct IHederaTokenService.TokenKey[]","components":[{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}]},{"name":"expiry","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"int64","internalType":"int64"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"int64","internalType":"int64"}]}]},{"name":"initialTotalSupply","type":"int64","internalType":"int64"},{"name":"decimals","type":"int32","internalType":"int32"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"tokenAddress","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"createFungibleTokenWithCustomFees","inputs":[{"name":"token","type":"tuple","internalType":"struct IHederaTokenService.HederaToken","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"treasury","type":"address","internalType":"address"},{"name":"memo","type":"string","internalType":"string"},{"name":"tokenSupplyType","type":"bool","internalType":"bool"},{"name":"maxSupply","type":"int64","internalType":"int64"},{"name":"freezeDefault","type":"bool","internalType":"bool"},{"name":"tokenKeys","type":"tuple[]","internalType":"struct IHederaTokenService.TokenKey[]","components":[{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}]},{"name":"expiry","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"int64","internalType":"int64"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"int64","internalType":"int64"}]}]},{"name":"initialTotalSupply","type":"int64","internalType":"int64"},{"name":"decimals","type":"int32","internalType":"int32"},{"name":"fixedFees","type":"tuple[]","internalType":"struct IHederaTokenService.FixedFee[]","components":[{"name":"amount","type":"int64","internalType":"int64"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"useCurrentTokenForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"fractionalFees","type":"tuple[]","internalType":"struct IHederaTokenService.FractionalFee[]","components":[{"name":"numerator","type":"int64","internalType":"int64"},{"name":"denominator","type":"int64","internalType":"int64"},{"name":"minimumAmount","type":"int64","internalType":"int64"},{"name":"maximumAmount","type":"int64","internalType":"int64"},{"name":"netOfTransfers","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"tokenAddress","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"createNonFungibleToken","inputs":[{"name":"token","type":"tuple","internalType":"struct IHederaTokenService.HederaToken","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"treasury","type":"address","internalType":"address"},{"name":"memo","type":"string","internalType":"string"},{"name":"tokenSupplyType","type":"bool","internalType":"bool"},{"name":"maxSupply","type":"int64","internalType":"int64"},{"name":"freezeDefault","type":"bool","internalType":"bool"},{"name":"tokenKeys","type":"tuple[]","internalType":"struct IHederaTokenService.TokenKey[]","components":[{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}]},{"name":"expiry","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"int64","internalType":"int64"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"int64","internalType":"int64"}]}]}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"tokenAddress","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"createNonFungibleTokenWithCustomFees","inputs":[{"name":"token","type":"tuple","internalType":"struct IHederaTokenService.HederaToken","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"treasury","type":"address","internalType":"address"},{"name":"memo","type":"string","internalType":"string"},{"name":"tokenSupplyType","type":"bool","internalType":"bool"},{"name":"maxSupply","type":"int64","internalType":"int64"},{"name":"freezeDefault","type":"bool","internalType":"bool"},{"name":"tokenKeys","type":"tuple[]","internalType":"struct IHederaTokenService.TokenKey[]","components":[{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}]},{"name":"expiry","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"int64","internalType":"int64"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"int64","internalType":"int64"}]}]},{"name":"fixedFees","type":"tuple[]","internalType":"struct IHederaTokenService.FixedFee[]","components":[{"name":"amount","type":"int64","internalType":"int64"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"useCurrentTokenForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"royaltyFees","type":"tuple[]","internalType":"struct IHederaTokenService.RoyaltyFee[]","components":[{"name":"numerator","type":"int64","internalType":"int64"},{"name":"denominator","type":"int64","internalType":"int64"},{"name":"amount","type":"int64","internalType":"int64"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"tokenAddress","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"cryptoTransfer","inputs":[{"name":"transferList","type":"tuple","internalType":"struct IHederaTokenService.TransferList","components":[{"name":"transfers","type":"tuple[]","internalType":"struct IHederaTokenService.AccountAmount[]","components":[{"name":"accountID","type":"address","internalType":"address"},{"name":"amount","type":"int64","internalType":"int64"},{"name":"isApproval","type":"bool","internalType":"bool"}]}]},{"name":"tokenTransfers","type":"tuple[]","internalType":"struct IHederaTokenService.TokenTransferList[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"transfers","type":"tuple[]","internalType":"struct IHederaTokenService.AccountAmount[]","components":[{"name":"accountID","type":"address","internalType":"address"},{"name":"amount","type":"int64","internalType":"int64"},{"name":"isApproval","type":"bool","internalType":"bool"}]},{"name":"nftTransfers","type":"tuple[]","internalType":"struct IHederaTokenService.NftTransfer[]","components":[{"name":"senderAccountID","type":"address","internalType":"address"},{"name":"receiverAccountID","type":"address","internalType":"address"},{"name":"serialNumber","type":"int64","internalType":"int64"},{"name":"isApproval","type":"bool","internalType":"bool"}]}]}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"deleteToken","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"dissociateToken","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"dissociateTokens","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"tokens","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"freezeToken","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"getApproved","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"serialNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"approved","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"getFungibleTokenInfo","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"fungibleTokenInfo","type":"tuple","internalType":"struct IHederaTokenService.FungibleTokenInfo","components":[{"name":"tokenInfo","type":"tuple","internalType":"struct IHederaTokenService.TokenInfo","components":[{"name":"token","type":"tuple","internalType":"struct IHederaTokenService.HederaToken","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"treasury","type":"address","internalType":"address"},{"name":"memo","type":"string","internalType":"string"},{"name":"tokenSupplyType","type":"bool","internalType":"bool"},{"name":"maxSupply","type":"int64","internalType":"int64"},{"name":"freezeDefault","type":"bool","internalType":"bool"},{"name":"tokenKeys","type":"tuple[]","internalType":"struct IHederaTokenService.TokenKey[]","components":[{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}]},{"name":"expiry","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"int64","internalType":"int64"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"int64","internalType":"int64"}]}]},{"name":"totalSupply","type":"int64","internalType":"int64"},{"name":"deleted","type":"bool","internalType":"bool"},{"name":"defaultKycStatus","type":"bool","internalType":"bool"},{"name":"pauseStatus","type":"bool","internalType":"bool"},{"name":"fixedFees","type":"tuple[]","internalType":"struct IHederaTokenService.FixedFee[]","components":[{"name":"amount","type":"int64","internalType":"int64"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"useCurrentTokenForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"fractionalFees","type":"tuple[]","internalType":"struct IHederaTokenService.FractionalFee[]","components":[{"name":"numerator","type":"int64","internalType":"int64"},{"name":"denominator","type":"int64","internalType":"int64"},{"name":"minimumAmount","type":"int64","internalType":"int64"},{"name":"maximumAmount","type":"int64","internalType":"int64"},{"name":"netOfTransfers","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"royaltyFees","type":"tuple[]","internalType":"struct IHederaTokenService.RoyaltyFee[]","components":[{"name":"numerator","type":"int64","internalType":"int64"},{"name":"denominator","type":"int64","internalType":"int64"},{"name":"amount","type":"int64","internalType":"int64"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"ledgerId","type":"string","internalType":"string"}]},{"name":"decimals","type":"int32","internalType":"int32"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getNonFungibleTokenInfo","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"serialNumber","type":"int64","internalType":"int64"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"nonFungibleTokenInfo","type":"tuple","internalType":"struct IHederaTokenService.NonFungibleTokenInfo","components":[{"name":"tokenInfo","type":"tuple","internalType":"struct IHederaTokenService.TokenInfo","components":[{"name":"token","type":"tuple","internalType":"struct IHederaTokenService.HederaToken","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"treasury","type":"address","internalType":"address"},{"name":"memo","type":"string","internalType":"string"},{"name":"tokenSupplyType","type":"bool","internalType":"bool"},{"name":"maxSupply","type":"int64","internalType":"int64"},{"name":"freezeDefault","type":"bool","internalType":"bool"},{"name":"tokenKeys","type":"tuple[]","internalType":"struct IHederaTokenService.TokenKey[]","components":[{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}]},{"name":"expiry","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"int64","internalType":"int64"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"int64","internalType":"int64"}]}]},{"name":"totalSupply","type":"int64","internalType":"int64"},{"name":"deleted","type":"bool","internalType":"bool"},{"name":"defaultKycStatus","type":"bool","internalType":"bool"},{"name":"pauseStatus","type":"bool","internalType":"bool"},{"name":"fixedFees","type":"tuple[]","internalType":"struct IHederaTokenService.FixedFee[]","components":[{"name":"amount","type":"int64","internalType":"int64"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"useCurrentTokenForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"fractionalFees","type":"tuple[]","internalType":"struct IHederaTokenService.FractionalFee[]","components":[{"name":"numerator","type":"int64","internalType":"int64"},{"name":"denominator","type":"int64","internalType":"int64"},{"name":"minimumAmount","type":"int64","internalType":"int64"},{"name":"maximumAmount","type":"int64","internalType":"int64"},{"name":"netOfTransfers","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"royaltyFees","type":"tuple[]","internalType":"struct IHederaTokenService.RoyaltyFee[]","components":[{"name":"numerator","type":"int64","internalType":"int64"},{"name":"denominator","type":"int64","internalType":"int64"},{"name":"amount","type":"int64","internalType":"int64"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"ledgerId","type":"string","internalType":"string"}]},{"name":"serialNumber","type":"int64","internalType":"int64"},{"name":"ownerId","type":"address","internalType":"address"},{"name":"creationTime","type":"int64","internalType":"int64"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"spenderId","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getTokenCustomFees","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"fixedFees","type":"tuple[]","internalType":"struct IHederaTokenService.FixedFee[]","components":[{"name":"amount","type":"int64","internalType":"int64"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"useCurrentTokenForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"fractionalFees","type":"tuple[]","internalType":"struct IHederaTokenService.FractionalFee[]","components":[{"name":"numerator","type":"int64","internalType":"int64"},{"name":"denominator","type":"int64","internalType":"int64"},{"name":"minimumAmount","type":"int64","internalType":"int64"},{"name":"maximumAmount","type":"int64","internalType":"int64"},{"name":"netOfTransfers","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"royaltyFees","type":"tuple[]","internalType":"struct IHederaTokenService.RoyaltyFee[]","components":[{"name":"numerator","type":"int64","internalType":"int64"},{"name":"denominator","type":"int64","internalType":"int64"},{"name":"amount","type":"int64","internalType":"int64"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getTokenDefaultFreezeStatus","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"defaultFreezeStatus","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getTokenDefaultKycStatus","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"defaultKycStatus","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getTokenExpiryInfo","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"expiry","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"int64","internalType":"int64"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"int64","internalType":"int64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getTokenInfo","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"tokenInfo","type":"tuple","internalType":"struct IHederaTokenService.TokenInfo","components":[{"name":"token","type":"tuple","internalType":"struct IHederaTokenService.HederaToken","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"treasury","type":"address","internalType":"address"},{"name":"memo","type":"string","internalType":"string"},{"name":"tokenSupplyType","type":"bool","internalType":"bool"},{"name":"maxSupply","type":"int64","internalType":"int64"},{"name":"freezeDefault","type":"bool","internalType":"bool"},{"name":"tokenKeys","type":"tuple[]","internalType":"struct IHederaTokenService.TokenKey[]","components":[{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}]},{"name":"expiry","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"int64","internalType":"int64"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"int64","internalType":"int64"}]}]},{"name":"totalSupply","type":"int64","internalType":"int64"},{"name":"deleted","type":"bool","internalType":"bool"},{"name":"defaultKycStatus","type":"bool","internalType":"bool"},{"name":"pauseStatus","type":"bool","internalType":"bool"},{"name":"fixedFees","type":"tuple[]","internalType":"struct IHederaTokenService.FixedFee[]","components":[{"name":"amount","type":"int64","internalType":"int64"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"useCurrentTokenForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"fractionalFees","type":"tuple[]","internalType":"struct IHederaTokenService.FractionalFee[]","components":[{"name":"numerator","type":"int64","internalType":"int64"},{"name":"denominator","type":"int64","internalType":"int64"},{"name":"minimumAmount","type":"int64","internalType":"int64"},{"name":"maximumAmount","type":"int64","internalType":"int64"},{"name":"netOfTransfers","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"royaltyFees","type":"tuple[]","internalType":"struct IHederaTokenService.RoyaltyFee[]","components":[{"name":"numerator","type":"int64","internalType":"int64"},{"name":"denominator","type":"int64","internalType":"int64"},{"name":"amount","type":"int64","internalType":"int64"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"ledgerId","type":"string","internalType":"string"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getTokenKey","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"keyType","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getTokenType","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"tokenType","type":"int32","internalType":"int32"}],"stateMutability":"nonpayable"},{"type":"function","name":"grantTokenKyc","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"approved","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"isFrozen","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"frozen","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"isKyc","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"kycGranted","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"isToken","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"isToken","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"mintToken","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"int64","internalType":"int64"},{"name":"metadata","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"newTotalSupply","type":"int64","internalType":"int64"},{"name":"serialNumbers","type":"int64[]","internalType":"int64[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"pauseToken","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"redirectForToken","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"encodedFunctionSelector","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"response","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokeTokenKyc","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFromNFT","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"serialNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferNFT","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"serialNumber","type":"int64","internalType":"int64"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferNFTs","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"sender","type":"address[]","internalType":"address[]"},{"name":"receiver","type":"address[]","internalType":"address[]"},{"name":"serialNumber","type":"int64[]","internalType":"int64[]"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferToken","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"int64","internalType":"int64"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferTokens","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"accountId","type":"address[]","internalType":"address[]"},{"name":"amount","type":"int64[]","internalType":"int64[]"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"unfreezeToken","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"unpauseToken","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"updateTokenExpiryInfo","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"expiryInfo","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"int64","internalType":"int64"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"int64","internalType":"int64"}]}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"updateTokenInfo","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"tokenInfo","type":"tuple","internalType":"struct IHederaTokenService.HederaToken","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"treasury","type":"address","internalType":"address"},{"name":"memo","type":"string","internalType":"string"},{"name":"tokenSupplyType","type":"bool","internalType":"bool"},{"name":"maxSupply","type":"int64","internalType":"int64"},{"name":"freezeDefault","type":"bool","internalType":"bool"},{"name":"tokenKeys","type":"tuple[]","internalType":"struct IHederaTokenService.TokenKey[]","components":[{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}]},{"name":"expiry","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"int64","internalType":"int64"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"int64","internalType":"int64"}]}]}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"updateTokenKeys","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"keys","type":"tuple[]","internalType":"struct IHederaTokenService.TokenKey[]","components":[{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}]}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"wipeTokenAccount","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"int64","internalType":"int64"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"wipeTokenAccountNFT","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"},{"name":"serialNumbers","type":"int64[]","internalType":"int64[]"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address,address)":"927da105","approve(address,address,uint256)":"e1f21c67","approveNFT(address,address,uint256)":"7336aaf0","associateToken(address,address)":"49146bde","associateTokens(address,address[])":"2e63879b","burnToken(address,int64,int64[])":"d6910d06","createFungibleToken((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)),int64,int32)":"0fb65bf3","createFungibleTokenWithCustomFees((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)),int64,int32,(int64,address,bool,bool,address)[],(int64,int64,int64,int64,bool,address)[])":"2af0c59a","createNonFungibleToken((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)))":"ea83f293","createNonFungibleTokenWithCustomFees((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)),(int64,address,bool,bool,address)[],(int64,int64,int64,address,bool,address)[])":"abb54eb5","cryptoTransfer(((address,int64,bool)[]),(address,(address,int64,bool)[],(address,address,int64,bool)[])[])":"0e71804f","deleteToken(address)":"f069f712","dissociateToken(address,address)":"099794e8","dissociateTokens(address,address[])":"78b63918","freezeToken(address,address)":"5b8f8584","getApproved(address,uint256)":"098f2366","getFungibleTokenInfo(address)":"3f28a19b","getNonFungibleTokenInfo(address,int64)":"287e1da8","getTokenCustomFees(address)":"ae7611a0","getTokenDefaultFreezeStatus(address)":"a7daa18d","getTokenDefaultKycStatus(address)":"335e04c1","getTokenExpiryInfo(address)":"d614cdb8","getTokenInfo(address)":"1f69565f","getTokenKey(address,uint256)":"3c4dd32e","getTokenType(address)":"93272baf","grantTokenKyc(address,address)":"8f8d7f99","isApprovedForAll(address,address,address)":"f49f40db","isFrozen(address,address)":"46de0fb1","isKyc(address,address)":"f2c31ff4","isToken(address)":"19f37361","mintToken(address,int64,bytes[])":"e0f4059a","pauseToken(address)":"7c41ad2c","redirectForToken(address,bytes)":"618dc65e","revokeTokenKyc(address,address)":"af99c633","setApprovalForAll(address,address,bool)":"367605ca","transferFrom(address,address,address,uint256)":"15dacbea","transferFromNFT(address,address,address,uint256)":"9b23d3d9","transferNFT(address,address,address,int64)":"5cfc9011","transferNFTs(address,address[],address[],int64[])":"2c4ba191","transferToken(address,address,address,int64)":"eca36917","transferTokens(address,address[],int64[])":"82bba493","unfreezeToken(address,address)":"52f91387","unpauseToken(address)":"3b3bff0f","updateTokenExpiryInfo(address,(int64,address,int64))":"d27be6cd","updateTokenInfo(address,(string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)))":"7d305cfa","updateTokenKeys(address,(uint256,(bool,address,bytes,bytes,address))[])":"6fc3cbaf","wipeTokenAccount(address,address,int64)":"efef57f9","wipeTokenAccountNFT(address,address,int64[])":"f7f38e26"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"serialNumber\",\"type\":\"uint256\"}],\"name\":\"approveNFT\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"associateToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"associateTokens\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"},{\"internalType\":\"int64[]\",\"name\":\"serialNumbers\",\"type\":\"int64[]\"}],\"name\":\"burnToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"newTotalSupply\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"tokenSupplyType\",\"type\":\"bool\"},{\"internalType\":\"int64\",\"name\":\"maxSupply\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"freezeDefault\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.TokenKey[]\",\"name\":\"tokenKeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"second\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"autoRenewPeriod\",\"type\":\"int64\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiry\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.HederaToken\",\"name\":\"token\",\"type\":\"tuple\"},{\"internalType\":\"int64\",\"name\":\"initialTotalSupply\",\"type\":\"int64\"},{\"internalType\":\"int32\",\"name\":\"decimals\",\"type\":\"int32\"}],\"name\":\"createFungibleToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"tokenSupplyType\",\"type\":\"bool\"},{\"internalType\":\"int64\",\"name\":\"maxSupply\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"freezeDefault\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.TokenKey[]\",\"name\":\"tokenKeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"second\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"autoRenewPeriod\",\"type\":\"int64\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiry\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.HederaToken\",\"name\":\"token\",\"type\":\"tuple\"},{\"internalType\":\"int64\",\"name\":\"initialTotalSupply\",\"type\":\"int64\"},{\"internalType\":\"int32\",\"name\":\"decimals\",\"type\":\"int32\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useCurrentTokenForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FixedFee[]\",\"name\":\"fixedFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"numerator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"denominator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"minimumAmount\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"maximumAmount\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"netOfTransfers\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FractionalFee[]\",\"name\":\"fractionalFees\",\"type\":\"tuple[]\"}],\"name\":\"createFungibleTokenWithCustomFees\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"tokenSupplyType\",\"type\":\"bool\"},{\"internalType\":\"int64\",\"name\":\"maxSupply\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"freezeDefault\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.TokenKey[]\",\"name\":\"tokenKeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"second\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"autoRenewPeriod\",\"type\":\"int64\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiry\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.HederaToken\",\"name\":\"token\",\"type\":\"tuple\"}],\"name\":\"createNonFungibleToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"tokenSupplyType\",\"type\":\"bool\"},{\"internalType\":\"int64\",\"name\":\"maxSupply\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"freezeDefault\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.TokenKey[]\",\"name\":\"tokenKeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"second\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"autoRenewPeriod\",\"type\":\"int64\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiry\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.HederaToken\",\"name\":\"token\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useCurrentTokenForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FixedFee[]\",\"name\":\"fixedFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"numerator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"denominator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.RoyaltyFee[]\",\"name\":\"royaltyFees\",\"type\":\"tuple[]\"}],\"name\":\"createNonFungibleTokenWithCustomFees\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"accountID\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"isApproval\",\"type\":\"bool\"}],\"internalType\":\"struct IHederaTokenService.AccountAmount[]\",\"name\":\"transfers\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IHederaTokenService.TransferList\",\"name\":\"transferList\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"accountID\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"isApproval\",\"type\":\"bool\"}],\"internalType\":\"struct IHederaTokenService.AccountAmount[]\",\"name\":\"transfers\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"senderAccountID\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiverAccountID\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"serialNumber\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"isApproval\",\"type\":\"bool\"}],\"internalType\":\"struct IHederaTokenService.NftTransfer[]\",\"name\":\"nftTransfers\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IHederaTokenService.TokenTransferList[]\",\"name\":\"tokenTransfers\",\"type\":\"tuple[]\"}],\"name\":\"cryptoTransfer\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"deleteToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"dissociateToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"dissociateTokens\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"freezeToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"serialNumber\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getFungibleTokenInfo\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"tokenSupplyType\",\"type\":\"bool\"},{\"internalType\":\"int64\",\"name\":\"maxSupply\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"freezeDefault\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.TokenKey[]\",\"name\":\"tokenKeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"second\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"autoRenewPeriod\",\"type\":\"int64\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiry\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.HederaToken\",\"name\":\"token\",\"type\":\"tuple\"},{\"internalType\":\"int64\",\"name\":\"totalSupply\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"defaultKycStatus\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseStatus\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useCurrentTokenForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FixedFee[]\",\"name\":\"fixedFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"numerator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"denominator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"minimumAmount\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"maximumAmount\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"netOfTransfers\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FractionalFee[]\",\"name\":\"fractionalFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"numerator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"denominator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.RoyaltyFee[]\",\"name\":\"royaltyFees\",\"type\":\"tuple[]\"},{\"internalType\":\"string\",\"name\":\"ledgerId\",\"type\":\"string\"}],\"internalType\":\"struct IHederaTokenService.TokenInfo\",\"name\":\"tokenInfo\",\"type\":\"tuple\"},{\"internalType\":\"int32\",\"name\":\"decimals\",\"type\":\"int32\"}],\"internalType\":\"struct IHederaTokenService.FungibleTokenInfo\",\"name\":\"fungibleTokenInfo\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"serialNumber\",\"type\":\"int64\"}],\"name\":\"getNonFungibleTokenInfo\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"tokenSupplyType\",\"type\":\"bool\"},{\"internalType\":\"int64\",\"name\":\"maxSupply\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"freezeDefault\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.TokenKey[]\",\"name\":\"tokenKeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"second\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"autoRenewPeriod\",\"type\":\"int64\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiry\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.HederaToken\",\"name\":\"token\",\"type\":\"tuple\"},{\"internalType\":\"int64\",\"name\":\"totalSupply\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"defaultKycStatus\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseStatus\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useCurrentTokenForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FixedFee[]\",\"name\":\"fixedFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"numerator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"denominator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"minimumAmount\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"maximumAmount\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"netOfTransfers\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FractionalFee[]\",\"name\":\"fractionalFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"numerator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"denominator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.RoyaltyFee[]\",\"name\":\"royaltyFees\",\"type\":\"tuple[]\"},{\"internalType\":\"string\",\"name\":\"ledgerId\",\"type\":\"string\"}],\"internalType\":\"struct IHederaTokenService.TokenInfo\",\"name\":\"tokenInfo\",\"type\":\"tuple\"},{\"internalType\":\"int64\",\"name\":\"serialNumber\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"ownerId\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"creationTime\",\"type\":\"int64\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"spenderId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.NonFungibleTokenInfo\",\"name\":\"nonFungibleTokenInfo\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenCustomFees\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useCurrentTokenForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FixedFee[]\",\"name\":\"fixedFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"numerator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"denominator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"minimumAmount\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"maximumAmount\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"netOfTransfers\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FractionalFee[]\",\"name\":\"fractionalFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"numerator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"denominator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.RoyaltyFee[]\",\"name\":\"royaltyFees\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenDefaultFreezeStatus\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"defaultFreezeStatus\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenDefaultKycStatus\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"defaultKycStatus\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenExpiryInfo\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"second\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"autoRenewPeriod\",\"type\":\"int64\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiry\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenInfo\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"tokenSupplyType\",\"type\":\"bool\"},{\"internalType\":\"int64\",\"name\":\"maxSupply\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"freezeDefault\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.TokenKey[]\",\"name\":\"tokenKeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"second\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"autoRenewPeriod\",\"type\":\"int64\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiry\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.HederaToken\",\"name\":\"token\",\"type\":\"tuple\"},{\"internalType\":\"int64\",\"name\":\"totalSupply\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"defaultKycStatus\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseStatus\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useCurrentTokenForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FixedFee[]\",\"name\":\"fixedFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"numerator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"denominator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"minimumAmount\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"maximumAmount\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"netOfTransfers\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FractionalFee[]\",\"name\":\"fractionalFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"numerator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"denominator\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.RoyaltyFee[]\",\"name\":\"royaltyFees\",\"type\":\"tuple[]\"},{\"internalType\":\"string\",\"name\":\"ledgerId\",\"type\":\"string\"}],\"internalType\":\"struct IHederaTokenService.TokenInfo\",\"name\":\"tokenInfo\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"getTokenKey\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenType\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"int32\",\"name\":\"tokenType\",\"type\":\"int32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantTokenKyc\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isFrozen\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"frozen\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isKyc\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"kycGranted\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"isToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"isToken\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"},{\"internalType\":\"bytes[]\",\"name\":\"metadata\",\"type\":\"bytes[]\"}],\"name\":\"mintToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"newTotalSupply\",\"type\":\"int64\"},{\"internalType\":\"int64[]\",\"name\":\"serialNumbers\",\"type\":\"int64[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"pauseToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedFunctionSelector\",\"type\":\"bytes\"}],\"name\":\"redirectForToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeTokenKyc\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"serialNumber\",\"type\":\"uint256\"}],\"name\":\"transferFromNFT\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"serialNumber\",\"type\":\"int64\"}],\"name\":\"transferNFT\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"sender\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"receiver\",\"type\":\"address[]\"},{\"internalType\":\"int64[]\",\"name\":\"serialNumber\",\"type\":\"int64[]\"}],\"name\":\"transferNFTs\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"}],\"name\":\"transferToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"accountId\",\"type\":\"address[]\"},{\"internalType\":\"int64[]\",\"name\":\"amount\",\"type\":\"int64[]\"}],\"name\":\"transferTokens\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"unfreezeToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"unpauseToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"second\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"autoRenewPeriod\",\"type\":\"int64\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiryInfo\",\"type\":\"tuple\"}],\"name\":\"updateTokenExpiryInfo\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"tokenSupplyType\",\"type\":\"bool\"},{\"internalType\":\"int64\",\"name\":\"maxSupply\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"freezeDefault\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.TokenKey[]\",\"name\":\"tokenKeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"second\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"autoRenewPeriod\",\"type\":\"int64\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiry\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.HederaToken\",\"name\":\"tokenInfo\",\"type\":\"tuple\"}],\"name\":\"updateTokenInfo\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.TokenKey[]\",\"name\":\"keys\",\"type\":\"tuple[]\"}],\"name\":\"updateTokenKeys\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"}],\"name\":\"wipeTokenAccount\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"int64[]\",\"name\":\"serialNumbers\",\"type\":\"int64[]\"}],\"name\":\"wipeTokenAccountNFT\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address,address)\":{\"params\":{\"owner\":\"the owner of the tokens to be spent\",\"spender\":\"the spender of the tokens\",\"token\":\"The Hedera token address to check the allowance of\"},\"returns\":{\"allowance\":\"The amount which spender is still allowed to withdraw from owner.\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"approve(address,address,uint256)\":{\"params\":{\"amount\":\"the amount of tokens authorized to spend.\",\"spender\":\"the account address authorized to spend\",\"token\":\"The hedera token address to approve\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"approveNFT(address,address,uint256)\":{\"params\":{\"approved\":\"The new approved NFT controller. To revoke approvals pass in the zero address.\",\"serialNumber\":\"The NFT serial number to approve\",\"token\":\"The Hedera NFT token address to approve\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"associateToken(address,address)\":{\"params\":{\"account\":\"The account to be associated with the provided token\",\"token\":\"The token to be associated with the provided account\"}},\"associateTokens(address,address[])\":{\"params\":{\"account\":\"The account to be associated with the provided tokens\",\"tokens\":\"The tokens to be associated with the provided account. In the case of NON_FUNGIBLE_UNIQUE Type, once an account is associated, it can hold any number of NFTs (serial numbers) of that token type\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"burnToken(address,int64,int64[])\":{\"params\":{\"amount\":\"Applicable to tokens of type FUNGIBLE_COMMON. The amount to burn from the Treasury Account. Amount must be a positive non-zero number, not bigger than the token balance of the treasury account (0; balance], represented in the lowest denomination.\",\"serialNumbers\":\"Applicable to tokens of type NON_FUNGIBLE_UNIQUE. The list of serial numbers to be burned.\",\"token\":\"The token for which to burn tokens. If token does not exist, transaction results in INVALID_TOKEN_ID\"},\"returns\":{\"newTotalSupply\":\"The new supply of tokens. For NFTs it is the total count of NFTs\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"createFungibleToken((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)),int64,int32)\":{\"params\":{\"decimals\":\"the number of decimal places a token is divisible by\",\"initialTotalSupply\":\"Specifies the initial supply of tokens to be put in circulation. The initial supply is sent to the Treasury Account. The supply is in the lowest denomination possible.\",\"token\":\"the basic properties of the token being created\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\",\"tokenAddress\":\"the created token's address\"}},\"createFungibleTokenWithCustomFees((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)),int64,int32,(int64,address,bool,bool,address)[],(int64,int64,int64,int64,bool,address)[])\":{\"params\":{\"decimals\":\"the number of decimal places a token is divisible by.\",\"fixedFees\":\"list of fixed fees to apply to the token\",\"fractionalFees\":\"list of fractional fees to apply to the token\",\"initialTotalSupply\":\"Specifies the initial supply of tokens to be put in circulation. The initial supply is sent to the Treasury Account. The supply is in the lowest denomination possible.\",\"token\":\"the basic properties of the token being created\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\",\"tokenAddress\":\"the created token's address\"}},\"createNonFungibleToken((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)))\":{\"params\":{\"token\":\"the basic properties of the token being created\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\",\"tokenAddress\":\"the created token's address\"}},\"createNonFungibleTokenWithCustomFees((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)),(int64,address,bool,bool,address)[],(int64,int64,int64,address,bool,address)[])\":{\"params\":{\"fixedFees\":\"list of fixed fees to apply to the token\",\"royaltyFees\":\"list of royalty fees to apply to the token\",\"token\":\"the basic properties of the token being created\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\",\"tokenAddress\":\"the created token's address\"}},\"cryptoTransfer(((address,int64,bool)[]),(address,(address,int64,bool)[],(address,address,int64,bool)[])[])\":{\"custom:version\":\"0.3.0 the signature of the previous version was cryptoTransfer(TokenTransferList[] memory tokenTransfers)\",\"params\":{\"tokenTransfers\":\"the list of token transfers to do\",\"transferList\":\"the list of hbar transfers to do\"}},\"deleteToken(address)\":{\"params\":{\"token\":\"The token address to be deleted\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"dissociateToken(address,address)\":{\"params\":{\"account\":\"The account to be associated with the provided token\",\"token\":\"The token to be associated with the provided account\"}},\"dissociateTokens(address,address[])\":{\"params\":{\"account\":\"The account to be dissociated from the provided tokens\",\"tokens\":\"The tokens to be dissociated from the provided account.\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"freezeToken(address,address)\":{\"params\":{\"account\":\"The account address to be frozen\",\"token\":\"The token address\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"getApproved(address,uint256)\":{\"params\":{\"serialNumber\":\"The NFT to find the approved address for\",\"token\":\"The Hedera NFT token address to check approval\"},\"returns\":{\"approved\":\"The approved address for this NFT, or the zero address if there is none\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"getFungibleTokenInfo(address)\":{\"params\":{\"token\":\"The token address to check\"},\"returns\":{\"fungibleTokenInfo\":\"FungibleTokenInfo info for `token`\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"getNonFungibleTokenInfo(address,int64)\":{\"params\":{\"serialNumber\":\"The NFT serialNumber to check\",\"token\":\"The token address to check\"},\"returns\":{\"nonFungibleTokenInfo\":\"NonFungibleTokenInfo info for `token` `serialNumber`\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"getTokenCustomFees(address)\":{\"params\":{\"token\":\"The token address to check\"},\"returns\":{\"fixedFees\":\"Set of fixed fees for `token`\",\"fractionalFees\":\"Set of fractional fees for `token`\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\",\"royaltyFees\":\"Set of royalty fees for `token`\"}},\"getTokenDefaultFreezeStatus(address)\":{\"params\":{\"token\":\"The token address to check\"},\"returns\":{\"defaultFreezeStatus\":\"True if `token` default freeze status is frozen.\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"getTokenDefaultKycStatus(address)\":{\"params\":{\"token\":\"The token address to check\"},\"returns\":{\"defaultKycStatus\":\"True if `token` default kyc status is KycNotApplicable and false if Revoked.\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"getTokenExpiryInfo(address)\":{\"params\":{\"token\":\"The token address to check\"},\"returns\":{\"expiry\":\"Expiry info for `token`\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"getTokenInfo(address)\":{\"params\":{\"token\":\"The token address to check\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\",\"tokenInfo\":\"TokenInfo info for `token`\"}},\"getTokenKey(address,uint256)\":{\"params\":{\"keyType\":\"The keyType of the desired KeyValue\",\"token\":\"The token address to check\"},\"returns\":{\"key\":\"KeyValue info for key of type `keyType`\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"getTokenType(address)\":{\"params\":{\"token\":\"The token address\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\",\"tokenType\":\"the token type. 0 is FUNGIBLE_COMMON, 1 is NON_FUNGIBLE_UNIQUE, -1 is UNRECOGNIZED\"}},\"grantTokenKyc(address,address)\":{\"params\":{\"account\":\"The account address to grant kyc\",\"token\":\"The token address\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"isApprovedForAll(address,address,address)\":{\"params\":{\"operator\":\"The address that acts on behalf of the owner\",\"owner\":\"The address that owns the NFTs\",\"token\":\"The Hedera NFT token address to approve\"},\"returns\":{\"approved\":\"True if `operator` is an approved operator for `owner`, false otherwise\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"isFrozen(address,address)\":{\"params\":{\"account\":\"The account address associated with the token\",\"token\":\"The token address to check\"},\"returns\":{\"frozen\":\"True if `account` is frozen for `token`\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"isKyc(address,address)\":{\"params\":{\"account\":\"The account address associated with the token\",\"token\":\"The token address to check\"},\"returns\":{\"kycGranted\":\"True if `account` has kyc granted for `token`\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"isToken(address)\":{\"params\":{\"token\":\"The token address\"},\"returns\":{\"isToken\":\"True if valid token found for the given address\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"mintToken(address,int64,bytes[])\":{\"params\":{\"amount\":\"Applicable to tokens of type FUNGIBLE_COMMON. The amount to mint to the Treasury Account. Amount must be a positive non-zero number represented in the lowest denomination of the token. The new supply must be lower than 2^63.\",\"metadata\":\"Applicable to tokens of type NON_FUNGIBLE_UNIQUE. A list of metadata that are being created. Maximum allowed size of each metadata is 100 bytes\",\"token\":\"The token for which to mint tokens. If token does not exist, transaction results in INVALID_TOKEN_ID\"},\"returns\":{\"newTotalSupply\":\"The new supply of tokens. For NFTs it is the total count of NFTs\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\",\"serialNumbers\":\"If the token is an NFT the newly generate serial numbers, othersise empty.\"}},\"pauseToken(address)\":{\"params\":{\"token\":\"The token address to be paused\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"redirectForToken(address,bytes)\":{\"params\":{\"encodedFunctionSelector\":\"The function selector from the ERC20 interface + the bytes input for the function called\",\"token\":\"The token address\"},\"returns\":{\"response\":\"The result of the call that had been encoded and sent for execution.\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"revokeTokenKyc(address,address)\":{\"params\":{\"account\":\"The account address to revoke kyc\",\"token\":\"The token address\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"setApprovalForAll(address,address,bool)\":{\"params\":{\"approved\":\"True if the operator is approved, false to revoke approval\",\"operator\":\"Address to add to the set of authorized operators\",\"token\":\"The Hedera NFT token address to approve\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"transferFrom(address,address,address,uint256)\":{\"params\":{\"amount\":\"The amount of tokens to transfer from `from` to `to`\",\"from\":\"The account address of the owner of the token, on the behalf of which to transfer `amount` tokens\",\"to\":\"The account address of the receiver of the `amount` tokens\",\"token\":\"The address of the fungible Hedera token to transfer\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"transferFromNFT(address,address,address,uint256)\":{\"params\":{\"from\":\"The account address of the owner of `serialNumber` of `token`\",\"serialNumber\":\"The NFT serial number to transfer\",\"to\":\"The account address of the receiver of `serialNumber`\",\"token\":\"The address of the non-fungible Hedera token to transfer\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"transferNFT(address,address,address,int64)\":{\"params\":{\"recipient\":\"The receiver of the transaction\",\"sender\":\"The sender for the transaction\",\"serialNumber\":\"The serial number of the NFT to transfer.\",\"token\":\"The token to transfer to/from\"}},\"transferNFTs(address,address[],address[],int64[])\":{\"params\":{\"receiver\":\"the receiver of the nft sent by the same index at sender\",\"sender\":\"the sender of an nft\",\"serialNumber\":\"the serial number of the nft sent by the same index at sender\",\"token\":\"The ID of the token as a solidity address\"}},\"transferToken(address,address,address,int64)\":{\"params\":{\"amount\":\"Non-negative value to send. a negative value will result in a failure.\",\"recipient\":\"The receiver of the transaction\",\"sender\":\"The sender for the transaction\",\"token\":\"The token to transfer to/from\"}},\"transferTokens(address,address[],int64[])\":{\"params\":{\"accountId\":\"account to do a transfer to/from\",\"amount\":\"The amount from the accountId at the same index\",\"token\":\"The ID of the token as a solidity address\"}},\"unfreezeToken(address,address)\":{\"params\":{\"account\":\"The account address to be unfrozen\",\"token\":\"The token address\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"unpauseToken(address)\":{\"params\":{\"token\":\"The token address to be unpaused\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"updateTokenExpiryInfo(address,(int64,address,int64))\":{\"params\":{\"expiryInfo\":\"The hedera token expiry info\",\"token\":\"The token address\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"updateTokenInfo(address,(string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)))\":{\"params\":{\"token\":\"The token address\",\"tokenInfo\":\"The hedera token info to update token with\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"updateTokenKeys(address,(uint256,(bool,address,bytes,bytes,address))[])\":{\"params\":{\"keys\":\"The token keys\",\"token\":\"The token address\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"wipeTokenAccount(address,address,int64)\":{\"params\":{\"account\":\"The account address to revoke kyc\",\"amount\":\"The number of tokens to wipe\",\"token\":\"The token address\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"wipeTokenAccountNFT(address,address,int64[])\":{\"params\":{\"account\":\"The account address to revoke kyc\",\"serialNumbers\":\"The serial numbers of token to wipe\",\"token\":\"The token address\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowance(address,address,address)\":{\"notice\":\"Returns the amount which spender is still allowed to withdraw from owner. Only Applicable to Fungible Tokens\"},\"approve(address,address,uint256)\":{\"notice\":\"Allows spender to withdraw from your account multiple times, up to the value amount. If this function is called again it overwrites the current allowance with value. Only Applicable to Fungible Tokens\"},\"approveNFT(address,address,uint256)\":{\"notice\":\"Allow or reaffirm the approved address to transfer an NFT the approved address does not own. Only Applicable to NFT Tokens\"},\"associateToken(address,address)\":{\"notice\":\"Single-token variant of associateTokens. Will be mapped to a single entry array call of associateTokens\"},\"associateTokens(address,address[])\":{\"notice\":\"Associates the provided account with the provided tokens. Must be signed by the provided Account's key or called from the accounts contract key If the provided account is not found, the transaction will resolve to INVALID_ACCOUNT_ID. If the provided account has been deleted, the transaction will resolve to ACCOUNT_DELETED. If any of the provided tokens is not found, the transaction will resolve to INVALID_TOKEN_REF. If any of the provided tokens has been deleted, the transaction will resolve to TOKEN_WAS_DELETED. If an association between the provided account and any of the tokens already exists, the transaction will resolve to TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT. If the provided account's associations count exceed the constraint of maximum token associations per account, the transaction will resolve to TOKENS_PER_ACCOUNT_LIMIT_EXCEEDED. On success, associations between the provided account and tokens are made and the account is ready to interact with the tokens.\"},\"burnToken(address,int64,int64[])\":{\"notice\":\"Burns an amount of the token from the defined treasury account\"},\"createFungibleToken((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)),int64,int32)\":{\"notice\":\"Creates a Fungible Token with the specified properties\"},\"createFungibleTokenWithCustomFees((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)),int64,int32,(int64,address,bool,bool,address)[],(int64,int64,int64,int64,bool,address)[])\":{\"notice\":\"Creates a Fungible Token with the specified properties\"},\"createNonFungibleToken((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)))\":{\"notice\":\"Creates an Non Fungible Unique Token with the specified properties\"},\"createNonFungibleTokenWithCustomFees((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)),(int64,address,bool,bool,address)[],(int64,int64,int64,address,bool,address)[])\":{\"notice\":\"Creates an Non Fungible Unique Token with the specified properties\"},\"cryptoTransfer(((address,int64,bool)[]),(address,(address,int64,bool)[],(address,address,int64,bool)[])[])\":{\"notice\":\"Performs transfers among combinations of tokens and hbars\"},\"deleteToken(address)\":{\"notice\":\"Operation to delete token\"},\"dissociateToken(address,address)\":{\"notice\":\"Single-token variant of dissociateTokens. Will be mapped to a single entry array call of dissociateTokens\"},\"dissociateTokens(address,address[])\":{\"notice\":\"Dissociates the provided account with the provided tokens. Must be signed by the provided Account's key. If the provided account is not found, the transaction will resolve to INVALID_ACCOUNT_ID. If the provided account has been deleted, the transaction will resolve to ACCOUNT_DELETED. If any of the provided tokens is not found, the transaction will resolve to INVALID_TOKEN_REF. If any of the provided tokens has been deleted, the transaction will resolve to TOKEN_WAS_DELETED. If an association between the provided account and any of the tokens does not exist, the transaction will resolve to TOKEN_NOT_ASSOCIATED_TO_ACCOUNT. If a token has not been deleted and has not expired, and the user has a nonzero balance, the transaction will resolve to TRANSACTION_REQUIRES_ZERO_TOKEN_BALANCES. If a fungible token has expired, the user can disassociate even if their token balance is not zero. If a non fungible token has expired, the user can not disassociate if their token balance is not zero. The transaction will resolve to TRANSACTION_REQUIRED_ZERO_TOKEN_BALANCES. On success, associations between the provided account and tokens are removed.\"},\"freezeToken(address,address)\":{\"notice\":\"Operation to freeze token account\"},\"getApproved(address,uint256)\":{\"notice\":\"Get the approved address for a single NFT Only Applicable to NFT Tokens\"},\"getFungibleTokenInfo(address)\":{\"notice\":\"Query fungible token info\"},\"getNonFungibleTokenInfo(address,int64)\":{\"notice\":\"Query non fungible token info\"},\"getTokenCustomFees(address)\":{\"notice\":\"Query token custom fees\"},\"getTokenDefaultFreezeStatus(address)\":{\"notice\":\"Query token default freeze status\"},\"getTokenDefaultKycStatus(address)\":{\"notice\":\"Query token default kyc status\"},\"getTokenExpiryInfo(address)\":{\"notice\":\"Query token expiry info\"},\"getTokenInfo(address)\":{\"notice\":\"Query token info\"},\"getTokenKey(address,uint256)\":{\"notice\":\"Query token KeyValue\"},\"getTokenType(address)\":{\"notice\":\"Query to return the token type for a given address\"},\"grantTokenKyc(address,address)\":{\"notice\":\"Operation to grant kyc to token account\"},\"isApprovedForAll(address,address,address)\":{\"notice\":\"Query if an address is an authorized operator for another address Only Applicable to NFT Tokens\"},\"isFrozen(address,address)\":{\"notice\":\"Query if token account is frozen\"},\"isKyc(address,address)\":{\"notice\":\"Query if token account has kyc granted\"},\"isToken(address)\":{\"notice\":\"Query if valid token found for the given address\"},\"mintToken(address,int64,bytes[])\":{\"notice\":\"Mints an amount of the token to the defined treasury account\"},\"pauseToken(address)\":{\"notice\":\"Operation to pause token\"},\"redirectForToken(address,bytes)\":{\"notice\":\"Initiates a Redirect For Token\"},\"revokeTokenKyc(address,address)\":{\"notice\":\"Operation to revoke kyc to token account\"},\"setApprovalForAll(address,address,bool)\":{\"notice\":\"Enable or disable approval for a third party (\\\"operator\\\") to manage all of `msg.sender`'s assets\"},\"transferFrom(address,address,address,uint256)\":{\"notice\":\"Only applicable to fungible tokens\"},\"transferFromNFT(address,address,address,uint256)\":{\"notice\":\"Transfers `serialNumber` of `token` from `from` to `to` using the allowance mechanism. Only applicable to NFT tokens\"},\"transferNFT(address,address,address,int64)\":{\"notice\":\"Transfers tokens where the calling account/contract is implicitly the first entry in the token transfer list, where the amount is the value needed to zero balance the transfers. Regular signing rules apply for sending (positive amount) or receiving (negative amount)\"},\"transferNFTs(address,address[],address[],int64[])\":{\"notice\":\"Initiates a Non-Fungable Token Transfer\"},\"transferToken(address,address,address,int64)\":{\"notice\":\"Transfers tokens where the calling account/contract is implicitly the first entry in the token transfer list, where the amount is the value needed to zero balance the transfers. Regular signing rules apply for sending (positive amount) or receiving (negative amount)\"},\"transferTokens(address,address[],int64[])\":{\"notice\":\"Initiates a Fungible Token Transfer\"},\"unfreezeToken(address,address)\":{\"notice\":\"Operation to unfreeze token account\"},\"unpauseToken(address)\":{\"notice\":\"Operation to unpause token\"},\"updateTokenExpiryInfo(address,(int64,address,int64))\":{\"notice\":\"Operation to update token expiry info\"},\"updateTokenInfo(address,(string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)))\":{\"notice\":\"Operation to update token info\"},\"updateTokenKeys(address,(uint256,(bool,address,bytes,bytes,address))[])\":{\"notice\":\"Operation to update token expiry info\"},\"wipeTokenAccount(address,address,int64)\":{\"notice\":\"Operation to wipe fungible tokens from account\"},\"wipeTokenAccountNFT(address,address,int64[])\":{\"notice\":\"Operation to wipe non fungible tokens from account\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/hedera/IHederaTokenService.sol\":\"IHederaTokenService\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/hedera/IHederaTokenService.sol\":{\"keccak256\":\"0xd0606986a26e82ecd4c2cadd498a74fe9fc2061bd65f4e90592d51962ffbd245\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://786b1c29918038c33f7154c7df73d1a668482965ad0dfe920309533314050b6d\",\"dweb:/ipfs/QmV2Lvy9wvWBxXfSz2tPimZf5xEsDwsWqqujyY2a75i7Te\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"allowance","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"uint256","name":"allowance","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"approved","type":"address"},{"internalType":"uint256","name":"serialNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approveNFT","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"associateToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"associateTokens","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"int64","name":"amount","type":"int64"},{"internalType":"int64[]","name":"serialNumbers","type":"int64[]"}],"stateMutability":"nonpayable","type":"function","name":"burnToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"int64","name":"newTotalSupply","type":"int64"}]},{"inputs":[{"internalType":"struct IHederaTokenService.HederaToken","name":"token","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"bool","name":"tokenSupplyType","type":"bool"},{"internalType":"int64","name":"maxSupply","type":"int64"},{"internalType":"bool","name":"freezeDefault","type":"bool"},{"internalType":"struct IHederaTokenService.TokenKey[]","name":"tokenKeys","type":"tuple[]","components":[{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]},{"internalType":"struct IHederaTokenService.Expiry","name":"expiry","type":"tuple","components":[{"internalType":"int64","name":"second","type":"int64"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"int64","name":"autoRenewPeriod","type":"int64"}]}]},{"internalType":"int64","name":"initialTotalSupply","type":"int64"},{"internalType":"int32","name":"decimals","type":"int32"}],"stateMutability":"payable","type":"function","name":"createFungibleToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"address","name":"tokenAddress","type":"address"}]},{"inputs":[{"internalType":"struct IHederaTokenService.HederaToken","name":"token","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"bool","name":"tokenSupplyType","type":"bool"},{"internalType":"int64","name":"maxSupply","type":"int64"},{"internalType":"bool","name":"freezeDefault","type":"bool"},{"internalType":"struct IHederaTokenService.TokenKey[]","name":"tokenKeys","type":"tuple[]","components":[{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]},{"internalType":"struct IHederaTokenService.Expiry","name":"expiry","type":"tuple","components":[{"internalType":"int64","name":"second","type":"int64"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"int64","name":"autoRenewPeriod","type":"int64"}]}]},{"internalType":"int64","name":"initialTotalSupply","type":"int64"},{"internalType":"int32","name":"decimals","type":"int32"},{"internalType":"struct IHederaTokenService.FixedFee[]","name":"fixedFees","type":"tuple[]","components":[{"internalType":"int64","name":"amount","type":"int64"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"bool","name":"useCurrentTokenForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.FractionalFee[]","name":"fractionalFees","type":"tuple[]","components":[{"internalType":"int64","name":"numerator","type":"int64"},{"internalType":"int64","name":"denominator","type":"int64"},{"internalType":"int64","name":"minimumAmount","type":"int64"},{"internalType":"int64","name":"maximumAmount","type":"int64"},{"internalType":"bool","name":"netOfTransfers","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]}],"stateMutability":"payable","type":"function","name":"createFungibleTokenWithCustomFees","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"address","name":"tokenAddress","type":"address"}]},{"inputs":[{"internalType":"struct IHederaTokenService.HederaToken","name":"token","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"bool","name":"tokenSupplyType","type":"bool"},{"internalType":"int64","name":"maxSupply","type":"int64"},{"internalType":"bool","name":"freezeDefault","type":"bool"},{"internalType":"struct IHederaTokenService.TokenKey[]","name":"tokenKeys","type":"tuple[]","components":[{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]},{"internalType":"struct IHederaTokenService.Expiry","name":"expiry","type":"tuple","components":[{"internalType":"int64","name":"second","type":"int64"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"int64","name":"autoRenewPeriod","type":"int64"}]}]}],"stateMutability":"payable","type":"function","name":"createNonFungibleToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"address","name":"tokenAddress","type":"address"}]},{"inputs":[{"internalType":"struct IHederaTokenService.HederaToken","name":"token","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"bool","name":"tokenSupplyType","type":"bool"},{"internalType":"int64","name":"maxSupply","type":"int64"},{"internalType":"bool","name":"freezeDefault","type":"bool"},{"internalType":"struct IHederaTokenService.TokenKey[]","name":"tokenKeys","type":"tuple[]","components":[{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]},{"internalType":"struct IHederaTokenService.Expiry","name":"expiry","type":"tuple","components":[{"internalType":"int64","name":"second","type":"int64"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"int64","name":"autoRenewPeriod","type":"int64"}]}]},{"internalType":"struct IHederaTokenService.FixedFee[]","name":"fixedFees","type":"tuple[]","components":[{"internalType":"int64","name":"amount","type":"int64"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"bool","name":"useCurrentTokenForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.RoyaltyFee[]","name":"royaltyFees","type":"tuple[]","components":[{"internalType":"int64","name":"numerator","type":"int64"},{"internalType":"int64","name":"denominator","type":"int64"},{"internalType":"int64","name":"amount","type":"int64"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]}],"stateMutability":"payable","type":"function","name":"createNonFungibleTokenWithCustomFees","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"address","name":"tokenAddress","type":"address"}]},{"inputs":[{"internalType":"struct IHederaTokenService.TransferList","name":"transferList","type":"tuple","components":[{"internalType":"struct IHederaTokenService.AccountAmount[]","name":"transfers","type":"tuple[]","components":[{"internalType":"address","name":"accountID","type":"address"},{"internalType":"int64","name":"amount","type":"int64"},{"internalType":"bool","name":"isApproval","type":"bool"}]}]},{"internalType":"struct IHederaTokenService.TokenTransferList[]","name":"tokenTransfers","type":"tuple[]","components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"struct IHederaTokenService.AccountAmount[]","name":"transfers","type":"tuple[]","components":[{"internalType":"address","name":"accountID","type":"address"},{"internalType":"int64","name":"amount","type":"int64"},{"internalType":"bool","name":"isApproval","type":"bool"}]},{"internalType":"struct IHederaTokenService.NftTransfer[]","name":"nftTransfers","type":"tuple[]","components":[{"internalType":"address","name":"senderAccountID","type":"address"},{"internalType":"address","name":"receiverAccountID","type":"address"},{"internalType":"int64","name":"serialNumber","type":"int64"},{"internalType":"bool","name":"isApproval","type":"bool"}]}]}],"stateMutability":"nonpayable","type":"function","name":"cryptoTransfer","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deleteToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"dissociateToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"dissociateTokens","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"freezeToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"serialNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getApproved","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"address","name":"approved","type":"address"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getFungibleTokenInfo","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"struct IHederaTokenService.FungibleTokenInfo","name":"fungibleTokenInfo","type":"tuple","components":[{"internalType":"struct IHederaTokenService.TokenInfo","name":"tokenInfo","type":"tuple","components":[{"internalType":"struct IHederaTokenService.HederaToken","name":"token","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"bool","name":"tokenSupplyType","type":"bool"},{"internalType":"int64","name":"maxSupply","type":"int64"},{"internalType":"bool","name":"freezeDefault","type":"bool"},{"internalType":"struct IHederaTokenService.TokenKey[]","name":"tokenKeys","type":"tuple[]","components":[{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]},{"internalType":"struct IHederaTokenService.Expiry","name":"expiry","type":"tuple","components":[{"internalType":"int64","name":"second","type":"int64"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"int64","name":"autoRenewPeriod","type":"int64"}]}]},{"internalType":"int64","name":"totalSupply","type":"int64"},{"internalType":"bool","name":"deleted","type":"bool"},{"internalType":"bool","name":"defaultKycStatus","type":"bool"},{"internalType":"bool","name":"pauseStatus","type":"bool"},{"internalType":"struct IHederaTokenService.FixedFee[]","name":"fixedFees","type":"tuple[]","components":[{"internalType":"int64","name":"amount","type":"int64"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"bool","name":"useCurrentTokenForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.FractionalFee[]","name":"fractionalFees","type":"tuple[]","components":[{"internalType":"int64","name":"numerator","type":"int64"},{"internalType":"int64","name":"denominator","type":"int64"},{"internalType":"int64","name":"minimumAmount","type":"int64"},{"internalType":"int64","name":"maximumAmount","type":"int64"},{"internalType":"bool","name":"netOfTransfers","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.RoyaltyFee[]","name":"royaltyFees","type":"tuple[]","components":[{"internalType":"int64","name":"numerator","type":"int64"},{"internalType":"int64","name":"denominator","type":"int64"},{"internalType":"int64","name":"amount","type":"int64"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"string","name":"ledgerId","type":"string"}]},{"internalType":"int32","name":"decimals","type":"int32"}]}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"int64","name":"serialNumber","type":"int64"}],"stateMutability":"nonpayable","type":"function","name":"getNonFungibleTokenInfo","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"struct IHederaTokenService.NonFungibleTokenInfo","name":"nonFungibleTokenInfo","type":"tuple","components":[{"internalType":"struct IHederaTokenService.TokenInfo","name":"tokenInfo","type":"tuple","components":[{"internalType":"struct IHederaTokenService.HederaToken","name":"token","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"bool","name":"tokenSupplyType","type":"bool"},{"internalType":"int64","name":"maxSupply","type":"int64"},{"internalType":"bool","name":"freezeDefault","type":"bool"},{"internalType":"struct IHederaTokenService.TokenKey[]","name":"tokenKeys","type":"tuple[]","components":[{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]},{"internalType":"struct IHederaTokenService.Expiry","name":"expiry","type":"tuple","components":[{"internalType":"int64","name":"second","type":"int64"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"int64","name":"autoRenewPeriod","type":"int64"}]}]},{"internalType":"int64","name":"totalSupply","type":"int64"},{"internalType":"bool","name":"deleted","type":"bool"},{"internalType":"bool","name":"defaultKycStatus","type":"bool"},{"internalType":"bool","name":"pauseStatus","type":"bool"},{"internalType":"struct IHederaTokenService.FixedFee[]","name":"fixedFees","type":"tuple[]","components":[{"internalType":"int64","name":"amount","type":"int64"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"bool","name":"useCurrentTokenForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.FractionalFee[]","name":"fractionalFees","type":"tuple[]","components":[{"internalType":"int64","name":"numerator","type":"int64"},{"internalType":"int64","name":"denominator","type":"int64"},{"internalType":"int64","name":"minimumAmount","type":"int64"},{"internalType":"int64","name":"maximumAmount","type":"int64"},{"internalType":"bool","name":"netOfTransfers","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.RoyaltyFee[]","name":"royaltyFees","type":"tuple[]","components":[{"internalType":"int64","name":"numerator","type":"int64"},{"internalType":"int64","name":"denominator","type":"int64"},{"internalType":"int64","name":"amount","type":"int64"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"string","name":"ledgerId","type":"string"}]},{"internalType":"int64","name":"serialNumber","type":"int64"},{"internalType":"address","name":"ownerId","type":"address"},{"internalType":"int64","name":"creationTime","type":"int64"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"address","name":"spenderId","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getTokenCustomFees","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"struct IHederaTokenService.FixedFee[]","name":"fixedFees","type":"tuple[]","components":[{"internalType":"int64","name":"amount","type":"int64"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"bool","name":"useCurrentTokenForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.FractionalFee[]","name":"fractionalFees","type":"tuple[]","components":[{"internalType":"int64","name":"numerator","type":"int64"},{"internalType":"int64","name":"denominator","type":"int64"},{"internalType":"int64","name":"minimumAmount","type":"int64"},{"internalType":"int64","name":"maximumAmount","type":"int64"},{"internalType":"bool","name":"netOfTransfers","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.RoyaltyFee[]","name":"royaltyFees","type":"tuple[]","components":[{"internalType":"int64","name":"numerator","type":"int64"},{"internalType":"int64","name":"denominator","type":"int64"},{"internalType":"int64","name":"amount","type":"int64"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getTokenDefaultFreezeStatus","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"bool","name":"defaultFreezeStatus","type":"bool"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getTokenDefaultKycStatus","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"bool","name":"defaultKycStatus","type":"bool"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getTokenExpiryInfo","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"struct IHederaTokenService.Expiry","name":"expiry","type":"tuple","components":[{"internalType":"int64","name":"second","type":"int64"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"int64","name":"autoRenewPeriod","type":"int64"}]}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getTokenInfo","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"struct IHederaTokenService.TokenInfo","name":"tokenInfo","type":"tuple","components":[{"internalType":"struct IHederaTokenService.HederaToken","name":"token","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"bool","name":"tokenSupplyType","type":"bool"},{"internalType":"int64","name":"maxSupply","type":"int64"},{"internalType":"bool","name":"freezeDefault","type":"bool"},{"internalType":"struct IHederaTokenService.TokenKey[]","name":"tokenKeys","type":"tuple[]","components":[{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]},{"internalType":"struct IHederaTokenService.Expiry","name":"expiry","type":"tuple","components":[{"internalType":"int64","name":"second","type":"int64"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"int64","name":"autoRenewPeriod","type":"int64"}]}]},{"internalType":"int64","name":"totalSupply","type":"int64"},{"internalType":"bool","name":"deleted","type":"bool"},{"internalType":"bool","name":"defaultKycStatus","type":"bool"},{"internalType":"bool","name":"pauseStatus","type":"bool"},{"internalType":"struct IHederaTokenService.FixedFee[]","name":"fixedFees","type":"tuple[]","components":[{"internalType":"int64","name":"amount","type":"int64"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"bool","name":"useCurrentTokenForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.FractionalFee[]","name":"fractionalFees","type":"tuple[]","components":[{"internalType":"int64","name":"numerator","type":"int64"},{"internalType":"int64","name":"denominator","type":"int64"},{"internalType":"int64","name":"minimumAmount","type":"int64"},{"internalType":"int64","name":"maximumAmount","type":"int64"},{"internalType":"bool","name":"netOfTransfers","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.RoyaltyFee[]","name":"royaltyFees","type":"tuple[]","components":[{"internalType":"int64","name":"numerator","type":"int64"},{"internalType":"int64","name":"denominator","type":"int64"},{"internalType":"int64","name":"amount","type":"int64"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"string","name":"ledgerId","type":"string"}]}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"keyType","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getTokenKey","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getTokenType","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"int32","name":"tokenType","type":"int32"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantTokenKyc","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"bool","name":"approved","type":"bool"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"isFrozen","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"bool","name":"frozen","type":"bool"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"isKyc","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"bool","name":"kycGranted","type":"bool"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"isToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"bool","name":"isToken","type":"bool"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"int64","name":"amount","type":"int64"},{"internalType":"bytes[]","name":"metadata","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"mintToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"int64","name":"newTotalSupply","type":"int64"},{"internalType":"int64[]","name":"serialNumbers","type":"int64[]"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"pauseToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes","name":"encodedFunctionSelector","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"redirectForToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"bytes","name":"response","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeTokenKyc","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"serialNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFromNFT","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"int64","name":"serialNumber","type":"int64"}],"stateMutability":"nonpayable","type":"function","name":"transferNFT","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address[]","name":"sender","type":"address[]"},{"internalType":"address[]","name":"receiver","type":"address[]"},{"internalType":"int64[]","name":"serialNumber","type":"int64[]"}],"stateMutability":"nonpayable","type":"function","name":"transferNFTs","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"int64","name":"amount","type":"int64"}],"stateMutability":"nonpayable","type":"function","name":"transferToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address[]","name":"accountId","type":"address[]"},{"internalType":"int64[]","name":"amount","type":"int64[]"}],"stateMutability":"nonpayable","type":"function","name":"transferTokens","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unfreezeToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unpauseToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"struct IHederaTokenService.Expiry","name":"expiryInfo","type":"tuple","components":[{"internalType":"int64","name":"second","type":"int64"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"int64","name":"autoRenewPeriod","type":"int64"}]}],"stateMutability":"nonpayable","type":"function","name":"updateTokenExpiryInfo","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"struct IHederaTokenService.HederaToken","name":"tokenInfo","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"bool","name":"tokenSupplyType","type":"bool"},{"internalType":"int64","name":"maxSupply","type":"int64"},{"internalType":"bool","name":"freezeDefault","type":"bool"},{"internalType":"struct IHederaTokenService.TokenKey[]","name":"tokenKeys","type":"tuple[]","components":[{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]},{"internalType":"struct IHederaTokenService.Expiry","name":"expiry","type":"tuple","components":[{"internalType":"int64","name":"second","type":"int64"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"int64","name":"autoRenewPeriod","type":"int64"}]}]}],"stateMutability":"nonpayable","type":"function","name":"updateTokenInfo","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"struct IHederaTokenService.TokenKey[]","name":"keys","type":"tuple[]","components":[{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"updateTokenKeys","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"int64","name":"amount","type":"int64"}],"stateMutability":"nonpayable","type":"function","name":"wipeTokenAccount","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"int64[]","name":"serialNumbers","type":"int64[]"}],"stateMutability":"nonpayable","type":"function","name":"wipeTokenAccountNFT","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address,address)":{"params":{"owner":"the owner of the tokens to be spent","spender":"the spender of the tokens","token":"The Hedera token address to check the allowance of"},"returns":{"allowance":"The amount which spender is still allowed to withdraw from owner.","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"approve(address,address,uint256)":{"params":{"amount":"the amount of tokens authorized to spend.","spender":"the account address authorized to spend","token":"The hedera token address to approve"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"approveNFT(address,address,uint256)":{"params":{"approved":"The new approved NFT controller. To revoke approvals pass in the zero address.","serialNumber":"The NFT serial number to approve","token":"The Hedera NFT token address to approve"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"associateToken(address,address)":{"params":{"account":"The account to be associated with the provided token","token":"The token to be associated with the provided account"}},"associateTokens(address,address[])":{"params":{"account":"The account to be associated with the provided tokens","tokens":"The tokens to be associated with the provided account. In the case of NON_FUNGIBLE_UNIQUE Type, once an account is associated, it can hold any number of NFTs (serial numbers) of that token type"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"burnToken(address,int64,int64[])":{"params":{"amount":"Applicable to tokens of type FUNGIBLE_COMMON. The amount to burn from the Treasury Account. Amount must be a positive non-zero number, not bigger than the token balance of the treasury account (0; balance], represented in the lowest denomination.","serialNumbers":"Applicable to tokens of type NON_FUNGIBLE_UNIQUE. The list of serial numbers to be burned.","token":"The token for which to burn tokens. If token does not exist, transaction results in INVALID_TOKEN_ID"},"returns":{"newTotalSupply":"The new supply of tokens. For NFTs it is the total count of NFTs","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"createFungibleToken((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)),int64,int32)":{"params":{"decimals":"the number of decimal places a token is divisible by","initialTotalSupply":"Specifies the initial supply of tokens to be put in circulation. The initial supply is sent to the Treasury Account. The supply is in the lowest denomination possible.","token":"the basic properties of the token being created"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22.","tokenAddress":"the created token's address"}},"createFungibleTokenWithCustomFees((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)),int64,int32,(int64,address,bool,bool,address)[],(int64,int64,int64,int64,bool,address)[])":{"params":{"decimals":"the number of decimal places a token is divisible by.","fixedFees":"list of fixed fees to apply to the token","fractionalFees":"list of fractional fees to apply to the token","initialTotalSupply":"Specifies the initial supply of tokens to be put in circulation. The initial supply is sent to the Treasury Account. The supply is in the lowest denomination possible.","token":"the basic properties of the token being created"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22.","tokenAddress":"the created token's address"}},"createNonFungibleToken((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)))":{"params":{"token":"the basic properties of the token being created"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22.","tokenAddress":"the created token's address"}},"createNonFungibleTokenWithCustomFees((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)),(int64,address,bool,bool,address)[],(int64,int64,int64,address,bool,address)[])":{"params":{"fixedFees":"list of fixed fees to apply to the token","royaltyFees":"list of royalty fees to apply to the token","token":"the basic properties of the token being created"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22.","tokenAddress":"the created token's address"}},"cryptoTransfer(((address,int64,bool)[]),(address,(address,int64,bool)[],(address,address,int64,bool)[])[])":{"custom:version":"0.3.0 the signature of the previous version was cryptoTransfer(TokenTransferList[] memory tokenTransfers)","params":{"tokenTransfers":"the list of token transfers to do","transferList":"the list of hbar transfers to do"}},"deleteToken(address)":{"params":{"token":"The token address to be deleted"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"dissociateToken(address,address)":{"params":{"account":"The account to be associated with the provided token","token":"The token to be associated with the provided account"}},"dissociateTokens(address,address[])":{"params":{"account":"The account to be dissociated from the provided tokens","tokens":"The tokens to be dissociated from the provided account."},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"freezeToken(address,address)":{"params":{"account":"The account address to be frozen","token":"The token address"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"getApproved(address,uint256)":{"params":{"serialNumber":"The NFT to find the approved address for","token":"The Hedera NFT token address to check approval"},"returns":{"approved":"The approved address for this NFT, or the zero address if there is none","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"getFungibleTokenInfo(address)":{"params":{"token":"The token address to check"},"returns":{"fungibleTokenInfo":"FungibleTokenInfo info for `token`","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"getNonFungibleTokenInfo(address,int64)":{"params":{"serialNumber":"The NFT serialNumber to check","token":"The token address to check"},"returns":{"nonFungibleTokenInfo":"NonFungibleTokenInfo info for `token` `serialNumber`","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"getTokenCustomFees(address)":{"params":{"token":"The token address to check"},"returns":{"fixedFees":"Set of fixed fees for `token`","fractionalFees":"Set of fractional fees for `token`","responseCode":"The response code for the status of the request. SUCCESS is 22.","royaltyFees":"Set of royalty fees for `token`"}},"getTokenDefaultFreezeStatus(address)":{"params":{"token":"The token address to check"},"returns":{"defaultFreezeStatus":"True if `token` default freeze status is frozen.","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"getTokenDefaultKycStatus(address)":{"params":{"token":"The token address to check"},"returns":{"defaultKycStatus":"True if `token` default kyc status is KycNotApplicable and false if Revoked.","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"getTokenExpiryInfo(address)":{"params":{"token":"The token address to check"},"returns":{"expiry":"Expiry info for `token`","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"getTokenInfo(address)":{"params":{"token":"The token address to check"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22.","tokenInfo":"TokenInfo info for `token`"}},"getTokenKey(address,uint256)":{"params":{"keyType":"The keyType of the desired KeyValue","token":"The token address to check"},"returns":{"key":"KeyValue info for key of type `keyType`","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"getTokenType(address)":{"params":{"token":"The token address"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22.","tokenType":"the token type. 0 is FUNGIBLE_COMMON, 1 is NON_FUNGIBLE_UNIQUE, -1 is UNRECOGNIZED"}},"grantTokenKyc(address,address)":{"params":{"account":"The account address to grant kyc","token":"The token address"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"isApprovedForAll(address,address,address)":{"params":{"operator":"The address that acts on behalf of the owner","owner":"The address that owns the NFTs","token":"The Hedera NFT token address to approve"},"returns":{"approved":"True if `operator` is an approved operator for `owner`, false otherwise","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"isFrozen(address,address)":{"params":{"account":"The account address associated with the token","token":"The token address to check"},"returns":{"frozen":"True if `account` is frozen for `token`","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"isKyc(address,address)":{"params":{"account":"The account address associated with the token","token":"The token address to check"},"returns":{"kycGranted":"True if `account` has kyc granted for `token`","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"isToken(address)":{"params":{"token":"The token address"},"returns":{"isToken":"True if valid token found for the given address","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"mintToken(address,int64,bytes[])":{"params":{"amount":"Applicable to tokens of type FUNGIBLE_COMMON. The amount to mint to the Treasury Account. Amount must be a positive non-zero number represented in the lowest denomination of the token. The new supply must be lower than 2^63.","metadata":"Applicable to tokens of type NON_FUNGIBLE_UNIQUE. A list of metadata that are being created. Maximum allowed size of each metadata is 100 bytes","token":"The token for which to mint tokens. If token does not exist, transaction results in INVALID_TOKEN_ID"},"returns":{"newTotalSupply":"The new supply of tokens. For NFTs it is the total count of NFTs","responseCode":"The response code for the status of the request. SUCCESS is 22.","serialNumbers":"If the token is an NFT the newly generate serial numbers, othersise empty."}},"pauseToken(address)":{"params":{"token":"The token address to be paused"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"redirectForToken(address,bytes)":{"params":{"encodedFunctionSelector":"The function selector from the ERC20 interface + the bytes input for the function called","token":"The token address"},"returns":{"response":"The result of the call that had been encoded and sent for execution.","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"revokeTokenKyc(address,address)":{"params":{"account":"The account address to revoke kyc","token":"The token address"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"setApprovalForAll(address,address,bool)":{"params":{"approved":"True if the operator is approved, false to revoke approval","operator":"Address to add to the set of authorized operators","token":"The Hedera NFT token address to approve"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"transferFrom(address,address,address,uint256)":{"params":{"amount":"The amount of tokens to transfer from `from` to `to`","from":"The account address of the owner of the token, on the behalf of which to transfer `amount` tokens","to":"The account address of the receiver of the `amount` tokens","token":"The address of the fungible Hedera token to transfer"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"transferFromNFT(address,address,address,uint256)":{"params":{"from":"The account address of the owner of `serialNumber` of `token`","serialNumber":"The NFT serial number to transfer","to":"The account address of the receiver of `serialNumber`","token":"The address of the non-fungible Hedera token to transfer"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"transferNFT(address,address,address,int64)":{"params":{"recipient":"The receiver of the transaction","sender":"The sender for the transaction","serialNumber":"The serial number of the NFT to transfer.","token":"The token to transfer to/from"}},"transferNFTs(address,address[],address[],int64[])":{"params":{"receiver":"the receiver of the nft sent by the same index at sender","sender":"the sender of an nft","serialNumber":"the serial number of the nft sent by the same index at sender","token":"The ID of the token as a solidity address"}},"transferToken(address,address,address,int64)":{"params":{"amount":"Non-negative value to send. a negative value will result in a failure.","recipient":"The receiver of the transaction","sender":"The sender for the transaction","token":"The token to transfer to/from"}},"transferTokens(address,address[],int64[])":{"params":{"accountId":"account to do a transfer to/from","amount":"The amount from the accountId at the same index","token":"The ID of the token as a solidity address"}},"unfreezeToken(address,address)":{"params":{"account":"The account address to be unfrozen","token":"The token address"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"unpauseToken(address)":{"params":{"token":"The token address to be unpaused"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"updateTokenExpiryInfo(address,(int64,address,int64))":{"params":{"expiryInfo":"The hedera token expiry info","token":"The token address"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"updateTokenInfo(address,(string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)))":{"params":{"token":"The token address","tokenInfo":"The hedera token info to update token with"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"updateTokenKeys(address,(uint256,(bool,address,bytes,bytes,address))[])":{"params":{"keys":"The token keys","token":"The token address"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"wipeTokenAccount(address,address,int64)":{"params":{"account":"The account address to revoke kyc","amount":"The number of tokens to wipe","token":"The token address"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"wipeTokenAccountNFT(address,address,int64[])":{"params":{"account":"The account address to revoke kyc","serialNumbers":"The serial numbers of token to wipe","token":"The token address"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address,address)":{"notice":"Returns the amount which spender is still allowed to withdraw from owner. Only Applicable to Fungible Tokens"},"approve(address,address,uint256)":{"notice":"Allows spender to withdraw from your account multiple times, up to the value amount. If this function is called again it overwrites the current allowance with value. Only Applicable to Fungible Tokens"},"approveNFT(address,address,uint256)":{"notice":"Allow or reaffirm the approved address to transfer an NFT the approved address does not own. Only Applicable to NFT Tokens"},"associateToken(address,address)":{"notice":"Single-token variant of associateTokens. Will be mapped to a single entry array call of associateTokens"},"associateTokens(address,address[])":{"notice":"Associates the provided account with the provided tokens. Must be signed by the provided Account's key or called from the accounts contract key If the provided account is not found, the transaction will resolve to INVALID_ACCOUNT_ID. If the provided account has been deleted, the transaction will resolve to ACCOUNT_DELETED. If any of the provided tokens is not found, the transaction will resolve to INVALID_TOKEN_REF. If any of the provided tokens has been deleted, the transaction will resolve to TOKEN_WAS_DELETED. If an association between the provided account and any of the tokens already exists, the transaction will resolve to TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT. If the provided account's associations count exceed the constraint of maximum token associations per account, the transaction will resolve to TOKENS_PER_ACCOUNT_LIMIT_EXCEEDED. On success, associations between the provided account and tokens are made and the account is ready to interact with the tokens."},"burnToken(address,int64,int64[])":{"notice":"Burns an amount of the token from the defined treasury account"},"createFungibleToken((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)),int64,int32)":{"notice":"Creates a Fungible Token with the specified properties"},"createFungibleTokenWithCustomFees((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)),int64,int32,(int64,address,bool,bool,address)[],(int64,int64,int64,int64,bool,address)[])":{"notice":"Creates a Fungible Token with the specified properties"},"createNonFungibleToken((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)))":{"notice":"Creates an Non Fungible Unique Token with the specified properties"},"createNonFungibleTokenWithCustomFees((string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)),(int64,address,bool,bool,address)[],(int64,int64,int64,address,bool,address)[])":{"notice":"Creates an Non Fungible Unique Token with the specified properties"},"cryptoTransfer(((address,int64,bool)[]),(address,(address,int64,bool)[],(address,address,int64,bool)[])[])":{"notice":"Performs transfers among combinations of tokens and hbars"},"deleteToken(address)":{"notice":"Operation to delete token"},"dissociateToken(address,address)":{"notice":"Single-token variant of dissociateTokens. Will be mapped to a single entry array call of dissociateTokens"},"dissociateTokens(address,address[])":{"notice":"Dissociates the provided account with the provided tokens. Must be signed by the provided Account's key. If the provided account is not found, the transaction will resolve to INVALID_ACCOUNT_ID. If the provided account has been deleted, the transaction will resolve to ACCOUNT_DELETED. If any of the provided tokens is not found, the transaction will resolve to INVALID_TOKEN_REF. If any of the provided tokens has been deleted, the transaction will resolve to TOKEN_WAS_DELETED. If an association between the provided account and any of the tokens does not exist, the transaction will resolve to TOKEN_NOT_ASSOCIATED_TO_ACCOUNT. If a token has not been deleted and has not expired, and the user has a nonzero balance, the transaction will resolve to TRANSACTION_REQUIRES_ZERO_TOKEN_BALANCES. If a fungible token has expired, the user can disassociate even if their token balance is not zero. If a non fungible token has expired, the user can not disassociate if their token balance is not zero. The transaction will resolve to TRANSACTION_REQUIRED_ZERO_TOKEN_BALANCES. On success, associations between the provided account and tokens are removed."},"freezeToken(address,address)":{"notice":"Operation to freeze token account"},"getApproved(address,uint256)":{"notice":"Get the approved address for a single NFT Only Applicable to NFT Tokens"},"getFungibleTokenInfo(address)":{"notice":"Query fungible token info"},"getNonFungibleTokenInfo(address,int64)":{"notice":"Query non fungible token info"},"getTokenCustomFees(address)":{"notice":"Query token custom fees"},"getTokenDefaultFreezeStatus(address)":{"notice":"Query token default freeze status"},"getTokenDefaultKycStatus(address)":{"notice":"Query token default kyc status"},"getTokenExpiryInfo(address)":{"notice":"Query token expiry info"},"getTokenInfo(address)":{"notice":"Query token info"},"getTokenKey(address,uint256)":{"notice":"Query token KeyValue"},"getTokenType(address)":{"notice":"Query to return the token type for a given address"},"grantTokenKyc(address,address)":{"notice":"Operation to grant kyc to token account"},"isApprovedForAll(address,address,address)":{"notice":"Query if an address is an authorized operator for another address Only Applicable to NFT Tokens"},"isFrozen(address,address)":{"notice":"Query if token account is frozen"},"isKyc(address,address)":{"notice":"Query if token account has kyc granted"},"isToken(address)":{"notice":"Query if valid token found for the given address"},"mintToken(address,int64,bytes[])":{"notice":"Mints an amount of the token to the defined treasury account"},"pauseToken(address)":{"notice":"Operation to pause token"},"redirectForToken(address,bytes)":{"notice":"Initiates a Redirect For Token"},"revokeTokenKyc(address,address)":{"notice":"Operation to revoke kyc to token account"},"setApprovalForAll(address,address,bool)":{"notice":"Enable or disable approval for a third party (\"operator\") to manage all of `msg.sender`'s assets"},"transferFrom(address,address,address,uint256)":{"notice":"Only applicable to fungible tokens"},"transferFromNFT(address,address,address,uint256)":{"notice":"Transfers `serialNumber` of `token` from `from` to `to` using the allowance mechanism. Only applicable to NFT tokens"},"transferNFT(address,address,address,int64)":{"notice":"Transfers tokens where the calling account/contract is implicitly the first entry in the token transfer list, where the amount is the value needed to zero balance the transfers. Regular signing rules apply for sending (positive amount) or receiving (negative amount)"},"transferNFTs(address,address[],address[],int64[])":{"notice":"Initiates a Non-Fungable Token Transfer"},"transferToken(address,address,address,int64)":{"notice":"Transfers tokens where the calling account/contract is implicitly the first entry in the token transfer list, where the amount is the value needed to zero balance the transfers. Regular signing rules apply for sending (positive amount) or receiving (negative amount)"},"transferTokens(address,address[],int64[])":{"notice":"Initiates a Fungible Token Transfer"},"unfreezeToken(address,address)":{"notice":"Operation to unfreeze token account"},"unpauseToken(address)":{"notice":"Operation to unpause token"},"updateTokenExpiryInfo(address,(int64,address,int64))":{"notice":"Operation to update token expiry info"},"updateTokenInfo(address,(string,string,address,string,bool,int64,bool,(uint256,(bool,address,bytes,bytes,address))[],(int64,address,int64)))":{"notice":"Operation to update token info"},"updateTokenKeys(address,(uint256,(bool,address,bytes,bytes,address))[])":{"notice":"Operation to update token expiry info"},"wipeTokenAccount(address,address,int64)":{"notice":"Operation to wipe fungible tokens from account"},"wipeTokenAccountNFT(address,address,int64[])":{"notice":"Operation to wipe non fungible tokens from account"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/common/hedera/IHederaTokenService.sol":"IHederaTokenService"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/hedera/IHederaTokenService.sol":{"keccak256":"0xd0606986a26e82ecd4c2cadd498a74fe9fc2061bd65f4e90592d51962ffbd245","urls":["bzz-raw://786b1c29918038c33f7154c7df73d1a668482965ad0dfe920309533314050b6d","dweb:/ipfs/QmV2Lvy9wvWBxXfSz2tPimZf5xEsDwsWqqujyY2a75i7Te"],"license":"Apache-2.0"}},"version":1},"id":8} \ No newline at end of file diff --git a/out/interfaces/IERC20.sol/IERC20.json b/out/interfaces/IERC20.sol/IERC20.json new file mode 100644 index 0000000..c173d32 --- /dev/null +++ b/out/interfaces/IERC20.sol/IERC20.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"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\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"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.This includes the optional name, symbol, and decimals metadata.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set, where `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`\"},\"approve(address,uint256)\":{\"notice\":\"Sets `amount` as the allowance of `spender` over the caller's tokens.\"},\"balanceOf(address)\":{\"notice\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"notice\":\"Returns the decimals places of the token.\"},\"name()\":{\"notice\":\"Returns the name of the token.\"},\"symbol()\":{\"notice\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"notice\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"notice\":\"Moves `amount` tokens from the caller's account to `to`.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.10+commit.fc410830"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729"}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`"},"approve(address,uint256)":{"notice":"Sets `amount` as the allowance of `spender` over the caller's tokens."},"balanceOf(address)":{"notice":"Returns the amount of tokens owned by `account`."},"decimals()":{"notice":"Returns the decimals places of the token."},"name()":{"notice":"Returns the name of the token."},"symbol()":{"notice":"Returns the symbol of the token."},"totalSupply()":{"notice":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"notice":"Moves `amount` tokens from the caller's account to `to`."},"transferFrom(address,address,uint256)":{"notice":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance."}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC20.sol":"IERC20"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"}},"version":1},"id":17} \ No newline at end of file diff --git a/out/introspection/IERC165.sol/IERC165.json b/out/introspection/IERC165.sol/IERC165.json new file mode 100644 index 0000000..2944447 --- /dev/null +++ b/out/introspection/IERC165.sol/IERC165.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":"IERC165"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":159} \ No newline at end of file diff --git a/out/mocks/MockERC721.sol/MockERC721.json b/out/mocks/MockERC721.sol/MockERC721.json new file mode 100644 index 0000000..1fbe3fe --- /dev/null +++ b/out/mocks/MockERC721.sol/MockERC721.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_operator","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"_from","type":"address","indexed":true,"internalType":"address"},{"name":"_to","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610f1d806100206000396000f3fe6080604052600436106100dd5760003560e01c80636352211e1161007f578063a22cb46511610059578063a22cb46514610245578063b88d4fde14610265578063c87b56dd14610278578063e985e9c51461029957600080fd5b80636352211e146101e257806370a082311461020257806395d89b411461023057600080fd5b8063095ea7b3116100bb578063095ea7b31461018757806323b872dd1461019c57806342842e0e146101af5780634cd88b76146101c257600080fd5b806301ffc9a7146100e257806306fdde0314610117578063081812fc14610139575b600080fd5b3480156100ee57600080fd5b506101026100fd366004610ada565b6102e2565b60405190151581526020015b60405180910390f35b34801561012357600080fd5b5061012c610334565b60405161010e9190610b4b565b34801561014557600080fd5b5061016f610154366004610b5e565b6000908152600460205260409020546001600160a01b031690565b6040516001600160a01b03909116815260200161010e565b61019a610195366004610b8e565b6103c6565b005b61019a6101aa366004610bb8565b6104ad565b61019a6101bd366004610bb8565b6106a6565b3480156101ce57600080fd5b5061019a6101dd366004610ca0565b610795565b3480156101ee57600080fd5b5061016f6101fd366004610b5e565b610817565b34801561020e57600080fd5b5061022261021d366004610d04565b61086e565b60405190815260200161010e565b34801561023c57600080fd5b5061012c6108d1565b34801561025157600080fd5b5061019a610260366004610d1f565b6108e0565b61019a610273366004610d5b565b61094c565b34801561028457600080fd5b5061012c610293366004610b5e565b50606090565b3480156102a557600080fd5b506101026102b4366004610dd7565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006301ffc9a760e01b6001600160e01b03198316148061031357506380ac58cd60e01b6001600160e01b03198316145b8061032e5750635b5e139f60e01b6001600160e01b03198316145b92915050565b60606000805461034390610e0a565b80601f016020809104026020016040519081016040528092919081815260200182805461036f90610e0a565b80156103bc5780601f10610391576101008083540402835291602001916103bc565b820191906000526020600020905b81548152906001019060200180831161039f57829003601f168201915b5050505050905090565b6000818152600260205260409020546001600160a01b03163381148061040f57506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6104515760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064015b60405180910390fd5b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000818152600260205260409020546001600160a01b038481169116146105035760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b6044820152606401610448565b6001600160a01b03821661054d5760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b6044820152606401610448565b336001600160a01b038416148061058757506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b806105a857506000818152600460205260409020546001600160a01b031633145b6105e55760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610448565b6001600160a01b038316600090815260036020526040812080549161060983610e5b565b90915550506001600160a01b038216600090815260036020526040812080549161063283610e72565b9091555050600081815260026020908152604080832080546001600160a01b038088166001600160a01b031992831681179093556004909452828520805490911690559051849391928716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6106b18383836104ad565b813b15806107515750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610721573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107459190610e8d565b6001600160e01b031916145b6107905760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610448565b505050565b60065460ff16156107de5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b6044820152606401610448565b81516107f1906000906020850190610a28565b508051610805906001906020840190610a28565b50506006805460ff1916600117905550565b6000818152600260205260409020546001600160a01b0316806108695760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b6044820152606401610448565b919050565b60006001600160a01b0382166108b55760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610448565b506001600160a01b031660009081526003602052604090205490565b60606001805461034390610e0a565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6109578484846104ad565b823b15806109e35750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a0290610994903390899088908890600401610eaa565b6020604051808303816000875af11580156109b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d79190610e8d565b6001600160e01b031916145b610a225760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610448565b50505050565b828054610a3490610e0a565b90600052602060002090601f016020900481019282610a565760008555610a9c565b82601f10610a6f57805160ff1916838001178555610a9c565b82800160010185558215610a9c579182015b82811115610a9c578251825591602001919060010190610a81565b50610aa8929150610aac565b5090565b5b80821115610aa85760008155600101610aad565b6001600160e01b031981168114610ad757600080fd5b50565b600060208284031215610aec57600080fd5b8135610af781610ac1565b9392505050565b6000815180845260005b81811015610b2457602081850181015186830182015201610b08565b81811115610b36576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610af76020830184610afe565b600060208284031215610b7057600080fd5b5035919050565b80356001600160a01b038116811461086957600080fd5b60008060408385031215610ba157600080fd5b610baa83610b77565b946020939093013593505050565b600080600060608486031215610bcd57600080fd5b610bd684610b77565b9250610be460208501610b77565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115610c2557610c25610bf4565b604051601f8501601f19908116603f01168101908282118183101715610c4d57610c4d610bf4565b81604052809350858152868686011115610c6657600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112610c9157600080fd5b610af783833560208501610c0a565b60008060408385031215610cb357600080fd5b823567ffffffffffffffff80821115610ccb57600080fd5b610cd786838701610c80565b93506020850135915080821115610ced57600080fd5b50610cfa85828601610c80565b9150509250929050565b600060208284031215610d1657600080fd5b610af782610b77565b60008060408385031215610d3257600080fd5b610d3b83610b77565b915060208301358015158114610d5057600080fd5b809150509250929050565b60008060008060808587031215610d7157600080fd5b610d7a85610b77565b9350610d8860208601610b77565b925060408501359150606085013567ffffffffffffffff811115610dab57600080fd5b8501601f81018713610dbc57600080fd5b610dcb87823560208401610c0a565b91505092959194509250565b60008060408385031215610dea57600080fd5b610df383610b77565b9150610e0160208401610b77565b90509250929050565b600181811c90821680610e1e57607f821691505b60208210811415610e3f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600081610e6a57610e6a610e45565b506000190190565b6000600019821415610e8657610e86610e45565b5060010190565b600060208284031215610e9f57600080fd5b8151610af781610ac1565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610edd90830184610afe565b969550505050505056fea26469706673582212202a8d64313d39841579be6cff7d3c199c9c4f00847ba7ef47e4ab374e1748f69864736f6c634300080a0033","sourceMap":"403:7498:21:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100dd5760003560e01c80636352211e1161007f578063a22cb46511610059578063a22cb46514610245578063b88d4fde14610265578063c87b56dd14610278578063e985e9c51461029957600080fd5b80636352211e146101e257806370a082311461020257806395d89b411461023057600080fd5b8063095ea7b3116100bb578063095ea7b31461018757806323b872dd1461019c57806342842e0e146101af5780634cd88b76146101c257600080fd5b806301ffc9a7146100e257806306fdde0314610117578063081812fc14610139575b600080fd5b3480156100ee57600080fd5b506101026100fd366004610ada565b6102e2565b60405190151581526020015b60405180910390f35b34801561012357600080fd5b5061012c610334565b60405161010e9190610b4b565b34801561014557600080fd5b5061016f610154366004610b5e565b6000908152600460205260409020546001600160a01b031690565b6040516001600160a01b03909116815260200161010e565b61019a610195366004610b8e565b6103c6565b005b61019a6101aa366004610bb8565b6104ad565b61019a6101bd366004610bb8565b6106a6565b3480156101ce57600080fd5b5061019a6101dd366004610ca0565b610795565b3480156101ee57600080fd5b5061016f6101fd366004610b5e565b610817565b34801561020e57600080fd5b5061022261021d366004610d04565b61086e565b60405190815260200161010e565b34801561023c57600080fd5b5061012c6108d1565b34801561025157600080fd5b5061019a610260366004610d1f565b6108e0565b61019a610273366004610d5b565b61094c565b34801561028457600080fd5b5061012c610293366004610b5e565b50606090565b3480156102a557600080fd5b506101026102b4366004610dd7565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006301ffc9a760e01b6001600160e01b03198316148061031357506380ac58cd60e01b6001600160e01b03198316145b8061032e5750635b5e139f60e01b6001600160e01b03198316145b92915050565b60606000805461034390610e0a565b80601f016020809104026020016040519081016040528092919081815260200182805461036f90610e0a565b80156103bc5780601f10610391576101008083540402835291602001916103bc565b820191906000526020600020905b81548152906001019060200180831161039f57829003601f168201915b5050505050905090565b6000818152600260205260409020546001600160a01b03163381148061040f57506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6104515760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064015b60405180910390fd5b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000818152600260205260409020546001600160a01b038481169116146105035760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b6044820152606401610448565b6001600160a01b03821661054d5760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b6044820152606401610448565b336001600160a01b038416148061058757506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b806105a857506000818152600460205260409020546001600160a01b031633145b6105e55760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610448565b6001600160a01b038316600090815260036020526040812080549161060983610e5b565b90915550506001600160a01b038216600090815260036020526040812080549161063283610e72565b9091555050600081815260026020908152604080832080546001600160a01b038088166001600160a01b031992831681179093556004909452828520805490911690559051849391928716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6106b18383836104ad565b813b15806107515750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610721573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107459190610e8d565b6001600160e01b031916145b6107905760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610448565b505050565b60065460ff16156107de5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b6044820152606401610448565b81516107f1906000906020850190610a28565b508051610805906001906020840190610a28565b50506006805460ff1916600117905550565b6000818152600260205260409020546001600160a01b0316806108695760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b6044820152606401610448565b919050565b60006001600160a01b0382166108b55760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610448565b506001600160a01b031660009081526003602052604090205490565b60606001805461034390610e0a565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6109578484846104ad565b823b15806109e35750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a0290610994903390899088908890600401610eaa565b6020604051808303816000875af11580156109b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d79190610e8d565b6001600160e01b031916145b610a225760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610448565b50505050565b828054610a3490610e0a565b90600052602060002090601f016020900481019282610a565760008555610a9c565b82601f10610a6f57805160ff1916838001178555610a9c565b82800160010185558215610a9c579182015b82811115610a9c578251825591602001919060010190610a81565b50610aa8929150610aac565b5090565b5b80821115610aa85760008155600101610aad565b6001600160e01b031981168114610ad757600080fd5b50565b600060208284031215610aec57600080fd5b8135610af781610ac1565b9392505050565b6000815180845260005b81811015610b2457602081850181015186830182015201610b08565b81811115610b36576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610af76020830184610afe565b600060208284031215610b7057600080fd5b5035919050565b80356001600160a01b038116811461086957600080fd5b60008060408385031215610ba157600080fd5b610baa83610b77565b946020939093013593505050565b600080600060608486031215610bcd57600080fd5b610bd684610b77565b9250610be460208501610b77565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115610c2557610c25610bf4565b604051601f8501601f19908116603f01168101908282118183101715610c4d57610c4d610bf4565b81604052809350858152868686011115610c6657600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112610c9157600080fd5b610af783833560208501610c0a565b60008060408385031215610cb357600080fd5b823567ffffffffffffffff80821115610ccb57600080fd5b610cd786838701610c80565b93506020850135915080821115610ced57600080fd5b50610cfa85828601610c80565b9150509250929050565b600060208284031215610d1657600080fd5b610af782610b77565b60008060408385031215610d3257600080fd5b610d3b83610b77565b915060208301358015158114610d5057600080fd5b809150509250929050565b60008060008060808587031215610d7157600080fd5b610d7a85610b77565b9350610d8860208601610b77565b925060408501359150606085013567ffffffffffffffff811115610dab57600080fd5b8501601f81018713610dbc57600080fd5b610dcb87823560208401610c0a565b91505092959194509250565b60008060408385031215610dea57600080fd5b610df383610b77565b9150610e0160208401610b77565b90509250929050565b600181811c90821680610e1e57607f821691505b60208210811415610e3f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600081610e6a57610e6a610e45565b506000190190565b6000600019821415610e8657610e86610e45565b5060010190565b600060208284031215610e9f57600080fd5b8151610af781610ac1565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610edd90830184610afe565b969550505050505056fea26469706673582212202a8d64313d39841579be6cff7d3c199c9c4f00847ba7ef47e4ab374e1748f69864736f6c634300080a0033","sourceMap":"403:7498:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5376:332;;;;;;;;;;-1:-1:-1;5376:332:21;;;;;:::i;:::-;;:::i;:::-;;;565:14:24;;558:22;540:41;;528:2;513:18;5376:332:21;;;;;;;;693:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1949:120::-;;;;;;;;;;-1:-1:-1;1949:120:21;;;;;:::i;:::-;2020:7;2046:16;;;:12;:16;;;;;;-1:-1:-1;;;;;2046:16:21;;1949:120;;;;-1:-1:-1;;;;;1643:32:24;;;1625:51;;1613:2;1598:18;1949:120:21;1479:203:24;3128:301:21;;;;;;:::i;:::-;;:::i;:::-;;3654:693;;;;;;:::i;:::-;;:::i;4353:386::-;;;;;;:::i;:::-;;:::i;2728:212::-;;;;;;;;;;-1:-1:-1;2728:212:21;;;;;:::i;:::-;;:::i;1280:158::-;;;;;;;;;;-1:-1:-1;1280:158:21;;;;;:::i;:::-;;:::i;1444:177::-;;;;;;;;;;-1:-1:-1;1444:177:21;;;;;:::i;:::-;;:::i;:::-;;;4338:25:24;;;4326:2;4311:18;1444:177:21;4192::24;791:96:21;;;;;;;;;;;;;:::i;3435:213::-;;;;;;;;;;-1:-1:-1;3435:213:21;;;;;:::i;:::-;;:::i;4745:443::-;;;;;;:::i;:::-;;:::i;893:85::-;;;;;;;;;;-1:-1:-1;893:85:21;;;;;:::i;:::-;-1:-1:-1;961:13:21;;893:85;2075:161;;;;;;;;;;-1:-1:-1;2075:161:21;;;;;:::i;:::-;-1:-1:-1;;;;;2195:24:21;;;2172:4;2195:24;;;:17;:24;;;;;;;;:34;;;;;;;;;;;;;;;2075:161;5376:332;5461:4;-1:-1:-1;;;;;;;;;5484:25:21;;;;:100;;-1:-1:-1;;;;;;;;;;5559:25:21;;;5484:100;:175;;;-1:-1:-1;;;;;;;;;;5634:25:21;;;5484:175;5477:182;5376:332;-1:-1:-1;;5376:332:21:o;693:92::-;741:13;773:5;766:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;693:92;:::o;3128:301::-;3216:13;3232:12;;;:8;:12;;;;;;-1:-1:-1;;;;;3232:12:21;3263:10;:19;;;:59;;-1:-1:-1;;;;;;3286:24:21;;;;;;:17;:24;;;;;;;;3311:10;3286:36;;;;;;;;;;3263:59;3255:86;;;;-1:-1:-1;;;3255:86:21;;6250:2:24;3255:86:21;;;6232:21:24;6289:2;6269:18;;;6262:30;-1:-1:-1;;;6308:18:24;;;6301:44;6362:18;;3255:86:21;;;;;;;;;3352:16;;;;:12;:16;;;;;;:26;;-1:-1:-1;;;;;;3352:26:21;-1:-1:-1;;;;;3352:26:21;;;;;;;;;3394:28;;3352:16;;3394:28;;;;;;;3206:223;3128:301;;:::o;3654:693::-;3772:12;;;;:8;:12;;;;;;-1:-1:-1;;;;;3764:20:21;;;3772:12;;3764:20;3756:43;;;;-1:-1:-1;;;3756:43:21;;6593:2:24;3756:43:21;;;6575:21:24;6632:2;6612:18;;;6605:30;-1:-1:-1;;;6651:18:24;;;6644:40;6701:18;;3756:43:21;6391:334:24;3756:43:21;-1:-1:-1;;;;;3818:16:21;;3810:46;;;;-1:-1:-1;;;3810:46:21;;6932:2:24;3810:46:21;;;6914:21:24;6971:2;6951:18;;;6944:30;-1:-1:-1;;;6990:18:24;;;6983:47;7047:18;;3810:46:21;6730:341:24;3810:46:21;3888:10;-1:-1:-1;;;;;3888:18:21;;;;:57;;-1:-1:-1;;;;;;3910:23:21;;;;;;:17;:23;;;;;;;;3934:10;3910:35;;;;;;;;;;3888:57;:91;;;-1:-1:-1;3963:16:21;;;;:12;:16;;;;;;-1:-1:-1;;;;;3963:16:21;3949:10;:30;3888:91;3867:152;;;;-1:-1:-1;;;3867:152:21;;6250:2:24;3867:152:21;;;6232:21:24;6289:2;6269:18;;;6262:30;-1:-1:-1;;;6308:18:24;;;6301:44;6362:18;;3867:152:21;6048:338:24;3867:152:21;-1:-1:-1;;;;;4195:16:21;;;;;;:10;:16;;;;;:18;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;4224:14:21;;;;;;:10;:14;;;;;:16;;;;;;:::i;:::-;;;;-1:-1:-1;;4251:12:21;;;;:8;:12;;;;;;;;:17;;-1:-1:-1;;;;;4251:17:21;;;-1:-1:-1;;;;;;4251:17:21;;;;;;;;4286:12;:16;;;;;;4279:23;;;;;;;4318:22;;4260:2;;4251:17;;4318:22;;;;;;3654:693;;;:::o;4353:386::-;4459:26;4472:4;4478:2;4482;4459:12;:26::i;:::-;7833:18;;7878:14;;4517:173;;-1:-1:-1;4553:67:21;;-1:-1:-1;;;4553:67:21;;;4595:10;4553:67;;;7794:34:24;-1:-1:-1;;;;;7864:15:24;;;7844:18;;;7837:43;7896:18;;;7889:34;;;7959:3;7939:18;;;7932:31;-1:-1:-1;7979:19:24;;;7972:30;4644:46:21;;4553:41;;;;4644:46;;8019:19:24;;4553:67:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;4553:137:21;;4517:173;4496:236;;;;-1:-1:-1;;;4496:236:21;;8505:2:24;4496:236:21;;;8487:21:24;8544:2;8524:18;;;8517:30;-1:-1:-1;;;8563:18:24;;;8556:46;8619:18;;4496:236:21;8303:340:24;4496:236:21;4353:386;;;:::o;2728:212::-;2818:11;;;;2817:12;2809:44;;;;-1:-1:-1;;;2809:44:21;;8850:2:24;2809:44:21;;;8832:21:24;8889:2;8869:18;;;8862:30;-1:-1:-1;;;8908:18:24;;;8901:49;8967:18;;2809:44:21;8648:343:24;2809:44:21;2864:13;;;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;2887:17:21;;;;:7;;:17;;;;;:::i;:::-;-1:-1:-1;;2915:11:21;:18;;-1:-1:-1;;2915:18:21;2929:4;2915:18;;;-1:-1:-1;2728:212:21:o;1280:158::-;1347:13;1389:12;;;:8;:12;;;;;;-1:-1:-1;;;;;1389:12:21;1380:36;1372:59;;;;-1:-1:-1;;;1372:59:21;;9198:2:24;1372:59:21;;;9180:21:24;9237:2;9217:18;;;9210:30;-1:-1:-1;;;9256:18:24;;;9249:40;9306:18;;1372:59:21;8996:334:24;1372:59:21;1280:158;;;:::o;1444:177::-;1516:7;-1:-1:-1;;;;;1543:19:21;;1535:44;;;;-1:-1:-1;;;1535:44:21;;9537:2:24;1535:44:21;;;9519:21:24;9576:2;9556:18;;;9549:30;-1:-1:-1;;;9595:18:24;;;9588:42;9647:18;;1535:44:21;9335:336:24;1535:44:21;-1:-1:-1;;;;;;1597:17:21;;;;;:10;:17;;;;;;;1444:177::o;791:96::-;841:13;873:7;866:14;;;;;:::i;3435:213::-;3547:10;3529:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;3529:39:21;;;;;;;;;;;;:50;;-1:-1:-1;;3529:50:21;;;;;;;;;;3595:46;;540:41:24;;;3529:39:21;;3547:10;3595:46;;513:18:24;3595:46:21;;;;;;;3435:213;;:::o;4745:443::-;4906:26;4919:4;4925:2;4929;4906:12;:26::i;:::-;7833:18;;7878:14;;4964:175;;-1:-1:-1;5000:69:21;;-1:-1:-1;;;5000:69:21;;;5093:46;-1:-1:-1;;;;;5000:41:21;;;5093:46;;5000:69;;5042:10;;5054:4;;5060:2;;5064:4;;5000:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;5000:139:21;;4964:175;4943:238;;;;-1:-1:-1;;;4943:238:21;;8505:2:24;4943:238:21;;;8487:21:24;8544:2;8524:18;;;8517:30;-1:-1:-1;;;8563:18:24;;;8556:46;8619:18;;4943:238:21;8303:340:24;4943:238:21;4745:443;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:131:24;-1:-1:-1;;;;;;88:32:24;;78:43;;68:71;;135:1;132;125:12;68:71;14:131;:::o;150:245::-;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;:::-;384:5;150:245;-1:-1:-1;;;150:245:24:o;592:472::-;634:3;672:5;666:12;699:6;694:3;687:19;724:1;734:162;748:6;745:1;742:13;734:162;;;810:4;866:13;;;862:22;;856:29;838:11;;;834:20;;827:59;763:12;734:162;;;914:6;911:1;908:13;905:87;;;980:1;973:4;964:6;959:3;955:16;951:27;944:38;905:87;-1:-1:-1;1046:2:24;1025:15;-1:-1:-1;;1021:29:24;1012:39;;;;1053:4;1008:50;;592:472;-1:-1:-1;;592:472:24:o;1069:220::-;1218:2;1207:9;1200:21;1181:4;1238:45;1279:2;1268:9;1264:18;1256:6;1238:45;:::i;1294:180::-;1353:6;1406:2;1394:9;1385:7;1381:23;1377:32;1374:52;;;1422:1;1419;1412:12;1374:52;-1:-1:-1;1445:23:24;;1294:180;-1:-1:-1;1294:180:24:o;1687:173::-;1755:20;;-1:-1:-1;;;;;1804:31:24;;1794:42;;1784:70;;1850:1;1847;1840:12;1865:254;1933:6;1941;1994:2;1982:9;1973:7;1969:23;1965:32;1962:52;;;2010:1;2007;2000:12;1962:52;2033:29;2052:9;2033:29;:::i;:::-;2023:39;2109:2;2094:18;;;;2081:32;;-1:-1:-1;;;1865:254:24:o;2124:328::-;2201:6;2209;2217;2270:2;2258:9;2249:7;2245:23;2241:32;2238:52;;;2286:1;2283;2276:12;2238:52;2309:29;2328:9;2309:29;:::i;:::-;2299:39;;2357:38;2391:2;2380:9;2376:18;2357:38;:::i;:::-;2347:48;;2442:2;2431:9;2427:18;2414:32;2404:42;;2124:328;;;;;:::o;2457:127::-;2518:10;2513:3;2509:20;2506:1;2499:31;2549:4;2546:1;2539:15;2573:4;2570:1;2563:15;2589:632;2654:5;2684:18;2725:2;2717:6;2714:14;2711:40;;;2731:18;;:::i;:::-;2806:2;2800:9;2774:2;2860:15;;-1:-1:-1;;2856:24:24;;;2882:2;2852:33;2848:42;2836:55;;;2906:18;;;2926:22;;;2903:46;2900:72;;;2952:18;;:::i;:::-;2992:10;2988:2;2981:22;3021:6;3012:15;;3051:6;3043;3036:22;3091:3;3082:6;3077:3;3073:16;3070:25;3067:45;;;3108:1;3105;3098:12;3067:45;3158:6;3153:3;3146:4;3138:6;3134:17;3121:44;3213:1;3206:4;3197:6;3189;3185:19;3181:30;3174:41;;;;2589:632;;;;;:::o;3226:222::-;3269:5;3322:3;3315:4;3307:6;3303:17;3299:27;3289:55;;3340:1;3337;3330:12;3289:55;3362:80;3438:3;3429:6;3416:20;3409:4;3401:6;3397:17;3362:80;:::i;3453:543::-;3541:6;3549;3602:2;3590:9;3581:7;3577:23;3573:32;3570:52;;;3618:1;3615;3608:12;3570:52;3658:9;3645:23;3687:18;3728:2;3720:6;3717:14;3714:34;;;3744:1;3741;3734:12;3714:34;3767:50;3809:7;3800:6;3789:9;3785:22;3767:50;:::i;:::-;3757:60;;3870:2;3859:9;3855:18;3842:32;3826:48;;3899:2;3889:8;3886:16;3883:36;;;3915:1;3912;3905:12;3883:36;;3938:52;3982:7;3971:8;3960:9;3956:24;3938:52;:::i;:::-;3928:62;;;3453:543;;;;;:::o;4001:186::-;4060:6;4113:2;4101:9;4092:7;4088:23;4084:32;4081:52;;;4129:1;4126;4119:12;4081:52;4152:29;4171:9;4152:29;:::i;4374:347::-;4439:6;4447;4500:2;4488:9;4479:7;4475:23;4471:32;4468:52;;;4516:1;4513;4506:12;4468:52;4539:29;4558:9;4539:29;:::i;:::-;4529:39;;4618:2;4607:9;4603:18;4590:32;4665:5;4658:13;4651:21;4644:5;4641:32;4631:60;;4687:1;4684;4677:12;4631:60;4710:5;4700:15;;;4374:347;;;;;:::o;4726:667::-;4821:6;4829;4837;4845;4898:3;4886:9;4877:7;4873:23;4869:33;4866:53;;;4915:1;4912;4905:12;4866:53;4938:29;4957:9;4938:29;:::i;:::-;4928:39;;4986:38;5020:2;5009:9;5005:18;4986:38;:::i;:::-;4976:48;;5071:2;5060:9;5056:18;5043:32;5033:42;;5126:2;5115:9;5111:18;5098:32;5153:18;5145:6;5142:30;5139:50;;;5185:1;5182;5175:12;5139:50;5208:22;;5261:4;5253:13;;5249:27;-1:-1:-1;5239:55:24;;5290:1;5287;5280:12;5239:55;5313:74;5379:7;5374:2;5361:16;5356:2;5352;5348:11;5313:74;:::i;:::-;5303:84;;;4726:667;;;;;;;:::o;5398:260::-;5466:6;5474;5527:2;5515:9;5506:7;5502:23;5498:32;5495:52;;;5543:1;5540;5533:12;5495:52;5566:29;5585:9;5566:29;:::i;:::-;5556:39;;5614:38;5648:2;5637:9;5633:18;5614:38;:::i;:::-;5604:48;;5398:260;;;;;:::o;5663:380::-;5742:1;5738:12;;;;5785;;;5806:61;;5860:4;5852:6;5848:17;5838:27;;5806:61;5913:2;5905:6;5902:14;5882:18;5879:38;5876:161;;;5959:10;5954:3;5950:20;5947:1;5940:31;5994:4;5991:1;5984:15;6022:4;6019:1;6012:15;5876:161;;5663:380;;;:::o;7076:127::-;7137:10;7132:3;7128:20;7125:1;7118:31;7168:4;7165:1;7158:15;7192:4;7189:1;7182:15;7208:136;7247:3;7275:5;7265:39;;7284:18;;:::i;:::-;-1:-1:-1;;;7320:18:24;;7208:136::o;7349:135::-;7388:3;-1:-1:-1;;7409:17:24;;7406:43;;;7429:18;;:::i;:::-;-1:-1:-1;7476:1:24;7465:13;;7349:135::o;8049:249::-;8118:6;8171:2;8159:9;8150:7;8146:23;8142:32;8139:52;;;8187:1;8184;8177:12;8139:52;8219:9;8213:16;8238:30;8262:5;8238:30;:::i;9676:489::-;-1:-1:-1;;;;;9945:15:24;;;9927:34;;9997:15;;9992:2;9977:18;;9970:43;10044:2;10029:18;;10022:34;;;10092:3;10087:2;10072:18;;10065:31;;;9870:4;;10113:46;;10139:19;;10131:6;10113:46;:::i;:::-;10105:54;9676:489;-1:-1:-1;;;;;;9676:489:24:o","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","initialize(string,string)":"4cd88b76","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC721.sol\",\"kind\":\"dev\",\"methods\":{\"initialize(string,string)\":{\"details\":\"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once.\"}},\"stateVariables\":{\"initialized\":{\"details\":\"A bool to track whether the contract has been initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"name()\":{\"notice\":\"A descriptive name for a collection of NFTs in this contract\"},\"symbol()\":{\"notice\":\"An abbreviated name for NFTs in this contract\"}},\"notice\":\"This is a mock contract of the ERC721 standard for testing purposes only, it SHOULD NOT be used in production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/mocks/MockERC721.sol\":\"MockERC721\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87\",\"dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.10+commit.fc410830"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_approved","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_operator","type":"address","indexed":true},{"internalType":"bool","name":"_approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":true},{"internalType":"address","name":"_to","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"initialize(string,string)":{"details":"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once."}},"version":1},"userdoc":{"kind":"user","methods":{"name()":{"notice":"A descriptive name for a collection of NFTs in this contract"},"symbol()":{"notice":"An abbreviated name for NFTs in this contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/mocks/MockERC721.sol":"MockERC721"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9","urls":["bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87","dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv"],"license":"MIT"}},"version":1},"id":21} \ No newline at end of file diff --git a/out/safe-HTS/HederaResponseCodes.sol/HederaResponseCodes.json b/out/safe-HTS/HederaResponseCodes.sol/HederaResponseCodes.json new file mode 100644 index 0000000..1d569a7 --- /dev/null +++ b/out/safe-HTS/HederaResponseCodes.sol/HederaResponseCodes.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220610f32f9a888271f998534d23fba252b6437c9de41740fabfef2605373cd1dbe64736f6c63430008180033","sourceMap":"72:21708:10:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;72:21708:10;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220610f32f9a888271f998534d23fba252b6437c9de41740fabfef2605373cd1dbe64736f6c63430008180033","sourceMap":"72:21708:10:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/safe-HTS/HederaResponseCodes.sol\":\"HederaResponseCodes\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/safe-HTS/HederaResponseCodes.sol\":{\"keccak256\":\"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca\",\"dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/common/safe-HTS/HederaResponseCodes.sol":"HederaResponseCodes"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/safe-HTS/HederaResponseCodes.sol":{"keccak256":"0x76d79ca7adc200fe4075329120512c0844b3ba0a3e647888df859e6c814bb324","urls":["bzz-raw://3c429b54e57296c48b78ef8def39db15bc0dd22b724fcacbd4857c029e8663ca","dweb:/ipfs/QmPGoocDNF7yJ7s2Pb92gCXDBBnqXDwwpDQKhV4miXFJ3G"],"license":"Apache-2.0"}},"version":1},"id":10} \ No newline at end of file diff --git a/out/safe-HTS/IHederaTokenService.sol/IHederaTokenService.json b/out/safe-HTS/IHederaTokenService.sol/IHederaTokenService.json new file mode 100644 index 0000000..677c0df --- /dev/null +++ b/out/safe-HTS/IHederaTokenService.sol/IHederaTokenService.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"allowance","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"approveNFT","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"approved","type":"address","internalType":"address"},{"name":"serialNumber","type":"int64","internalType":"int64"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"associateToken","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"associateTokens","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"tokens","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"burnToken","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint64","internalType":"uint64"},{"name":"serialNumbers","type":"int64[]","internalType":"int64[]"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"newTotalSupply","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"createFungibleToken","inputs":[{"name":"token","type":"tuple","internalType":"struct IHederaTokenService.HederaToken","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"treasury","type":"address","internalType":"address"},{"name":"memo","type":"string","internalType":"string"},{"name":"tokenSupplyType","type":"bool","internalType":"bool"},{"name":"maxSupply","type":"uint32","internalType":"uint32"},{"name":"freezeDefault","type":"bool","internalType":"bool"},{"name":"tokenKeys","type":"tuple[]","internalType":"struct IHederaTokenService.TokenKey[]","components":[{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}]},{"name":"expiry","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"uint32","internalType":"uint32"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"uint32","internalType":"uint32"}]}]},{"name":"initialTotalSupply","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"tokenAddress","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"createFungibleTokenWithCustomFees","inputs":[{"name":"token","type":"tuple","internalType":"struct IHederaTokenService.HederaToken","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"treasury","type":"address","internalType":"address"},{"name":"memo","type":"string","internalType":"string"},{"name":"tokenSupplyType","type":"bool","internalType":"bool"},{"name":"maxSupply","type":"uint32","internalType":"uint32"},{"name":"freezeDefault","type":"bool","internalType":"bool"},{"name":"tokenKeys","type":"tuple[]","internalType":"struct IHederaTokenService.TokenKey[]","components":[{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}]},{"name":"expiry","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"uint32","internalType":"uint32"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"uint32","internalType":"uint32"}]}]},{"name":"initialTotalSupply","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"fixedFees","type":"tuple[]","internalType":"struct IHederaTokenService.FixedFee[]","components":[{"name":"amount","type":"uint32","internalType":"uint32"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"useCurrentTokenForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"fractionalFees","type":"tuple[]","internalType":"struct IHederaTokenService.FractionalFee[]","components":[{"name":"numerator","type":"uint32","internalType":"uint32"},{"name":"denominator","type":"uint32","internalType":"uint32"},{"name":"minimumAmount","type":"uint32","internalType":"uint32"},{"name":"maximumAmount","type":"uint32","internalType":"uint32"},{"name":"netOfTransfers","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"tokenAddress","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"createNonFungibleToken","inputs":[{"name":"token","type":"tuple","internalType":"struct IHederaTokenService.HederaToken","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"treasury","type":"address","internalType":"address"},{"name":"memo","type":"string","internalType":"string"},{"name":"tokenSupplyType","type":"bool","internalType":"bool"},{"name":"maxSupply","type":"uint32","internalType":"uint32"},{"name":"freezeDefault","type":"bool","internalType":"bool"},{"name":"tokenKeys","type":"tuple[]","internalType":"struct IHederaTokenService.TokenKey[]","components":[{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}]},{"name":"expiry","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"uint32","internalType":"uint32"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"uint32","internalType":"uint32"}]}]}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"tokenAddress","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"createNonFungibleTokenWithCustomFees","inputs":[{"name":"token","type":"tuple","internalType":"struct IHederaTokenService.HederaToken","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"treasury","type":"address","internalType":"address"},{"name":"memo","type":"string","internalType":"string"},{"name":"tokenSupplyType","type":"bool","internalType":"bool"},{"name":"maxSupply","type":"uint32","internalType":"uint32"},{"name":"freezeDefault","type":"bool","internalType":"bool"},{"name":"tokenKeys","type":"tuple[]","internalType":"struct IHederaTokenService.TokenKey[]","components":[{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}]},{"name":"expiry","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"uint32","internalType":"uint32"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"uint32","internalType":"uint32"}]}]},{"name":"fixedFees","type":"tuple[]","internalType":"struct IHederaTokenService.FixedFee[]","components":[{"name":"amount","type":"uint32","internalType":"uint32"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"useCurrentTokenForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"royaltyFees","type":"tuple[]","internalType":"struct IHederaTokenService.RoyaltyFee[]","components":[{"name":"numerator","type":"uint32","internalType":"uint32"},{"name":"denominator","type":"uint32","internalType":"uint32"},{"name":"amount","type":"uint32","internalType":"uint32"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"tokenAddress","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"cryptoTransfer","inputs":[{"name":"tokenTransfers","type":"tuple[]","internalType":"struct IHederaTokenService.TokenTransferList[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"transfers","type":"tuple[]","internalType":"struct IHederaTokenService.AccountAmount[]","components":[{"name":"accountID","type":"address","internalType":"address"},{"name":"amount","type":"int64","internalType":"int64"}]},{"name":"nftTransfers","type":"tuple[]","internalType":"struct IHederaTokenService.NftTransfer[]","components":[{"name":"senderAccountID","type":"address","internalType":"address"},{"name":"receiverAccountID","type":"address","internalType":"address"},{"name":"serialNumber","type":"int64","internalType":"int64"}]}]}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"deleteToken","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"dissociateToken","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"dissociateTokens","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"tokens","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"freezeToken","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"getApproved","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"serialNumber","type":"int64","internalType":"int64"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"approved","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"getFungibleTokenInfo","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"fungibleTokenInfo","type":"tuple","internalType":"struct IHederaTokenService.FungibleTokenInfo","components":[{"name":"tokenInfo","type":"tuple","internalType":"struct IHederaTokenService.TokenInfo","components":[{"name":"hedera","type":"tuple","internalType":"struct IHederaTokenService.HederaToken","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"treasury","type":"address","internalType":"address"},{"name":"memo","type":"string","internalType":"string"},{"name":"tokenSupplyType","type":"bool","internalType":"bool"},{"name":"maxSupply","type":"uint32","internalType":"uint32"},{"name":"freezeDefault","type":"bool","internalType":"bool"},{"name":"tokenKeys","type":"tuple[]","internalType":"struct IHederaTokenService.TokenKey[]","components":[{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}]},{"name":"expiry","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"uint32","internalType":"uint32"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"uint32","internalType":"uint32"}]}]},{"name":"fixedFees","type":"tuple[]","internalType":"struct IHederaTokenService.FixedFee[]","components":[{"name":"amount","type":"uint32","internalType":"uint32"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"useCurrentTokenForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"fractionalFees","type":"tuple[]","internalType":"struct IHederaTokenService.FractionalFee[]","components":[{"name":"numerator","type":"uint32","internalType":"uint32"},{"name":"denominator","type":"uint32","internalType":"uint32"},{"name":"minimumAmount","type":"uint32","internalType":"uint32"},{"name":"maximumAmount","type":"uint32","internalType":"uint32"},{"name":"netOfTransfers","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"royaltyFees","type":"tuple[]","internalType":"struct IHederaTokenService.RoyaltyFee[]","components":[{"name":"numerator","type":"uint32","internalType":"uint32"},{"name":"denominator","type":"uint32","internalType":"uint32"},{"name":"amount","type":"uint32","internalType":"uint32"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"defaultKycStatus","type":"bool","internalType":"bool"},{"name":"deleted","type":"bool","internalType":"bool"},{"name":"ledgerId","type":"string","internalType":"string"},{"name":"pauseStatus","type":"bool","internalType":"bool"},{"name":"totalSupply","type":"uint64","internalType":"uint64"}]},{"name":"decimals","type":"uint32","internalType":"uint32"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getNonFungibleTokenInfo","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"serialNumber","type":"int64","internalType":"int64"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"nonFungibleTokenInfo","type":"tuple","internalType":"struct IHederaTokenService.NonFungibleTokenInfo","components":[{"name":"tokenInfo","type":"tuple","internalType":"struct IHederaTokenService.TokenInfo","components":[{"name":"hedera","type":"tuple","internalType":"struct IHederaTokenService.HederaToken","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"treasury","type":"address","internalType":"address"},{"name":"memo","type":"string","internalType":"string"},{"name":"tokenSupplyType","type":"bool","internalType":"bool"},{"name":"maxSupply","type":"uint32","internalType":"uint32"},{"name":"freezeDefault","type":"bool","internalType":"bool"},{"name":"tokenKeys","type":"tuple[]","internalType":"struct IHederaTokenService.TokenKey[]","components":[{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}]},{"name":"expiry","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"uint32","internalType":"uint32"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"uint32","internalType":"uint32"}]}]},{"name":"fixedFees","type":"tuple[]","internalType":"struct IHederaTokenService.FixedFee[]","components":[{"name":"amount","type":"uint32","internalType":"uint32"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"useCurrentTokenForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"fractionalFees","type":"tuple[]","internalType":"struct IHederaTokenService.FractionalFee[]","components":[{"name":"numerator","type":"uint32","internalType":"uint32"},{"name":"denominator","type":"uint32","internalType":"uint32"},{"name":"minimumAmount","type":"uint32","internalType":"uint32"},{"name":"maximumAmount","type":"uint32","internalType":"uint32"},{"name":"netOfTransfers","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"royaltyFees","type":"tuple[]","internalType":"struct IHederaTokenService.RoyaltyFee[]","components":[{"name":"numerator","type":"uint32","internalType":"uint32"},{"name":"denominator","type":"uint32","internalType":"uint32"},{"name":"amount","type":"uint32","internalType":"uint32"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"defaultKycStatus","type":"bool","internalType":"bool"},{"name":"deleted","type":"bool","internalType":"bool"},{"name":"ledgerId","type":"string","internalType":"string"},{"name":"pauseStatus","type":"bool","internalType":"bool"},{"name":"totalSupply","type":"uint64","internalType":"uint64"}]},{"name":"serialNumber","type":"int64","internalType":"int64"},{"name":"ownerId","type":"address","internalType":"address"},{"name":"creationTime","type":"int64","internalType":"int64"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"spenderId","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getTokenCustomFees","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"fixedFees","type":"tuple[]","internalType":"struct IHederaTokenService.FixedFee[]","components":[{"name":"amount","type":"uint32","internalType":"uint32"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"useCurrentTokenForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"fractionalFees","type":"tuple[]","internalType":"struct IHederaTokenService.FractionalFee[]","components":[{"name":"numerator","type":"uint32","internalType":"uint32"},{"name":"denominator","type":"uint32","internalType":"uint32"},{"name":"minimumAmount","type":"uint32","internalType":"uint32"},{"name":"maximumAmount","type":"uint32","internalType":"uint32"},{"name":"netOfTransfers","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"royaltyFees","type":"tuple[]","internalType":"struct IHederaTokenService.RoyaltyFee[]","components":[{"name":"numerator","type":"uint32","internalType":"uint32"},{"name":"denominator","type":"uint32","internalType":"uint32"},{"name":"amount","type":"uint32","internalType":"uint32"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getTokenDefaultFreezeStatus","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"defaultFreezeStatus","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getTokenDefaultKycStatus","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"defaultKycStatus","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getTokenExpiryInfo","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"expiry","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"uint32","internalType":"uint32"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"uint32","internalType":"uint32"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getTokenInfo","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"tokenInfo","type":"tuple","internalType":"struct IHederaTokenService.TokenInfo","components":[{"name":"hedera","type":"tuple","internalType":"struct IHederaTokenService.HederaToken","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"treasury","type":"address","internalType":"address"},{"name":"memo","type":"string","internalType":"string"},{"name":"tokenSupplyType","type":"bool","internalType":"bool"},{"name":"maxSupply","type":"uint32","internalType":"uint32"},{"name":"freezeDefault","type":"bool","internalType":"bool"},{"name":"tokenKeys","type":"tuple[]","internalType":"struct IHederaTokenService.TokenKey[]","components":[{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}]},{"name":"expiry","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"uint32","internalType":"uint32"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"uint32","internalType":"uint32"}]}]},{"name":"fixedFees","type":"tuple[]","internalType":"struct IHederaTokenService.FixedFee[]","components":[{"name":"amount","type":"uint32","internalType":"uint32"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"useCurrentTokenForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"fractionalFees","type":"tuple[]","internalType":"struct IHederaTokenService.FractionalFee[]","components":[{"name":"numerator","type":"uint32","internalType":"uint32"},{"name":"denominator","type":"uint32","internalType":"uint32"},{"name":"minimumAmount","type":"uint32","internalType":"uint32"},{"name":"maximumAmount","type":"uint32","internalType":"uint32"},{"name":"netOfTransfers","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"royaltyFees","type":"tuple[]","internalType":"struct IHederaTokenService.RoyaltyFee[]","components":[{"name":"numerator","type":"uint32","internalType":"uint32"},{"name":"denominator","type":"uint32","internalType":"uint32"},{"name":"amount","type":"uint32","internalType":"uint32"},{"name":"tokenId","type":"address","internalType":"address"},{"name":"useHbarsForPayment","type":"bool","internalType":"bool"},{"name":"feeCollector","type":"address","internalType":"address"}]},{"name":"defaultKycStatus","type":"bool","internalType":"bool"},{"name":"deleted","type":"bool","internalType":"bool"},{"name":"ledgerId","type":"string","internalType":"string"},{"name":"pauseStatus","type":"bool","internalType":"bool"},{"name":"totalSupply","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getTokenKey","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"keyType","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getTokenType","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"tokenType","type":"int32","internalType":"int32"}],"stateMutability":"nonpayable"},{"type":"function","name":"grantTokenKyc","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"approved","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"isFrozen","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"frozen","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"isKyc","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"kycGranted","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"isToken","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"isToken","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"mintToken","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint64","internalType":"uint64"},{"name":"metadata","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"},{"name":"newTotalSupply","type":"uint64","internalType":"uint64"},{"name":"serialNumbers","type":"int64[]","internalType":"int64[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"pauseToken","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokeTokenKyc","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferNFT","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"serialNumber","type":"int64","internalType":"int64"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferNFTs","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"sender","type":"address[]","internalType":"address[]"},{"name":"receiver","type":"address[]","internalType":"address[]"},{"name":"serialNumber","type":"int64[]","internalType":"int64[]"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferToken","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"int64","internalType":"int64"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferTokens","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"accountId","type":"address[]","internalType":"address[]"},{"name":"amount","type":"int64[]","internalType":"int64[]"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"unfreezeToken","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"unpauseToken","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"updateTokenExpiryInfo","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"expiryInfo","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"uint32","internalType":"uint32"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"uint32","internalType":"uint32"}]}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"updateTokenInfo","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"tokenInfo","type":"tuple","internalType":"struct IHederaTokenService.HederaToken","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"treasury","type":"address","internalType":"address"},{"name":"memo","type":"string","internalType":"string"},{"name":"tokenSupplyType","type":"bool","internalType":"bool"},{"name":"maxSupply","type":"uint32","internalType":"uint32"},{"name":"freezeDefault","type":"bool","internalType":"bool"},{"name":"tokenKeys","type":"tuple[]","internalType":"struct IHederaTokenService.TokenKey[]","components":[{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}]},{"name":"expiry","type":"tuple","internalType":"struct IHederaTokenService.Expiry","components":[{"name":"second","type":"uint32","internalType":"uint32"},{"name":"autoRenewAccount","type":"address","internalType":"address"},{"name":"autoRenewPeriod","type":"uint32","internalType":"uint32"}]}]}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"updateTokenKeys","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"keys","type":"tuple[]","internalType":"struct IHederaTokenService.TokenKey[]","components":[{"name":"keyType","type":"uint256","internalType":"uint256"},{"name":"key","type":"tuple","internalType":"struct IHederaTokenService.KeyValue","components":[{"name":"inheritAccountKey","type":"bool","internalType":"bool"},{"name":"contractId","type":"address","internalType":"address"},{"name":"ed25519","type":"bytes","internalType":"bytes"},{"name":"ECDSA_secp256k1","type":"bytes","internalType":"bytes"},{"name":"delegatableContractId","type":"address","internalType":"address"}]}]}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"wipeTokenAccount","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"},{"type":"function","name":"wipeTokenAccountNFT","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"},{"name":"serialNumbers","type":"int64[]","internalType":"int64[]"}],"outputs":[{"name":"responseCode","type":"int64","internalType":"int64"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address,address)":"927da105","approve(address,address,uint256)":"e1f21c67","approveNFT(address,address,int64)":"10585c46","associateToken(address,address)":"49146bde","associateTokens(address,address[])":"2e63879b","burnToken(address,uint64,int64[])":"acb9cff9","createFungibleToken((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)),uint256,uint256)":"7812a04b","createFungibleTokenWithCustomFees((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)),uint256,uint256,(uint32,address,bool,bool,address)[],(uint32,uint32,uint32,uint32,bool,address)[])":"4c381ae7","createNonFungibleToken((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)))":"9dc711e0","createNonFungibleTokenWithCustomFees((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)),(uint32,address,bool,bool,address)[],(uint32,uint32,uint32,address,bool,address)[])":"5bc7c0e6","cryptoTransfer((address,(address,int64)[],(address,address,int64)[])[])":"189a554c","deleteToken(address)":"f069f712","dissociateToken(address,address)":"099794e8","dissociateTokens(address,address[])":"78b63918","freezeToken(address,address)":"5b8f8584","getApproved(address,int64)":"01b2194b","getFungibleTokenInfo(address)":"3f28a19b","getNonFungibleTokenInfo(address,int64)":"287e1da8","getTokenCustomFees(address)":"ae7611a0","getTokenDefaultFreezeStatus(address)":"a7daa18d","getTokenDefaultKycStatus(address)":"335e04c1","getTokenExpiryInfo(address)":"d614cdb8","getTokenInfo(address)":"1f69565f","getTokenKey(address,uint256)":"3c4dd32e","getTokenType(address)":"93272baf","grantTokenKyc(address,address)":"8f8d7f99","isApprovedForAll(address,address,address)":"f49f40db","isFrozen(address,address)":"46de0fb1","isKyc(address,address)":"f2c31ff4","isToken(address)":"19f37361","mintToken(address,uint64,bytes[])":"278e0b88","pauseToken(address)":"7c41ad2c","revokeTokenKyc(address,address)":"af99c633","setApprovalForAll(address,address,bool)":"367605ca","transferNFT(address,address,address,int64)":"5cfc9011","transferNFTs(address,address[],address[],int64[])":"2c4ba191","transferToken(address,address,address,int64)":"eca36917","transferTokens(address,address[],int64[])":"82bba493","unfreezeToken(address,address)":"52f91387","unpauseToken(address)":"3b3bff0f","updateTokenExpiryInfo(address,(uint32,address,uint32))":"593d6e82","updateTokenInfo(address,(string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)))":"2cccc36f","updateTokenKeys(address,(uint256,(bool,address,bytes,bytes,address))[])":"6fc3cbaf","wipeTokenAccount(address,address,uint32)":"9790686d","wipeTokenAccountNFT(address,address,int64[])":"f7f38e26"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"serialNumber\",\"type\":\"int64\"}],\"name\":\"approveNFT\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"associateToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"associateTokens\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"},{\"internalType\":\"int64[]\",\"name\":\"serialNumbers\",\"type\":\"int64[]\"}],\"name\":\"burnToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"newTotalSupply\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"tokenSupplyType\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"maxSupply\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"freezeDefault\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.TokenKey[]\",\"name\":\"tokenKeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"second\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"autoRenewPeriod\",\"type\":\"uint32\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiry\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.HederaToken\",\"name\":\"token\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialTotalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"createFungibleToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"tokenSupplyType\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"maxSupply\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"freezeDefault\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.TokenKey[]\",\"name\":\"tokenKeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"second\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"autoRenewPeriod\",\"type\":\"uint32\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiry\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.HederaToken\",\"name\":\"token\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialTotalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"amount\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useCurrentTokenForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FixedFee[]\",\"name\":\"fixedFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"numerator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"denominator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"minimumAmount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maximumAmount\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"netOfTransfers\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FractionalFee[]\",\"name\":\"fractionalFees\",\"type\":\"tuple[]\"}],\"name\":\"createFungibleTokenWithCustomFees\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"tokenSupplyType\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"maxSupply\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"freezeDefault\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.TokenKey[]\",\"name\":\"tokenKeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"second\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"autoRenewPeriod\",\"type\":\"uint32\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiry\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.HederaToken\",\"name\":\"token\",\"type\":\"tuple\"}],\"name\":\"createNonFungibleToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"tokenSupplyType\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"maxSupply\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"freezeDefault\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.TokenKey[]\",\"name\":\"tokenKeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"second\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"autoRenewPeriod\",\"type\":\"uint32\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiry\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.HederaToken\",\"name\":\"token\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"amount\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useCurrentTokenForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FixedFee[]\",\"name\":\"fixedFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"numerator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"denominator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"amount\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.RoyaltyFee[]\",\"name\":\"royaltyFees\",\"type\":\"tuple[]\"}],\"name\":\"createNonFungibleTokenWithCustomFees\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"accountID\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"}],\"internalType\":\"struct IHederaTokenService.AccountAmount[]\",\"name\":\"transfers\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"senderAccountID\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiverAccountID\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"serialNumber\",\"type\":\"int64\"}],\"internalType\":\"struct IHederaTokenService.NftTransfer[]\",\"name\":\"nftTransfers\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IHederaTokenService.TokenTransferList[]\",\"name\":\"tokenTransfers\",\"type\":\"tuple[]\"}],\"name\":\"cryptoTransfer\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"deleteToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"dissociateToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"dissociateTokens\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"freezeToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"serialNumber\",\"type\":\"int64\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getFungibleTokenInfo\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"tokenSupplyType\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"maxSupply\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"freezeDefault\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.TokenKey[]\",\"name\":\"tokenKeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"second\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"autoRenewPeriod\",\"type\":\"uint32\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiry\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.HederaToken\",\"name\":\"hedera\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"amount\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useCurrentTokenForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FixedFee[]\",\"name\":\"fixedFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"numerator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"denominator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"minimumAmount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maximumAmount\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"netOfTransfers\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FractionalFee[]\",\"name\":\"fractionalFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"numerator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"denominator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"amount\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.RoyaltyFee[]\",\"name\":\"royaltyFees\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"defaultKycStatus\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"ledgerId\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"pauseStatus\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"totalSupply\",\"type\":\"uint64\"}],\"internalType\":\"struct IHederaTokenService.TokenInfo\",\"name\":\"tokenInfo\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"decimals\",\"type\":\"uint32\"}],\"internalType\":\"struct IHederaTokenService.FungibleTokenInfo\",\"name\":\"fungibleTokenInfo\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"serialNumber\",\"type\":\"int64\"}],\"name\":\"getNonFungibleTokenInfo\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"tokenSupplyType\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"maxSupply\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"freezeDefault\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.TokenKey[]\",\"name\":\"tokenKeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"second\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"autoRenewPeriod\",\"type\":\"uint32\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiry\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.HederaToken\",\"name\":\"hedera\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"amount\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useCurrentTokenForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FixedFee[]\",\"name\":\"fixedFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"numerator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"denominator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"minimumAmount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maximumAmount\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"netOfTransfers\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FractionalFee[]\",\"name\":\"fractionalFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"numerator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"denominator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"amount\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.RoyaltyFee[]\",\"name\":\"royaltyFees\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"defaultKycStatus\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"ledgerId\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"pauseStatus\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"totalSupply\",\"type\":\"uint64\"}],\"internalType\":\"struct IHederaTokenService.TokenInfo\",\"name\":\"tokenInfo\",\"type\":\"tuple\"},{\"internalType\":\"int64\",\"name\":\"serialNumber\",\"type\":\"int64\"},{\"internalType\":\"address\",\"name\":\"ownerId\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"creationTime\",\"type\":\"int64\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"spenderId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.NonFungibleTokenInfo\",\"name\":\"nonFungibleTokenInfo\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenCustomFees\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"amount\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useCurrentTokenForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FixedFee[]\",\"name\":\"fixedFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"numerator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"denominator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"minimumAmount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maximumAmount\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"netOfTransfers\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FractionalFee[]\",\"name\":\"fractionalFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"numerator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"denominator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"amount\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.RoyaltyFee[]\",\"name\":\"royaltyFees\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenDefaultFreezeStatus\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"defaultFreezeStatus\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenDefaultKycStatus\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"defaultKycStatus\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenExpiryInfo\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"second\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"autoRenewPeriod\",\"type\":\"uint32\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiry\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenInfo\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"tokenSupplyType\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"maxSupply\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"freezeDefault\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.TokenKey[]\",\"name\":\"tokenKeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"second\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"autoRenewPeriod\",\"type\":\"uint32\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiry\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.HederaToken\",\"name\":\"hedera\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"amount\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useCurrentTokenForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FixedFee[]\",\"name\":\"fixedFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"numerator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"denominator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"minimumAmount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maximumAmount\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"netOfTransfers\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.FractionalFee[]\",\"name\":\"fractionalFees\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"numerator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"denominator\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"amount\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useHbarsForPayment\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"feeCollector\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.RoyaltyFee[]\",\"name\":\"royaltyFees\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"defaultKycStatus\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"ledgerId\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"pauseStatus\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"totalSupply\",\"type\":\"uint64\"}],\"internalType\":\"struct IHederaTokenService.TokenInfo\",\"name\":\"tokenInfo\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"getTokenKey\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenType\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"int32\",\"name\":\"tokenType\",\"type\":\"int32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantTokenKyc\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isFrozen\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"frozen\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isKyc\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"kycGranted\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"isToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"bool\",\"name\":\"isToken\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"},{\"internalType\":\"bytes[]\",\"name\":\"metadata\",\"type\":\"bytes[]\"}],\"name\":\"mintToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"newTotalSupply\",\"type\":\"uint64\"},{\"internalType\":\"int64[]\",\"name\":\"serialNumbers\",\"type\":\"int64[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"pauseToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeTokenKyc\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"serialNumber\",\"type\":\"int64\"}],\"name\":\"transferNFT\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"sender\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"receiver\",\"type\":\"address[]\"},{\"internalType\":\"int64[]\",\"name\":\"serialNumber\",\"type\":\"int64[]\"}],\"name\":\"transferNFTs\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"int64\",\"name\":\"amount\",\"type\":\"int64\"}],\"name\":\"transferToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"accountId\",\"type\":\"address[]\"},{\"internalType\":\"int64[]\",\"name\":\"amount\",\"type\":\"int64[]\"}],\"name\":\"transferTokens\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"unfreezeToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"unpauseToken\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"second\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"autoRenewPeriod\",\"type\":\"uint32\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiryInfo\",\"type\":\"tuple\"}],\"name\":\"updateTokenExpiryInfo\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"tokenSupplyType\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"maxSupply\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"freezeDefault\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.TokenKey[]\",\"name\":\"tokenKeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"second\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"autoRenewAccount\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"autoRenewPeriod\",\"type\":\"uint32\"}],\"internalType\":\"struct IHederaTokenService.Expiry\",\"name\":\"expiry\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.HederaToken\",\"name\":\"tokenInfo\",\"type\":\"tuple\"}],\"name\":\"updateTokenInfo\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"inheritAccountKey\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractId\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ed25519\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ECDSA_secp256k1\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"delegatableContractId\",\"type\":\"address\"}],\"internalType\":\"struct IHederaTokenService.KeyValue\",\"name\":\"key\",\"type\":\"tuple\"}],\"internalType\":\"struct IHederaTokenService.TokenKey[]\",\"name\":\"keys\",\"type\":\"tuple[]\"}],\"name\":\"updateTokenKeys\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"amount\",\"type\":\"uint32\"}],\"name\":\"wipeTokenAccount\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"int64[]\",\"name\":\"serialNumbers\",\"type\":\"int64[]\"}],\"name\":\"wipeTokenAccountNFT\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"responseCode\",\"type\":\"int64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address,address)\":{\"params\":{\"owner\":\"the owner of the tokens to be spent\",\"spender\":\"the spender of the tokens\",\"token\":\"The Hedera token address to check the allowance of\"},\"returns\":{\"allowance\":\"The amount which spender is still allowed to withdraw from owner.\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"approve(address,address,uint256)\":{\"params\":{\"amount\":\"the amount of tokens authorized to spend.\",\"spender\":\"the account address authorized to spend\",\"token\":\"The hedera token address to approve\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"approveNFT(address,address,int64)\":{\"params\":{\"approved\":\"The new approved NFT controller. To revoke approvals pass in the zero address.\",\"serialNumber\":\"The NFT serial number to approve\",\"token\":\"The Hedera NFT token address to approve\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"associateToken(address,address)\":{\"params\":{\"account\":\"The account to be associated with the provided token\",\"token\":\"The token to be associated with the provided account\"}},\"associateTokens(address,address[])\":{\"params\":{\"account\":\"The account to be associated with the provided tokens\",\"tokens\":\"The tokens to be associated with the provided account. In the case of NON_FUNGIBLE_UNIQUE Type, once an account is associated, it can hold any number of NFTs (serial numbers) of that token type\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"burnToken(address,uint64,int64[])\":{\"params\":{\"amount\":\"Applicable to tokens of type FUNGIBLE_COMMON. The amount to burn from the Treasury Account. Amount must be a positive non-zero number, not bigger than the token balance of the treasury account (0; balance], represented in the lowest denomination.\",\"serialNumbers\":\"Applicable to tokens of type NON_FUNGIBLE_UNIQUE. The list of serial numbers to be burned.\",\"token\":\"The token for which to burn tokens. If token does not exist, transaction results in INVALID_TOKEN_ID\"},\"returns\":{\"newTotalSupply\":\"The new supply of tokens. For NFTs it is the total count of NFTs\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"createFungibleToken((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)),uint256,uint256)\":{\"params\":{\"decimals\":\"the number of decimal places a token is divisible by\",\"initialTotalSupply\":\"Specifies the initial supply of tokens to be put in circulation. The initial supply is sent to the Treasury Account. The supply is in the lowest denomination possible.\",\"token\":\"the basic properties of the token being created\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\",\"tokenAddress\":\"the created token's address\"}},\"createFungibleTokenWithCustomFees((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)),uint256,uint256,(uint32,address,bool,bool,address)[],(uint32,uint32,uint32,uint32,bool,address)[])\":{\"params\":{\"decimals\":\"the number of decimal places a token is divisible by.\",\"fixedFees\":\"list of fixed fees to apply to the token\",\"fractionalFees\":\"list of fractional fees to apply to the token\",\"initialTotalSupply\":\"Specifies the initial supply of tokens to be put in circulation. The initial supply is sent to the Treasury Account. The supply is in the lowest denomination possible.\",\"token\":\"the basic properties of the token being created\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\",\"tokenAddress\":\"the created token's address\"}},\"createNonFungibleToken((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)))\":{\"params\":{\"token\":\"the basic properties of the token being created\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\",\"tokenAddress\":\"the created token's address\"}},\"createNonFungibleTokenWithCustomFees((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)),(uint32,address,bool,bool,address)[],(uint32,uint32,uint32,address,bool,address)[])\":{\"params\":{\"fixedFees\":\"list of fixed fees to apply to the token\",\"royaltyFees\":\"list of royalty fees to apply to the token\",\"token\":\"the basic properties of the token being created\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\",\"tokenAddress\":\"the created token's address\"}},\"cryptoTransfer((address,(address,int64)[],(address,address,int64)[])[])\":{\"params\":{\"tokenTransfers\":\"the list of transfers to do\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"deleteToken(address)\":{\"params\":{\"token\":\"The token address to be deleted\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"dissociateToken(address,address)\":{\"params\":{\"account\":\"The account to be associated with the provided token\",\"token\":\"The token to be associated with the provided account\"}},\"dissociateTokens(address,address[])\":{\"params\":{\"account\":\"The account to be dissociated from the provided tokens\",\"tokens\":\"The tokens to be dissociated from the provided account.\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"freezeToken(address,address)\":{\"params\":{\"account\":\"The account address to be frozen\",\"token\":\"The token address\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"getApproved(address,int64)\":{\"params\":{\"serialNumber\":\"The NFT to find the approved address for\",\"token\":\"The Hedera NFT token address to check approval\"},\"returns\":{\"approved\":\"The approved address for this NFT, or the zero address if there is none\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"getFungibleTokenInfo(address)\":{\"params\":{\"token\":\"The token address to check\"},\"returns\":{\"fungibleTokenInfo\":\"FungibleTokenInfo info for `token`\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"getNonFungibleTokenInfo(address,int64)\":{\"params\":{\"serialNumber\":\"The NFT serialNumber to check\",\"token\":\"The token address to check\"},\"returns\":{\"nonFungibleTokenInfo\":\"NonFungibleTokenInfo info for `token` `serialNumber`\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"getTokenCustomFees(address)\":{\"params\":{\"token\":\"The token address to check\"},\"returns\":{\"fixedFees\":\"Set of fixed fees for `token`\",\"fractionalFees\":\"Set of fractional fees for `token`\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\",\"royaltyFees\":\"Set of royalty fees for `token`\"}},\"getTokenDefaultFreezeStatus(address)\":{\"params\":{\"token\":\"The token address to check\"},\"returns\":{\"defaultFreezeStatus\":\"True if `token` default freeze status is frozen.\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"getTokenDefaultKycStatus(address)\":{\"params\":{\"token\":\"The token address to check\"},\"returns\":{\"defaultKycStatus\":\"True if `token` default kyc status is KycNotApplicable and false if Revoked.\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"getTokenExpiryInfo(address)\":{\"params\":{\"token\":\"The token address to check\"},\"returns\":{\"expiry\":\"Expiry info for `token`\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"getTokenInfo(address)\":{\"params\":{\"token\":\"The token address to check\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\",\"tokenInfo\":\"TokenInfo info for `token`\"}},\"getTokenKey(address,uint256)\":{\"params\":{\"keyType\":\"The keyType of the desired KeyValue\",\"token\":\"The token address to check\"},\"returns\":{\"key\":\"KeyValue info for key of type `keyType`\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"getTokenType(address)\":{\"params\":{\"token\":\"The token address\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22. \",\"tokenType\":\"the token type. 0 is FUNGIBLE_COMMON, 1 is NON_FUNGIBLE_UNIQUE, -1 is UNRECOGNIZED \"}},\"grantTokenKyc(address,address)\":{\"params\":{\"account\":\"The account address to grant kyc\",\"token\":\"The token address\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"isApprovedForAll(address,address,address)\":{\"params\":{\"operator\":\"The address that acts on behalf of the owner\",\"owner\":\"The address that owns the NFTs\",\"token\":\"The Hedera NFT token address to approve\"},\"returns\":{\"approved\":\"True if `operator` is an approved operator for `owner`, false otherwise\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"isFrozen(address,address)\":{\"params\":{\"account\":\"The account address associated with the token\",\"token\":\"The token address to check\"},\"returns\":{\"frozen\":\"True if `account` is frozen for `token`\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"isKyc(address,address)\":{\"params\":{\"account\":\"The account address associated with the token\",\"token\":\"The token address to check\"},\"returns\":{\"kycGranted\":\"True if `account` has kyc granted for `token`\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"isToken(address)\":{\"params\":{\"token\":\"The token address\"},\"returns\":{\"isToken\":\"True if valid token found for the given address \",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22. \"}},\"mintToken(address,uint64,bytes[])\":{\"params\":{\"amount\":\"Applicable to tokens of type FUNGIBLE_COMMON. The amount to mint to the Treasury Account. Amount must be a positive non-zero number represented in the lowest denomination of the token. The new supply must be lower than 2^63.\",\"metadata\":\"Applicable to tokens of type NON_FUNGIBLE_UNIQUE. A list of metadata that are being created. Maximum allowed size of each metadata is 100 bytes\",\"token\":\"The token for which to mint tokens. If token does not exist, transaction results in INVALID_TOKEN_ID\"},\"returns\":{\"newTotalSupply\":\"The new supply of tokens. For NFTs it is the total count of NFTs\",\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\",\"serialNumbers\":\"If the token is an NFT the newly generate serial numbers, othersise empty.\"}},\"pauseToken(address)\":{\"params\":{\"token\":\"The token address to be paused\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"revokeTokenKyc(address,address)\":{\"params\":{\"account\":\"The account address to revoke kyc\",\"token\":\"The token address\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"setApprovalForAll(address,address,bool)\":{\"params\":{\"approved\":\"True if the operator is approved, false to revoke approval\",\"operator\":\"Address to add to the set of authorized operators\",\"token\":\"The Hedera NFT token address to approve\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"transferNFT(address,address,address,int64)\":{\"params\":{\"recipient\":\"The receiver of the transaction\",\"sender\":\"The sender for the transaction\",\"serialNumber\":\"The serial number of the NFT to transfer.\",\"token\":\"The token to transfer to/from\"}},\"transferNFTs(address,address[],address[],int64[])\":{\"params\":{\"receiver\":\"the receiver of the nft sent by the same index at sender\",\"sender\":\"the sender of an nft\",\"serialNumber\":\"the serial number of the nft sent by the same index at sender\",\"token\":\"The ID of the token as a solidity address\"}},\"transferToken(address,address,address,int64)\":{\"params\":{\"amount\":\"Non-negative value to send. a negative value will result in a failure.\",\"recipient\":\"The receiver of the transaction\",\"sender\":\"The sender for the transaction\",\"token\":\"The token to transfer to/from\"}},\"transferTokens(address,address[],int64[])\":{\"params\":{\"accountId\":\"account to do a transfer to/from\",\"amount\":\"The amount from the accountId at the same index\",\"token\":\"The ID of the token as a solidity address\"}},\"unfreezeToken(address,address)\":{\"params\":{\"account\":\"The account address to be unfrozen\",\"token\":\"The token address\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"unpauseToken(address)\":{\"params\":{\"token\":\"The token address to be unpaused\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"updateTokenExpiryInfo(address,(uint32,address,uint32))\":{\"params\":{\"expiryInfo\":\"The hedera token expiry info\",\"token\":\"The token address\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"updateTokenInfo(address,(string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)))\":{\"params\":{\"token\":\"The token address\",\"tokenInfo\":\"The hedera token info to update token with\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"updateTokenKeys(address,(uint256,(bool,address,bytes,bytes,address))[])\":{\"params\":{\"keys\":\"The token keys\",\"token\":\"The token address\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"wipeTokenAccount(address,address,uint32)\":{\"params\":{\"account\":\"The account address to revoke kyc\",\"amount\":\"The number of tokens to wipe\",\"token\":\"The token address\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}},\"wipeTokenAccountNFT(address,address,int64[])\":{\"params\":{\"account\":\"The account address to revoke kyc\",\"serialNumbers\":\"The serial numbers of token to wipe\",\"token\":\"The token address\"},\"returns\":{\"responseCode\":\"The response code for the status of the request. SUCCESS is 22.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowance(address,address,address)\":{\"notice\":\"Returns the amount which spender is still allowed to withdraw from owner. Only Applicable to Fungible Tokens\"},\"approve(address,address,uint256)\":{\"notice\":\"Allows spender to withdraw from your account multiple times, up to the value amount. If this function is called again it overwrites the current allowance with value. Only Applicable to Fungible Tokens\"},\"approveNFT(address,address,int64)\":{\"notice\":\"Allow or reaffirm the approved address to transfer an NFT the approved address does not own. Only Applicable to NFT Tokens\"},\"associateToken(address,address)\":{\"notice\":\"Single-token variant of associateTokens. Will be mapped to a single entry array call of associateTokens\"},\"associateTokens(address,address[])\":{\"notice\":\"Associates the provided account with the provided tokens. Must be signed by the provided Account's key or called from the accounts contract key If the provided account is not found, the transaction will resolve to INVALID_ACCOUNT_ID. If the provided account has been deleted, the transaction will resolve to ACCOUNT_DELETED. If any of the provided tokens is not found, the transaction will resolve to INVALID_TOKEN_REF. If any of the provided tokens has been deleted, the transaction will resolve to TOKEN_WAS_DELETED. If an association between the provided account and any of the tokens already exists, the transaction will resolve to TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT. If the provided account's associations count exceed the constraint of maximum token associations per account, the transaction will resolve to TOKENS_PER_ACCOUNT_LIMIT_EXCEEDED. On success, associations between the provided account and tokens are made and the account is ready to interact with the tokens.\"},\"burnToken(address,uint64,int64[])\":{\"notice\":\"Burns an amount of the token from the defined treasury account\"},\"createFungibleToken((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)),uint256,uint256)\":{\"notice\":\"Creates a Fungible Token with the specified properties\"},\"createFungibleTokenWithCustomFees((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)),uint256,uint256,(uint32,address,bool,bool,address)[],(uint32,uint32,uint32,uint32,bool,address)[])\":{\"notice\":\"Creates a Fungible Token with the specified properties\"},\"createNonFungibleToken((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)))\":{\"notice\":\"Creates an Non Fungible Unique Token with the specified properties\"},\"createNonFungibleTokenWithCustomFees((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)),(uint32,address,bool,bool,address)[],(uint32,uint32,uint32,address,bool,address)[])\":{\"notice\":\"Creates an Non Fungible Unique Token with the specified properties\"},\"cryptoTransfer((address,(address,int64)[],(address,address,int64)[])[])\":{\"notice\":\"Initiates a Token Transfer\"},\"deleteToken(address)\":{\"notice\":\"Operation to delete token\"},\"dissociateToken(address,address)\":{\"notice\":\"Single-token variant of dissociateTokens. Will be mapped to a single entry array call of dissociateTokens\"},\"dissociateTokens(address,address[])\":{\"notice\":\"Dissociates the provided account with the provided tokens. Must be signed by the provided Account's key. If the provided account is not found, the transaction will resolve to INVALID_ACCOUNT_ID. If the provided account has been deleted, the transaction will resolve to ACCOUNT_DELETED. If any of the provided tokens is not found, the transaction will resolve to INVALID_TOKEN_REF. If any of the provided tokens has been deleted, the transaction will resolve to TOKEN_WAS_DELETED. If an association between the provided account and any of the tokens does not exist, the transaction will resolve to TOKEN_NOT_ASSOCIATED_TO_ACCOUNT. If a token has not been deleted and has not expired, and the user has a nonzero balance, the transaction will resolve to TRANSACTION_REQUIRES_ZERO_TOKEN_BALANCES. If a fungible token has expired, the user can disassociate even if their token balance is not zero. If a non fungible token has expired, the user can not disassociate if their token balance is not zero. The transaction will resolve to TRANSACTION_REQUIRED_ZERO_TOKEN_BALANCES. On success, associations between the provided account and tokens are removed.\"},\"freezeToken(address,address)\":{\"notice\":\"Operation to freeze token account\"},\"getApproved(address,int64)\":{\"notice\":\"Get the approved address for a single NFT Only Applicable to NFT Tokens\"},\"getFungibleTokenInfo(address)\":{\"notice\":\"Query fungible token info\"},\"getNonFungibleTokenInfo(address,int64)\":{\"notice\":\"Query non fungible token info\"},\"getTokenCustomFees(address)\":{\"notice\":\"Query token custom fees\"},\"getTokenDefaultFreezeStatus(address)\":{\"notice\":\"Query token default freeze status\"},\"getTokenDefaultKycStatus(address)\":{\"notice\":\"Query token default kyc status\"},\"getTokenExpiryInfo(address)\":{\"notice\":\"Query token expiry info\"},\"getTokenInfo(address)\":{\"notice\":\"Query token info\"},\"getTokenKey(address,uint256)\":{\"notice\":\"Query token KeyValue\"},\"getTokenType(address)\":{\"notice\":\"Query to return the token type for a given address\"},\"grantTokenKyc(address,address)\":{\"notice\":\"Operation to grant kyc to token account\"},\"isApprovedForAll(address,address,address)\":{\"notice\":\"Query if an address is an authorized operator for another address Only Applicable to NFT Tokens\"},\"isFrozen(address,address)\":{\"notice\":\"Query if token account is frozen\"},\"isKyc(address,address)\":{\"notice\":\"Query if token account has kyc granted\"},\"isToken(address)\":{\"notice\":\"Query if valid token found for the given address\"},\"mintToken(address,uint64,bytes[])\":{\"notice\":\"Mints an amount of the token to the defined treasury account\"},\"pauseToken(address)\":{\"notice\":\"Operation to pause token\"},\"revokeTokenKyc(address,address)\":{\"notice\":\"Operation to revoke kyc to token account\"},\"setApprovalForAll(address,address,bool)\":{\"notice\":\"Enable or disable approval for a third party (\\\"operator\\\") to manage all of `msg.sender`'s assets\"},\"transferNFT(address,address,address,int64)\":{\"notice\":\"Transfers tokens where the calling account/contract is implicitly the first entry in the token transfer list, where the amount is the value needed to zero balance the transfers. Regular signing rules apply for sending (positive amount) or receiving (negative amount)\"},\"transferNFTs(address,address[],address[],int64[])\":{\"notice\":\"Initiates a Non-Fungable Token Transfer\"},\"transferToken(address,address,address,int64)\":{\"notice\":\"Transfers tokens where the calling account/contract is implicitly the first entry in the token transfer list, where the amount is the value needed to zero balance the transfers. Regular signing rules apply for sending (positive amount) or receiving (negative amount)\"},\"transferTokens(address,address[],int64[])\":{\"notice\":\"Initiates a Fungible Token Transfer\"},\"unfreezeToken(address,address)\":{\"notice\":\"Operation to unfreeze token account\"},\"unpauseToken(address)\":{\"notice\":\"Operation to unpause token\"},\"updateTokenExpiryInfo(address,(uint32,address,uint32))\":{\"notice\":\"Operation to update token expiry info\"},\"updateTokenInfo(address,(string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)))\":{\"notice\":\"Operation to update token info\"},\"updateTokenKeys(address,(uint256,(bool,address,bytes,bytes,address))[])\":{\"notice\":\"Operation to update token expiry info\"},\"wipeTokenAccount(address,address,uint32)\":{\"notice\":\"Operation to wipe fungible tokens from account\"},\"wipeTokenAccountNFT(address,address,int64[])\":{\"notice\":\"Operation to wipe non fungible tokens from account\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/safe-HTS/IHederaTokenService.sol\":\"IHederaTokenService\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"contracts/common/safe-HTS/IHederaTokenService.sol\":{\"keccak256\":\"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786\",\"dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"allowance","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"uint256","name":"allowance","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"approved","type":"address"},{"internalType":"int64","name":"serialNumber","type":"int64"}],"stateMutability":"nonpayable","type":"function","name":"approveNFT","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"associateToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"associateTokens","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint64","name":"amount","type":"uint64"},{"internalType":"int64[]","name":"serialNumbers","type":"int64[]"}],"stateMutability":"nonpayable","type":"function","name":"burnToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"uint64","name":"newTotalSupply","type":"uint64"}]},{"inputs":[{"internalType":"struct IHederaTokenService.HederaToken","name":"token","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"bool","name":"tokenSupplyType","type":"bool"},{"internalType":"uint32","name":"maxSupply","type":"uint32"},{"internalType":"bool","name":"freezeDefault","type":"bool"},{"internalType":"struct IHederaTokenService.TokenKey[]","name":"tokenKeys","type":"tuple[]","components":[{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]},{"internalType":"struct IHederaTokenService.Expiry","name":"expiry","type":"tuple","components":[{"internalType":"uint32","name":"second","type":"uint32"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"uint32","name":"autoRenewPeriod","type":"uint32"}]}]},{"internalType":"uint256","name":"initialTotalSupply","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"payable","type":"function","name":"createFungibleToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"address","name":"tokenAddress","type":"address"}]},{"inputs":[{"internalType":"struct IHederaTokenService.HederaToken","name":"token","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"bool","name":"tokenSupplyType","type":"bool"},{"internalType":"uint32","name":"maxSupply","type":"uint32"},{"internalType":"bool","name":"freezeDefault","type":"bool"},{"internalType":"struct IHederaTokenService.TokenKey[]","name":"tokenKeys","type":"tuple[]","components":[{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]},{"internalType":"struct IHederaTokenService.Expiry","name":"expiry","type":"tuple","components":[{"internalType":"uint32","name":"second","type":"uint32"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"uint32","name":"autoRenewPeriod","type":"uint32"}]}]},{"internalType":"uint256","name":"initialTotalSupply","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"struct IHederaTokenService.FixedFee[]","name":"fixedFees","type":"tuple[]","components":[{"internalType":"uint32","name":"amount","type":"uint32"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"bool","name":"useCurrentTokenForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.FractionalFee[]","name":"fractionalFees","type":"tuple[]","components":[{"internalType":"uint32","name":"numerator","type":"uint32"},{"internalType":"uint32","name":"denominator","type":"uint32"},{"internalType":"uint32","name":"minimumAmount","type":"uint32"},{"internalType":"uint32","name":"maximumAmount","type":"uint32"},{"internalType":"bool","name":"netOfTransfers","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]}],"stateMutability":"payable","type":"function","name":"createFungibleTokenWithCustomFees","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"address","name":"tokenAddress","type":"address"}]},{"inputs":[{"internalType":"struct IHederaTokenService.HederaToken","name":"token","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"bool","name":"tokenSupplyType","type":"bool"},{"internalType":"uint32","name":"maxSupply","type":"uint32"},{"internalType":"bool","name":"freezeDefault","type":"bool"},{"internalType":"struct IHederaTokenService.TokenKey[]","name":"tokenKeys","type":"tuple[]","components":[{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]},{"internalType":"struct IHederaTokenService.Expiry","name":"expiry","type":"tuple","components":[{"internalType":"uint32","name":"second","type":"uint32"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"uint32","name":"autoRenewPeriod","type":"uint32"}]}]}],"stateMutability":"payable","type":"function","name":"createNonFungibleToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"address","name":"tokenAddress","type":"address"}]},{"inputs":[{"internalType":"struct IHederaTokenService.HederaToken","name":"token","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"bool","name":"tokenSupplyType","type":"bool"},{"internalType":"uint32","name":"maxSupply","type":"uint32"},{"internalType":"bool","name":"freezeDefault","type":"bool"},{"internalType":"struct IHederaTokenService.TokenKey[]","name":"tokenKeys","type":"tuple[]","components":[{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]},{"internalType":"struct IHederaTokenService.Expiry","name":"expiry","type":"tuple","components":[{"internalType":"uint32","name":"second","type":"uint32"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"uint32","name":"autoRenewPeriod","type":"uint32"}]}]},{"internalType":"struct IHederaTokenService.FixedFee[]","name":"fixedFees","type":"tuple[]","components":[{"internalType":"uint32","name":"amount","type":"uint32"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"bool","name":"useCurrentTokenForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.RoyaltyFee[]","name":"royaltyFees","type":"tuple[]","components":[{"internalType":"uint32","name":"numerator","type":"uint32"},{"internalType":"uint32","name":"denominator","type":"uint32"},{"internalType":"uint32","name":"amount","type":"uint32"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]}],"stateMutability":"payable","type":"function","name":"createNonFungibleTokenWithCustomFees","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"address","name":"tokenAddress","type":"address"}]},{"inputs":[{"internalType":"struct IHederaTokenService.TokenTransferList[]","name":"tokenTransfers","type":"tuple[]","components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"struct IHederaTokenService.AccountAmount[]","name":"transfers","type":"tuple[]","components":[{"internalType":"address","name":"accountID","type":"address"},{"internalType":"int64","name":"amount","type":"int64"}]},{"internalType":"struct IHederaTokenService.NftTransfer[]","name":"nftTransfers","type":"tuple[]","components":[{"internalType":"address","name":"senderAccountID","type":"address"},{"internalType":"address","name":"receiverAccountID","type":"address"},{"internalType":"int64","name":"serialNumber","type":"int64"}]}]}],"stateMutability":"nonpayable","type":"function","name":"cryptoTransfer","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deleteToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"dissociateToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"dissociateTokens","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"freezeToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"int64","name":"serialNumber","type":"int64"}],"stateMutability":"nonpayable","type":"function","name":"getApproved","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"address","name":"approved","type":"address"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getFungibleTokenInfo","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"struct IHederaTokenService.FungibleTokenInfo","name":"fungibleTokenInfo","type":"tuple","components":[{"internalType":"struct IHederaTokenService.TokenInfo","name":"tokenInfo","type":"tuple","components":[{"internalType":"struct IHederaTokenService.HederaToken","name":"hedera","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"bool","name":"tokenSupplyType","type":"bool"},{"internalType":"uint32","name":"maxSupply","type":"uint32"},{"internalType":"bool","name":"freezeDefault","type":"bool"},{"internalType":"struct IHederaTokenService.TokenKey[]","name":"tokenKeys","type":"tuple[]","components":[{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]},{"internalType":"struct IHederaTokenService.Expiry","name":"expiry","type":"tuple","components":[{"internalType":"uint32","name":"second","type":"uint32"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"uint32","name":"autoRenewPeriod","type":"uint32"}]}]},{"internalType":"struct IHederaTokenService.FixedFee[]","name":"fixedFees","type":"tuple[]","components":[{"internalType":"uint32","name":"amount","type":"uint32"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"bool","name":"useCurrentTokenForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.FractionalFee[]","name":"fractionalFees","type":"tuple[]","components":[{"internalType":"uint32","name":"numerator","type":"uint32"},{"internalType":"uint32","name":"denominator","type":"uint32"},{"internalType":"uint32","name":"minimumAmount","type":"uint32"},{"internalType":"uint32","name":"maximumAmount","type":"uint32"},{"internalType":"bool","name":"netOfTransfers","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.RoyaltyFee[]","name":"royaltyFees","type":"tuple[]","components":[{"internalType":"uint32","name":"numerator","type":"uint32"},{"internalType":"uint32","name":"denominator","type":"uint32"},{"internalType":"uint32","name":"amount","type":"uint32"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"bool","name":"defaultKycStatus","type":"bool"},{"internalType":"bool","name":"deleted","type":"bool"},{"internalType":"string","name":"ledgerId","type":"string"},{"internalType":"bool","name":"pauseStatus","type":"bool"},{"internalType":"uint64","name":"totalSupply","type":"uint64"}]},{"internalType":"uint32","name":"decimals","type":"uint32"}]}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"int64","name":"serialNumber","type":"int64"}],"stateMutability":"nonpayable","type":"function","name":"getNonFungibleTokenInfo","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"struct IHederaTokenService.NonFungibleTokenInfo","name":"nonFungibleTokenInfo","type":"tuple","components":[{"internalType":"struct IHederaTokenService.TokenInfo","name":"tokenInfo","type":"tuple","components":[{"internalType":"struct IHederaTokenService.HederaToken","name":"hedera","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"bool","name":"tokenSupplyType","type":"bool"},{"internalType":"uint32","name":"maxSupply","type":"uint32"},{"internalType":"bool","name":"freezeDefault","type":"bool"},{"internalType":"struct IHederaTokenService.TokenKey[]","name":"tokenKeys","type":"tuple[]","components":[{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]},{"internalType":"struct IHederaTokenService.Expiry","name":"expiry","type":"tuple","components":[{"internalType":"uint32","name":"second","type":"uint32"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"uint32","name":"autoRenewPeriod","type":"uint32"}]}]},{"internalType":"struct IHederaTokenService.FixedFee[]","name":"fixedFees","type":"tuple[]","components":[{"internalType":"uint32","name":"amount","type":"uint32"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"bool","name":"useCurrentTokenForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.FractionalFee[]","name":"fractionalFees","type":"tuple[]","components":[{"internalType":"uint32","name":"numerator","type":"uint32"},{"internalType":"uint32","name":"denominator","type":"uint32"},{"internalType":"uint32","name":"minimumAmount","type":"uint32"},{"internalType":"uint32","name":"maximumAmount","type":"uint32"},{"internalType":"bool","name":"netOfTransfers","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.RoyaltyFee[]","name":"royaltyFees","type":"tuple[]","components":[{"internalType":"uint32","name":"numerator","type":"uint32"},{"internalType":"uint32","name":"denominator","type":"uint32"},{"internalType":"uint32","name":"amount","type":"uint32"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"bool","name":"defaultKycStatus","type":"bool"},{"internalType":"bool","name":"deleted","type":"bool"},{"internalType":"string","name":"ledgerId","type":"string"},{"internalType":"bool","name":"pauseStatus","type":"bool"},{"internalType":"uint64","name":"totalSupply","type":"uint64"}]},{"internalType":"int64","name":"serialNumber","type":"int64"},{"internalType":"address","name":"ownerId","type":"address"},{"internalType":"int64","name":"creationTime","type":"int64"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"address","name":"spenderId","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getTokenCustomFees","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"struct IHederaTokenService.FixedFee[]","name":"fixedFees","type":"tuple[]","components":[{"internalType":"uint32","name":"amount","type":"uint32"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"bool","name":"useCurrentTokenForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.FractionalFee[]","name":"fractionalFees","type":"tuple[]","components":[{"internalType":"uint32","name":"numerator","type":"uint32"},{"internalType":"uint32","name":"denominator","type":"uint32"},{"internalType":"uint32","name":"minimumAmount","type":"uint32"},{"internalType":"uint32","name":"maximumAmount","type":"uint32"},{"internalType":"bool","name":"netOfTransfers","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.RoyaltyFee[]","name":"royaltyFees","type":"tuple[]","components":[{"internalType":"uint32","name":"numerator","type":"uint32"},{"internalType":"uint32","name":"denominator","type":"uint32"},{"internalType":"uint32","name":"amount","type":"uint32"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getTokenDefaultFreezeStatus","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"bool","name":"defaultFreezeStatus","type":"bool"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getTokenDefaultKycStatus","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"bool","name":"defaultKycStatus","type":"bool"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getTokenExpiryInfo","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"struct IHederaTokenService.Expiry","name":"expiry","type":"tuple","components":[{"internalType":"uint32","name":"second","type":"uint32"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"uint32","name":"autoRenewPeriod","type":"uint32"}]}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getTokenInfo","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"struct IHederaTokenService.TokenInfo","name":"tokenInfo","type":"tuple","components":[{"internalType":"struct IHederaTokenService.HederaToken","name":"hedera","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"bool","name":"tokenSupplyType","type":"bool"},{"internalType":"uint32","name":"maxSupply","type":"uint32"},{"internalType":"bool","name":"freezeDefault","type":"bool"},{"internalType":"struct IHederaTokenService.TokenKey[]","name":"tokenKeys","type":"tuple[]","components":[{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]},{"internalType":"struct IHederaTokenService.Expiry","name":"expiry","type":"tuple","components":[{"internalType":"uint32","name":"second","type":"uint32"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"uint32","name":"autoRenewPeriod","type":"uint32"}]}]},{"internalType":"struct IHederaTokenService.FixedFee[]","name":"fixedFees","type":"tuple[]","components":[{"internalType":"uint32","name":"amount","type":"uint32"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"bool","name":"useCurrentTokenForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.FractionalFee[]","name":"fractionalFees","type":"tuple[]","components":[{"internalType":"uint32","name":"numerator","type":"uint32"},{"internalType":"uint32","name":"denominator","type":"uint32"},{"internalType":"uint32","name":"minimumAmount","type":"uint32"},{"internalType":"uint32","name":"maximumAmount","type":"uint32"},{"internalType":"bool","name":"netOfTransfers","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"struct IHederaTokenService.RoyaltyFee[]","name":"royaltyFees","type":"tuple[]","components":[{"internalType":"uint32","name":"numerator","type":"uint32"},{"internalType":"uint32","name":"denominator","type":"uint32"},{"internalType":"uint32","name":"amount","type":"uint32"},{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"bool","name":"useHbarsForPayment","type":"bool"},{"internalType":"address","name":"feeCollector","type":"address"}]},{"internalType":"bool","name":"defaultKycStatus","type":"bool"},{"internalType":"bool","name":"deleted","type":"bool"},{"internalType":"string","name":"ledgerId","type":"string"},{"internalType":"bool","name":"pauseStatus","type":"bool"},{"internalType":"uint64","name":"totalSupply","type":"uint64"}]}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"keyType","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getTokenKey","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getTokenType","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"int32","name":"tokenType","type":"int32"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantTokenKyc","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"bool","name":"approved","type":"bool"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"isFrozen","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"bool","name":"frozen","type":"bool"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"isKyc","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"bool","name":"kycGranted","type":"bool"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"isToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"bool","name":"isToken","type":"bool"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint64","name":"amount","type":"uint64"},{"internalType":"bytes[]","name":"metadata","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"mintToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"},{"internalType":"uint64","name":"newTotalSupply","type":"uint64"},{"internalType":"int64[]","name":"serialNumbers","type":"int64[]"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"pauseToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeTokenKyc","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"int64","name":"serialNumber","type":"int64"}],"stateMutability":"nonpayable","type":"function","name":"transferNFT","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address[]","name":"sender","type":"address[]"},{"internalType":"address[]","name":"receiver","type":"address[]"},{"internalType":"int64[]","name":"serialNumber","type":"int64[]"}],"stateMutability":"nonpayable","type":"function","name":"transferNFTs","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"int64","name":"amount","type":"int64"}],"stateMutability":"nonpayable","type":"function","name":"transferToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address[]","name":"accountId","type":"address[]"},{"internalType":"int64[]","name":"amount","type":"int64[]"}],"stateMutability":"nonpayable","type":"function","name":"transferTokens","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unfreezeToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unpauseToken","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"struct IHederaTokenService.Expiry","name":"expiryInfo","type":"tuple","components":[{"internalType":"uint32","name":"second","type":"uint32"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"uint32","name":"autoRenewPeriod","type":"uint32"}]}],"stateMutability":"nonpayable","type":"function","name":"updateTokenExpiryInfo","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"struct IHederaTokenService.HederaToken","name":"tokenInfo","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"bool","name":"tokenSupplyType","type":"bool"},{"internalType":"uint32","name":"maxSupply","type":"uint32"},{"internalType":"bool","name":"freezeDefault","type":"bool"},{"internalType":"struct IHederaTokenService.TokenKey[]","name":"tokenKeys","type":"tuple[]","components":[{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]},{"internalType":"struct IHederaTokenService.Expiry","name":"expiry","type":"tuple","components":[{"internalType":"uint32","name":"second","type":"uint32"},{"internalType":"address","name":"autoRenewAccount","type":"address"},{"internalType":"uint32","name":"autoRenewPeriod","type":"uint32"}]}]}],"stateMutability":"nonpayable","type":"function","name":"updateTokenInfo","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"struct IHederaTokenService.TokenKey[]","name":"keys","type":"tuple[]","components":[{"internalType":"uint256","name":"keyType","type":"uint256"},{"internalType":"struct IHederaTokenService.KeyValue","name":"key","type":"tuple","components":[{"internalType":"bool","name":"inheritAccountKey","type":"bool"},{"internalType":"address","name":"contractId","type":"address"},{"internalType":"bytes","name":"ed25519","type":"bytes"},{"internalType":"bytes","name":"ECDSA_secp256k1","type":"bytes"},{"internalType":"address","name":"delegatableContractId","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"updateTokenKeys","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint32","name":"amount","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"wipeTokenAccount","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"int64[]","name":"serialNumbers","type":"int64[]"}],"stateMutability":"nonpayable","type":"function","name":"wipeTokenAccountNFT","outputs":[{"internalType":"int64","name":"responseCode","type":"int64"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address,address)":{"params":{"owner":"the owner of the tokens to be spent","spender":"the spender of the tokens","token":"The Hedera token address to check the allowance of"},"returns":{"allowance":"The amount which spender is still allowed to withdraw from owner.","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"approve(address,address,uint256)":{"params":{"amount":"the amount of tokens authorized to spend.","spender":"the account address authorized to spend","token":"The hedera token address to approve"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"approveNFT(address,address,int64)":{"params":{"approved":"The new approved NFT controller. To revoke approvals pass in the zero address.","serialNumber":"The NFT serial number to approve","token":"The Hedera NFT token address to approve"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"associateToken(address,address)":{"params":{"account":"The account to be associated with the provided token","token":"The token to be associated with the provided account"}},"associateTokens(address,address[])":{"params":{"account":"The account to be associated with the provided tokens","tokens":"The tokens to be associated with the provided account. In the case of NON_FUNGIBLE_UNIQUE Type, once an account is associated, it can hold any number of NFTs (serial numbers) of that token type"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"burnToken(address,uint64,int64[])":{"params":{"amount":"Applicable to tokens of type FUNGIBLE_COMMON. The amount to burn from the Treasury Account. Amount must be a positive non-zero number, not bigger than the token balance of the treasury account (0; balance], represented in the lowest denomination.","serialNumbers":"Applicable to tokens of type NON_FUNGIBLE_UNIQUE. The list of serial numbers to be burned.","token":"The token for which to burn tokens. If token does not exist, transaction results in INVALID_TOKEN_ID"},"returns":{"newTotalSupply":"The new supply of tokens. For NFTs it is the total count of NFTs","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"createFungibleToken((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)),uint256,uint256)":{"params":{"decimals":"the number of decimal places a token is divisible by","initialTotalSupply":"Specifies the initial supply of tokens to be put in circulation. The initial supply is sent to the Treasury Account. The supply is in the lowest denomination possible.","token":"the basic properties of the token being created"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22.","tokenAddress":"the created token's address"}},"createFungibleTokenWithCustomFees((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)),uint256,uint256,(uint32,address,bool,bool,address)[],(uint32,uint32,uint32,uint32,bool,address)[])":{"params":{"decimals":"the number of decimal places a token is divisible by.","fixedFees":"list of fixed fees to apply to the token","fractionalFees":"list of fractional fees to apply to the token","initialTotalSupply":"Specifies the initial supply of tokens to be put in circulation. The initial supply is sent to the Treasury Account. The supply is in the lowest denomination possible.","token":"the basic properties of the token being created"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22.","tokenAddress":"the created token's address"}},"createNonFungibleToken((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)))":{"params":{"token":"the basic properties of the token being created"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22.","tokenAddress":"the created token's address"}},"createNonFungibleTokenWithCustomFees((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)),(uint32,address,bool,bool,address)[],(uint32,uint32,uint32,address,bool,address)[])":{"params":{"fixedFees":"list of fixed fees to apply to the token","royaltyFees":"list of royalty fees to apply to the token","token":"the basic properties of the token being created"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22.","tokenAddress":"the created token's address"}},"cryptoTransfer((address,(address,int64)[],(address,address,int64)[])[])":{"params":{"tokenTransfers":"the list of transfers to do"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"deleteToken(address)":{"params":{"token":"The token address to be deleted"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"dissociateToken(address,address)":{"params":{"account":"The account to be associated with the provided token","token":"The token to be associated with the provided account"}},"dissociateTokens(address,address[])":{"params":{"account":"The account to be dissociated from the provided tokens","tokens":"The tokens to be dissociated from the provided account."},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"freezeToken(address,address)":{"params":{"account":"The account address to be frozen","token":"The token address"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"getApproved(address,int64)":{"params":{"serialNumber":"The NFT to find the approved address for","token":"The Hedera NFT token address to check approval"},"returns":{"approved":"The approved address for this NFT, or the zero address if there is none","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"getFungibleTokenInfo(address)":{"params":{"token":"The token address to check"},"returns":{"fungibleTokenInfo":"FungibleTokenInfo info for `token`","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"getNonFungibleTokenInfo(address,int64)":{"params":{"serialNumber":"The NFT serialNumber to check","token":"The token address to check"},"returns":{"nonFungibleTokenInfo":"NonFungibleTokenInfo info for `token` `serialNumber`","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"getTokenCustomFees(address)":{"params":{"token":"The token address to check"},"returns":{"fixedFees":"Set of fixed fees for `token`","fractionalFees":"Set of fractional fees for `token`","responseCode":"The response code for the status of the request. SUCCESS is 22.","royaltyFees":"Set of royalty fees for `token`"}},"getTokenDefaultFreezeStatus(address)":{"params":{"token":"The token address to check"},"returns":{"defaultFreezeStatus":"True if `token` default freeze status is frozen.","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"getTokenDefaultKycStatus(address)":{"params":{"token":"The token address to check"},"returns":{"defaultKycStatus":"True if `token` default kyc status is KycNotApplicable and false if Revoked.","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"getTokenExpiryInfo(address)":{"params":{"token":"The token address to check"},"returns":{"expiry":"Expiry info for `token`","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"getTokenInfo(address)":{"params":{"token":"The token address to check"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22.","tokenInfo":"TokenInfo info for `token`"}},"getTokenKey(address,uint256)":{"params":{"keyType":"The keyType of the desired KeyValue","token":"The token address to check"},"returns":{"key":"KeyValue info for key of type `keyType`","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"getTokenType(address)":{"params":{"token":"The token address"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22. ","tokenType":"the token type. 0 is FUNGIBLE_COMMON, 1 is NON_FUNGIBLE_UNIQUE, -1 is UNRECOGNIZED "}},"grantTokenKyc(address,address)":{"params":{"account":"The account address to grant kyc","token":"The token address"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"isApprovedForAll(address,address,address)":{"params":{"operator":"The address that acts on behalf of the owner","owner":"The address that owns the NFTs","token":"The Hedera NFT token address to approve"},"returns":{"approved":"True if `operator` is an approved operator for `owner`, false otherwise","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"isFrozen(address,address)":{"params":{"account":"The account address associated with the token","token":"The token address to check"},"returns":{"frozen":"True if `account` is frozen for `token`","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"isKyc(address,address)":{"params":{"account":"The account address associated with the token","token":"The token address to check"},"returns":{"kycGranted":"True if `account` has kyc granted for `token`","responseCode":"The response code for the status of the request. SUCCESS is 22."}},"isToken(address)":{"params":{"token":"The token address"},"returns":{"isToken":"True if valid token found for the given address ","responseCode":"The response code for the status of the request. SUCCESS is 22. "}},"mintToken(address,uint64,bytes[])":{"params":{"amount":"Applicable to tokens of type FUNGIBLE_COMMON. The amount to mint to the Treasury Account. Amount must be a positive non-zero number represented in the lowest denomination of the token. The new supply must be lower than 2^63.","metadata":"Applicable to tokens of type NON_FUNGIBLE_UNIQUE. A list of metadata that are being created. Maximum allowed size of each metadata is 100 bytes","token":"The token for which to mint tokens. If token does not exist, transaction results in INVALID_TOKEN_ID"},"returns":{"newTotalSupply":"The new supply of tokens. For NFTs it is the total count of NFTs","responseCode":"The response code for the status of the request. SUCCESS is 22.","serialNumbers":"If the token is an NFT the newly generate serial numbers, othersise empty."}},"pauseToken(address)":{"params":{"token":"The token address to be paused"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"revokeTokenKyc(address,address)":{"params":{"account":"The account address to revoke kyc","token":"The token address"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"setApprovalForAll(address,address,bool)":{"params":{"approved":"True if the operator is approved, false to revoke approval","operator":"Address to add to the set of authorized operators","token":"The Hedera NFT token address to approve"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"transferNFT(address,address,address,int64)":{"params":{"recipient":"The receiver of the transaction","sender":"The sender for the transaction","serialNumber":"The serial number of the NFT to transfer.","token":"The token to transfer to/from"}},"transferNFTs(address,address[],address[],int64[])":{"params":{"receiver":"the receiver of the nft sent by the same index at sender","sender":"the sender of an nft","serialNumber":"the serial number of the nft sent by the same index at sender","token":"The ID of the token as a solidity address"}},"transferToken(address,address,address,int64)":{"params":{"amount":"Non-negative value to send. a negative value will result in a failure.","recipient":"The receiver of the transaction","sender":"The sender for the transaction","token":"The token to transfer to/from"}},"transferTokens(address,address[],int64[])":{"params":{"accountId":"account to do a transfer to/from","amount":"The amount from the accountId at the same index","token":"The ID of the token as a solidity address"}},"unfreezeToken(address,address)":{"params":{"account":"The account address to be unfrozen","token":"The token address"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"unpauseToken(address)":{"params":{"token":"The token address to be unpaused"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"updateTokenExpiryInfo(address,(uint32,address,uint32))":{"params":{"expiryInfo":"The hedera token expiry info","token":"The token address"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"updateTokenInfo(address,(string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)))":{"params":{"token":"The token address","tokenInfo":"The hedera token info to update token with"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"updateTokenKeys(address,(uint256,(bool,address,bytes,bytes,address))[])":{"params":{"keys":"The token keys","token":"The token address"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"wipeTokenAccount(address,address,uint32)":{"params":{"account":"The account address to revoke kyc","amount":"The number of tokens to wipe","token":"The token address"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}},"wipeTokenAccountNFT(address,address,int64[])":{"params":{"account":"The account address to revoke kyc","serialNumbers":"The serial numbers of token to wipe","token":"The token address"},"returns":{"responseCode":"The response code for the status of the request. SUCCESS is 22."}}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address,address)":{"notice":"Returns the amount which spender is still allowed to withdraw from owner. Only Applicable to Fungible Tokens"},"approve(address,address,uint256)":{"notice":"Allows spender to withdraw from your account multiple times, up to the value amount. If this function is called again it overwrites the current allowance with value. Only Applicable to Fungible Tokens"},"approveNFT(address,address,int64)":{"notice":"Allow or reaffirm the approved address to transfer an NFT the approved address does not own. Only Applicable to NFT Tokens"},"associateToken(address,address)":{"notice":"Single-token variant of associateTokens. Will be mapped to a single entry array call of associateTokens"},"associateTokens(address,address[])":{"notice":"Associates the provided account with the provided tokens. Must be signed by the provided Account's key or called from the accounts contract key If the provided account is not found, the transaction will resolve to INVALID_ACCOUNT_ID. If the provided account has been deleted, the transaction will resolve to ACCOUNT_DELETED. If any of the provided tokens is not found, the transaction will resolve to INVALID_TOKEN_REF. If any of the provided tokens has been deleted, the transaction will resolve to TOKEN_WAS_DELETED. If an association between the provided account and any of the tokens already exists, the transaction will resolve to TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT. If the provided account's associations count exceed the constraint of maximum token associations per account, the transaction will resolve to TOKENS_PER_ACCOUNT_LIMIT_EXCEEDED. On success, associations between the provided account and tokens are made and the account is ready to interact with the tokens."},"burnToken(address,uint64,int64[])":{"notice":"Burns an amount of the token from the defined treasury account"},"createFungibleToken((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)),uint256,uint256)":{"notice":"Creates a Fungible Token with the specified properties"},"createFungibleTokenWithCustomFees((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)),uint256,uint256,(uint32,address,bool,bool,address)[],(uint32,uint32,uint32,uint32,bool,address)[])":{"notice":"Creates a Fungible Token with the specified properties"},"createNonFungibleToken((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)))":{"notice":"Creates an Non Fungible Unique Token with the specified properties"},"createNonFungibleTokenWithCustomFees((string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)),(uint32,address,bool,bool,address)[],(uint32,uint32,uint32,address,bool,address)[])":{"notice":"Creates an Non Fungible Unique Token with the specified properties"},"cryptoTransfer((address,(address,int64)[],(address,address,int64)[])[])":{"notice":"Initiates a Token Transfer"},"deleteToken(address)":{"notice":"Operation to delete token"},"dissociateToken(address,address)":{"notice":"Single-token variant of dissociateTokens. Will be mapped to a single entry array call of dissociateTokens"},"dissociateTokens(address,address[])":{"notice":"Dissociates the provided account with the provided tokens. Must be signed by the provided Account's key. If the provided account is not found, the transaction will resolve to INVALID_ACCOUNT_ID. If the provided account has been deleted, the transaction will resolve to ACCOUNT_DELETED. If any of the provided tokens is not found, the transaction will resolve to INVALID_TOKEN_REF. If any of the provided tokens has been deleted, the transaction will resolve to TOKEN_WAS_DELETED. If an association between the provided account and any of the tokens does not exist, the transaction will resolve to TOKEN_NOT_ASSOCIATED_TO_ACCOUNT. If a token has not been deleted and has not expired, and the user has a nonzero balance, the transaction will resolve to TRANSACTION_REQUIRES_ZERO_TOKEN_BALANCES. If a fungible token has expired, the user can disassociate even if their token balance is not zero. If a non fungible token has expired, the user can not disassociate if their token balance is not zero. The transaction will resolve to TRANSACTION_REQUIRED_ZERO_TOKEN_BALANCES. On success, associations between the provided account and tokens are removed."},"freezeToken(address,address)":{"notice":"Operation to freeze token account"},"getApproved(address,int64)":{"notice":"Get the approved address for a single NFT Only Applicable to NFT Tokens"},"getFungibleTokenInfo(address)":{"notice":"Query fungible token info"},"getNonFungibleTokenInfo(address,int64)":{"notice":"Query non fungible token info"},"getTokenCustomFees(address)":{"notice":"Query token custom fees"},"getTokenDefaultFreezeStatus(address)":{"notice":"Query token default freeze status"},"getTokenDefaultKycStatus(address)":{"notice":"Query token default kyc status"},"getTokenExpiryInfo(address)":{"notice":"Query token expiry info"},"getTokenInfo(address)":{"notice":"Query token info"},"getTokenKey(address,uint256)":{"notice":"Query token KeyValue"},"getTokenType(address)":{"notice":"Query to return the token type for a given address"},"grantTokenKyc(address,address)":{"notice":"Operation to grant kyc to token account"},"isApprovedForAll(address,address,address)":{"notice":"Query if an address is an authorized operator for another address Only Applicable to NFT Tokens"},"isFrozen(address,address)":{"notice":"Query if token account is frozen"},"isKyc(address,address)":{"notice":"Query if token account has kyc granted"},"isToken(address)":{"notice":"Query if valid token found for the given address"},"mintToken(address,uint64,bytes[])":{"notice":"Mints an amount of the token to the defined treasury account"},"pauseToken(address)":{"notice":"Operation to pause token"},"revokeTokenKyc(address,address)":{"notice":"Operation to revoke kyc to token account"},"setApprovalForAll(address,address,bool)":{"notice":"Enable or disable approval for a third party (\"operator\") to manage all of `msg.sender`'s assets"},"transferNFT(address,address,address,int64)":{"notice":"Transfers tokens where the calling account/contract is implicitly the first entry in the token transfer list, where the amount is the value needed to zero balance the transfers. Regular signing rules apply for sending (positive amount) or receiving (negative amount)"},"transferNFTs(address,address[],address[],int64[])":{"notice":"Initiates a Non-Fungable Token Transfer"},"transferToken(address,address,address,int64)":{"notice":"Transfers tokens where the calling account/contract is implicitly the first entry in the token transfer list, where the amount is the value needed to zero balance the transfers. Regular signing rules apply for sending (positive amount) or receiving (negative amount)"},"transferTokens(address,address[],int64[])":{"notice":"Initiates a Fungible Token Transfer"},"unfreezeToken(address,address)":{"notice":"Operation to unfreeze token account"},"unpauseToken(address)":{"notice":"Operation to unpause token"},"updateTokenExpiryInfo(address,(uint32,address,uint32))":{"notice":"Operation to update token expiry info"},"updateTokenInfo(address,(string,string,address,string,bool,uint32,bool,(uint256,(bool,address,bytes,bytes,address))[],(uint32,address,uint32)))":{"notice":"Operation to update token info"},"updateTokenKeys(address,(uint256,(bool,address,bytes,bytes,address))[])":{"notice":"Operation to update token expiry info"},"wipeTokenAccount(address,address,uint32)":{"notice":"Operation to wipe fungible tokens from account"},"wipeTokenAccountNFT(address,address,int64[])":{"notice":"Operation to wipe non fungible tokens from account"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/common/safe-HTS/IHederaTokenService.sol":"IHederaTokenService"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/common/safe-HTS/IHederaTokenService.sol":{"keccak256":"0x04e65d7cda6dae49599602513cae4b17dd3c035bc0770e70e61035c9cb147735","urls":["bzz-raw://a47bdf80b1e9c7e0cf3fd214c6527a074693817bb76ef472fc69ea0f2d9c0786","dweb:/ipfs/QmZGnZHtFC6RpxRdRPo3JLKT5LX67hRa8ne72TRWCGgz2W"],"license":"Apache-2.0"}},"version":1},"id":11} \ No newline at end of file diff --git a/out/safeconsole.sol/safeconsole.json b/out/safeconsole.sol/safeconsole.json new file mode 100644 index 0000000..8dc9984 --- /dev/null +++ b/out/safeconsole.sol/safeconsole.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e6bb089a2091a709c1cc23db701058b14660719902e20a769383e10222be5fc164736f6c63430008180033","sourceMap":"163:397734:18:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;163:397734:18;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e6bb089a2091a709c1cc23db701058b14660719902e20a769383e10222be5fc164736f6c63430008180033","sourceMap":"163:397734:18:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"philogy \",\"details\":\"Code generated automatically by script.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/safeconsole.sol\":\"safeconsole\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/safeconsole.sol":"safeconsole"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"}},"version":1},"id":18} \ No newline at end of file diff --git a/out/src/Test.sol/Test.json b/out/src/Test.sol/Test.json new file mode 100644 index 0000000..7345a0f --- /dev/null +++ b/out/src/Test.sol/Test.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Test.sol\":\"Test\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@pythnetwork/=node_modules/@pythnetwork/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe\",\"dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x1e2c73d51d6b0d1101f3a4cf0e6def9818a891d6aa8d306f2b127943a69dca2d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ab436d74b405f890e2634c6077df15cc196b4032ec1bdabaaf021ef209e68db\",\"dweb:/ipfs/Qmbb1Qgtdn6S4aqrnpg3y9TDX7erFFcRir9GN62Y7QazaY\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391\",\"dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8\",\"dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194\",\"dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87\",\"dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.10+commit.fc410830"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@pythnetwork/=node_modules/@pythnetwork/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Test.sol":"Test"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270","urls":["bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe","dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x1e2c73d51d6b0d1101f3a4cf0e6def9818a891d6aa8d306f2b127943a69dca2d","urls":["bzz-raw://0ab436d74b405f890e2634c6077df15cc196b4032ec1bdabaaf021ef209e68db","dweb:/ipfs/Qmbb1Qgtdn6S4aqrnpg3y9TDX7erFFcRir9GN62Y7QazaY"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d","urls":["bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391","dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0xfd9e719ff0673fdd8ff83bbe72ee8cae0273d61937d27fde5d9159d9849233f4","urls":["bzz-raw://b14aaef0d76f2e5257e4e3ab33895d5260d4c7707ff4d37fea1f31d25c8684a8","dweb:/ipfs/QmRd6BMh4FNDPW8Niy4TU2XrtKqAc6GRTfw8xjSwpQ42Gy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a","urls":["bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194","dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9","urls":["bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87","dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"}},"version":1},"id":12} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..b17777e --- /dev/null +++ b/package-lock.json @@ -0,0 +1,11994 @@ +{ + "name": "accelerator-defi-eip", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "accelerator-defi-eip", + "version": "1.0.0", + "dependencies": { + "@hashgraph/hedera-local": "^2.19.1", + "@openzeppelin/contracts": "5.0.2", + "@openzeppelin/contracts-upgradeable": "5.0.2", + "@pythnetwork/pyth-sdk-solidity": "^3.1.0" + }, + "devDependencies": { + "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", + "@nomicfoundation/hardhat-ethers": "^3.0.5", + "@nomicfoundation/hardhat-network-helpers": "^1.0.0", + "@nomicfoundation/hardhat-toolbox": "^4.0.0", + "@nomicfoundation/hardhat-verify": "^2.0.0", + "@nomiclabs/hardhat-ethers": "^2.2.3", + "@openzeppelin/hardhat-upgrades": "^3.0.4", + "@typechain/ethers-v6": "^0.5.0", + "@typechain/hardhat": "^9.0.0", + "@types/chai": "^4.2.0", + "@types/elliptic": "^6.4.18", + "@types/mocha": "^9.1.0", + "@types/node": "^18.0.0", + "chai": "^4.2.0", + "dotenv": "^16.4.5", + "elliptic": "^6.5.5", + "eslint": "^8.57.0", + "eslint-config-standard-with-typescript": "^43.0.1", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-n": "^16.6.2", + "eslint-plugin-promise": "^6.1.1", + "ethers": "^6.11.1", + "hardhat": "^2.21.0", + "hardhat-gas-reporter": "^1.0.10", + "solhint": "^4.1.1", + "solhint-plugin-prettier": "^0.1.0", + "solidity-coverage": "^0.8.0", + "ts-node": "^8.0.0", + "typechain": "^8.3.0", + "typescript": "^4.5.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" + }, + "node_modules/@aws-crypto/sha256-js": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.2.2.tgz", + "integrity": "sha512-Nr1QJIbW/afYYGzYvrF70LtaHrIRtd4TNAglX8BvlfxJLZ45SAmueIKYl5tWoNBPzp65ymXGFK0Bb1vZUpuc9g==", + "dev": true, + "dependencies": { + "@aws-crypto/util": "^1.2.2", + "@aws-sdk/types": "^3.1.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/util": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-1.2.2.tgz", + "integrity": "sha512-H8PjG5WJ4wz0UXAFXeJjWCW1vkvIJ3qUUD+rGRwJ2/hj+xT58Qle2MTql/2MGzkU+1JLAFuR6aJpLAjHwhmwwg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "^3.1.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-sdk/types": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.523.0.tgz", + "integrity": "sha512-AqGIu4u+SxPiUuNBp2acCVcq80KDUFjxe6e3cMTvKWTzCbrVk1AXv0dAaJnCmdkWIha6zJDWxpIk/aL4EGhZ9A==", + "dev": true, + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/types/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/@aws-sdk/util-utf8-browser": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz", + "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==", + "dev": true, + "dependencies": { + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/util-utf8-browser/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@balena/dockerignore": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz", + "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==" + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@ethereumjs/rlp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", + "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", + "dev": true, + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/util": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", + "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", + "dev": true, + "dependencies": { + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/util/node_modules/@noble/curves": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", + "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", + "dev": true, + "dependencies": { + "@noble/hashes": "1.3.3" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "dev": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/ethereum-cryptography": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz", + "integrity": "sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==", + "dev": true, + "dependencies": { + "@noble/curves": "1.3.0", + "@noble/hashes": "1.3.3", + "@scure/bip32": "1.3.3", + "@scure/bip39": "1.2.2" + } + }, + "node_modules/@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "node_modules/@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "node_modules/@ethersproject/json-wallets/node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "dev": true + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ] + }, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "node_modules/@ethersproject/providers/node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key/node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/@ethersproject/signing-key/node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@grpc/grpc-js": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.2.tgz", + "integrity": "sha512-5cqCjUvDKJWHGeu1prlrFOUmjuML0NequZKJ38PsCkfwIqPnZq4Q9burPP3It7/+46wpl0KsqVN3s6Te3B9Qtw==", + "dependencies": { + "@grpc/proto-loader": "^0.7.0", + "@types/node": ">=12.12.47" + }, + "engines": { + "node": "^8.13.0 || >=10.10.0" + } + }, + "node_modules/@grpc/proto-loader": { + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", + "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", + "dependencies": { + "lodash.camelcase": "^4.3.0", + "long": "^5.0.0", + "protobufjs": "^7.2.5", + "yargs": "^17.7.2" + }, + "bin": { + "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@grpc/proto-loader/node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/@hashgraph/cryptography": { + "version": "1.4.8-beta.5", + "resolved": "https://registry.npmjs.org/@hashgraph/cryptography/-/cryptography-1.4.8-beta.5.tgz", + "integrity": "sha512-soq2vGLRkdl2Evr+gIvIjCXJjqA1hOAjysBGG+dhP6tKx2PEgEjb3hON/sMbxm3Q4qQdkML/vEthdAV707+flw==", + "dependencies": { + "asn1js": "^3.0.5", + "bignumber.js": "^9.1.1", + "bn.js": "^5.2.1", + "buffer": "^6.0.3", + "crypto-js": "^4.2.0", + "elliptic": "^6.5.4", + "js-base64": "^3.7.4", + "node-forge": "^1.3.1", + "spark-md5": "^3.0.2", + "tweetnacl": "^1.0.3", + "utf8": "^3.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "expo": "^49.0.16", + "expo-crypto": "^10.1.2", + "expo-random": "^12.1.2" + }, + "peerDependenciesMeta": { + "expo": { + "optional": true + }, + "expo-crypto": { + "optional": true + }, + "expo-random": { + "optional": true + } + } + }, + "node_modules/@hashgraph/hedera-local": { + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/@hashgraph/hedera-local/-/hedera-local-2.27.1.tgz", + "integrity": "sha512-Q4JmwZm5OpVS8FznkrWjLX/JFXIzd142LJnzIhpmKfSPJp8Y73kJgfBiGkcDv9e8mk89ZRFaVy6kQbGn0FZaIg==", + "dependencies": { + "@hashgraph/sdk": "^2.48.1", + "blessed": "^0.1.81", + "blessed-terminal": "^0.1.22", + "csv-parser": "^3.0.0", + "detect-port": "^1.6.1", + "dockerode": "^4.0.2", + "dotenv": "^16.4.5", + "ethers": "^6.13.1", + "js-yaml": "^4.1.0", + "rimraf": "^5.0.7", + "semver": "^7.6.2", + "shelljs": "^0.8.5", + "ts-mocha": "^10.0.0", + "yargs": "^17.7.2" + }, + "bin": { + "hedera": "build/index.js" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "node_modules/@hashgraph/hedera-local/node_modules/ethers": { + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.1.tgz", + "integrity": "sha512-hdJ2HOxg/xx97Lm9HdCWk949BfYqYWpyw4//78SiwOLgASyfrNszfMUNB2joKjvGUdwhHfaiMMFFwacVVoLR9A==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/glob": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.3.tgz", + "integrity": "sha512-Q38SGlYRpVtDBPSWEylRyctn7uDeTp4NQERTLiCT1FqA9JXPYWqAVmQU6qh4r/zMM5ehxTcbaO8EjhWnvEhmyg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/rimraf": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.8.tgz", + "integrity": "sha512-XSh0V2/yNhDEi8HwdIefD8MLgs4LQXPag/nEJWs3YUc3Upn+UHa1GyIkEg9xSSNt7HnkO5FjTvmcRzgf+8UZuw==", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/@hashgraph/hedera-local/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@hashgraph/proto": { + "version": "2.15.0-beta.2", + "resolved": "https://registry.npmjs.org/@hashgraph/proto/-/proto-2.15.0-beta.2.tgz", + "integrity": "sha512-vtkW8rZccnch3FKmNj1bLRZsS0YO3w7PuCj8LNq9HgMP6KzzA7scRk8yLm/XyiD7UHJS/l1cFg0Cj/DDRSwGxQ==", + "dependencies": { + "long": "^4.0.0", + "protobufjs": "^7.2.5" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@hashgraph/sdk": { + "version": "2.48.1", + "resolved": "https://registry.npmjs.org/@hashgraph/sdk/-/sdk-2.48.1.tgz", + "integrity": "sha512-ZizLBcgu7bBIx+EuwRWFkBQugAQAkH5ZvKe+dTf53TCVoUw3LPIta+u/hpVIhB9Xm9PJmA9F23DSo+Bmken46Q==", + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@grpc/grpc-js": "1.8.2", + "@hashgraph/cryptography": "1.4.8-beta.5", + "@hashgraph/proto": "2.15.0-beta.2", + "axios": "^1.6.4", + "bignumber.js": "^9.1.1", + "bn.js": "^5.1.1", + "crypto-js": "^4.2.0", + "js-base64": "^3.7.4", + "long": "^4.0.0", + "pino": "^8.14.1", + "pino-pretty": "^10.0.0", + "protobufjs": "^7.2.5", + "rfc4648": "^1.5.3", + "utf8": "^3.0.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "expo": "^49.0.16" + }, + "peerDependenciesMeta": { + "expo": { + "optional": true + } + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "dev": true, + "dependencies": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@metamask/eth-sig-util/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@metamask/eth-sig-util/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/@metamask/eth-sig-util/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dev": true, + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nomicfoundation/edr": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.2.1.tgz", + "integrity": "sha512-Dleau3ItHJh2n85G2J6AIPBoLgu/mOWkmrh26z3VsJE2tp/e00hUk/dqz85ncsVcBYEc6/YOn/DomWu0wSF9tQ==", + "dev": true, + "engines": { + "node": ">= 18" + }, + "optionalDependencies": { + "@nomicfoundation/edr-darwin-arm64": "0.2.1", + "@nomicfoundation/edr-darwin-x64": "0.2.1", + "@nomicfoundation/edr-linux-arm64-gnu": "0.2.1", + "@nomicfoundation/edr-linux-arm64-musl": "0.2.1", + "@nomicfoundation/edr-linux-x64-gnu": "0.2.1", + "@nomicfoundation/edr-linux-x64-musl": "0.2.1", + "@nomicfoundation/edr-win32-arm64-msvc": "0.2.1", + "@nomicfoundation/edr-win32-ia32-msvc": "0.2.1", + "@nomicfoundation/edr-win32-x64-msvc": "0.2.1" + } + }, + "node_modules/@nomicfoundation/edr-darwin-arm64": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.2.1.tgz", + "integrity": "sha512-aMYaRaZVQ/TmyNJIoXf1bU4k0zfinaL9Sy1day4yGlL6eiQPFfRGj9W6TZaZIoYG0XTx/mQWD7dkXJ7LdrleJA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-darwin-x64": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.2.1.tgz", + "integrity": "sha512-ma0SLcjHm5L3nPHcKFJB0jv/gKGSKaxr5Z65rurX/eaYUQJ7YGMsb8er9bSCo9rjzOtxf4FoPj3grL3zGpOj8A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-arm64-gnu": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.2.1.tgz", + "integrity": "sha512-NX3G4pBhRitWrjSGY3HTyCq3wKSm5YqrKVOCNQGl9/jcjSovqxlgzFMiTx4YZCzGntfJ/1om9AI84OWxYJjoDw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-arm64-musl": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.2.1.tgz", + "integrity": "sha512-gdQ3QHkt9XRkdtOGQ8fMwS11MXdjLeZgLrqoial4V4qtMaamIMMhVczK+VEvUhD8p7G4BVmp6kmkvcsthmndmw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-x64-gnu": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.2.1.tgz", + "integrity": "sha512-OqabFY37vji6mYbLD9CvG28lja68czeVw58oWByIhFV3BpBu/cyP1oAbhzk3LieylujabS3Ekpvjw2Tkf0A9RQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-x64-musl": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.2.1.tgz", + "integrity": "sha512-vHfFFK2EPISuQUQge+bdjXamb0EUjfl8srYSog1qfiwyLwLeuSbpyyFzDeITAgPpkkFuedTfJW553K0Hipspyg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-win32-arm64-msvc": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-arm64-msvc/-/edr-win32-arm64-msvc-0.2.1.tgz", + "integrity": "sha512-K/mui67RCKxghbSyvhvW3rvyVN1pa9M1Q9APUx1PtWjSSdXDFpqEY1NYsv2syb47Ca8ObJwVMF+LvnB6GvhUOQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/edr-win32-ia32-msvc": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-ia32-msvc/-/edr-win32-ia32-msvc-0.2.1.tgz", + "integrity": "sha512-HHK0mXEtjvfjJrJlqcYgQCy3lZIXS1KNl2GaP8bwEIuEwx++XxXs/ThLjPepM1nhCGICij8IGy7p3KrkzRelsw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-win32-x64-msvc": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.2.1.tgz", + "integrity": "sha512-FY4eQJdj1/y8ST0RyQycx63yr+lvdYNnUkzgWf4X+vPH1lOhXae+L2NDcNCQlTDAfQcD6yz0bkBUkLrlJ8pTww==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/ethereumjs-common": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz", + "integrity": "sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==", + "dev": true, + "dependencies": { + "@nomicfoundation/ethereumjs-util": "9.0.4" + } + }, + "node_modules/@nomicfoundation/ethereumjs-rlp": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz", + "integrity": "sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==", + "dev": true, + "bin": { + "rlp": "bin/rlp.cjs" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@nomicfoundation/ethereumjs-tx": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz", + "integrity": "sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==", + "dev": true, + "dependencies": { + "@nomicfoundation/ethereumjs-common": "4.0.4", + "@nomicfoundation/ethereumjs-rlp": "5.0.4", + "@nomicfoundation/ethereumjs-util": "9.0.4", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "c-kzg": "^2.1.2" + }, + "peerDependenciesMeta": { + "c-kzg": { + "optional": true + } + } + }, + "node_modules/@nomicfoundation/ethereumjs-util": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz", + "integrity": "sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==", + "dev": true, + "dependencies": { + "@nomicfoundation/ethereumjs-rlp": "5.0.4", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "c-kzg": "^2.1.2" + }, + "peerDependenciesMeta": { + "c-kzg": { + "optional": true + } + } + }, + "node_modules/@nomicfoundation/hardhat-chai-matchers": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-2.0.6.tgz", + "integrity": "sha512-Te1Uyo9oJcTCF0Jy9dztaLpshmlpjLf2yPtWXlXuLjMt3RRSmJLm/+rKVTW6gfadAEs12U/it6D0ZRnnRGiICQ==", + "dev": true, + "dependencies": { + "@types/chai-as-promised": "^7.1.3", + "chai-as-promised": "^7.1.1", + "deep-eql": "^4.0.1", + "ordinal": "^1.0.3" + }, + "peerDependencies": { + "@nomicfoundation/hardhat-ethers": "^3.0.0", + "chai": "^4.2.0", + "ethers": "^6.1.0", + "hardhat": "^2.9.4" + } + }, + "node_modules/@nomicfoundation/hardhat-ethers": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.5.tgz", + "integrity": "sha512-RNFe8OtbZK6Ila9kIlHp0+S80/0Bu/3p41HUpaRIoHLm6X3WekTd83vob3rE54Duufu1edCiBDxspBzi2rxHHw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "lodash.isequal": "^4.5.0" + }, + "peerDependencies": { + "ethers": "^6.1.0", + "hardhat": "^2.0.0" + } + }, + "node_modules/@nomicfoundation/hardhat-network-helpers": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.10.tgz", + "integrity": "sha512-R35/BMBlx7tWN5V6d/8/19QCwEmIdbnA4ZrsuXgvs8i2qFx5i7h6mH5pBS4Pwi4WigLH+upl6faYusrNPuzMrQ==", + "dev": true, + "dependencies": { + "ethereumjs-util": "^7.1.4" + }, + "peerDependencies": { + "hardhat": "^2.9.5" + } + }, + "node_modules/@nomicfoundation/hardhat-toolbox": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-4.0.0.tgz", + "integrity": "sha512-jhcWHp0aHaL0aDYj8IJl80v4SZXWMS1A2XxXa1CA6pBiFfJKuZinCkO6wb+POAt0LIfXB3gA3AgdcOccrcwBwA==", + "dev": true, + "peerDependencies": { + "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", + "@nomicfoundation/hardhat-ethers": "^3.0.0", + "@nomicfoundation/hardhat-network-helpers": "^1.0.0", + "@nomicfoundation/hardhat-verify": "^2.0.0", + "@typechain/ethers-v6": "^0.5.0", + "@typechain/hardhat": "^9.0.0", + "@types/chai": "^4.2.0", + "@types/mocha": ">=9.1.0", + "@types/node": ">=16.0.0", + "chai": "^4.2.0", + "ethers": "^6.4.0", + "hardhat": "^2.11.0", + "hardhat-gas-reporter": "^1.0.8", + "solidity-coverage": "^0.8.1", + "ts-node": ">=8.0.0", + "typechain": "^8.3.0", + "typescript": ">=4.5.0" + } + }, + "node_modules/@nomicfoundation/hardhat-verify": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.4.tgz", + "integrity": "sha512-B8ZjhOrmbbRWqJi65jvQblzjsfYktjqj2vmOm+oc2Vu8drZbT2cjeSCRHZKbS7lOtfW78aJZSFvw+zRLCiABJA==", + "dev": true, + "dependencies": { + "@ethersproject/abi": "^5.1.2", + "@ethersproject/address": "^5.0.2", + "cbor": "^8.1.0", + "chalk": "^2.4.2", + "debug": "^4.1.1", + "lodash.clonedeep": "^4.5.0", + "semver": "^6.3.0", + "table": "^6.8.0", + "undici": "^5.14.0" + }, + "peerDependencies": { + "hardhat": "^2.0.4" + } + }, + "node_modules/@nomicfoundation/hardhat-verify/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz", + "integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==", + "dev": true, + "engines": { + "node": ">= 12" + }, + "optionalDependencies": { + "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.1", + "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-freebsd-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.1" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz", + "integrity": "sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz", + "integrity": "sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-freebsd-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz", + "integrity": "sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz", + "integrity": "sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz", + "integrity": "sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz", + "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz", + "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-arm64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz", + "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-ia32-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz", + "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz", + "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomiclabs/hardhat-ethers": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz", + "integrity": "sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg==", + "dev": true, + "peerDependencies": { + "ethers": "^5.0.0", + "hardhat": "^2.0.0" + } + }, + "node_modules/@openzeppelin/contracts": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.0.2.tgz", + "integrity": "sha512-ytPc6eLGcHHnapAZ9S+5qsdomhjo6QBHTDRRBFfTxXIpsicMhVPouPgmUPebZZZGX7vt9USA+Z+0M0dSVtSUEA==" + }, + "node_modules/@openzeppelin/contracts-upgradeable": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.0.2.tgz", + "integrity": "sha512-0MmkHSHiW2NRFiT9/r5Lu4eJq5UJ4/tzlOgYXNAIj/ONkQTVnz22pLxDvp4C4uZ9he7ZFvGn3Driptn1/iU7tQ==", + "peerDependencies": { + "@openzeppelin/contracts": "5.0.2" + } + }, + "node_modules/@openzeppelin/defender-sdk-base-client": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/@openzeppelin/defender-sdk-base-client/-/defender-sdk-base-client-1.13.4.tgz", + "integrity": "sha512-fZjDxdL5WBt6kjKN8j6WlfIsggZKv37W1KoRkT0XwYv7Jslmr22i2qUs8ZreAzATD3ESYQs7YlO7ge0ElqdOKg==", + "dev": true, + "dependencies": { + "amazon-cognito-identity-js": "^6.3.6", + "async-retry": "^1.3.3" + } + }, + "node_modules/@openzeppelin/defender-sdk-deploy-client": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/defender-sdk-deploy-client/-/defender-sdk-deploy-client-1.10.0.tgz", + "integrity": "sha512-PckmUQYwe26/u/s3sjLateSNtKQ0tdAaOyP6spsgaT+us+XUUqAt/EUfEJdGpt8JApsRWYzrQzH6Z0ywoUyqyw==", + "dev": true, + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@openzeppelin/defender-sdk-base-client": "^1.10.0", + "axios": "^1.6.7", + "lodash": "^4.17.21" + } + }, + "node_modules/@openzeppelin/defender-sdk-network-client": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/@openzeppelin/defender-sdk-network-client/-/defender-sdk-network-client-1.13.4.tgz", + "integrity": "sha512-m76WQzqFET4jtFgA74V6Ui4czRoTvBy7leS+BbsIxoKX+NGODhs78y5zq7jSxsLu3c2iY69rujRkzj0Z+sCiiQ==", + "dev": true, + "dependencies": { + "@openzeppelin/defender-sdk-base-client": "^1.13.4", + "axios": "^1.6.8", + "lodash": "^4.17.21" + } + }, + "node_modules/@openzeppelin/hardhat-upgrades": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-3.2.0.tgz", + "integrity": "sha512-xybXIHQIZK2a1HH7ukMToRbIcU9LHfL49gtB0KYptY6f/r9lqrFOupN8aOBueRZW4Ymhc6HGL9bvj7u7t5lDdQ==", + "dev": true, + "dependencies": { + "@openzeppelin/defender-sdk-base-client": "^1.10.0", + "@openzeppelin/defender-sdk-deploy-client": "^1.10.0", + "@openzeppelin/defender-sdk-network-client": "^1.10.0", + "@openzeppelin/upgrades-core": "^1.32.0", + "chalk": "^4.1.0", + "debug": "^4.1.1", + "ethereumjs-util": "^7.1.5", + "proper-lockfile": "^4.1.1", + "undici": "^6.11.1" + }, + "bin": { + "migrate-oz-cli-project": "dist/scripts/migrate-oz-cli-project.js" + }, + "peerDependencies": { + "@nomicfoundation/hardhat-ethers": "^3.0.0", + "@nomicfoundation/hardhat-verify": "^2.0.0", + "ethers": "^6.6.0", + "hardhat": "^2.0.2" + }, + "peerDependenciesMeta": { + "@nomicfoundation/hardhat-verify": { + "optional": true + } + } + }, + "node_modules/@openzeppelin/hardhat-upgrades/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@openzeppelin/hardhat-upgrades/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@openzeppelin/hardhat-upgrades/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@openzeppelin/hardhat-upgrades/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@openzeppelin/hardhat-upgrades/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@openzeppelin/hardhat-upgrades/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@openzeppelin/hardhat-upgrades/node_modules/undici": { + "version": "6.19.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.2.tgz", + "integrity": "sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA==", + "dev": true, + "engines": { + "node": ">=18.17" + } + }, + "node_modules/@openzeppelin/upgrades-core": { + "version": "1.32.5", + "resolved": "https://registry.npmjs.org/@openzeppelin/upgrades-core/-/upgrades-core-1.32.5.tgz", + "integrity": "sha512-R0wprsyJ4xWiRW05kaTfZZkRVpG2g0af3/hpjE7t2mX0Eb2n40MQLokTwqIk4LDzpp910JfLSpB0vBuZ6WNPog==", + "dev": true, + "dependencies": { + "cbor": "^9.0.0", + "chalk": "^4.1.0", + "compare-versions": "^6.0.0", + "debug": "^4.1.1", + "ethereumjs-util": "^7.0.3", + "minimist": "^1.2.7", + "proper-lockfile": "^4.1.1", + "solidity-ast": "^0.4.51" + }, + "bin": { + "openzeppelin-upgrades-core": "dist/cli/cli.js" + } + }, + "node_modules/@openzeppelin/upgrades-core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@openzeppelin/upgrades-core/node_modules/cbor": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz", + "integrity": "sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==", + "dev": true, + "dependencies": { + "nofilter": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@openzeppelin/upgrades-core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@openzeppelin/upgrades-core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@openzeppelin/upgrades-core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@openzeppelin/upgrades-core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@openzeppelin/upgrades-core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "dev": true, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "dev": true, + "dependencies": { + "graceful-fs": "4.2.10" + }, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/@pnpm/npm-conf": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", + "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", + "dev": true, + "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@prettier/sync": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@prettier/sync/-/sync-0.3.0.tgz", + "integrity": "sha512-3dcmCyAxIcxy036h1I7MQU/uEEBq8oLwf1CE3xeze+MPlgkdlb/+w6rGR/1dhp6Hqi17fRS6nvwnOzkESxEkOw==", + "dev": true, + "funding": { + "url": "https://github.com/prettier/prettier-synchronized?sponsor=1" + }, + "peerDependencies": { + "prettier": "^3.0.0" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@pythnetwork/pyth-sdk-solidity": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@pythnetwork/pyth-sdk-solidity/-/pyth-sdk-solidity-3.1.0.tgz", + "integrity": "sha512-NgtEPUTL9r0qqMpIOEtSdUVjrF08fHK6wa7eM8hdjhjzMOti4o053B9oFqpm4lkzJW6eELXuP4sRJOABGmNTUg==" + }, + "node_modules/@scure/base": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz", + "integrity": "sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==", + "dev": true, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.3.tgz", + "integrity": "sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==", + "dev": true, + "dependencies": { + "@noble/curves": "~1.3.0", + "@noble/hashes": "~1.3.2", + "@scure/base": "~1.1.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32/node_modules/@noble/curves": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", + "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", + "dev": true, + "dependencies": { + "@noble/hashes": "1.3.3" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32/node_modules/@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "dev": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.2.tgz", + "integrity": "sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==", + "dev": true, + "dependencies": { + "@noble/hashes": "~1.3.2", + "@scure/base": "~1.1.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sentry/core": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", + "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "dev": true, + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/hub": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", + "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "dev": true, + "dependencies": { + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/minimal": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", + "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "dev": true, + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/node": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", + "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "dev": true, + "dependencies": { + "@sentry/core": "5.30.0", + "@sentry/hub": "5.30.0", + "@sentry/tracing": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/tracing": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", + "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "dev": true, + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", + "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "dev": true, + "dependencies": { + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sindresorhus/is": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@smithy/types": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.11.0.tgz", + "integrity": "sha512-AR0SXO7FuAskfNhyGfSTThpLRntDI5bOrU0xrpVYU0rZyjl3LBXInZFMTP/NNSd7IS6Ksdtar0QvnrPRIhVrLQ==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/types/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/@solidity-parser/parser": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", + "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", + "dev": true, + "dependencies": { + "antlr4ts": "^0.5.0-alpha.4" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dev": true, + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/@typechain/ethers-v6": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz", + "integrity": "sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.15", + "ts-essentials": "^7.0.1" + }, + "peerDependencies": { + "ethers": "6.x", + "typechain": "^8.3.2", + "typescript": ">=4.7.0" + } + }, + "node_modules/@typechain/hardhat": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-9.1.0.tgz", + "integrity": "sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA==", + "dev": true, + "dependencies": { + "fs-extra": "^9.1.0" + }, + "peerDependencies": { + "@typechain/ethers-v6": "^0.5.1", + "ethers": "^6.1.0", + "hardhat": "^2.9.9", + "typechain": "^8.3.2" + } + }, + "node_modules/@types/bn.js": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", + "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/chai": { + "version": "4.3.12", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.12.tgz", + "integrity": "sha512-zNKDHG/1yxm8Il6uCCVsm+dRdEsJlFoDu73X17y09bId6UwoYww+vFBsAcRzl8knM1sab3Dp1VRikFQwDOtDDw==", + "dev": true + }, + "node_modules/@types/chai-as-promised": { + "version": "7.1.8", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz", + "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==", + "dev": true, + "dependencies": { + "@types/chai": "*" + } + }, + "node_modules/@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/elliptic": { + "version": "6.4.18", + "resolved": "https://registry.npmjs.org/@types/elliptic/-/elliptic-6.4.18.tgz", + "integrity": "sha512-UseG6H5vjRiNpQvrhy4VF/JXdA3V/Fp5amvveaL+fs28BZ6xIKJBPnUPRlEaZpysD9MbpfaLi8lbl7PGUAkpWw==", + "dev": true, + "dependencies": { + "@types/bn.js": "*" + } + }, + "node_modules/@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "peer": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "devOptional": true + }, + "node_modules/@types/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true + }, + "node_modules/@types/mocha": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz", + "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.19.22", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.22.tgz", + "integrity": "sha512-p3pDIfuMg/aXBmhkyanPshdfJuX5c5+bQjYLIikPLXAUycEogij/c50n/C+8XOA5L93cU4ZRXtn+dNQGi0IZqQ==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.12", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.12.tgz", + "integrity": "sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==", + "dev": true + }, + "node_modules/@types/secp256k1": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz", + "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true, + "peer": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "dev": true, + "peer": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "dev": true, + "peer": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "dev": true, + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==" + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true, + "engines": { + "node": ">=0.3.0" + } + }, + "node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/amazon-cognito-identity-js": { + "version": "6.3.12", + "resolved": "https://registry.npmjs.org/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.12.tgz", + "integrity": "sha512-s7NKDZgx336cp+oDeUtB2ZzT8jWJp/v2LWuYl+LQtMEODe22RF1IJ4nRiDATp+rp1pTffCZcm44Quw4jx2bqNg==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-js": "1.2.2", + "buffer": "4.9.2", + "fast-base64-decode": "^1.0.0", + "isomorphic-unfetch": "^3.0.0", + "js-cookie": "^2.2.1" + } + }, + "node_modules/amazon-cognito-identity-js/node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/amazon-cognito-identity-js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-term": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/ansi-term/-/ansi-term-0.0.2.tgz", + "integrity": "sha512-jLnGE+n8uAjksTJxiWZf/kcUmXq+cRWSl550B9NmQ8YiqaTM+lILcSe5dHdp8QkJPhaOghDjnMKwyYSMjosgAA==", + "dependencies": { + "x256": ">=0.0.1" + } + }, + "node_modules/ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==" + }, + "node_modules/antlr4": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.13.1.tgz", + "integrity": "sha512-kiXTspaRYvnIArgE97z5YVVf/cDVQABr3abFRR6mE7yesLMkgu4ujuyV/sgxafQ8wgve0DJQUJ38Z8tkgA2izA==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/antlr4ts": { + "version": "0.5.0-alpha.4", + "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", + "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.filter": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz", + "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.4.tgz", + "integrity": "sha512-BMtLxpV+8BD+6ZPFIWmnUBpQoy+A+ujcg4rhp2iwCRJYA7PEh2MS4NL3lz8EiDlLrJPp2hg9qWihr5pd//jcGw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz", + "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "dependencies": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/asn1js/node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/ast-parents": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz", + "integrity": "sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==", + "dev": true + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "dev": true + }, + "node_modules/async-retry": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "dev": true, + "dependencies": { + "retry": "0.13.1" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "dev": true + }, + "node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", + "dev": true + }, + "node_modules/blessed": { + "version": "0.1.81", + "resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz", + "integrity": "sha512-LoF5gae+hlmfORcG1M5+5XZi4LBmvlXTzwJWzUlPryN/SJdSflZvROM2TwkT0GMpq7oqT48NRd4GS7BiVBc5OQ==", + "bin": { + "blessed": "bin/tput.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/blessed-terminal": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/blessed-terminal/-/blessed-terminal-0.1.22.tgz", + "integrity": "sha512-R8Ej+yzsaey7gW5DSmPhIC28gNLYQad6lMODuEw0X4KzudWWxZQ632Z+BRJk2EHN5dsFWRWhvLbD+M5Vs5J+AA==", + "dependencies": { + "ansi-term": ">=0.0.2", + "chalk": "^2.4.2", + "drawille-canvas-blessed-contrib": ">=0.1.3", + "lodash": "~>=4.17.21", + "map-canvas": ">=0.1.5", + "marked": "^4.0.12", + "marked-terminal": "^5.1.1", + "memory-streams": "^0.1.0", + "memorystream": "^0.3.1", + "picture-tuber": "^1.0.1", + "sparkline": "^0.1.1", + "term-canvas": "0.0.5", + "x256": ">=0.0.1" + } + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/boxen/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/boxen/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bresenham": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/bresenham/-/bresenham-0.0.3.tgz", + "integrity": "sha512-wbMxoJJM1p3+6G7xEFXYNCJ30h2qkwmVxebkbwIl4OcnWtno5R3UT9VuYLfStlVNAQCmRjkGwjPFdfaPd4iNXw==" + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dev": true, + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dev": true, + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "node_modules/buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", + "engines": { + "node": ">=0.2.0" + } + }, + "node_modules/buildcheck": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.6.tgz", + "integrity": "sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==", + "optional": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "dev": true, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "dev": true, + "dependencies": { + "@types/http-cache-semantics": "^4.0.2", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cardinal": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", + "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", + "dependencies": { + "ansicolors": "~0.3.2", + "redeyed": "~2.1.0" + }, + "bin": { + "cdl": "bin/cdl.js" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "node_modules/cbor": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", + "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", + "dev": true, + "dependencies": { + "nofilter": "^3.1.0" + }, + "engines": { + "node": ">=12.19" + } + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "dev": true, + "dependencies": { + "check-error": "^1.0.2" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 5" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/charm": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz", + "integrity": "sha512-syedaZ9cPe7r3hoQA9twWYKu5AIyCswN5+szkmPBe9ccdLrj4bYaCnLVPTLd2kgVRc7+zoX4tyPgRnFKCj5YjQ==" + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "colors": "^1.1.2" + } + }, + "node_modules/cli-table3/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-table3/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-table3/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-table3/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "dev": true + }, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "dev": true, + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "dev": true, + "dependencies": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true + }, + "node_modules/compare-versions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.0.tgz", + "integrity": "sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cpu-features": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.10.tgz", + "integrity": "sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "buildcheck": "~0.0.6", + "nan": "^2.19.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + }, + "node_modules/csv-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/csv-parser/-/csv-parser-3.0.0.tgz", + "integrity": "sha512-s6OYSXAK3IdKqYO33y09jhypG/bSDHPuyCme/IdEHfWpLf/jKcpitVFyOC6UemgGk8v7Q5u2XE0vvwmanxhGlQ==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "csv-parser": "bin/csv-parser" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "engines": { + "node": "*" + } + }, + "node_modules/death": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", + "integrity": "sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/detect-port": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", + "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", + "dependencies": { + "address": "^1.0.1", + "debug": "4" + }, + "bin": { + "detect": "bin/detect-port.js", + "detect-port": "bin/detect-port.js" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/difflib": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz", + "integrity": "sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==", + "dev": true, + "dependencies": { + "heap": ">= 0.2.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/docker-modem": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-5.0.3.tgz", + "integrity": "sha512-89zhop5YVhcPEt5FpUFGr3cDyceGhq/F9J+ZndQ4KfqNvfbJpPMfgeixFgUj5OjCYAboElqODxY5Z1EBsSa6sg==", + "dependencies": { + "debug": "^4.1.1", + "readable-stream": "^3.5.0", + "split-ca": "^1.0.1", + "ssh2": "^1.15.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/dockerode": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-4.0.2.tgz", + "integrity": "sha512-9wM1BVpVMFr2Pw3eJNXrYYt6DT9k0xMcsSCjtPvyQ+xa1iPg/Mo3T/gUcwI0B2cczqCeCYRPF8yFYDwtFXT0+w==", + "dependencies": { + "@balena/dockerignore": "^1.0.2", + "docker-modem": "^5.0.3", + "tar-fs": "~2.0.1" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/drawille-blessed-contrib": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/drawille-blessed-contrib/-/drawille-blessed-contrib-1.0.0.tgz", + "integrity": "sha512-WnHMgf5en/hVOsFhxLI8ZX0qTJmerOsVjIMQmn4cR1eI8nLGu+L7w5ENbul+lZ6w827A3JakCuernES5xbHLzQ==" + }, + "node_modules/drawille-canvas-blessed-contrib": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/drawille-canvas-blessed-contrib/-/drawille-canvas-blessed-contrib-0.1.3.tgz", + "integrity": "sha512-bdDvVJOxlrEoPLifGDPaxIzFh3cD7QH05ePoQ4fwnqfi08ZSxzEhOUpI5Z0/SQMlWgcCQOEtuw0zrwezacXglw==", + "dependencies": { + "ansi-term": ">=0.0.2", + "bresenham": "0.0.3", + "drawille-blessed-contrib": ">=0.0.1", + "gl-matrix": "^2.1.0", + "x256": ">=0.0.1" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/elliptic": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.5.tgz", + "integrity": "sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.5.tgz", + "integrity": "sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.1", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.0", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.5", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", + "dev": true, + "dependencies": { + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=0.12.0" + }, + "optionalDependencies": { + "source-map": "~0.2.0" + } + }, + "node_modules/escodegen/node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-compat-utils": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", + "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0" + } + }, + "node_modules/eslint-config-standard-with-typescript": { + "version": "43.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-43.0.1.tgz", + "integrity": "sha512-WfZ986+qzIzX6dcr4yGUyVb/l9N3Z8wPXCc5z/70fljs3UbWhhV+WxrfgsqMToRzuuyX9MqZ974pq2UPhDTOcA==", + "deprecated": "Please use eslint-config-love, instead.", + "dev": true, + "dependencies": { + "@typescript-eslint/parser": "^6.4.0", + "eslint-config-standard": "17.1.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^6.4.0", + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0", + "typescript": "*" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-es-x": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz", + "integrity": "sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.6.0", + "eslint-compat-utils": "^0.1.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-n": { + "version": "16.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz", + "integrity": "sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "builtins": "^5.0.1", + "eslint-plugin-es-x": "^7.5.0", + "get-tsconfig": "^4.7.0", + "globals": "^13.24.0", + "ignore": "^5.2.4", + "is-builtin-module": "^3.2.1", + "is-core-module": "^2.12.1", + "minimatch": "^3.1.2", + "resolve": "^1.22.2", + "semver": "^7.5.3" + }, + "engines": { + "node": ">=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-n/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-promise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", + "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eth-gas-reporter": { + "version": "0.2.27", + "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz", + "integrity": "sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw==", + "dev": true, + "dependencies": { + "@solidity-parser/parser": "^0.14.0", + "axios": "^1.5.1", + "cli-table3": "^0.5.0", + "colors": "1.4.0", + "ethereum-cryptography": "^1.0.3", + "ethers": "^5.7.2", + "fs-readdir-recursive": "^1.1.0", + "lodash": "^4.17.14", + "markdown-table": "^1.1.3", + "mocha": "^10.2.0", + "req-cwd": "^2.0.0", + "sha1": "^1.1.1", + "sync-request": "^6.0.0" + }, + "peerDependencies": { + "@codechecks/client": "^0.1.0" + }, + "peerDependenciesMeta": { + "@codechecks/client": { + "optional": true + } + } + }, + "node_modules/eth-gas-reporter/node_modules/@noble/hashes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/eth-gas-reporter/node_modules/@scure/bip32": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", + "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.2.0", + "@noble/secp256k1": "~1.7.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/eth-gas-reporter/node_modules/@scure/bip39": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", + "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.2.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/eth-gas-reporter/node_modules/ethereum-cryptography": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", + "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", + "dev": true, + "dependencies": { + "@noble/hashes": "1.2.0", + "@noble/secp256k1": "1.7.1", + "@scure/bip32": "1.1.5", + "@scure/bip39": "1.1.1" + } + }, + "node_modules/eth-gas-reporter/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/ethereum-bloom-filters": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", + "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", + "dev": true, + "dependencies": { + "js-sha3": "^0.8.0" + } + }, + "node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ethereumjs-abi/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ethereumjs-abi/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dev": true, + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ethers": { + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.11.1.tgz", + "integrity": "sha512-mxTAE6wqJQAbp5QAe/+o+rXOID7Nw91OZXvgpjDa1r4fAbq2Nu314oEZSbjoRLacuCzs7kUC3clEvkCQowffGg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ethers/node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==", + "dev": true + }, + "node_modules/ethers/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "node_modules/ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", + "dev": true, + "dependencies": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ethjs-unit/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "dev": true + }, + "node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "dev": true, + "dependencies": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/event-stream": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-0.9.8.tgz", + "integrity": "sha512-o5h0Mp1bkoR6B0i7pTCAzRy+VzdsRWH997KQD4Psb0EOPoKEIiaRx/EsOdUl7p1Ktjw7aIWvweI/OY1R9XrlUg==", + "dependencies": { + "optimist": "0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/event-stream/node_modules/optimist": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz", + "integrity": "sha512-Wy7E3cQDpqsTIFyW7m22hSevyTLxw850ahYv7FWsw4G6MIKVTZ8NSA95KBrQ95a4SMsMr1UGUUnwEFKhVaSzIg==", + "dependencies": { + "wordwrap": ">=0.0.1 <0.1.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/fast-base64-decode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz", + "integrity": "sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q==", + "dev": true + }, + "node_modules/fast-copy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz", + "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fast-redact": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "dev": true, + "engines": { + "node": ">= 14.17" + } + }, + "node_modules/fp-ts": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", + "dev": true + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz", + "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/ghost-testrpc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz", + "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "node-emoji": "^1.10.0" + }, + "bin": { + "testrpc-sc": "index.js" + } + }, + "node_modules/gl-matrix": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-2.8.1.tgz", + "integrity": "sha512-0YCjVpE3pS5XWlN3J4X7AiAx65+nqAI54LndtVFnQZB6G/FVLkZH8y8V6R3cIoOQR4pUdfwQGd1iwyoXHJ4Qfw==" + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/handlebars/node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "node_modules/hardhat": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.21.0.tgz", + "integrity": "sha512-8DlJAVJDEVHaV1sh9FLuKLLgCFv9EAJ+M+8IbjSIPgoeNo3ss5L1HgGBMfnI88c7OzMEZkdcuyGoobFeK3Orqw==", + "dev": true, + "dependencies": { + "@ethersproject/abi": "^5.1.2", + "@metamask/eth-sig-util": "^4.0.0", + "@nomicfoundation/edr": "^0.2.0", + "@nomicfoundation/ethereumjs-common": "4.0.4", + "@nomicfoundation/ethereumjs-tx": "5.0.4", + "@nomicfoundation/ethereumjs-util": "9.0.4", + "@nomicfoundation/solidity-analyzer": "^0.1.0", + "@sentry/node": "^5.18.1", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "^5.1.0", + "adm-zip": "^0.4.16", + "aggregate-error": "^3.0.0", + "ansi-escapes": "^4.3.0", + "boxen": "^5.1.2", + "chalk": "^2.4.2", + "chokidar": "^3.4.0", + "ci-info": "^2.0.0", + "debug": "^4.1.1", + "enquirer": "^2.3.0", + "env-paths": "^2.2.0", + "ethereum-cryptography": "^1.0.3", + "ethereumjs-abi": "^0.6.8", + "find-up": "^2.1.0", + "fp-ts": "1.19.3", + "fs-extra": "^7.0.1", + "glob": "7.2.0", + "immutable": "^4.0.0-rc.12", + "io-ts": "1.10.4", + "keccak": "^3.0.2", + "lodash": "^4.17.11", + "mnemonist": "^0.38.0", + "mocha": "^10.0.0", + "p-map": "^4.0.0", + "raw-body": "^2.4.1", + "resolve": "1.17.0", + "semver": "^6.3.0", + "solc": "0.7.3", + "source-map-support": "^0.5.13", + "stacktrace-parser": "^0.1.10", + "tsort": "0.0.1", + "undici": "^5.14.0", + "uuid": "^8.3.2", + "ws": "^7.4.6" + }, + "bin": { + "hardhat": "internal/cli/bootstrap.js" + }, + "peerDependencies": { + "ts-node": "*", + "typescript": "*" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/hardhat-gas-reporter": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.10.tgz", + "integrity": "sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA==", + "dev": true, + "dependencies": { + "array-uniq": "1.0.3", + "eth-gas-reporter": "^0.2.25", + "sha1": "^1.1.1" + }, + "peerDependencies": { + "hardhat": "^2.0.2" + } + }, + "node_modules/hardhat/node_modules/@noble/hashes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/hardhat/node_modules/@scure/bip32": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", + "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.2.0", + "@noble/secp256k1": "~1.7.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/hardhat/node_modules/@scure/bip39": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", + "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.2.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/hardhat/node_modules/ethereum-cryptography": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", + "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", + "dev": true, + "dependencies": { + "@noble/hashes": "1.2.0", + "@noble/secp256k1": "1.7.1", + "@scure/bip32": "1.1.5", + "@scure/bip39": "1.1.1" + } + }, + "node_modules/hardhat/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/hardhat/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/hardhat/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "dependencies": { + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hardhat/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/hardhat/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/hardhat/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/heap": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", + "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", + "dev": true + }, + "node_modules/help-me": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz", + "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==" + }, + "node_modules/here": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/here/-/here-0.0.2.tgz", + "integrity": "sha512-U7VYImCTcPoY27TSmzoiFsmWLEqQFaYNdpsPb9K0dXJhE6kufUqycaz51oR09CW85dDU9iWyy7At8M+p7hb3NQ==" + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "dev": true, + "dependencies": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "dev": true, + "dependencies": { + "@types/node": "^10.0.3" + } + }, + "node_modules/http-response-object/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", + "dev": true + }, + "node_modules/http2-wrapper": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "dev": true, + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/io-ts": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", + "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "dev": true, + "dependencies": { + "fp-ts": "^1.0.0" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "dev": true, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isomorphic-unfetch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz", + "integrity": "sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.1", + "unfetch": "^4.2.0" + } + }, + "node_modules/jackspeak": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.1.tgz", + "integrity": "sha512-U23pQPDnmYybVkYjObcuYMk43VRlMLLqLI+RdZy8s8WV8WsxO9SnqSroKaluuvcNOdCAlauKszDwd+umbot5Mg==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/js-base64": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz", + "integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==" + }, + "node_modules/js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==", + "dev": true + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "devOptional": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/keccak": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", + "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.9" + } + }, + "node_modules/latest-version": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", + "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", + "dev": true, + "dependencies": { + "package-json": "^8.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.0.tgz", + "integrity": "sha512-bfJaPTuEiTYBu+ulDaeQ0F+uLmlfFkMgXj4cbwfuMSjgObGMzb55FMMbDvbRU0fAHZ4sLGkz2mKwcMg8Dvm8Ww==", + "engines": { + "node": ">=18" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/map-canvas": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/map-canvas/-/map-canvas-0.1.5.tgz", + "integrity": "sha512-f7M3sOuL9+up0NCOZbb1rQpWDLZwR/ftCiNbyscjl9LUUEwrRaoumH4sz6swgs58lF21DQ0hsYOCw5C6Zz7hbg==", + "dependencies": { + "drawille-canvas-blessed-contrib": ">=0.0.1", + "xml2js": "^0.4.5" + } + }, + "node_modules/markdown-table": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", + "dev": true + }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/marked-terminal": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.2.0.tgz", + "integrity": "sha512-Piv6yNwAQXGFjZSaiNljyNFw7jKDdGrw70FSbtxEyldLsyeuV5ZHm/1wW++kWbrOF1VPnUgYOhB2oLL0ZpnekA==", + "dependencies": { + "ansi-escapes": "^6.2.0", + "cardinal": "^2.1.1", + "chalk": "^5.2.0", + "cli-table3": "^0.6.3", + "node-emoji": "^1.11.0", + "supports-hyperlinks": "^2.3.0" + }, + "engines": { + "node": ">=14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/marked-terminal/node_modules/ansi-escapes": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", + "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==", + "dependencies": { + "type-fest": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/marked-terminal/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/marked-terminal/node_modules/cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/marked-terminal/node_modules/type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/memory-streams": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/memory-streams/-/memory-streams-0.1.3.tgz", + "integrity": "sha512-qVQ/CjkMyMInPaaRMrwWNDvf6boRZXaT/DbQeMYcCWuXPEBf1v8qChOc9OlEVQp2uOvRXa1Qu30fLmKhY6NipA==", + "dependencies": { + "readable-stream": "~1.0.2" + } + }, + "node_modules/memory-streams/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/memory-streams/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/memory-streams/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micro-ftch": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", + "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==", + "dev": true + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, + "node_modules/mnemonist": { + "version": "0.38.5", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", + "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", + "dev": true, + "dependencies": { + "obliterator": "^2.0.0" + } + }, + "node_modules/mocha": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.6.0.tgz", + "integrity": "sha512-hxjt4+EEB0SA0ZDygSS015t65lJw/I2yRCS3Ae+SJ5FrbzrXgfYwJr96f0OvIXdj7h4lv/vLCrH3rkiuizFSvw==", + "dependencies": { + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^8.1.0", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9", + "yargs-unparser": "^2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/mocha/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/nan": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", + "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==", + "optional": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "dev": true + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", + "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "dev": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/nofilter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "dev": true, + "engines": { + "node": ">=12.19" + } + }, + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", + "dev": true, + "dependencies": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/number-to-bn/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz", + "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==", + "dev": true, + "dependencies": { + "array.prototype.filter": "^1.0.3", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.0.0" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obliterator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", + "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==", + "dev": true + }, + "node_modules/on-exit-leak-free": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optimist": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", + "integrity": "sha512-TCx0dXQzVtSCg2OgY/bO9hjM9cV4XYx09TVK+s3+FhkjT6LovsLe+pPMzpWf+6yXK/hUizs2gUoTw3jHM0VaTQ==", + "dependencies": { + "wordwrap": "~0.0.2" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ordinal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz", + "integrity": "sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==", + "dev": true + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "dev": true, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/package-json": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", + "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", + "dev": true, + "dependencies": { + "got": "^12.1.0", + "registry-auth-token": "^5.0.1", + "registry-url": "^6.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", + "dev": true + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/picture-tuber": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/picture-tuber/-/picture-tuber-1.0.2.tgz", + "integrity": "sha512-49/xq+wzbwDeI32aPvwQJldM8pr7dKDRuR76IjztrkmiCkAQDaWFJzkmfVqCHmt/iFoPFhHmI9L0oKhthrTOQw==", + "dependencies": { + "buffers": "~0.1.1", + "charm": "~0.1.0", + "event-stream": "~0.9.8", + "optimist": "~0.3.4", + "png-js": "~0.1.0", + "x256": "~0.0.1" + }, + "bin": { + "picture-tube": "bin/tube.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pino": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.21.0.tgz", + "integrity": "sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^1.2.0", + "pino-std-serializers": "^6.0.0", + "process-warning": "^3.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^3.7.0", + "thread-stream": "^2.6.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-abstract-transport": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", + "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", + "dependencies": { + "readable-stream": "^4.0.0", + "split2": "^4.0.0" + } + }, + "node_modules/pino-abstract-transport/node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/pino-pretty": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-10.3.1.tgz", + "integrity": "sha512-az8JbIYeN/1iLj2t0jR9DV48/LQ3RC6hZPpapKPkb84Q+yTidMCpgWxIT3N0flnBDilyBQ1luWNpOeJptjdp/g==", + "dependencies": { + "colorette": "^2.0.7", + "dateformat": "^4.6.3", + "fast-copy": "^3.0.0", + "fast-safe-stringify": "^2.1.1", + "help-me": "^5.0.0", + "joycon": "^3.1.1", + "minimist": "^1.2.6", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^1.0.0", + "pump": "^3.0.0", + "readable-stream": "^4.0.0", + "secure-json-parse": "^2.4.0", + "sonic-boom": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "pino-pretty": "bin.js" + } + }, + "node_modules/pino-pretty/node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/pino-std-serializers": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", + "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==" + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/png-js": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/png-js/-/png-js-0.1.1.tgz", + "integrity": "sha512-NTtk2SyfjBm+xYl2/VZJBhFnTQ4kU5qWC7VC4/iGbrgiU4FuB4xC+74erxADYJIqZICOR1HCvRA7EBHkpjTg9g==" + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", + "dev": true, + "peer": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/prettier-plugin-solidity": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.3.1.tgz", + "integrity": "sha512-MN4OP5I2gHAzHZG1wcuJl0FsLS3c4Cc5494bbg+6oQWBPuEamjwDvmGfFMZ6NFzsh3Efd9UUxeT7ImgjNH4ozA==", + "dev": true, + "peer": true, + "dependencies": { + "@solidity-parser/parser": "^0.17.0", + "semver": "^7.5.4", + "solidity-comments-extractor": "^0.0.8" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "prettier": ">=2.3.0" + } + }, + "node_modules/prettier-plugin-solidity/node_modules/@solidity-parser/parser": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.17.0.tgz", + "integrity": "sha512-Nko8R0/kUo391jsEHHxrGM07QFdnPGvlmox4rmH0kNiNAashItAilhy4Mv4pK5gQmW5f4sXAF58fwJbmlkGcVw==", + "dev": true, + "peer": true + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/process-warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", + "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==" + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "dev": true, + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/proper-lockfile": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", + "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "retry": "^0.12.0", + "signal-exit": "^3.0.2" + } + }, + "node_modules/proper-lockfile/node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true + }, + "node_modules/protobufjs": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.2.tgz", + "integrity": "sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/protobufjs/node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pvtsutils": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", + "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", + "dependencies": { + "tslib": "^2.6.1" + } + }, + "node_modules/pvtsutils/node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + }, + "node_modules/pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/qs": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz", + "integrity": "sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/recursive-readdir/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/recursive-readdir/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/redeyed": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", + "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", + "dependencies": { + "esprima": "~4.0.0" + } + }, + "node_modules/reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/registry-auth-token": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", + "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", + "dev": true, + "dependencies": { + "@pnpm/npm-conf": "^2.1.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/registry-url": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", + "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", + "dev": true, + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/req-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz", + "integrity": "sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==", + "dev": true, + "dependencies": { + "req-from": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/req-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz", + "integrity": "sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/req-from/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dev": true, + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfc4648": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.5.3.tgz", + "integrity": "sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.0" + }, + "bin": { + "rlp": "bin/rlp" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", + "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "get-intrinsic": "^1.2.2", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-stable-stringify": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", + "engines": { + "node": ">=10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + }, + "node_modules/sc-istanbul": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz", + "integrity": "sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==", + "dev": true, + "dependencies": { + "abbrev": "1.0.x", + "async": "1.x", + "escodegen": "1.8.x", + "esprima": "2.7.x", + "glob": "^5.0.15", + "handlebars": "^4.0.1", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "once": "1.x", + "resolve": "1.1.x", + "supports-color": "^3.1.0", + "which": "^1.1.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "istanbul": "lib/cli.js" + } + }, + "node_modules/sc-istanbul/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/sc-istanbul/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/sc-istanbul/node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sc-istanbul/node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sc-istanbul/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sc-istanbul/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/sc-istanbul/node_modules/js-yaml/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sc-istanbul/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sc-istanbul/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", + "dev": true + }, + "node_modules/sc-istanbul/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "dev": true, + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/sc-istanbul/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/sc-istanbul/node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "dev": true + }, + "node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/secure-json-parse": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", + "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==" + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/sha1": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", + "integrity": "sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==", + "dev": true, + "dependencies": { + "charenc": ">= 0.0.1", + "crypt": ">= 0.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/solc": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", + "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", + "dev": true, + "dependencies": { + "command-exists": "^1.2.8", + "commander": "3.0.2", + "follow-redirects": "^1.12.1", + "fs-extra": "^0.30.0", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "require-from-string": "^2.0.0", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "bin": { + "solcjs": "solcjs" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/solc/node_modules/fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "node_modules/solc/node_modules/jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/solc/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/solc/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/solhint": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/solhint/-/solhint-4.1.1.tgz", + "integrity": "sha512-7G4iF8H5hKHc0tR+/uyZesSKtfppFIMvPSW+Ku6MSL25oVRuyFeqNhOsXHfkex64wYJyXs4fe+pvhB069I19Tw==", + "deprecated": "this package has been deprecated", + "dev": true, + "dependencies": { + "@solidity-parser/parser": "^0.16.0", + "ajv": "^6.12.6", + "antlr4": "^4.11.0", + "ast-parents": "^0.0.1", + "chalk": "^4.1.2", + "commander": "^10.0.0", + "cosmiconfig": "^8.0.0", + "fast-diff": "^1.2.0", + "glob": "^8.0.3", + "ignore": "^5.2.4", + "js-yaml": "^4.1.0", + "latest-version": "^7.0.0", + "lodash": "^4.17.21", + "pluralize": "^8.0.0", + "semver": "^7.5.2", + "strip-ansi": "^6.0.1", + "table": "^6.8.1", + "text-table": "^0.2.0" + }, + "bin": { + "solhint": "solhint.js" + }, + "optionalDependencies": { + "prettier": "^2.8.3" + } + }, + "node_modules/solhint-plugin-prettier": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/solhint-plugin-prettier/-/solhint-plugin-prettier-0.1.0.tgz", + "integrity": "sha512-SDOTSM6tZxZ6hamrzl3GUgzF77FM6jZplgL2plFBclj/OjKP8Z3eIPojKU73gRr0MvOS8ACZILn8a5g0VTz/Gw==", + "dev": true, + "dependencies": { + "@prettier/sync": "^0.3.0", + "prettier-linter-helpers": "^1.0.0" + }, + "peerDependencies": { + "prettier": "^3.0.0", + "prettier-plugin-solidity": "^1.0.0" + } + }, + "node_modules/solhint/node_modules/@solidity-parser/parser": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.2.tgz", + "integrity": "sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==", + "dev": true, + "dependencies": { + "antlr4ts": "^0.5.0-alpha.4" + } + }, + "node_modules/solhint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/solhint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/solhint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/solhint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/solhint/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/solhint/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/solhint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/solhint/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/solhint/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "optional": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/solhint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/solidity-ast": { + "version": "0.4.55", + "resolved": "https://registry.npmjs.org/solidity-ast/-/solidity-ast-0.4.55.tgz", + "integrity": "sha512-qeEU/r/K+V5lrAw8iswf2/yfWAnSGs3WKPHI+zAFKFjX0dIBVXEU/swQ8eJQYHf6PJWUZFO2uWV4V1wEOkeQbA==", + "dev": true, + "dependencies": { + "array.prototype.findlast": "^1.2.2" + } + }, + "node_modules/solidity-comments-extractor": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.8.tgz", + "integrity": "sha512-htM7Vn6LhHreR+EglVMd2s+sZhcXAirB1Zlyrv5zBuTxieCvjfnRpd7iZk75m/u6NOlEyQ94C6TWbBn2cY7w8g==", + "dev": true, + "peer": true + }, + "node_modules/solidity-coverage": { + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.11.tgz", + "integrity": "sha512-yy0Yk+olovBbXn0Me8BWULmmv7A69ZKkP5aTOJGOO8u61Tu2zS989erfjtFlUjDnfWtxRAVkd8BsQD704yLWHw==", + "dev": true, + "dependencies": { + "@ethersproject/abi": "^5.0.9", + "@solidity-parser/parser": "^0.18.0", + "chalk": "^2.4.2", + "death": "^1.1.0", + "difflib": "^0.2.4", + "fs-extra": "^8.1.0", + "ghost-testrpc": "^0.0.2", + "global-modules": "^2.0.0", + "globby": "^10.0.1", + "jsonschema": "^1.2.4", + "lodash": "^4.17.15", + "mocha": "^10.2.0", + "node-emoji": "^1.10.0", + "pify": "^4.0.1", + "recursive-readdir": "^2.2.2", + "sc-istanbul": "^0.4.5", + "semver": "^7.3.4", + "shelljs": "^0.8.3", + "web3-utils": "^1.3.6" + }, + "bin": { + "solidity-coverage": "plugins/bin.js" + }, + "peerDependencies": { + "hardhat": "^2.11.0" + } + }, + "node_modules/solidity-coverage/node_modules/@solidity-parser/parser": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz", + "integrity": "sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==", + "dev": true + }, + "node_modules/solidity-coverage/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/solidity-coverage/node_modules/globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/solidity-coverage/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/solidity-coverage/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/sonic-boom": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz", + "integrity": "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "node_modules/source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", + "dev": true, + "optional": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spark-md5": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz", + "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==" + }, + "node_modules/sparkline": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/sparkline/-/sparkline-0.1.2.tgz", + "integrity": "sha512-t//aVOiWt9fi/e22ea1vXVWBDX+gp18y+Ch9sKqmHl828bRfvP2VtfTJVEcgWFBQHd0yDPNQRiHdqzCvbcYSDA==", + "dependencies": { + "here": "0.0.2", + "nopt": "~2.1.2" + }, + "bin": { + "sparkline": "bin/sparkline" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/sparkline/node_modules/nopt": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz", + "integrity": "sha512-x8vXm7BZ2jE1Txrxh/hO74HTuYZQEbo8edoRcANgdZ4+PCV+pbjd/xdummkmjjC7LU5EjPzlu8zEq/oxWylnKA==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/split-ca": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", + "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==" + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/ssh2": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.15.0.tgz", + "integrity": "sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw==", + "hasInstallScript": true, + "dependencies": { + "asn1": "^0.2.6", + "bcrypt-pbkdf": "^1.0.2" + }, + "engines": { + "node": ">=10.16.0" + }, + "optionalDependencies": { + "cpu-features": "~0.0.9", + "nan": "^2.18.0" + } + }, + "node_modules/stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dev": true, + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stacktrace-parser/node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", + "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "devOptional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "dev": true, + "dependencies": { + "is-hex-prefixed": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "dev": true, + "dependencies": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "dev": true, + "dependencies": { + "get-port": "^3.1.0" + } + }, + "node_modules/table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "dev": true, + "dependencies": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table-layout/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/tar-fs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz", + "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.0.0" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/term-canvas": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/term-canvas/-/term-canvas-0.0.5.tgz", + "integrity": "sha512-eZ3rIWi5yLnKiUcsW8P79fKyooaLmyLWAGqBhFspqMxRNUiB4GmHHk5AzQ4LxvFbJILaXqQZLwbbATLOhCFwkw==" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "dev": true, + "dependencies": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/then-request/node_modules/@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", + "dev": true + }, + "node_modules/then-request/node_modules/form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/thread-stream": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz", + "integrity": "sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==", + "dependencies": { + "real-require": "^0.2.0" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/ts-api-utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz", + "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-command-line-args": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz", + "integrity": "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.0", + "string-format": "^2.0.0" + }, + "bin": { + "write-markdown": "dist/write-markdown.js" + } + }, + "node_modules/ts-command-line-args/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ts-command-line-args/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ts-command-line-args/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ts-command-line-args/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ts-command-line-args/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-command-line-args/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", + "dev": true, + "peerDependencies": { + "typescript": ">=3.7.0" + } + }, + "node_modules/ts-mocha": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.0.0.tgz", + "integrity": "sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw==", + "dependencies": { + "ts-node": "7.0.1" + }, + "bin": { + "ts-mocha": "bin/ts-mocha" + }, + "engines": { + "node": ">= 6.X.X" + }, + "optionalDependencies": { + "tsconfig-paths": "^3.5.0" + }, + "peerDependencies": { + "mocha": "^3.X.X || ^4.X.X || ^5.X.X || ^6.X.X || ^7.X.X || ^8.X.X || ^9.X.X || ^10.X.X" + } + }, + "node_modules/ts-mocha/node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/ts-mocha/node_modules/ts-node": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", + "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", + "dependencies": { + "arrify": "^1.0.0", + "buffer-from": "^1.1.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.6", + "yn": "^2.0.0" + }, + "bin": { + "ts-node": "dist/bin.js" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ts-mocha/node_modules/yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/ts-node": { + "version": "8.10.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz", + "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==", + "dev": true, + "dependencies": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "typescript": ">=2.7" + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "devOptional": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsort": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", + "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==", + "dev": true + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typechain": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz", + "integrity": "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==", + "dev": true, + "dependencies": { + "@types/prettier": "^2.1.1", + "debug": "^4.3.1", + "fs-extra": "^7.0.0", + "glob": "7.1.7", + "js-sha3": "^0.8.0", + "lodash": "^4.17.15", + "mkdirp": "^1.0.4", + "prettier": "^2.3.1", + "ts-command-line-args": "^2.2.0", + "ts-essentials": "^7.0.1" + }, + "bin": { + "typechain": "dist/cli/cli.js" + }, + "peerDependencies": { + "typescript": ">=4.3.0" + } + }, + "node_modules/typechain/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/typechain/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/typechain/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typechain/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/typechain/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/typechain/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/typechain/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/typechain/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", + "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici": { + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", + "dev": true, + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unfetch": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", + "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==", + "dev": true + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/web3-utils": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.4.tgz", + "integrity": "sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==", + "dev": true, + "dependencies": { + "@ethereumjs/util": "^8.1.0", + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereum-cryptography": "^2.1.2", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-utils/node_modules/@noble/curves": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", + "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", + "dev": true, + "dependencies": { + "@noble/hashes": "1.3.3" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/web3-utils/node_modules/@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "dev": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/web3-utils/node_modules/ethereum-cryptography": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz", + "integrity": "sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==", + "dev": true, + "dependencies": { + "@noble/curves": "1.3.0", + "@noble/hashes": "1.3.3", + "@scure/bip32": "1.3.3", + "@scure/bip39": "1.2.2" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", + "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.6", + "call-bind": "^1.0.5", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "dev": true, + "dependencies": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/wordwrapjs/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/workerpool": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/x256": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/x256/-/x256-0.0.2.tgz", + "integrity": "sha512-ZsIH+sheoF8YG9YG+QKEEIdtqpHRA9FYuD7MqhfyB1kayXU43RUNBFSxBEnF8ywSUxdg+8no4+bPr5qLbyxKgA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json index c4e8419..8fbc31d 100644 --- a/package.json +++ b/package.json @@ -22,8 +22,8 @@ "@nomicfoundation/hardhat-network-helpers": "^1.0.0", "@nomicfoundation/hardhat-toolbox": "^4.0.0", "@nomicfoundation/hardhat-verify": "^2.0.0", - "@nomiclabs/hardhat-ethers": "^2.2.3", "@openzeppelin/hardhat-upgrades": "^3.0.4", + "@nomiclabs/hardhat-ethers": "^2.2.3", "@typechain/ethers-v6": "^0.5.0", "@typechain/hardhat": "^9.0.0", "@types/chai": "^4.2.0", diff --git a/scripts/deploySaucer.ts b/scripts/deploySaucer.ts new file mode 100644 index 0000000..7b8f275 --- /dev/null +++ b/scripts/deploySaucer.ts @@ -0,0 +1,88 @@ +import { ethers } from "hardhat"; +import * as dotenv from "dotenv"; +import { createFungibleToken, TokenTransfer } from "../scripts/utils"; +import { Client, AccountId, PrivateKey } from "@hashgraph/sdk"; +import { HederaVault } from "../typechain-types"; + +dotenv.config(); + +async function main() { + const [deployer] = await ethers.getSigners(); + const network = await ethers.provider.getNetwork(); + + console.log("Deploying contract with account:", deployer.address, "at:", network.name); + + let client = Client.forTestnet(); + + const operatorPrKey = PrivateKey.fromStringECDSA(process.env.PRIVATE_KEY || ""); + const operatorAccountId = AccountId.fromString(process.env.ACCOUNT_ID || ""); + + client.setOperator(operatorAccountId, operatorPrKey); + + const rewardToken2 = await createFungibleToken( + "Reward Token 2", + "RT2", + process.env.ACCOUNT_ID, + operatorPrKey.publicKey, + client, + operatorPrKey, + ); + + const rewardToken2Addr = "0x" + rewardToken2!.toSolidityAddress(); + + console.log("Reward token addrress 2 ", rewardToken2Addr); + //REWARD TOKEN 2 + //hashscan.io/testnet/token/0.0.4503119 + + const stakingTokenAddress = "0x" + stakingToken!.toSolidityAddress(); + console.log("Staking token address ", stakingTokenAddress); + + const feeConfig = { + receiver: "0x091b4a7ea614a3bd536f9b62ad5641829a1b174f", + token: "0x" + stakingToken!.toSolidityAddress(), + minAmount: 0, + feePercentage: 1000, + }; + + const pythFactory = await ethers.getContractFactory("MockPyth"); + const pythContract = await pythFactory.deploy(); + console.log("Pyth deployed with address: ", await pythContract.getAddress()); + //PYTH https://hashscan.io/testnet/contract/0.0.4503120?p=1&k=1720181343.414378003 + + const HederaVault = await ethers.getContractFactory("HederaVault"); + const hederaVault = await HederaVault.deploy( + stakingTokenAddress, + "TST", + "TST", + feeConfig, + deployer.address, + deployer.address, + await pythContract.getAddress(), + "0xACE99ADFd95015dDB33ef19DCE44fee613DB82C2", + [rewardToken1Addr, rewardToken2Addr], + [50000, 50000], + [ + ethers.solidityPackedKeccak256(["address"], [rewardToken1Addr]), + ethers.solidityPackedKeccak256(["address"], [rewardToken2Addr]), + ], + { from: deployer.address, gasLimit: 3000000, value: ethers.parseUnits("12", 18) }, + ); + console.log("Hash ", hederaVault.deploymentTransaction()?.hash); + // console.log("Vault deployed with address: ", await hederaVault.getAddress()); + + await hederaVault.waitForDeployment(); + + console.log("Vault deployed with address: ", await hederaVault.getAddress()); + + // const VaultFactory = await ethers.getContractFactory("VaultFactory"); + // const vaultFactory = await VaultFactory.deploy(); + // console.log("Hash ", vaultFactory.deploymentTransaction()?.hash); + // await vaultFactory.waitForDeployment(); + + // console.log("Vault Factory deployed with address: ", await vaultFactory.getAddress()); +} + +main().catch((error) => { + console.error(error); + process.exitCode = 1; +}); diff --git a/scripts/deployVault.ts b/scripts/deployVault.ts index e84166c..966ee03 100644 --- a/scripts/deployVault.ts +++ b/scripts/deployVault.ts @@ -3,79 +3,107 @@ import * as dotenv from "dotenv"; import { createFungibleToken, TokenTransfer } from "../scripts/utils"; import { Client, AccountId, PrivateKey } from "@hashgraph/sdk"; import { HederaVault } from "../typechain-types"; +import { ZeroAddress } from "ethers"; dotenv.config(); +const deployedOracle = "0xC48277F42d738A06B8bD6a61700aF35018Cf5AEc"; +const rw1Id = ethers.keccak256(ethers.toUtf8Bytes("RT1")); +const rw2Id = ethers.keccak256(ethers.toUtf8Bytes("RT2")); + async function main() { - const [deployer] = await ethers.getSigners(); - const network = await ethers.provider.getNetwork(); - - console.log("Deploying contract with account:", deployer.address, "at:", network.name); - - let client = Client.forTestnet(); - - const operatorPrKey = PrivateKey.fromStringECDSA(process.env.PRIVATE_KEY || ''); - const operatorAccountId = AccountId.fromString(process.env.ACCOUNT_ID || ''); - - client.setOperator( - operatorAccountId, - operatorPrKey - ); - - const stakingToken = await createFungibleToken( - "ERC4626 on Hedera", - "HERC4626", - process.env.ACCOUNT_ID, - operatorPrKey.publicKey, - client, - operatorPrKey - ); - - const rewardToken = await createFungibleToken( - "Reward Token 1", - "RT1", - process.env.ACCOUNT_ID, - operatorPrKey.publicKey, - client, - operatorPrKey - ); - - console.log("Reward token addrress", rewardToken!.toSolidityAddress()); - - const stakingTokenAddress = "0x" + stakingToken!.toSolidityAddress(); - - const feeConfig = { - receiver: "0x091b4a7ea614a3bd536f9b62ad5641829a1b174f", - token: "0x" + stakingToken!.toSolidityAddress(), - minAmount: 0, - feePercentage: 1000, - }; - - const HederaVault = await ethers.getContractFactory("HederaVault"); - const hederaVault = await HederaVault.deploy( - stakingTokenAddress, - "TST", - "TST", - feeConfig, - deployer.address, - deployer.address, - // deployer.address, - { from: deployer.address, gasLimit: 3000000, value: ethers.parseUnits("12", 18) } - ); - console.log("Hash ", hederaVault.deploymentTransaction()?.hash); - await hederaVault.waitForDeployment(); - - console.log("Vault deployed with address: ", await hederaVault.getAddress()); - - const VaultFactory = await ethers.getContractFactory("VaultFactory"); - const vaultFactory = await VaultFactory.deploy(); - console.log("Hash ", vaultFactory.deploymentTransaction()?.hash); - await vaultFactory.waitForDeployment(); - - console.log("Vault Factory deployed with address: ", await vaultFactory.getAddress()); + const [deployer] = await ethers.getSigners(); + const network = await ethers.provider.getNetwork(); + + console.log("Deploying contract with account:", deployer.address, "at:", network.name); + + let client = Client.forTestnet(); + + const operatorPrKey = PrivateKey.fromStringECDSA(process.env.PRIVATE_KEY || ""); + const operatorAccountId = AccountId.fromString(process.env.ACCOUNT_ID || ""); + + client.setOperator(operatorAccountId, operatorPrKey); + + // const blockNumBefore = await ethers.provider.getBlockNumber(); + // const blockBefore = await ethers.provider.getBlock(blockNumBefore); + // const timestampBefore = blockBefore!.timestamp; + + // const stakingToken = await createFungibleToken( + // "ERC4626 on Hedera", + // "HERC4626", + // process.env.ACCOUNT_ID, + // operatorPrKey.publicKey, + // client, + // operatorPrKey + // ); + + // const rewardToken = await createFungibleToken( + // "Reward Token 1", + // "RT1", + // process.env.ACCOUNT_ID, + // operatorPrKey.publicKey, + // client, + // operatorPrKey + // ); + + // console.log("Reward token addrress", rewardToken!.toSolidityAddress()); + + // const stakingTokenAddress = "0x" + stakingToken!.toSolidityAddress(); + + const feeConfig = { + receiver: ZeroAddress, + token: ZeroAddress, + feePercentage: 0, + }; + + // const oracle = await ethers.getContractAt("MockOracle", deployedOracle); + // const tx = await oracle.setPrice(rw2Id, 10000000000, 10, -8, timestampBefore); + // console.log(tx.hash); + // console.log(await oracle.getPrice(rw1Id)); + + // const MockOracle = await ethers.getContractFactory("MockOracle"); + // const mockOracle = await MockOracle.deploy( + // ); + // console.log("Hash ", mockOracle.deploymentTransaction()?.hash); + // await mockOracle.waitForDeployment(); + + // console.log("Mock Oracle deployed with address: ", await mockOracle.getAddress()); + + // const feeConfig = { + // receiver: "0x091b4a7ea614a3bd536f9b62ad5641829a1b174f", + // token: "0x" + stakingToken!.toSolidityAddress(), + // feePercentage: 1000, + // }; + + const HederaVault = await ethers.getContractFactory("HederaVault"); + const hederaVault = await HederaVault.deploy( + "0x000000000000000000000000000000000044b66b", + "TST", + "TST", + feeConfig, + deployer.address, + deployer.address, + deployedOracle, + "0xACE99ADFd95015dDB33ef19DCE44fee613DB82C2", + ["0x000000000000000000000000000000000044b66c", "0x000000000000000000000000000000000044b66e"], + [50000, 50000], + [rw1Id, rw2Id], + { from: deployer.address, gasLimit: 3000000, value: ethers.parseUnits("16", 18) }, + ); + console.log("Hash ", hederaVault.deploymentTransaction()?.hash); + await hederaVault.waitForDeployment(); + + console.log("Vault deployed with address: ", await hederaVault.getAddress()); + + // const VaultFactory = await ethers.getContractFactory("VaultFactory"); + // const vaultFactory = await VaultFactory.deploy(); + // console.log("Hash ", vaultFactory.deploymentTransaction()?.hash); + // await vaultFactory.waitForDeployment(); + + // console.log("Vault Factory deployed with address: ", await vaultFactory.getAddress()); } main().catch((error) => { - console.error(error); - process.exitCode = 1; + console.error(error); + process.exitCode = 1; }); diff --git a/test/deposit.t.sol b/test/deposit.t.sol new file mode 100644 index 0000000..8e2369e --- /dev/null +++ b/test/deposit.t.sol @@ -0,0 +1,15 @@ +pragma solidity 0.8.10; + +import "lib/forge-std/src/Test.sol"; + +contract ContractBTest is Test { + uint256 testNumber; + + function setUp() public { + testNumber = 42; + } + + function Deposit() public { + assertEq(testNumber, 42); + } +} diff --git a/test/erc4626/vault.vesting.test.ts b/test/erc4626/vault.vesting.test.ts new file mode 100644 index 0000000..6e2041a --- /dev/null +++ b/test/erc4626/vault.vesting.test.ts @@ -0,0 +1,136 @@ +import { anyValue, ethers, expect } from "../setup"; +import { + TokenTransfer, + createFungibleToken, + TokenBalance, + createAccount, + addToken, + mintToken, +} from "../../scripts/utils"; +import { getCorrectDepositNumber } from "./helper"; +import { PrivateKey, Client, AccountId, TokenAssociateTransaction, AccountBalanceQuery } from "@hashgraph/sdk"; +import hre from "hardhat"; + +// constants +const stakingTokenId = "0.0.4503147"; + +const sharesTokenAddress = "0x000000000000000000000000000000000045158f"; +const sharesTokenId = "0.0.4527503"; + +const vaultAddress = "0xb141ae998A17A93D837851EdD4A2A8541d730A11"; +const vaultId = "0.0.4527502"; + +const reward1TokenAddress = "0x000000000000000000000000000000000044b66c"; +const reward2TokenAddress = "0x000000000000000000000000000000000044b66e"; +const reward1TokenId = "0.0.4503148"; +const reward2TokenId = "0.0.4503150"; + +// Tests +describe("Vault", function () { + async function deployFixture() { + const [owner] = await ethers.getSigners(); + + console.log("Setting up the client for Hedera testnet..."); + let client = Client.forTestnet(); + + console.log("Reading environment variables for operator private key and account ID..."); + const operatorPrKey = PrivateKey.fromStringECDSA(process.env.PRIVATE_KEY || ""); + const operatorAccountId = AccountId.fromString(process.env.ACCOUNT_ID || ""); + console.log("Operator Account ID: ", operatorAccountId.toString()); + + client.setOperator(operatorAccountId, operatorPrKey); + + console.log("Reading ERC20 artifact..."); + const erc20 = await hre.artifacts.readArtifact("contracts/erc4626/ERC20.sol:ERC20"); + + // console.log("Associating shares token with operator account..."); + // const sharesTokenAssociate = await new TokenAssociateTransaction() + // .setAccountId(operatorAccountId) + // .setTokenIds([sharesTokenId]) + // .execute(client); + + // console.log("Associating staking token with operator account..."); + // const stakingTokenAssociate = await new TokenAssociateTransaction() + // .setAccountId(operatorAccountId) + // .setTokenIds([stakingTokenId]) + // .execute(client); + + // console.log("Associating reward tokens with operator account..."); + // const rewardTokenAssociate = await new TokenAssociateTransaction() + // .setAccountId(operatorAccountId) + // .setTokenIds([reward1TokenId, reward2TokenId]) + // .execute(client); + + console.log("Getting HederaVault contract instance..."); + const hederaVault = await ethers.getContractAt("HederaVault", vaultAddress); + + console.log("Getting reward token contract instances..."); + const rewardToken1 = await ethers.getContractAt(erc20.abi, reward1TokenAddress); + const rewardToken2 = await ethers.getContractAt(erc20.abi, reward2TokenAddress); + + console.log("Getting staking token contract instance..."); + const stakingToken = await ethers.getContractAt(erc20.abi, await hederaVault.asset()); + + console.log("Getting shares token contract instance..."); + const sharesToken = await ethers.getContractAt(erc20.abi, sharesTokenAddress); + + console.log("Fetching balance of reward token 1 for the operator..."); + const rewardToken1OperatorBalance = await TokenBalance(operatorAccountId, client); + if (!rewardToken1OperatorBalance.tokens) { + throw new Error("Failed to fetch balances for reward token 1."); + } + const reward1Balance = rewardToken1OperatorBalance.tokens.get(reward1TokenId); + if (reward1Balance === undefined) { + throw new Error(`Balance for token ${reward1TokenAddress} not found.`); + } + console.log("Reward token 1 balance: ", reward1Balance.toString()); + + console.log("Fetching balance of reward token 2 for the operator..."); + const rewardToken2OperatorBalance = await TokenBalance(operatorAccountId, client); + if (!rewardToken2OperatorBalance.tokens) { + throw new Error("Failed to fetch balances for reward token 2."); + } + const reward2Balance = rewardToken2OperatorBalance.tokens.get(reward2TokenId); + if (reward2Balance === undefined) { + throw new Error(`Balance for token ${reward2TokenAddress} not found.`); + } + console.log("Reward token 2 balance: ", reward2Balance.toString()); + + return { + hederaVault, + rewardToken1, + rewardToken2, + stakingToken, + sharesToken, + client, + owner, + }; + } + + describe("linear unlock", function () { + it("Should unlock rewards linearly over time", async function () { + const { hederaVault, owner, rewardToken1, rewardToken2, stakingToken } = await deployFixture(); + const amountToDeposit = 1000; + const rewardAmount = 1000; + + console.log("Approving and depositing staking tokens..."); + await stakingToken.approve(hederaVault.target, amountToDeposit); + await hederaVault.deposit(amountToDeposit, owner.address); + + console.log("Approving and adding reward tokens..."); + await rewardToken1.approve(hederaVault.target, rewardAmount); + await hederaVault.addReward(rewardToken1.target, rewardAmount, 300); + + console.log("Waiting for half the duration..."); + await new Promise((resolve) => setTimeout(resolve, 150 * 1000)); // Wait for 150 seconds + + console.log(await hederaVault.getUserReward(owner.address, rewardToken1.target)); + + console.log("Balance before ", await rewardToken1.balanceOf(owner.address)); + + await hederaVault.claimAllReward(0); + + console.log("balance after ", await rewardToken1.balanceOf(owner.address)); + }); + }); +}); diff --git a/yarn.lock b/yarn.lock index e924b16..2e23e16 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4,17 +4,17 @@ "@aashutoshrathi/word-wrap@^1.2.3": version "1.2.6" - resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== "@adraffy/ens-normalize@1.10.1": version "1.10.1" - resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" + resolved "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz" integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== "@aws-crypto/sha256-js@1.2.2": version "1.2.2" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-1.2.2.tgz#02acd1a1fda92896fc5a28ec7c6e164644ea32fc" + resolved "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.2.2.tgz" integrity sha512-Nr1QJIbW/afYYGzYvrF70LtaHrIRtd4TNAglX8BvlfxJLZ45SAmueIKYl5tWoNBPzp65ymXGFK0Bb1vZUpuc9g== dependencies: "@aws-crypto/util" "^1.2.2" @@ -23,7 +23,7 @@ "@aws-crypto/util@^1.2.2": version "1.2.2" - resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-1.2.2.tgz#b28f7897730eb6538b21c18bd4de22d0ea09003c" + resolved "https://registry.npmjs.org/@aws-crypto/util/-/util-1.2.2.tgz" integrity sha512-H8PjG5WJ4wz0UXAFXeJjWCW1vkvIJ3qUUD+rGRwJ2/hj+xT58Qle2MTql/2MGzkU+1JLAFuR6aJpLAjHwhmwwg== dependencies: "@aws-sdk/types" "^3.1.0" @@ -32,7 +32,7 @@ "@aws-sdk/types@^3.1.0": version "3.523.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.523.0.tgz#2bb11390023949f31d9211212f41e245a7f03489" + resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.523.0.tgz" integrity sha512-AqGIu4u+SxPiUuNBp2acCVcq80KDUFjxe6e3cMTvKWTzCbrVk1AXv0dAaJnCmdkWIha6zJDWxpIk/aL4EGhZ9A== dependencies: "@smithy/types" "^2.10.1" @@ -40,14 +40,14 @@ "@aws-sdk/util-utf8-browser@^3.0.0": version "3.259.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff" + resolved "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz" integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== dependencies: tslib "^2.3.1" "@babel/code-frame@^7.0.0": version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz" integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== dependencies: "@babel/highlight" "^7.23.4" @@ -55,12 +55,12 @@ "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== "@babel/highlight@^7.23.4": version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz" integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== dependencies: "@babel/helper-validator-identifier" "^7.22.20" @@ -69,29 +69,29 @@ "@balena/dockerignore@^1.0.2": version "1.0.2" - resolved "https://registry.yarnpkg.com/@balena/dockerignore/-/dockerignore-1.0.2.tgz#9ffe4726915251e8eb69f44ef3547e0da2c03e0d" + resolved "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz" integrity sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q== "@colors/colors@1.5.0": version "1.5.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== "@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.6.0", "@eslint-community/regexpp@^4.6.1": - version "4.10.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.0", "@eslint-community/regexpp@^4.6.1": + version "4.11.0" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz" + integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== "@eslint/eslintrc@^2.1.4": version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" @@ -106,26 +106,26 @@ "@eslint/js@8.57.0": version "8.57.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" + resolved "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz" integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== "@ethereumjs/rlp@^4.0.1": version "4.0.1" - resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41" + resolved "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz" integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== "@ethereumjs/util@^8.1.0": version "8.1.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4" + resolved "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz" integrity sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA== dependencies: "@ethereumjs/rlp" "^4.0.1" ethereum-cryptography "^2.0.0" micro-ftch "^0.3.1" -"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.0.9", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.7.0": +"@ethersproject/abi@^5.0.9", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.7.0", "@ethersproject/abi@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" + resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz" integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== dependencies: "@ethersproject/address" "^5.7.0" @@ -138,9 +138,9 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": +"@ethersproject/abstract-provider@^5.7.0", "@ethersproject/abstract-provider@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" + resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz" integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== dependencies: "@ethersproject/bignumber" "^5.7.0" @@ -151,9 +151,9 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/web" "^5.7.0" -"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": +"@ethersproject/abstract-signer@^5.7.0", "@ethersproject/abstract-signer@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" + resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz" integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== dependencies: "@ethersproject/abstract-provider" "^5.7.0" @@ -162,9 +162,9 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.7.0": +"@ethersproject/address@^5.0.2", "@ethersproject/address@^5.7.0", "@ethersproject/address@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" + resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== dependencies: "@ethersproject/bignumber" "^5.7.0" @@ -173,47 +173,47 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/rlp" "^5.7.0" -"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": +"@ethersproject/base64@^5.7.0", "@ethersproject/base64@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" + resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz" integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== dependencies: "@ethersproject/bytes" "^5.7.0" -"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": +"@ethersproject/basex@^5.7.0", "@ethersproject/basex@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" + resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz" integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0": +"@ethersproject/bignumber@^5.7.0", "@ethersproject/bignumber@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" + resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" bn.js "^5.2.1" -"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.7.0": +"@ethersproject/bytes@^5.7.0", "@ethersproject/bytes@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" + resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz" integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0": +"@ethersproject/constants@^5.7.0", "@ethersproject/constants@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" + resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz" integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== dependencies: "@ethersproject/bignumber" "^5.7.0" "@ethersproject/contracts@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" + resolved "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz" integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== dependencies: "@ethersproject/abi" "^5.7.0" @@ -227,9 +227,9 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/transactions" "^5.7.0" -"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0": +"@ethersproject/hash@^5.7.0", "@ethersproject/hash@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" + resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== dependencies: "@ethersproject/abstract-signer" "^5.7.0" @@ -242,9 +242,9 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": +"@ethersproject/hdnode@^5.7.0", "@ethersproject/hdnode@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" + resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz" integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== dependencies: "@ethersproject/abstract-signer" "^5.7.0" @@ -260,9 +260,9 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": +"@ethersproject/json-wallets@^5.7.0", "@ethersproject/json-wallets@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" + resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz" integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== dependencies: "@ethersproject/abstract-signer" "^5.7.0" @@ -279,44 +279,44 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0": +"@ethersproject/keccak256@^5.7.0", "@ethersproject/keccak256@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" + resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz" integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== dependencies: "@ethersproject/bytes" "^5.7.0" js-sha3 "0.8.0" -"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0": +"@ethersproject/logger@^5.7.0", "@ethersproject/logger@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== -"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": +"@ethersproject/networks@^5.7.0", "@ethersproject/networks@5.7.1": version "5.7.1" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" + resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz" integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": +"@ethersproject/pbkdf2@^5.7.0", "@ethersproject/pbkdf2@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" + resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz" integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/sha2" "^5.7.0" -"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": +"@ethersproject/properties@^5.7.0", "@ethersproject/properties@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" + resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== dependencies: "@ethersproject/logger" "^5.7.0" "@ethersproject/providers@5.7.2": version "5.7.2" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" + resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz" integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== dependencies: "@ethersproject/abstract-provider" "^5.7.0" @@ -340,34 +340,34 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": +"@ethersproject/random@^5.7.0", "@ethersproject/random@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" + resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz" integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": +"@ethersproject/rlp@^5.7.0", "@ethersproject/rlp@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" + resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz" integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": +"@ethersproject/sha2@^5.7.0", "@ethersproject/sha2@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" + resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz" integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" hash.js "1.1.7" -"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": +"@ethersproject/signing-key@^5.7.0", "@ethersproject/signing-key@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" + resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz" integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== dependencies: "@ethersproject/bytes" "^5.7.0" @@ -379,7 +379,7 @@ "@ethersproject/solidity@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" + resolved "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz" integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== dependencies: "@ethersproject/bignumber" "^5.7.0" @@ -389,18 +389,18 @@ "@ethersproject/sha2" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0": +"@ethersproject/strings@^5.7.0", "@ethersproject/strings@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" + resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0": +"@ethersproject/transactions@^5.7.0", "@ethersproject/transactions@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" + resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== dependencies: "@ethersproject/address" "^5.7.0" @@ -415,7 +415,7 @@ "@ethersproject/units@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" + resolved "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz" integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== dependencies: "@ethersproject/bignumber" "^5.7.0" @@ -424,7 +424,7 @@ "@ethersproject/wallet@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" + resolved "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz" integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== dependencies: "@ethersproject/abstract-provider" "^5.7.0" @@ -443,9 +443,9 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": +"@ethersproject/web@^5.7.0", "@ethersproject/web@5.7.1": version "5.7.1" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" + resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz" integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== dependencies: "@ethersproject/base64" "^5.7.0" @@ -454,9 +454,9 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": +"@ethersproject/wordlists@^5.7.0", "@ethersproject/wordlists@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" + resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz" integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== dependencies: "@ethersproject/bytes" "^5.7.0" @@ -467,30 +467,30 @@ "@fastify/busboy@^2.0.0": version "2.1.1" - resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d" + resolved "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz" integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== "@grpc/grpc-js@1.8.2": version "1.8.2" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.8.2.tgz#7f2d18a32a45624174444c915d0fc26fc0c5179c" + resolved "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.2.tgz" integrity sha512-5cqCjUvDKJWHGeu1prlrFOUmjuML0NequZKJ38PsCkfwIqPnZq4Q9burPP3It7/+46wpl0KsqVN3s6Te3B9Qtw== dependencies: "@grpc/proto-loader" "^0.7.0" "@types/node" ">=12.12.47" "@grpc/proto-loader@^0.7.0": - version "0.7.10" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.10.tgz#6bf26742b1b54d0a473067743da5d3189d06d720" - integrity sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ== + version "0.7.13" + resolved "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz" + integrity sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw== dependencies: lodash.camelcase "^4.3.0" long "^5.0.0" - protobufjs "^7.2.4" + protobufjs "^7.2.5" yargs "^17.7.2" "@hashgraph/cryptography@1.4.8-beta.5": version "1.4.8-beta.5" - resolved "https://registry.yarnpkg.com/@hashgraph/cryptography/-/cryptography-1.4.8-beta.5.tgz#c0a30838d83080086bce5fbf2d8f19924a27805f" + resolved "https://registry.npmjs.org/@hashgraph/cryptography/-/cryptography-1.4.8-beta.5.tgz" integrity sha512-soq2vGLRkdl2Evr+gIvIjCXJjqA1hOAjysBGG+dhP6tKx2PEgEjb3hON/sMbxm3Q4qQdkML/vEthdAV707+flw== dependencies: asn1js "^3.0.5" @@ -506,37 +506,37 @@ utf8 "^3.0.0" "@hashgraph/hedera-local@^2.19.1": - version "2.19.1" - resolved "https://registry.yarnpkg.com/@hashgraph/hedera-local/-/hedera-local-2.19.1.tgz#34b714d3bf718ba5d3b0e59d0503b1e6cc98746c" - integrity sha512-71muBNoYaAi50I+vnyfcPtO8TY3AjxzozqF60FGBFtR5ILbP5r4fKzMsIW80FrTUxYvGDB2y++lj0LvAoxd0ZQ== + version "2.27.1" + resolved "https://registry.npmjs.org/@hashgraph/hedera-local/-/hedera-local-2.27.1.tgz" + integrity sha512-Q4JmwZm5OpVS8FznkrWjLX/JFXIzd142LJnzIhpmKfSPJp8Y73kJgfBiGkcDv9e8mk89ZRFaVy6kQbGn0FZaIg== dependencies: - "@hashgraph/sdk" "^2.41.0" + "@hashgraph/sdk" "^2.48.1" blessed "^0.1.81" blessed-terminal "^0.1.22" csv-parser "^3.0.0" - detect-port "^1.5.1" + detect-port "^1.6.1" dockerode "^4.0.2" - dotenv "^16.3.1" - ethers "^6.11.1" + dotenv "^16.4.5" + ethers "^6.13.1" js-yaml "^4.1.0" - rimraf "^5.0.5" - semver "^7.5.4" + rimraf "^5.0.7" + semver "^7.6.2" shelljs "^0.8.5" - ts-mocha "^9.0.0" + ts-mocha "^10.0.0" yargs "^17.7.2" -"@hashgraph/proto@2.14.0-beta.4": - version "2.14.0-beta.4" - resolved "https://registry.yarnpkg.com/@hashgraph/proto/-/proto-2.14.0-beta.4.tgz#82049f9e738afc7b529c61e0f56f7e0a3b5907e0" - integrity sha512-DCmK9CivuVpdDuay1VcYt++Zhms55uu8JZgJI6fBtJuv/WkMuYLNtmnihKcQ39Ykmm8SV6iL6trTziTINHV44g== +"@hashgraph/proto@2.15.0-beta.2": + version "2.15.0-beta.2" + resolved "https://registry.npmjs.org/@hashgraph/proto/-/proto-2.15.0-beta.2.tgz" + integrity sha512-vtkW8rZccnch3FKmNj1bLRZsS0YO3w7PuCj8LNq9HgMP6KzzA7scRk8yLm/XyiD7UHJS/l1cFg0Cj/DDRSwGxQ== dependencies: long "^4.0.0" protobufjs "^7.2.5" -"@hashgraph/sdk@^2.41.0": - version "2.42.0" - resolved "https://registry.yarnpkg.com/@hashgraph/sdk/-/sdk-2.42.0.tgz#abf79cb7c7b8fa44839b9de996acfe51cd064e7e" - integrity sha512-47E08ZHGRKoZCmJJhbcaFWcAWNPpJfs5F0SvqocDNFHs616+zrAwFDPXqWLtGx3JhyeCZClgpDYvJX7CVBFCtA== +"@hashgraph/sdk@^2.48.1": + version "2.48.1" + resolved "https://registry.npmjs.org/@hashgraph/sdk/-/sdk-2.48.1.tgz" + integrity sha512-ZizLBcgu7bBIx+EuwRWFkBQugAQAkH5ZvKe+dTf53TCVoUw3LPIta+u/hpVIhB9Xm9PJmA9F23DSo+Bmken46Q== dependencies: "@ethersproject/abi" "^5.7.0" "@ethersproject/bignumber" "^5.7.0" @@ -544,7 +544,7 @@ "@ethersproject/rlp" "^5.7.0" "@grpc/grpc-js" "1.8.2" "@hashgraph/cryptography" "1.4.8-beta.5" - "@hashgraph/proto" "2.14.0-beta.4" + "@hashgraph/proto" "2.15.0-beta.2" axios "^1.6.4" bignumber.js "^9.1.1" bn.js "^5.1.1" @@ -559,7 +559,7 @@ "@humanwhocodes/config-array@^0.11.14": version "0.11.14" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz" integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== dependencies: "@humanwhocodes/object-schema" "^2.0.2" @@ -568,17 +568,17 @@ "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^2.0.2": version "2.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz" integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== "@isaacs/cliui@^8.0.2": version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: string-width "^5.1.2" @@ -590,7 +590,7 @@ "@metamask/eth-sig-util@^4.0.0": version "4.0.1" - resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" + resolved "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz" integrity sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ== dependencies: ethereumjs-abi "^0.6.8" @@ -599,56 +599,63 @@ tweetnacl "^1.0.3" tweetnacl-util "^0.15.1" +"@noble/curves@~1.3.0": + version "1.3.0" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz" + integrity sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA== + dependencies: + "@noble/hashes" "1.3.3" + "@noble/curves@1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz" integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== dependencies: "@noble/hashes" "1.3.2" -"@noble/curves@1.3.0", "@noble/curves@~1.3.0": +"@noble/curves@1.3.0": version "1.3.0" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.3.0.tgz#01be46da4fd195822dab821e72f71bf4aeec635e" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz" integrity sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA== dependencies: "@noble/hashes" "1.3.3" -"@noble/hashes@1.2.0", "@noble/hashes@~1.2.0": +"@noble/hashes@~1.2.0", "@noble/hashes@1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz" integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== -"@noble/hashes@1.3.2": +"@noble/hashes@~1.3.2", "@noble/hashes@1.3.2": version "1.3.2" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz" integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== -"@noble/hashes@1.3.3", "@noble/hashes@~1.3.2": +"@noble/hashes@1.3.3": version "1.3.3" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz" integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== -"@noble/secp256k1@1.7.1", "@noble/secp256k1@~1.7.0": +"@noble/secp256k1@~1.7.0", "@noble/secp256k1@1.7.1": version "1.7.1" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" + resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz" integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" @@ -656,52 +663,12 @@ "@nomicfoundation/edr-darwin-arm64@0.2.1": version "0.2.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.2.1.tgz#10c1a07add192583ce8b2d4cc93439f52b390a41" + resolved "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.2.1.tgz" integrity sha512-aMYaRaZVQ/TmyNJIoXf1bU4k0zfinaL9Sy1day4yGlL6eiQPFfRGj9W6TZaZIoYG0XTx/mQWD7dkXJ7LdrleJA== -"@nomicfoundation/edr-darwin-x64@0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.2.1.tgz#eaa29d2ba9f91ddb5f59b872c5a54f94a6fe3095" - integrity sha512-ma0SLcjHm5L3nPHcKFJB0jv/gKGSKaxr5Z65rurX/eaYUQJ7YGMsb8er9bSCo9rjzOtxf4FoPj3grL3zGpOj8A== - -"@nomicfoundation/edr-linux-arm64-gnu@0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.2.1.tgz#8149db0d742157405effe82d485ea9bfefddc795" - integrity sha512-NX3G4pBhRitWrjSGY3HTyCq3wKSm5YqrKVOCNQGl9/jcjSovqxlgzFMiTx4YZCzGntfJ/1om9AI84OWxYJjoDw== - -"@nomicfoundation/edr-linux-arm64-musl@0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.2.1.tgz#7d53afe5607eb406d199a199d00209a6304ff07b" - integrity sha512-gdQ3QHkt9XRkdtOGQ8fMwS11MXdjLeZgLrqoial4V4qtMaamIMMhVczK+VEvUhD8p7G4BVmp6kmkvcsthmndmw== - -"@nomicfoundation/edr-linux-x64-gnu@0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.2.1.tgz#b762c95368fcb88bbbabba4d8be5380f38967413" - integrity sha512-OqabFY37vji6mYbLD9CvG28lja68czeVw58oWByIhFV3BpBu/cyP1oAbhzk3LieylujabS3Ekpvjw2Tkf0A9RQ== - -"@nomicfoundation/edr-linux-x64-musl@0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.2.1.tgz#522448c42bff7d2abd52ddcf11ae6ca3dfdd6db4" - integrity sha512-vHfFFK2EPISuQUQge+bdjXamb0EUjfl8srYSog1qfiwyLwLeuSbpyyFzDeITAgPpkkFuedTfJW553K0Hipspyg== - -"@nomicfoundation/edr-win32-arm64-msvc@0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-arm64-msvc/-/edr-win32-arm64-msvc-0.2.1.tgz#ccfa443c274e49de93016a1060be810096dc6f1d" - integrity sha512-K/mui67RCKxghbSyvhvW3rvyVN1pa9M1Q9APUx1PtWjSSdXDFpqEY1NYsv2syb47Ca8ObJwVMF+LvnB6GvhUOQ== - -"@nomicfoundation/edr-win32-ia32-msvc@0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-ia32-msvc/-/edr-win32-ia32-msvc-0.2.1.tgz#822b19d3e67d6dcfa5394cb6a4d55d8bab1b2f26" - integrity sha512-HHK0mXEtjvfjJrJlqcYgQCy3lZIXS1KNl2GaP8bwEIuEwx++XxXs/ThLjPepM1nhCGICij8IGy7p3KrkzRelsw== - -"@nomicfoundation/edr-win32-x64-msvc@0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.2.1.tgz#7b56ff742b2724779cc9f3385815b394f76de8df" - integrity sha512-FY4eQJdj1/y8ST0RyQycx63yr+lvdYNnUkzgWf4X+vPH1lOhXae+L2NDcNCQlTDAfQcD6yz0bkBUkLrlJ8pTww== - "@nomicfoundation/edr@^0.2.0": version "0.2.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr/-/edr-0.2.1.tgz#a3d2a542dcd5dc5a8d757116d52baea05f370531" + resolved "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.2.1.tgz" integrity sha512-Dleau3ItHJh2n85G2J6AIPBoLgu/mOWkmrh26z3VsJE2tp/e00hUk/dqz85ncsVcBYEc6/YOn/DomWu0wSF9tQ== optionalDependencies: "@nomicfoundation/edr-darwin-arm64" "0.2.1" @@ -716,19 +683,19 @@ "@nomicfoundation/ethereumjs-common@4.0.4": version "4.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz#9901f513af2d4802da87c66d6f255b510bef5acb" + resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz" integrity sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg== dependencies: "@nomicfoundation/ethereumjs-util" "9.0.4" "@nomicfoundation/ethereumjs-rlp@5.0.4": version "5.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz#66c95256fc3c909f6fb18f6a586475fc9762fa30" + resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz" integrity sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw== "@nomicfoundation/ethereumjs-tx@5.0.4": version "5.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz#b0ceb58c98cc34367d40a30d255d6315b2f456da" + resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz" integrity sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw== dependencies: "@nomicfoundation/ethereumjs-common" "4.0.4" @@ -738,7 +705,7 @@ "@nomicfoundation/ethereumjs-util@9.0.4": version "9.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz#84c5274e82018b154244c877b76bc049a4ed7b38" + resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz" integrity sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q== dependencies: "@nomicfoundation/ethereumjs-rlp" "5.0.4" @@ -746,7 +713,7 @@ "@nomicfoundation/hardhat-chai-matchers@^2.0.0": version "2.0.6" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-2.0.6.tgz#ef88be3bd666adf29c06ac7882e96c8dbaaa32ba" + resolved "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-2.0.6.tgz" integrity sha512-Te1Uyo9oJcTCF0Jy9dztaLpshmlpjLf2yPtWXlXuLjMt3RRSmJLm/+rKVTW6gfadAEs12U/it6D0ZRnnRGiICQ== dependencies: "@types/chai-as-promised" "^7.1.3" @@ -754,9 +721,9 @@ deep-eql "^4.0.1" ordinal "^1.0.3" -"@nomicfoundation/hardhat-ethers@^3.0.5": +"@nomicfoundation/hardhat-ethers@^3.0.0", "@nomicfoundation/hardhat-ethers@^3.0.5": version "3.0.5" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.5.tgz#0422c2123dec7c42e7fb2be8e1691f1d9708db56" + resolved "https://registry.npmjs.org/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.5.tgz" integrity sha512-RNFe8OtbZK6Ila9kIlHp0+S80/0Bu/3p41HUpaRIoHLm6X3WekTd83vob3rE54Duufu1edCiBDxspBzi2rxHHw== dependencies: debug "^4.1.1" @@ -764,19 +731,19 @@ "@nomicfoundation/hardhat-network-helpers@^1.0.0": version "1.0.10" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.10.tgz#c61042ceb104fdd6c10017859fdef6529c1d6585" + resolved "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.10.tgz" integrity sha512-R35/BMBlx7tWN5V6d/8/19QCwEmIdbnA4ZrsuXgvs8i2qFx5i7h6mH5pBS4Pwi4WigLH+upl6faYusrNPuzMrQ== dependencies: ethereumjs-util "^7.1.4" "@nomicfoundation/hardhat-toolbox@^4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-4.0.0.tgz#eb1f619218dd1414fa161dfec92d3e5e53a2f407" + resolved "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-4.0.0.tgz" integrity sha512-jhcWHp0aHaL0aDYj8IJl80v4SZXWMS1A2XxXa1CA6pBiFfJKuZinCkO6wb+POAt0LIfXB3gA3AgdcOccrcwBwA== "@nomicfoundation/hardhat-verify@^2.0.0": version "2.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.4.tgz#65b86787fc7b47d38fd941862266065c7eb9bca4" + resolved "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.4.tgz" integrity sha512-B8ZjhOrmbbRWqJi65jvQblzjsfYktjqj2vmOm+oc2Vu8drZbT2cjeSCRHZKbS7lOtfW78aJZSFvw+zRLCiABJA== dependencies: "@ethersproject/abi" "^5.1.2" @@ -791,57 +758,12 @@ "@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.1": version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz#4c858096b1c17fe58a474fe81b46815f93645c15" + resolved "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz" integrity sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w== -"@nomicfoundation/solidity-analyzer-darwin-x64@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz#6e25ccdf6e2d22389c35553b64fe6f3fdaec432c" - integrity sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA== - -"@nomicfoundation/solidity-analyzer-freebsd-x64@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz#0a224ea50317139caeebcdedd435c28a039d169c" - integrity sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA== - -"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz#dfa085d9ffab9efb2e7b383aed3f557f7687ac2b" - integrity sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg== - -"@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz#c9e06b5d513dd3ab02a7ac069c160051675889a4" - integrity sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w== - -"@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz#8d328d16839e52571f72f2998c81e46bf320f893" - integrity sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA== - -"@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz#9b49d0634b5976bb5ed1604a1e1b736f390959bb" - integrity sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w== - -"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz#e2867af7264ebbcc3131ef837878955dd6a3676f" - integrity sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg== - -"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz#0685f78608dd516c8cdfb4896ed451317e559585" - integrity sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ== - -"@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz#c9a44f7108646f083b82e851486e0f6aeb785836" - integrity sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw== - "@nomicfoundation/solidity-analyzer@^0.1.0": version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz#f5f4d36d3f66752f59a57e7208cd856f3ddf6f2d" + resolved "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz" integrity sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg== optionalDependencies: "@nomicfoundation/solidity-analyzer-darwin-arm64" "0.1.1" @@ -857,52 +779,30 @@ "@nomiclabs/hardhat-ethers@^2.2.3": version "2.2.3" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz#b41053e360c31a32c2640c9a45ee981a7e603fe0" + resolved "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz" integrity sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg== "@openzeppelin/contracts-upgradeable@5.0.2": version "5.0.2" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.0.2.tgz#3e5321a2ecdd0b206064356798c21225b6ec7105" + resolved "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.0.2.tgz" integrity sha512-0MmkHSHiW2NRFiT9/r5Lu4eJq5UJ4/tzlOgYXNAIj/ONkQTVnz22pLxDvp4C4uZ9he7ZFvGn3Driptn1/iU7tQ== "@openzeppelin/contracts@5.0.2": version "5.0.2" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-5.0.2.tgz#b1d03075e49290d06570b2fd42154d76c2a5d210" + resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.0.2.tgz" integrity sha512-ytPc6eLGcHHnapAZ9S+5qsdomhjo6QBHTDRRBFfTxXIpsicMhVPouPgmUPebZZZGX7vt9USA+Z+0M0dSVtSUEA== -"@openzeppelin/defender-admin-client@^1.52.0": - version "1.54.1" - resolved "https://registry.yarnpkg.com/@openzeppelin/defender-admin-client/-/defender-admin-client-1.54.1.tgz#b877972992b95a0dc3787f2ade2f044586621357" - integrity sha512-kRpSUdTsnSqntp4FOXIm95t+6VKHc8CUY2Si71VDuxs0q7HSPZkdpRPSntcolwEzWy9L4a8NS/QMwDF5NJ4X1g== - dependencies: - "@openzeppelin/defender-base-client" "1.54.1" - axios "^1.4.0" - ethers "^5.7.2" - lodash "^4.17.19" - node-fetch "^2.6.0" - -"@openzeppelin/defender-base-client@1.54.1", "@openzeppelin/defender-base-client@^1.52.0": - version "1.54.1" - resolved "https://registry.yarnpkg.com/@openzeppelin/defender-base-client/-/defender-base-client-1.54.1.tgz#ed777ae56908d5a920e1f72ac735c63694e65b30" - integrity sha512-DRGz/7KN3ZQwu28YWMOaojrC7jjPkz/uCwkC8/C8B11qwZhA5qIVvyhYHhhFOCl0J84+E3TNdvkPD2q3p2WaJw== - dependencies: - amazon-cognito-identity-js "^6.0.1" - async-retry "^1.3.3" - axios "^1.4.0" - lodash "^4.17.19" - node-fetch "^2.6.0" - -"@openzeppelin/defender-sdk-base-client@^1.10.0", "@openzeppelin/defender-sdk-base-client@^1.9.0": - version "1.10.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/defender-sdk-base-client/-/defender-sdk-base-client-1.10.0.tgz#038a5b13f92e03de42382ec331b670f40a915816" - integrity sha512-V21oI4G54sdEJ9lVN8q5OqfFRUoVDzjeXfWgpQvUpfy69r56NnE57D6e5RLG1fRp1J0APfW3lFjaaLwl0kqZpg== +"@openzeppelin/defender-sdk-base-client@^1.10.0", "@openzeppelin/defender-sdk-base-client@^1.13.4": + version "1.13.4" + resolved "https://registry.npmjs.org/@openzeppelin/defender-sdk-base-client/-/defender-sdk-base-client-1.13.4.tgz" + integrity sha512-fZjDxdL5WBt6kjKN8j6WlfIsggZKv37W1KoRkT0XwYv7Jslmr22i2qUs8ZreAzATD3ESYQs7YlO7ge0ElqdOKg== dependencies: amazon-cognito-identity-js "^6.3.6" async-retry "^1.3.3" -"@openzeppelin/defender-sdk-deploy-client@^1.9.0": +"@openzeppelin/defender-sdk-deploy-client@^1.10.0": version "1.10.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/defender-sdk-deploy-client/-/defender-sdk-deploy-client-1.10.0.tgz#64d7789eceede36ec12dcdae0dc4b67ffa7ae97d" + resolved "https://registry.npmjs.org/@openzeppelin/defender-sdk-deploy-client/-/defender-sdk-deploy-client-1.10.0.tgz" integrity sha512-PckmUQYwe26/u/s3sjLateSNtKQ0tdAaOyP6spsgaT+us+XUUqAt/EUfEJdGpt8JApsRWYzrQzH6Z0ywoUyqyw== dependencies: "@ethersproject/abi" "^5.7.0" @@ -910,25 +810,33 @@ axios "^1.6.7" lodash "^4.17.21" +"@openzeppelin/defender-sdk-network-client@^1.10.0": + version "1.13.4" + resolved "https://registry.npmjs.org/@openzeppelin/defender-sdk-network-client/-/defender-sdk-network-client-1.13.4.tgz" + integrity sha512-m76WQzqFET4jtFgA74V6Ui4czRoTvBy7leS+BbsIxoKX+NGODhs78y5zq7jSxsLu3c2iY69rujRkzj0Z+sCiiQ== + dependencies: + "@openzeppelin/defender-sdk-base-client" "^1.13.4" + axios "^1.6.8" + lodash "^4.17.21" + "@openzeppelin/hardhat-upgrades@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-3.0.4.tgz#76239e4e51cb19fdb5f91820bf19eae683cbfc9c" - integrity sha512-YmfTgi7K8mjqxPvlYbW1nKXXswh8O/HrJH5z4vHEQHJXoHnVyY10tqlYyB5FUlcVOh2zMRiPUhvr++ObjeqScw== + version "3.2.0" + resolved "https://registry.npmjs.org/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-3.2.0.tgz" + integrity sha512-xybXIHQIZK2a1HH7ukMToRbIcU9LHfL49gtB0KYptY6f/r9lqrFOupN8aOBueRZW4Ymhc6HGL9bvj7u7t5lDdQ== dependencies: - "@openzeppelin/defender-admin-client" "^1.52.0" - "@openzeppelin/defender-base-client" "^1.52.0" - "@openzeppelin/defender-sdk-base-client" "^1.9.0" - "@openzeppelin/defender-sdk-deploy-client" "^1.9.0" + "@openzeppelin/defender-sdk-base-client" "^1.10.0" + "@openzeppelin/defender-sdk-deploy-client" "^1.10.0" + "@openzeppelin/defender-sdk-network-client" "^1.10.0" "@openzeppelin/upgrades-core" "^1.32.0" chalk "^4.1.0" debug "^4.1.1" ethereumjs-util "^7.1.5" proper-lockfile "^4.1.1" - undici "^5.28.2" + undici "^6.11.1" "@openzeppelin/upgrades-core@^1.32.0": version "1.32.5" - resolved "https://registry.yarnpkg.com/@openzeppelin/upgrades-core/-/upgrades-core-1.32.5.tgz#2496174fd1f47be4dd8f36b29714d4e1f8240632" + resolved "https://registry.npmjs.org/@openzeppelin/upgrades-core/-/upgrades-core-1.32.5.tgz" integrity sha512-R0wprsyJ4xWiRW05kaTfZZkRVpG2g0af3/hpjE7t2mX0Eb2n40MQLokTwqIk4LDzpp910JfLSpB0vBuZ6WNPog== dependencies: cbor "^9.0.0" @@ -942,24 +850,24 @@ "@pkgjs/parseargs@^0.11.0": version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== "@pnpm/config.env-replace@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" + resolved "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz" integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== "@pnpm/network.ca-file@^1.0.1": version "1.0.2" - resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983" + resolved "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz" integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== dependencies: graceful-fs "4.2.10" "@pnpm/npm-conf@^2.1.0": version "2.2.2" - resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz#0058baf1c26cbb63a828f0193795401684ac86f0" + resolved "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz" integrity sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA== dependencies: "@pnpm/config.env-replace" "^1.1.0" @@ -968,32 +876,32 @@ "@prettier/sync@^0.3.0": version "0.3.0" - resolved "https://registry.yarnpkg.com/@prettier/sync/-/sync-0.3.0.tgz#91f2cfc23490a21586d1cf89c6f72157c000ca1e" + resolved "https://registry.npmjs.org/@prettier/sync/-/sync-0.3.0.tgz" integrity sha512-3dcmCyAxIcxy036h1I7MQU/uEEBq8oLwf1CE3xeze+MPlgkdlb/+w6rGR/1dhp6Hqi17fRS6nvwnOzkESxEkOw== "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz" integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== "@protobufjs/base64@^1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + resolved "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz" integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== "@protobufjs/codegen@^2.0.4": version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + resolved "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz" integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== "@protobufjs/eventemitter@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + resolved "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz" integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== "@protobufjs/fetch@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + resolved "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz" integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== dependencies: "@protobufjs/aspromise" "^1.1.1" @@ -1001,42 +909,42 @@ "@protobufjs/float@^1.0.2": version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + resolved "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz" integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== "@protobufjs/inquire@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + resolved "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz" integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== "@protobufjs/path@^1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + resolved "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz" integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== "@protobufjs/pool@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + resolved "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz" integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== "@protobufjs/utf8@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== "@pythnetwork/pyth-sdk-solidity@^3.1.0": version "3.1.0" - resolved "https://registry.yarnpkg.com/@pythnetwork/pyth-sdk-solidity/-/pyth-sdk-solidity-3.1.0.tgz#2de5bc2bbaadd5c5c2702f31116378fb7c9da3ec" + resolved "https://registry.npmjs.org/@pythnetwork/pyth-sdk-solidity/-/pyth-sdk-solidity-3.1.0.tgz" integrity sha512-NgtEPUTL9r0qqMpIOEtSdUVjrF08fHK6wa7eM8hdjhjzMOti4o053B9oFqpm4lkzJW6eELXuP4sRJOABGmNTUg== "@scure/base@~1.1.0", "@scure/base@~1.1.4": version "1.1.5" - resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.5.tgz#1d85d17269fe97694b9c592552dd9e5e33552157" + resolved "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz" integrity sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ== "@scure/bip32@1.1.5": version "1.1.5" - resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.1.5.tgz#d2ccae16dcc2e75bc1d75f5ef3c66a338d1ba300" + resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz" integrity sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw== dependencies: "@noble/hashes" "~1.2.0" @@ -1045,7 +953,7 @@ "@scure/bip32@1.3.3": version "1.3.3" - resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.3.tgz#a9624991dc8767087c57999a5d79488f48eae6c8" + resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.3.tgz" integrity sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ== dependencies: "@noble/curves" "~1.3.0" @@ -1054,7 +962,7 @@ "@scure/bip39@1.1.1": version "1.1.1" - resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.1.1.tgz#b54557b2e86214319405db819c4b6a370cf340c5" + resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz" integrity sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg== dependencies: "@noble/hashes" "~1.2.0" @@ -1062,7 +970,7 @@ "@scure/bip39@1.2.2": version "1.2.2" - resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.2.tgz#f3426813f4ced11a47489cbcf7294aa963966527" + resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.2.tgz" integrity sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA== dependencies: "@noble/hashes" "~1.3.2" @@ -1070,7 +978,7 @@ "@sentry/core@5.30.0": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.30.0.tgz#6b203664f69e75106ee8b5a2fe1d717379b331f3" + resolved "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz" integrity sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg== dependencies: "@sentry/hub" "5.30.0" @@ -1081,7 +989,7 @@ "@sentry/hub@5.30.0": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.30.0.tgz#2453be9b9cb903404366e198bd30c7ca74cdc100" + resolved "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz" integrity sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ== dependencies: "@sentry/types" "5.30.0" @@ -1090,7 +998,7 @@ "@sentry/minimal@5.30.0": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.30.0.tgz#ce3d3a6a273428e0084adcb800bc12e72d34637b" + resolved "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz" integrity sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw== dependencies: "@sentry/hub" "5.30.0" @@ -1099,7 +1007,7 @@ "@sentry/node@^5.18.1": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-5.30.0.tgz#4ca479e799b1021285d7fe12ac0858951c11cd48" + resolved "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz" integrity sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg== dependencies: "@sentry/core" "5.30.0" @@ -1114,7 +1022,7 @@ "@sentry/tracing@5.30.0": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-5.30.0.tgz#501d21f00c3f3be7f7635d8710da70d9419d4e1f" + resolved "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz" integrity sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw== dependencies: "@sentry/hub" "5.30.0" @@ -1125,12 +1033,12 @@ "@sentry/types@5.30.0": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.30.0.tgz#19709bbe12a1a0115bc790b8942917da5636f402" + resolved "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz" integrity sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw== "@sentry/utils@5.30.0": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.30.0.tgz#9a5bd7ccff85ccfe7856d493bffa64cabc41e980" + resolved "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz" integrity sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww== dependencies: "@sentry/types" "5.30.0" @@ -1138,45 +1046,50 @@ "@sindresorhus/is@^5.2.0": version "5.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz" integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== "@smithy/types@^2.10.1": version "2.11.0" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.11.0.tgz#d40c27302151be243d3a7319a154b7d7d5775021" + resolved "https://registry.npmjs.org/@smithy/types/-/types-2.11.0.tgz" integrity sha512-AR0SXO7FuAskfNhyGfSTThpLRntDI5bOrU0xrpVYU0rZyjl3LBXInZFMTP/NNSd7IS6Ksdtar0QvnrPRIhVrLQ== dependencies: tslib "^2.5.0" "@solidity-parser/parser@^0.14.0": version "0.14.5" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.5.tgz#87bc3cc7b068e08195c219c91cd8ddff5ef1a804" + resolved "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz" integrity sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg== dependencies: antlr4ts "^0.5.0-alpha.4" "@solidity-parser/parser@^0.16.0": version "0.16.2" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.16.2.tgz#42cb1e3d88b3e8029b0c9befff00b634cd92d2fa" + resolved "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.2.tgz" integrity sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg== dependencies: antlr4ts "^0.5.0-alpha.4" +"@solidity-parser/parser@^0.17.0": + version "0.17.0" + resolved "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.17.0.tgz" + integrity sha512-Nko8R0/kUo391jsEHHxrGM07QFdnPGvlmox4rmH0kNiNAashItAilhy4Mv4pK5gQmW5f4sXAF58fwJbmlkGcVw== + "@solidity-parser/parser@^0.18.0": version "0.18.0" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.18.0.tgz#8e77a02a09ecce957255a2f48c9a7178ec191908" + resolved "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz" integrity sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA== "@szmarczak/http-timer@^5.0.1": version "5.0.1" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz" integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== dependencies: defer-to-connect "^2.0.1" -"@typechain/ethers-v6@^0.5.0": +"@typechain/ethers-v6@^0.5.0", "@typechain/ethers-v6@^0.5.1": version "0.5.1" - resolved "https://registry.yarnpkg.com/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz#42fe214a19a8b687086c93189b301e2b878797ea" + resolved "https://registry.npmjs.org/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz" integrity sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA== dependencies: lodash "^4.17.15" @@ -1184,66 +1097,61 @@ "@typechain/hardhat@^9.0.0": version "9.1.0" - resolved "https://registry.yarnpkg.com/@typechain/hardhat/-/hardhat-9.1.0.tgz#6985015f01dfb37ef2ca8a29c742d05890351ddc" + resolved "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-9.1.0.tgz" integrity sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA== dependencies: fs-extra "^9.1.0" "@types/bn.js@*", "@types/bn.js@^5.1.0": version "5.1.5" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.5.tgz#2e0dacdcce2c0f16b905d20ff87aedbc6f7b4bf0" + resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz" integrity sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A== dependencies: "@types/node" "*" "@types/bn.js@^4.11.3": version "4.11.6" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" + resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz" integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== dependencies: "@types/node" "*" "@types/chai-as-promised@^7.1.3": version "7.1.8" - resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz#f2b3d82d53c59626b5d6bbc087667ccb4b677fe9" + resolved "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz" integrity sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw== dependencies: "@types/chai" "*" -"@types/chai@*": - version "4.3.14" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.14.tgz#ae3055ea2be43c91c9fd700a36d67820026d96e6" - integrity sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w== - -"@types/chai@^4.2.0": +"@types/chai@*", "@types/chai@^4.2.0": version "4.3.12" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.12.tgz#b192fe1c553b54f45d20543adc2ab88455a07d5e" + resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.12.tgz" integrity sha512-zNKDHG/1yxm8Il6uCCVsm+dRdEsJlFoDu73X17y09bId6UwoYww+vFBsAcRzl8knM1sab3Dp1VRikFQwDOtDDw== "@types/concat-stream@^1.6.0": version "1.6.1" - resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-1.6.1.tgz#24bcfc101ecf68e886aaedce60dfd74b632a1b74" + resolved "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz" integrity sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA== dependencies: "@types/node" "*" "@types/elliptic@^6.4.18": version "6.4.18" - resolved "https://registry.yarnpkg.com/@types/elliptic/-/elliptic-6.4.18.tgz#bc96e26e1ccccbabe8b6f0e409c85898635482e1" + resolved "https://registry.npmjs.org/@types/elliptic/-/elliptic-6.4.18.tgz" integrity sha512-UseG6H5vjRiNpQvrhy4VF/JXdA3V/Fp5amvveaL+fs28BZ6xIKJBPnUPRlEaZpysD9MbpfaLi8lbl7PGUAkpWw== dependencies: "@types/bn.js" "*" "@types/form-data@0.0.33": version "0.0.33" - resolved "https://registry.yarnpkg.com/@types/form-data/-/form-data-0.0.33.tgz#c9ac85b2a5fd18435b8c85d9ecb50e6d6c893ff8" + resolved "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz" integrity sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw== dependencies: "@types/node" "*" "@types/glob@^7.1.1": version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== dependencies: "@types/minimatch" "*" @@ -1251,92 +1159,105 @@ "@types/http-cache-semantics@^4.0.2": version "4.0.4" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" + resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz" integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== +"@types/json-schema@^7.0.12": + version "7.0.15" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + "@types/json5@^0.0.29": version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/lru-cache@^5.1.0": version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" + resolved "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz" integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== "@types/minimatch@*": version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz" integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== -"@types/mocha@^9.1.0": +"@types/mocha@^9.1.0", "@types/mocha@>=9.1.0": version "9.1.1" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-9.1.1.tgz#e7c4f1001eefa4b8afbd1eee27a237fee3bf29c4" + resolved "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz" integrity sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw== -"@types/node@*": - version "20.11.25" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.25.tgz#0f50d62f274e54dd7a49f7704cc16bfbcccaf49f" - integrity sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw== - dependencies: - undici-types "~5.26.4" - -"@types/node@18.15.13": - version "18.15.13" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" - integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== - -"@types/node@>=12.12.47", "@types/node@>=13.7.0": - version "20.11.26" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.26.tgz#3fbda536e51d5c79281e1d9657dcb0131baabd2d" - integrity sha512-YwOMmyhNnAWijOBQweOJnQPl068Oqd4K3OFbTc6AHJwzweUwwWG3GIFY74OKks2PJUDkQPeddOQES9mLn1CTEQ== +"@types/node@*", "@types/node@^18.0.0", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@>=16.0.0": + version "18.19.22" + resolved "https://registry.npmjs.org/@types/node/-/node-18.19.22.tgz" + integrity sha512-p3pDIfuMg/aXBmhkyanPshdfJuX5c5+bQjYLIikPLXAUycEogij/c50n/C+8XOA5L93cU4ZRXtn+dNQGi0IZqQ== dependencies: undici-types "~5.26.4" "@types/node@^10.0.3": version "10.17.60" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" + resolved "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== -"@types/node@^18.0.0": - version "18.19.22" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.22.tgz#f622f92514b897e6b09903e97c16a0db8e94689f" - integrity sha512-p3pDIfuMg/aXBmhkyanPshdfJuX5c5+bQjYLIikPLXAUycEogij/c50n/C+8XOA5L93cU4ZRXtn+dNQGi0IZqQ== - dependencies: - undici-types "~5.26.4" - "@types/node@^8.0.0": version "8.10.66" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" + resolved "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz" integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== +"@types/node@18.15.13": + version "18.15.13" + resolved "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz" + integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== + "@types/pbkdf2@^3.0.0": version "3.1.2" - resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.2.tgz#2dc43808e9985a2c69ff02e2d2027bd4fe33e8dc" + resolved "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz" integrity sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew== dependencies: "@types/node" "*" "@types/prettier@^2.1.1": version "2.7.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz" integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== "@types/qs@^6.2.31": version "6.9.12" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.12.tgz#afa96b383a3a6fdc859453a1892d41b607fc7756" + resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.12.tgz" integrity sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg== "@types/secp256k1@^4.0.1": version "4.0.6" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.6.tgz#d60ba2349a51c2cbc5e816dcd831a42029d376bf" + resolved "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz" integrity sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ== dependencies: "@types/node" "*" -"@typescript-eslint/parser@^6.4.0": +"@types/semver@^7.5.0": + version "7.5.8" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz" + integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== + +"@typescript-eslint/eslint-plugin@^6.4.0": + version "6.21.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz" + integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA== + dependencies: + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/type-utils" "6.21.0" + "@typescript-eslint/utils" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + graphemer "^1.4.0" + ignore "^5.2.4" + natural-compare "^1.4.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/parser@^6.0.0 || ^6.0.0-alpha", "@typescript-eslint/parser@^6.4.0": version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz" integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== dependencies: "@typescript-eslint/scope-manager" "6.21.0" @@ -1347,20 +1268,30 @@ "@typescript-eslint/scope-manager@6.21.0": version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz" integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== dependencies: "@typescript-eslint/types" "6.21.0" "@typescript-eslint/visitor-keys" "6.21.0" +"@typescript-eslint/type-utils@6.21.0": + version "6.21.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz" + integrity sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag== + dependencies: + "@typescript-eslint/typescript-estree" "6.21.0" + "@typescript-eslint/utils" "6.21.0" + debug "^4.3.4" + ts-api-utils "^1.0.1" + "@typescript-eslint/types@6.21.0": version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz" integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== "@typescript-eslint/typescript-estree@6.21.0": version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz" integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== dependencies: "@typescript-eslint/types" "6.21.0" @@ -1372,9 +1303,22 @@ semver "^7.5.4" ts-api-utils "^1.0.1" +"@typescript-eslint/utils@6.21.0": + version "6.21.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz" + integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/typescript-estree" "6.21.0" + semver "^7.5.4" + "@typescript-eslint/visitor-keys@6.21.0": version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz" integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== dependencies: "@typescript-eslint/types" "6.21.0" @@ -1382,66 +1326,61 @@ "@ungap/structured-clone@^1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -abbrev@1.0.x: +abbrev@1, abbrev@1.0.x: version "1.0.9" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz" integrity sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q== abort-controller@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== dependencies: event-target-shim "^5.0.0" acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.9.0: +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.9.0: version "8.11.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== address@^1.0.1: version "1.2.2" - resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" + resolved "https://registry.npmjs.org/address/-/address-1.2.2.tgz" integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== adm-zip@^0.4.16: version "0.4.16" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365" + resolved "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz" integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== aes-js@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" + resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz" integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== aes-js@4.0.0-beta.5: version "4.0.0-beta.5" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" + resolved "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz" integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== agent-base@6: version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "4" aggregate-error@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" @@ -1449,7 +1388,7 @@ aggregate-error@^3.0.0: ajv@^6.12.4, ajv@^6.12.6: version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -1459,7 +1398,7 @@ ajv@^6.12.4, ajv@^6.12.6: ajv@^8.0.1: version "8.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== dependencies: fast-deep-equal "^3.1.1" @@ -1467,9 +1406,9 @@ ajv@^8.0.1: require-from-string "^2.0.2" uri-js "^4.2.2" -amazon-cognito-identity-js@^6.0.1, amazon-cognito-identity-js@^6.3.6: +amazon-cognito-identity-js@^6.3.6: version "6.3.12" - resolved "https://registry.yarnpkg.com/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.12.tgz#af73df033094ad4c679c19cf6122b90058021619" + resolved "https://registry.npmjs.org/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.12.tgz" integrity sha512-s7NKDZgx336cp+oDeUtB2ZzT8jWJp/v2LWuYl+LQtMEODe22RF1IJ4nRiDATp+rp1pTffCZcm44Quw4jx2bqNg== dependencies: "@aws-crypto/sha256-js" "1.2.2" @@ -1480,99 +1419,101 @@ amazon-cognito-identity-js@^6.0.1, amazon-cognito-identity-js@^6.3.6: amdefine@>=0.0.4: version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + resolved "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz" integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== ansi-align@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz" integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== dependencies: string-width "^4.1.0" -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-colors@^4.1.1: +ansi-colors@^4.1.1, ansi-colors@^4.1.3: version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== ansi-escapes@^4.3.0: version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" ansi-escapes@^6.2.0: version "6.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.0.tgz#8a13ce75286f417f1963487d86ba9f90dccf9947" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz" integrity sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw== dependencies: type-fest "^3.0.0" ansi-regex@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz" integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0, ansi-styles@^4.1.0: +ansi-styles@^4.0.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" ansi-styles@^6.1.0: version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== ansi-term@>=0.0.2: version "0.0.2" - resolved "https://registry.yarnpkg.com/ansi-term/-/ansi-term-0.0.2.tgz#fd753efa4beada0eac99981bc52a3f6ff019deb7" + resolved "https://registry.npmjs.org/ansi-term/-/ansi-term-0.0.2.tgz" integrity sha512-jLnGE+n8uAjksTJxiWZf/kcUmXq+cRWSl550B9NmQ8YiqaTM+lILcSe5dHdp8QkJPhaOghDjnMKwyYSMjosgAA== dependencies: x256 ">=0.0.1" ansicolors@~0.3.2: version "0.3.2" - resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" + resolved "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz" integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== antlr4@^4.11.0: version "4.13.1" - resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.13.1.tgz#1e0a1830a08faeb86217cb2e6c34716004e4253d" + resolved "https://registry.npmjs.org/antlr4/-/antlr4-4.13.1.tgz" integrity sha512-kiXTspaRYvnIArgE97z5YVVf/cDVQABr3abFRR6mE7yesLMkgu4ujuyV/sgxafQ8wgve0DJQUJ38Z8tkgA2izA== antlr4ts@^0.5.0-alpha.4: version "0.5.0-alpha.4" - resolved "https://registry.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a" + resolved "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz" integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" @@ -1580,34 +1521,39 @@ anymatch@~3.1.2: arg@^4.1.0: version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== argparse@^1.0.7: version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" argparse@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== array-back@^3.0.1, array-back@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" + resolved "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz" integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== -array-back@^4.0.1, array-back@^4.0.2: +array-back@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz" + integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== + +array-back@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e" + resolved "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz" integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== array-buffer-byte-length@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz" integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== dependencies: call-bind "^1.0.5" @@ -1615,7 +1561,7 @@ array-buffer-byte-length@^1.0.1: array-includes@^3.1.7: version "3.1.7" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" + resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz" integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== dependencies: call-bind "^1.0.2" @@ -1626,17 +1572,17 @@ array-includes@^3.1.7: array-union@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array-uniq@1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== array.prototype.filter@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz#423771edeb417ff5914111fff4277ea0624c0d0e" + resolved "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz" integrity sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw== dependencies: call-bind "^1.0.2" @@ -1647,7 +1593,7 @@ array.prototype.filter@^1.0.3: array.prototype.findlast@^1.2.2: version "1.2.4" - resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.4.tgz#eeb9e45fc894055c82e5675c463e8077b827ad36" + resolved "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.4.tgz" integrity sha512-BMtLxpV+8BD+6ZPFIWmnUBpQoy+A+ujcg4rhp2iwCRJYA7PEh2MS4NL3lz8EiDlLrJPp2hg9qWihr5pd//jcGw== dependencies: call-bind "^1.0.5" @@ -1658,7 +1604,7 @@ array.prototype.findlast@^1.2.2: array.prototype.findlastindex@^1.2.3: version "1.2.4" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz#d1c50f0b3a9da191981ff8942a0aedd82794404f" + resolved "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz" integrity sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ== dependencies: call-bind "^1.0.5" @@ -1669,7 +1615,7 @@ array.prototype.findlastindex@^1.2.3: array.prototype.flat@^1.3.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz" integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== dependencies: call-bind "^1.0.2" @@ -1679,7 +1625,7 @@ array.prototype.flat@^1.3.2: array.prototype.flatmap@^1.3.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz" integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== dependencies: call-bind "^1.0.2" @@ -1689,7 +1635,7 @@ array.prototype.flatmap@^1.3.2: arraybuffer.prototype.slice@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz" integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== dependencies: array-buffer-byte-length "^1.0.1" @@ -1703,24 +1649,24 @@ arraybuffer.prototype.slice@^1.0.3: arrify@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== asap@~2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== asn1@^0.2.6: version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== dependencies: safer-buffer "~2.1.0" asn1js@^3.0.5: version "3.0.5" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" + resolved "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz" integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ== dependencies: pvtsutils "^1.3.2" @@ -1729,104 +1675,104 @@ asn1js@^3.0.5: assertion-error@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== ast-parents@^0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/ast-parents/-/ast-parents-0.0.1.tgz#508fd0f05d0c48775d9eccda2e174423261e8dd3" + resolved "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz" integrity sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA== astral-regex@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async-retry@^1.3.3: version "1.3.3" - resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" + resolved "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz" integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== dependencies: retry "0.13.1" async@1.x: version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz" integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w== asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== at-least-node@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== atomic-sleep@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" + resolved "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz" integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== available-typed-arrays@^1.0.6, available-typed-arrays@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz" integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== dependencies: possible-typed-array-names "^1.0.0" -axios@^1.4.0, axios@^1.5.1, axios@^1.6.4, axios@^1.6.7: - version "1.6.7" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7" - integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== +axios@^1.5.1, axios@^1.6.4, axios@^1.6.7, axios@^1.6.8: + version "1.7.2" + resolved "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz" + integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== dependencies: - follow-redirects "^1.15.4" + follow-redirects "^1.15.6" form-data "^4.0.0" proxy-from-env "^1.1.0" balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base-x@^3.0.2: version "3.0.9" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz" integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== dependencies: safe-buffer "^5.0.1" base64-js@^1.0.2, base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== bcrypt-pbkdf@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== dependencies: tweetnacl "^0.14.3" bech32@1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" + resolved "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== bignumber.js@^9.1.1: version "9.1.2" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz" integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== bl@^4.0.3: version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== dependencies: buffer "^5.5.0" @@ -1835,12 +1781,12 @@ bl@^4.0.3: blakejs@^1.1.0: version "1.2.1" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" + resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== blessed-terminal@^0.1.22: version "0.1.22" - resolved "https://registry.yarnpkg.com/blessed-terminal/-/blessed-terminal-0.1.22.tgz#8b012e13d48ec5eb77fc9b9e444c026aa2b2c4ab" + resolved "https://registry.npmjs.org/blessed-terminal/-/blessed-terminal-0.1.22.tgz" integrity sha512-R8Ej+yzsaey7gW5DSmPhIC28gNLYQad6lMODuEw0X4KzudWWxZQ632Z+BRJk2EHN5dsFWRWhvLbD+M5Vs5J+AA== dependencies: ansi-term ">=0.0.2" @@ -1859,27 +1805,32 @@ blessed-terminal@^0.1.22: blessed@^0.1.81: version "0.1.81" - resolved "https://registry.yarnpkg.com/blessed/-/blessed-0.1.81.tgz#f962d687ec2c369570ae71af843256e6d0ca1129" + resolved "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz" integrity sha512-LoF5gae+hlmfORcG1M5+5XZi4LBmvlXTzwJWzUlPryN/SJdSflZvROM2TwkT0GMpq7oqT48NRd4GS7BiVBc5OQ== -bn.js@4.11.6: - version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== +bn.js@^4.11.0, bn.js@^4.11.8: + version "4.12.0" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^4.11.0, bn.js@^4.11.8, bn.js@^4.11.9: +bn.js@^4.11.9: version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: version "5.2.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== +bn.js@4.11.6: + version "4.11.6" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz" + integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== + boxen@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" + resolved "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz" integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== dependencies: ansi-align "^3.0.0" @@ -1893,7 +1844,7 @@ boxen@^5.1.2: brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -1901,36 +1852,36 @@ brace-expansion@^1.1.7: brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + version "3.0.3" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" bresenham@0.0.3: version "0.0.3" - resolved "https://registry.yarnpkg.com/bresenham/-/bresenham-0.0.3.tgz#abdab9e5b194e27c757cd314d8444314f299877a" + resolved "https://registry.npmjs.org/bresenham/-/bresenham-0.0.3.tgz" integrity sha512-wbMxoJJM1p3+6G7xEFXYNCJ30h2qkwmVxebkbwIl4OcnWtno5R3UT9VuYLfStlVNAQCmRjkGwjPFdfaPd4iNXw== brorand@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browser-stdout@1.3.1: +browser-stdout@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== browserify-aes@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" @@ -1942,14 +1893,14 @@ browserify-aes@^1.2.0: bs58@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== dependencies: base-x "^3.0.2" bs58check@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + resolved "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz" integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== dependencies: bs58 "^4.0.0" @@ -1958,26 +1909,17 @@ bs58check@^2.1.2: buffer-from@^1.0.0, buffer-from@^1.1.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer-xor@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== -buffer@4.9.2: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - buffer@^5.5.0: version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: base64-js "^1.3.1" @@ -1985,47 +1927,56 @@ buffer@^5.5.0: buffer@^6.0.3: version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== dependencies: base64-js "^1.3.1" ieee754 "^1.2.1" +buffer@4.9.2: + version "4.9.2" + resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + buffers@~0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" + resolved "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz" integrity sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ== buildcheck@~0.0.6: version "0.0.6" - resolved "https://registry.yarnpkg.com/buildcheck/-/buildcheck-0.0.6.tgz#89aa6e417cfd1e2196e3f8fe915eb709d2fe4238" + resolved "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.6.tgz" integrity sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A== builtin-modules@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz" integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== builtins@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + resolved "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz" integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== dependencies: semver "^7.0.0" bytes@3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== cacheable-lookup@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" + resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz" integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== cacheable-request@^10.2.8: version "10.2.14" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.14.tgz#eb915b665fda41b79652782df3f553449c406b9d" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz" integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== dependencies: "@types/http-cache-semantics" "^4.0.2" @@ -2038,7 +1989,7 @@ cacheable-request@^10.2.8: call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz" integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: es-define-property "^1.0.0" @@ -2049,17 +2000,17 @@ call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: callsites@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase@^6.0.0, camelcase@^6.2.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== cardinal@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505" + resolved "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz" integrity sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw== dependencies: ansicolors "~0.3.2" @@ -2067,33 +2018,33 @@ cardinal@^2.1.1: caseless@^0.12.0, caseless@~0.12.0: version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== cbor@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.1.0.tgz#cfc56437e770b73417a2ecbfc9caf6b771af60d5" + resolved "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz" integrity sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg== dependencies: nofilter "^3.1.0" cbor@^9.0.0: version "9.0.2" - resolved "https://registry.yarnpkg.com/cbor/-/cbor-9.0.2.tgz#536b4f2d544411e70ec2b19a2453f10f83cd9fdb" + resolved "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz" integrity sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ== dependencies: nofilter "^3.1.0" chai-as-promised@^7.1.1: version "7.1.1" - resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" + resolved "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz" integrity sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA== dependencies: check-error "^1.0.2" -chai@^4.2.0: +chai@^4.2.0, "chai@>= 2.1.2 < 5": version "4.4.1" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1" + resolved "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz" integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g== dependencies: assertion-error "^1.1.0" @@ -2106,16 +2057,32 @@ chai@^4.2.0: chalk@^2.4.2: version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -2123,44 +2090,29 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: chalk@^5.2.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + resolved "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz" integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== "charenc@>= 0.0.1": version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== charm@~0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/charm/-/charm-0.1.2.tgz#06c21eed1a1b06aeb67553cdc53e23274bac2296" + resolved "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz" integrity sha512-syedaZ9cPe7r3hoQA9twWYKu5AIyCswN5+szkmPBe9ccdLrj4bYaCnLVPTLd2kgVRc7+zoX4tyPgRnFKCj5YjQ== check-error@^1.0.2, check-error@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz" integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== dependencies: get-func-name "^2.0.2" -chokidar@3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chokidar@^3.4.0: +chokidar@^3.4.0, chokidar@^3.5.3: version "3.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" @@ -2175,17 +2127,17 @@ chokidar@^3.4.0: chownr@^1.1.1: version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== ci-info@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" @@ -2193,17 +2145,17 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-boxes@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== cli-table3@^0.5.0: version "0.5.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" + resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz" integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== dependencies: object-assign "^4.1.0" @@ -2213,7 +2165,7 @@ cli-table3@^0.5.0: cli-table3@^0.6.3: version "0.6.3" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" + resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz" integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== dependencies: string-width "^4.2.0" @@ -2222,7 +2174,7 @@ cli-table3@^0.6.3: cliui@^7.0.2: version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" @@ -2231,7 +2183,7 @@ cliui@^7.0.2: cliui@^8.0.1: version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" @@ -2240,53 +2192,53 @@ cliui@^8.0.1: color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + colorette@^2.0.7: version "2.0.20" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== -colors@1.4.0, colors@^1.1.2: +colors@^1.1.2, colors@1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== combined-stream@^1.0.6, combined-stream@^1.0.8: version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" command-exists@^1.2.8: version "1.2.9" - resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" + resolved "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz" integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== command-line-args@^5.1.1: version "5.2.1" - resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e" + resolved "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz" integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== dependencies: array-back "^3.1.0" @@ -2296,7 +2248,7 @@ command-line-args@^5.1.1: command-line-usage@^6.1.0: version "6.1.3" - resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.3.tgz#428fa5acde6a838779dfa30e44686f4b6761d957" + resolved "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz" integrity sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw== dependencies: array-back "^4.0.2" @@ -2304,29 +2256,29 @@ command-line-usage@^6.1.0: table-layout "^1.0.2" typical "^5.2.0" -commander@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" - integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== - commander@^10.0.0: version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== +commander@3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz" + integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== + compare-versions@^6.0.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-6.1.0.tgz#3f2131e3ae93577df111dba133e6db876ffe127a" + resolved "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.0.tgz" integrity sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== concat-stream@^1.6.0, concat-stream@^1.6.2: version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" @@ -2336,7 +2288,7 @@ concat-stream@^1.6.0, concat-stream@^1.6.2: config-chain@^1.1.11: version "1.1.13" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz" integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== dependencies: ini "^1.3.4" @@ -2344,17 +2296,17 @@ config-chain@^1.1.11: cookie@^0.4.1: version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== core-util-is@~1.0.0: version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cosmiconfig@^8.0.0: version "8.3.6" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz" integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== dependencies: import-fresh "^3.3.0" @@ -2363,16 +2315,16 @@ cosmiconfig@^8.0.0: path-type "^4.0.0" cpu-features@~0.0.9: - version "0.0.9" - resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.9.tgz#5226b92f0f1c63122b0a3eb84cb8335a4de499fc" - integrity sha512-AKjgn2rP2yJyfbepsmLfiYcmtNn/2eUvocUyM/09yB0YDiz39HteK/5/T4Onf0pmdYDMgkBoGvRLvEguzyL7wQ== + version "0.0.10" + resolved "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.10.tgz" + integrity sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA== dependencies: buildcheck "~0.0.6" - nan "^2.17.0" + nan "^2.19.0" create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" @@ -2383,7 +2335,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" @@ -2395,7 +2347,7 @@ create-hmac@^1.1.4, create-hmac@^1.1.7: cross-spawn@^7.0.0, cross-spawn@^7.0.2: version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -2404,82 +2356,82 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2: "crypt@>= 0.0.1": version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz" integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== crypto-js@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" + resolved "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz" integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== csv-parser@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/csv-parser/-/csv-parser-3.0.0.tgz#b88a6256d79e090a97a1b56451f9327b01d710e7" + resolved "https://registry.npmjs.org/csv-parser/-/csv-parser-3.0.0.tgz" integrity sha512-s6OYSXAK3IdKqYO33y09jhypG/bSDHPuyCme/IdEHfWpLf/jKcpitVFyOC6UemgGk8v7Q5u2XE0vvwmanxhGlQ== dependencies: minimist "^1.2.0" dateformat@^4.6.3: version "4.6.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" + resolved "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz" integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== death@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/death/-/death-1.1.0.tgz#01aa9c401edd92750514470b8266390c66c67318" + resolved "https://registry.npmjs.org/death/-/death-1.1.0.tgz" integrity sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w== -debug@4, debug@4.3.4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - debug@^3.2.7: version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" +debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@4: + version "4.3.5" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz" + integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== + dependencies: + ms "2.1.2" + decamelize@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== decompress-response@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== dependencies: mimic-response "^3.1.0" deep-eql@^4.0.1, deep-eql@^4.1.3: version "4.1.3" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz" integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== dependencies: type-detect "^4.0.0" deep-extend@^0.6.0, deep-extend@~0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== defer-to-connect@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== define-data-property@^1.0.1, define-data-property@^1.1.2, define-data-property@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== dependencies: es-define-property "^1.0.0" @@ -2488,7 +2440,7 @@ define-data-property@^1.0.1, define-data-property@^1.1.2, define-data-property@^ define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: define-data-property "^1.0.1" @@ -2497,54 +2449,54 @@ define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== depd@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -detect-port@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.5.1.tgz#451ca9b6eaf20451acb0799b8ab40dff7718727b" - integrity sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ== +detect-port@^1.6.1: + version "1.6.1" + resolved "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz" + integrity sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q== dependencies: address "^1.0.1" debug "4" -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - diff@^3.1.0: version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== diff@^4.0.1: version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +diff@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz" + integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== + difflib@^0.2.4: version "0.2.4" - resolved "https://registry.yarnpkg.com/difflib/-/difflib-0.2.4.tgz#b5e30361a6db023176d562892db85940a718f47e" + resolved "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz" integrity sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w== dependencies: heap ">= 0.2.0" dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" docker-modem@^5.0.3: version "5.0.3" - resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-5.0.3.tgz#50c06f11285289f58112b5c4c4d89824541c41d0" + resolved "https://registry.npmjs.org/docker-modem/-/docker-modem-5.0.3.tgz" integrity sha512-89zhop5YVhcPEt5FpUFGr3cDyceGhq/F9J+ZndQ4KfqNvfbJpPMfgeixFgUj5OjCYAboElqODxY5Z1EBsSa6sg== dependencies: debug "^4.1.1" @@ -2554,7 +2506,7 @@ docker-modem@^5.0.3: dockerode@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-4.0.2.tgz#dedc8529a1db3ac46d186f5912389899bc309f7d" + resolved "https://registry.npmjs.org/dockerode/-/dockerode-4.0.2.tgz" integrity sha512-9wM1BVpVMFr2Pw3eJNXrYYt6DT9k0xMcsSCjtPvyQ+xa1iPg/Mo3T/gUcwI0B2cczqCeCYRPF8yFYDwtFXT0+w== dependencies: "@balena/dockerignore" "^1.0.2" @@ -2563,31 +2515,31 @@ dockerode@^4.0.2: doctrine@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" -dotenv@^16.3.1, dotenv@^16.4.5: +dotenv@^16.4.5: version "16.4.5" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz" integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== drawille-blessed-contrib@>=0.0.1: version "1.0.0" - resolved "https://registry.yarnpkg.com/drawille-blessed-contrib/-/drawille-blessed-contrib-1.0.0.tgz#15c27934f57a0056ad13596e1561637bc941f0b7" + resolved "https://registry.npmjs.org/drawille-blessed-contrib/-/drawille-blessed-contrib-1.0.0.tgz" integrity sha512-WnHMgf5en/hVOsFhxLI8ZX0qTJmerOsVjIMQmn4cR1eI8nLGu+L7w5ENbul+lZ6w827A3JakCuernES5xbHLzQ== drawille-canvas-blessed-contrib@>=0.0.1, drawille-canvas-blessed-contrib@>=0.1.3: version "0.1.3" - resolved "https://registry.yarnpkg.com/drawille-canvas-blessed-contrib/-/drawille-canvas-blessed-contrib-0.1.3.tgz#212f078a722bfd2ecc267ea86ab6dddc1081fd48" + resolved "https://registry.npmjs.org/drawille-canvas-blessed-contrib/-/drawille-canvas-blessed-contrib-0.1.3.tgz" integrity sha512-bdDvVJOxlrEoPLifGDPaxIzFh3cD7QH05ePoQ4fwnqfi08ZSxzEhOUpI5Z0/SQMlWgcCQOEtuw0zrwezacXglw== dependencies: ansi-term ">=0.0.2" @@ -2598,13 +2550,13 @@ drawille-canvas-blessed-contrib@>=0.0.1, drawille-canvas-blessed-contrib@>=0.1.3 eastasianwidth@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -elliptic@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== +elliptic@^6.5.2, elliptic@^6.5.4, elliptic@^6.5.5: + version "6.5.5" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.5.tgz" + integrity sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw== dependencies: bn.js "^4.11.9" brorand "^1.1.0" @@ -2614,10 +2566,10 @@ elliptic@6.5.4: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" -elliptic@^6.5.2, elliptic@^6.5.4, elliptic@^6.5.5: - version "6.5.5" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.5.tgz#c715e09f78b6923977610d4c2346d6ce22e6dded" - integrity sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw== +elliptic@6.5.4: + version "6.5.4" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: bn.js "^4.11.9" brorand "^1.1.0" @@ -2629,24 +2581,24 @@ elliptic@^6.5.2, elliptic@^6.5.4, elliptic@^6.5.5: emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emoji-regex@^9.2.2: version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" enquirer@^2.3.0: version "2.4.1" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" + resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz" integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== dependencies: ansi-colors "^4.1.1" @@ -2654,19 +2606,19 @@ enquirer@^2.3.0: env-paths@^2.2.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" es-abstract@^1.22.1, es-abstract@^1.22.3: version "1.22.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.5.tgz#1417df4e97cc55f09bf7e58d1e614bc61cb8df46" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.5.tgz" integrity sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w== dependencies: array-buffer-byte-length "^1.0.1" @@ -2713,24 +2665,24 @@ es-abstract@^1.22.1, es-abstract@^1.22.3: es-array-method-boxes-properly@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + resolved "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== es-define-property@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz" integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== dependencies: get-intrinsic "^1.2.4" es-errors@^1.0.0, es-errors@^1.2.1, es-errors@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== es-set-tostringtag@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz" integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== dependencies: get-intrinsic "^1.2.4" @@ -2739,14 +2691,14 @@ es-set-tostringtag@^2.0.3: es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz" integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== dependencies: hasown "^2.0.0" es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" @@ -2755,22 +2707,22 @@ es-to-primitive@^1.2.1: escalade@^3.1.1: version "3.1.2" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz" integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== -escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + escodegen@1.8.x: version "1.8.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz" integrity sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A== dependencies: esprima "^2.7.1" @@ -2782,12 +2734,12 @@ escodegen@1.8.x: eslint-compat-utils@^0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz#f45e3b5ced4c746c127cf724fb074cd4e730d653" + resolved "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz" integrity sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg== eslint-config-standard-with-typescript@^43.0.1: version "43.0.1" - resolved "https://registry.yarnpkg.com/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-43.0.1.tgz#977862d7d41b0e1f27f399137bbf7b2e017037ff" + resolved "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-43.0.1.tgz" integrity sha512-WfZ986+qzIzX6dcr4yGUyVb/l9N3Z8wPXCc5z/70fljs3UbWhhV+WxrfgsqMToRzuuyX9MqZ974pq2UPhDTOcA== dependencies: "@typescript-eslint/parser" "^6.4.0" @@ -2795,12 +2747,12 @@ eslint-config-standard-with-typescript@^43.0.1: eslint-config-standard@17.1.0: version "17.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz#40ffb8595d47a6b242e07cbfd49dc211ed128975" + resolved "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz" integrity sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q== eslint-import-resolver-node@^0.3.9: version "0.3.9" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz" integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== dependencies: debug "^3.2.7" @@ -2809,23 +2761,23 @@ eslint-import-resolver-node@^0.3.9: eslint-module-utils@^2.8.0: version "2.8.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34" + resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz" integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q== dependencies: debug "^3.2.7" eslint-plugin-es-x@^7.5.0: version "7.5.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz#d08d9cd155383e35156c48f736eb06561d07ba92" + resolved "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz" integrity sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ== dependencies: "@eslint-community/eslint-utils" "^4.1.2" "@eslint-community/regexpp" "^4.6.0" eslint-compat-utils "^0.1.2" -eslint-plugin-import@^2.29.1: +eslint-plugin-import@^2.25.2, eslint-plugin-import@^2.29.1: version "2.29.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz" integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== dependencies: array-includes "^3.1.7" @@ -2846,9 +2798,9 @@ eslint-plugin-import@^2.29.1: semver "^6.3.1" tsconfig-paths "^3.15.0" -eslint-plugin-n@^16.6.2: +"eslint-plugin-n@^15.0.0 || ^16.0.0 ", eslint-plugin-n@^16.6.2: version "16.6.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz#6a60a1a376870064c906742272074d5d0b412b0b" + resolved "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz" integrity sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" @@ -2863,14 +2815,14 @@ eslint-plugin-n@^16.6.2: resolve "^1.22.2" semver "^7.5.3" -eslint-plugin-promise@^6.1.1: +eslint-plugin-promise@^6.0.0, eslint-plugin-promise@^6.1.1: version "6.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz#269a3e2772f62875661220631bd4dafcb4083816" + resolved "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz" integrity sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig== eslint-scope@^7.2.2: version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" @@ -2878,12 +2830,12 @@ eslint-scope@^7.2.2: eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.57.0: +"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", eslint@^8.0.1, eslint@^8.57.0, eslint@>=6.0.0, eslint@>=7.0.0, eslint@>=8: version "8.57.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" @@ -2927,55 +2879,65 @@ eslint@^8.57.0: espree@^9.6.0, espree@^9.6.1: version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: acorn "^8.9.0" acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esprima@2.7.x, esprima@^2.7.1: +esprima@^2.7.1: version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + resolved "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz" integrity sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A== -esprima@^4.0.0, esprima@~4.0.0: +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esprima@~4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== +esprima@2.7.x: + version "2.7.3" + resolved "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz" + integrity sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A== + esquery@^1.4.2: version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^1.9.1: version "1.9.3" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz" integrity sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA== estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== eth-gas-reporter@^0.2.25: version "0.2.27" - resolved "https://registry.yarnpkg.com/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz#928de8548a674ed64c7ba0bf5795e63079150d4e" + resolved "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz" integrity sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw== dependencies: "@solidity-parser/parser" "^0.14.0" @@ -2994,14 +2956,14 @@ eth-gas-reporter@^0.2.25: ethereum-bloom-filters@^1.0.6: version "1.0.10" - resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" + resolved "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz" integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== dependencies: js-sha3 "^0.8.0" -ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: +ethereum-cryptography@^0.1.3, ethereum-cryptography@0.1.3: version "0.1.3" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" + resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz" integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== dependencies: "@types/pbkdf2" "^3.0.0" @@ -3022,7 +2984,7 @@ ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: ethereum-cryptography@^1.0.3: version "1.2.0" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz#5ccfa183e85fdaf9f9b299a79430c044268c9b3a" + resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz" integrity sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw== dependencies: "@noble/hashes" "1.2.0" @@ -3030,9 +2992,19 @@ ethereum-cryptography@^1.0.3: "@scure/bip32" "1.1.5" "@scure/bip39" "1.1.1" -ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2: +ethereum-cryptography@^2.0.0: + version "2.1.3" + resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz" + integrity sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA== + dependencies: + "@noble/curves" "1.3.0" + "@noble/hashes" "1.3.3" + "@scure/bip32" "1.3.3" + "@scure/bip39" "1.2.2" + +ethereum-cryptography@^2.1.2: version "2.1.3" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz#1352270ed3b339fe25af5ceeadcf1b9c8e30768a" + resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz" integrity sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA== dependencies: "@noble/curves" "1.3.0" @@ -3042,15 +3014,28 @@ ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2: ethereumjs-abi@^0.6.8: version "0.6.8" - resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz#71bc152db099f70e62f108b7cdfca1b362c6fcae" + resolved "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz" integrity sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA== dependencies: bn.js "^4.11.8" ethereumjs-util "^6.0.0" -ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: +ethereumjs-util@^6.0.0: version "6.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" + integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== + dependencies: + "@types/bn.js" "^4.11.3" + bn.js "^4.11.0" + create-hash "^1.1.2" + elliptic "^6.5.2" + ethereum-cryptography "^0.1.3" + ethjs-util "0.1.6" + rlp "^2.2.3" + +ethereumjs-util@^6.2.1: + version "6.2.1" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== dependencies: "@types/bn.js" "^4.11.3" @@ -3063,7 +3048,7 @@ ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: ethereumjs-util@^7.0.3, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: version "7.1.5" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz" integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== dependencies: "@types/bn.js" "^5.1.0" @@ -3072,9 +3057,22 @@ ethereumjs-util@^7.0.3, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: ethereum-cryptography "^0.1.3" rlp "^2.2.4" +ethers@^5.0.0, ethers@^6.1.0, ethers@^6.11.1, ethers@^6.4.0, ethers@^6.6.0, ethers@6.x: + version "6.11.1" + resolved "https://registry.npmjs.org/ethers/-/ethers-6.11.1.tgz" + integrity sha512-mxTAE6wqJQAbp5QAe/+o+rXOID7Nw91OZXvgpjDa1r4fAbq2Nu314oEZSbjoRLacuCzs7kUC3clEvkCQowffGg== + dependencies: + "@adraffy/ens-normalize" "1.10.1" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@types/node" "18.15.13" + aes-js "4.0.0-beta.5" + tslib "2.4.0" + ws "8.5.0" + ethers@^5.7.2: version "5.7.2" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" + resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== dependencies: "@ethersproject/abi" "5.7.0" @@ -3108,10 +3106,10 @@ ethers@^5.7.2: "@ethersproject/web" "5.7.1" "@ethersproject/wordlists" "5.7.0" -ethers@^6.11.1: - version "6.11.1" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.11.1.tgz#96aae00b627c2e35f9b0a4d65c7ab658259ee6af" - integrity sha512-mxTAE6wqJQAbp5QAe/+o+rXOID7Nw91OZXvgpjDa1r4fAbq2Nu314oEZSbjoRLacuCzs7kUC3clEvkCQowffGg== +ethers@^6.13.1: + version "6.13.1" + resolved "https://registry.npmjs.org/ethers/-/ethers-6.13.1.tgz" + integrity sha512-hdJ2HOxg/xx97Lm9HdCWk949BfYqYWpyw4//78SiwOLgASyfrNszfMUNB2joKjvGUdwhHfaiMMFFwacVVoLR9A== dependencies: "@adraffy/ens-normalize" "1.10.1" "@noble/curves" "1.2.0" @@ -3119,19 +3117,19 @@ ethers@^6.11.1: "@types/node" "18.15.13" aes-js "4.0.0-beta.5" tslib "2.4.0" - ws "8.5.0" + ws "8.17.1" ethjs-unit@0.1.6: version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" + resolved "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz" integrity sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw== dependencies: bn.js "4.11.6" number-to-bn "1.7.0" -ethjs-util@0.1.6, ethjs-util@^0.1.6: +ethjs-util@^0.1.6, ethjs-util@0.1.6: version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" + resolved "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz" integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== dependencies: is-hex-prefixed "1.0.0" @@ -3139,24 +3137,24 @@ ethjs-util@0.1.6, ethjs-util@^0.1.6: event-stream@~0.9.8: version "0.9.8" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-0.9.8.tgz#5da9cf3c7900975989db5a68c28e5b3c98ebe03a" + resolved "https://registry.npmjs.org/event-stream/-/event-stream-0.9.8.tgz" integrity sha512-o5h0Mp1bkoR6B0i7pTCAzRy+VzdsRWH997KQD4Psb0EOPoKEIiaRx/EsOdUl7p1Ktjw7aIWvweI/OY1R9XrlUg== dependencies: optimist "0.2" event-target-shim@^5.0.0: version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== events@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== evp_bytestokey@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" @@ -3164,27 +3162,27 @@ evp_bytestokey@^1.0.3: fast-base64-decode@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz#b434a0dd7d92b12b43f26819300d2dafb83ee418" + resolved "https://registry.npmjs.org/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz" integrity sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q== fast-copy@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/fast-copy/-/fast-copy-3.0.1.tgz#9e89ef498b8c04c1cd76b33b8e14271658a732aa" - integrity sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA== + version "3.0.2" + resolved "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz" + integrity sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ== fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-diff@^1.1.2, fast-diff@^1.2.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== fast-glob@^3.0.3, fast-glob@^3.2.9: version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -3195,70 +3193,70 @@ fast-glob@^3.0.3, fast-glob@^3.2.9: fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fast-redact@^3.1.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.4.0.tgz#24e45adcbfa045375f93012bc10c34976d59352e" - integrity sha512-2gwPvyna0zwBdxKnng1suu/dTL5s8XEy2ZqH8mwDUwJdDkV8w5kp+JV26mupdK68HmPMbm6yjW9m7/Ys/BHEHg== + version "3.5.0" + resolved "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz" + integrity sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A== fast-safe-stringify@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== fastq@^1.6.0: version "1.17.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== dependencies: reusify "^1.0.4" file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" find-replace@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" + resolved "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz" integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== dependencies: array-back "^3.0.1" -find-up@5.0.0, find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - find-up@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== dependencies: locate-path "^2.0.0" +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + flat-cache@^3.0.4: version "3.2.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz" integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== dependencies: flatted "^3.2.9" @@ -3267,42 +3265,42 @@ flat-cache@^3.0.4: flat@^5.0.2: version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== flatted@^3.2.9: version "3.3.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz" integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== -follow-redirects@^1.12.1, follow-redirects@^1.15.4: - version "1.15.5" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" - integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== +follow-redirects@^1.12.1, follow-redirects@^1.15.6: + version "1.15.6" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== for-each@^0.3.3: version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: is-callable "^1.1.3" foreground-child@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" - integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + version "3.2.1" + resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz" + integrity sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA== dependencies: cross-spawn "^7.0.0" signal-exit "^4.0.1" form-data-encoder@^2.1.2: version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" + resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz" integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== form-data@^2.2.0: version "2.5.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz" integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== dependencies: asynckit "^0.4.0" @@ -3311,31 +3309,26 @@ form-data@^2.2.0: form-data@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" mime-types "^2.1.12" -fp-ts@1.19.3: +fp-ts@^1.0.0, fp-ts@1.19.3: version "1.19.3" - resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.3.tgz#261a60d1088fbff01f91256f91d21d0caaaaa96f" + resolved "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz" integrity sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg== -fp-ts@^1.0.0: - version "1.19.5" - resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.5.tgz#3da865e585dfa1fdfd51785417357ac50afc520a" - integrity sha512-wDNqTimnzs8QqpldiId9OavWK2NptormjXnRJTQecNjzwfyp6P/8s/zG8e4h3ja3oqkKaY72UlTjQYt/1yXf9A== - fs-constants@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== fs-extra@^0.30.0: version "0.30.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz" integrity sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA== dependencies: graceful-fs "^4.1.2" @@ -3344,9 +3337,18 @@ fs-extra@^0.30.0: path-is-absolute "^1.0.0" rimraf "^2.2.8" -fs-extra@^7.0.0, fs-extra@^7.0.1: +fs-extra@^7.0.0: + version "7.0.1" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== dependencies: graceful-fs "^4.1.2" @@ -3355,7 +3357,7 @@ fs-extra@^7.0.0, fs-extra@^7.0.1: fs-extra@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: graceful-fs "^4.2.0" @@ -3364,7 +3366,7 @@ fs-extra@^8.1.0: fs-extra@^9.1.0: version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== dependencies: at-least-node "^1.0.0" @@ -3374,27 +3376,27 @@ fs-extra@^9.1.0: fs-readdir-recursive@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + resolved "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz" integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== function.prototype.name@^1.1.6: version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz" integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== dependencies: call-bind "^1.0.2" @@ -3404,22 +3406,22 @@ function.prototype.name@^1.1.6: functions-have-names@^1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-func-name@^2.0.1, get-func-name@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz" integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: version "1.2.4" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz" integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: es-errors "^1.3.0" @@ -3430,17 +3432,17 @@ get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@ get-port@^3.1.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" + resolved "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz" integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== get-stream@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz" integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== dependencies: call-bind "^1.0.5" @@ -3449,14 +3451,14 @@ get-symbol-description@^1.0.2: get-tsconfig@^4.7.0: version "4.7.3" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.3.tgz#0498163d98f7b58484dd4906999c0c9d5f103f83" + resolved "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz" integrity sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg== dependencies: resolve-pkg-maps "^1.0.0" ghost-testrpc@^0.0.2: version "0.0.2" - resolved "https://registry.yarnpkg.com/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz#c4de9557b1d1ae7b2d20bbe474a91378ca90ce92" + resolved "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz" integrity sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ== dependencies: chalk "^2.4.2" @@ -3464,38 +3466,56 @@ ghost-testrpc@^0.0.2: gl-matrix@^2.1.0: version "2.8.1" - resolved "https://registry.yarnpkg.com/gl-matrix/-/gl-matrix-2.8.1.tgz#1c7873448eac61d2cd25803a074e837bd42581a3" + resolved "https://registry.npmjs.org/gl-matrix/-/gl-matrix-2.8.1.tgz" integrity sha512-0YCjVpE3pS5XWlN3J4X7AiAx65+nqAI54LndtVFnQZB6G/FVLkZH8y8V6R3cIoOQR4pUdfwQGd1iwyoXHJ4Qfw== -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-parent@^6.0.2: version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" -glob@7.1.7: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^10.3.7: + version "10.4.3" + resolved "https://registry.npmjs.org/glob/-/glob-10.4.3.tgz" + integrity sha512-Q38SGlYRpVtDBPSWEylRyctn7uDeTp4NQERTLiCT1FqA9JXPYWqAVmQU6qh4r/zMM5ehxTcbaO8EjhWnvEhmyg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + +glob@^5.0.15: + version "5.0.15" + resolved "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz" + integrity sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA== dependencies: - fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "2 || 3" once "^1.3.0" path-is-absolute "^1.0.0" -glob@7.2.0: +glob@^7.0.0, glob@^7.1.3, glob@7.2.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== dependencies: fs.realpath "^1.0.0" @@ -3505,9 +3525,9 @@ glob@7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" -glob@8.1.0, glob@^8.0.3: +glob@^8.0.3: version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== dependencies: fs.realpath "^1.0.0" @@ -3516,50 +3536,39 @@ glob@8.1.0, glob@^8.0.3: minimatch "^5.0.1" once "^1.3.0" -glob@^10.3.7: - version "10.3.10" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" - integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== - dependencies: - foreground-child "^3.1.0" - jackspeak "^2.3.5" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" - -glob@^5.0.15: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - integrity sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA== +glob@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== dependencies: + fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "2 || 3" + minimatch "^5.0.1" once "^1.3.0" - path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.1.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== +glob@7.1.7: + version "7.1.7" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.1.1" + minimatch "^3.0.4" once "^1.3.0" path-is-absolute "^1.0.0" global-modules@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz" integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== dependencies: global-prefix "^3.0.0" global-prefix@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz" integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== dependencies: ini "^1.3.5" @@ -3568,21 +3577,21 @@ global-prefix@^3.0.0: globals@^13.19.0, globals@^13.24.0: version "13.24.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" globalthis@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== dependencies: define-properties "^1.1.3" globby@^10.0.1: version "10.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" + resolved "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz" integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== dependencies: "@types/glob" "^7.1.1" @@ -3596,7 +3605,7 @@ globby@^10.0.1: globby@^11.1.0: version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" @@ -3608,14 +3617,14 @@ globby@^11.1.0: gopd@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== dependencies: get-intrinsic "^1.1.3" got@^12.1.0: version "12.6.1" - resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" + resolved "https://registry.npmjs.org/got/-/got-12.6.1.tgz" integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ== dependencies: "@sindresorhus/is" "^5.2.0" @@ -3630,24 +3639,24 @@ got@^12.1.0: p-cancelable "^3.0.0" responselike "^3.0.0" -graceful-fs@4.2.10: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== +graceful-fs@4.2.10: + version "4.2.10" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + graphemer@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== handlebars@^4.0.1: version "4.7.8" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz" integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== dependencies: minimist "^1.2.5" @@ -3657,18 +3666,18 @@ handlebars@^4.0.1: optionalDependencies: uglify-js "^3.1.4" -hardhat-gas-reporter@^1.0.10: +hardhat-gas-reporter@^1.0.10, hardhat-gas-reporter@^1.0.8: version "1.0.10" - resolved "https://registry.yarnpkg.com/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.10.tgz#ebe5bda5334b5def312747580cd923c2b09aef1b" + resolved "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.10.tgz" integrity sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA== dependencies: array-uniq "1.0.3" eth-gas-reporter "^0.2.25" sha1 "^1.1.1" -hardhat@^2.21.0: +hardhat@^2.0.0, hardhat@^2.0.2, hardhat@^2.0.4, hardhat@^2.11.0, hardhat@^2.21.0, hardhat@^2.9.4, hardhat@^2.9.5, hardhat@^2.9.9: version "2.21.0" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.21.0.tgz#2e23126310a6c77cd7e149e6af1dd67626b7a74f" + resolved "https://registry.npmjs.org/hardhat/-/hardhat-2.21.0.tgz" integrity sha512-8DlJAVJDEVHaV1sh9FLuKLLgCFv9EAJ+M+8IbjSIPgoeNo3ss5L1HgGBMfnI88c7OzMEZkdcuyGoobFeK3Orqw== dependencies: "@ethersproject/abi" "^5.1.2" @@ -3717,60 +3726,60 @@ hardhat@^2.21.0: has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1, has-property-descriptors@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== dependencies: es-define-property "^1.0.0" has-proto@^1.0.1, has-proto@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz" integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-tostringtag@^1.0.0, has-tostringtag@^1.0.1, has-tostringtag@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz" integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: has-symbols "^1.0.3" hash-base@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: inherits "^2.0.4" readable-stream "^3.6.0" safe-buffer "^5.2.0" -hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: +hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7, hash.js@1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" @@ -3778,34 +3787,34 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: hasown@^2.0.0, hasown@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.1.tgz#26f48f039de2c0f8d3356c223fb8d50253519faa" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz" integrity sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA== dependencies: function-bind "^1.1.2" -he@1.2.0: +he@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== "heap@>= 0.2.0": version "0.2.7" - resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc" + resolved "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz" integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg== help-me@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/help-me/-/help-me-5.0.0.tgz#b1ebe63b967b74060027c2ac61f9be12d354a6f6" + resolved "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz" integrity sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg== here@0.0.2: version "0.0.2" - resolved "https://registry.yarnpkg.com/here/-/here-0.0.2.tgz#69c1af3f02121f3d8788e02e84dc8b3905d71195" + resolved "https://registry.npmjs.org/here/-/here-0.0.2.tgz" integrity sha512-U7VYImCTcPoY27TSmzoiFsmWLEqQFaYNdpsPb9K0dXJhE6kufUqycaz51oR09CW85dDU9iWyy7At8M+p7hb3NQ== hmac-drbg@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== dependencies: hash.js "^1.0.3" @@ -3814,7 +3823,7 @@ hmac-drbg@^1.0.1: http-basic@^8.1.1: version "8.1.3" - resolved "https://registry.yarnpkg.com/http-basic/-/http-basic-8.1.3.tgz#a7cabee7526869b9b710136970805b1004261bbf" + resolved "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz" integrity sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw== dependencies: caseless "^0.12.0" @@ -3824,12 +3833,12 @@ http-basic@^8.1.1: http-cache-semantics@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== http-errors@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: depd "2.0.0" @@ -3840,14 +3849,14 @@ http-errors@2.0.0: http-response-object@^3.0.1: version "3.0.2" - resolved "https://registry.yarnpkg.com/http-response-object/-/http-response-object-3.0.2.tgz#7f435bb210454e4360d074ef1f989d5ea8aa9810" + resolved "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz" integrity sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA== dependencies: "@types/node" "^10.0.3" http2-wrapper@^2.1.10: version "2.2.1" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz#310968153dcdedb160d8b72114363ef5fce1f64a" + resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz" integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== dependencies: quick-lru "^5.1.1" @@ -3855,7 +3864,7 @@ http2-wrapper@^2.1.10: https-proxy-agent@^5.0.0: version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: agent-base "6" @@ -3863,29 +3872,29 @@ https-proxy-agent@^5.0.0: iconv-lite@0.4.24: version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore@^5.1.1, ignore@^5.2.0, ignore@^5.2.4: version "5.3.1" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== immutable@^4.0.0-rc.12: version "4.3.5" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.5.tgz#f8b436e66d59f99760dc577f5c99a4fd2a5cc5a0" + resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz" integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw== import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -3893,35 +3902,35 @@ import-fresh@^3.2.1, import-fresh@^3.3.0: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@2, inherits@2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-slot@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz" integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== dependencies: es-errors "^1.3.0" @@ -3930,19 +3939,19 @@ internal-slot@^1.0.7: interpret@^1.0.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== io-ts@1.10.4: version "1.10.4" - resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-1.10.4.tgz#cd5401b138de88e4f920adbcb7026e2d1967e6e2" + resolved "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz" integrity sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g== dependencies: fp-ts "^1.0.0" is-array-buffer@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz" integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== dependencies: call-bind "^1.0.2" @@ -3950,26 +3959,26 @@ is-array-buffer@^3.0.4: is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-bigint@^1.0.1: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== dependencies: has-bigints "^1.0.1" is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" @@ -3977,87 +3986,87 @@ is-boolean-object@^1.1.0: is-builtin-module@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" + resolved "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz" integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== dependencies: builtin-modules "^3.3.0" is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-core-module@^2.12.1, is-core-module@^2.13.0, is-core-module@^2.13.1: version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: hasown "^2.0.0" is-date-object@^1.0.1: version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-hex-prefixed@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + resolved "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz" integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== is-negative-zero@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz" integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== is-number-object@^1.0.4: version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-path-inside@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-obj@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== is-regex@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" @@ -4065,76 +4074,81 @@ is-regex@^1.1.4: is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz" integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== dependencies: call-bind "^1.0.7" is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== dependencies: has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: has-symbols "^1.0.2" is-typed-array@^1.1.13: version "1.1.13" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz" integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== dependencies: which-typed-array "^1.1.14" is-unicode-supported@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== is-weakref@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - -isarray@^1.0.0, isarray@~1.0.0: +isarray@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isarray@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isomorphic-unfetch@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz#87341d5f4f7b63843d468438128cb087b7c3e98f" + resolved "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz" integrity sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q== dependencies: node-fetch "^2.6.1" unfetch "^4.2.0" -jackspeak@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" - integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== +jackspeak@^3.1.2: + version "3.4.1" + resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.1.tgz" + integrity sha512-U23pQPDnmYybVkYjObcuYMk43VRlMLLqLI+RdZy8s8WV8WsxO9SnqSroKaluuvcNOdCAlauKszDwd+umbot5Mg== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: @@ -4142,93 +4156,93 @@ jackspeak@^2.3.5: joycon@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" + resolved "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz" integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== js-base64@^3.7.4: version "3.7.7" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.7.tgz#e51b84bf78fbf5702b9541e2cb7bfcb893b43e79" + resolved "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz" integrity sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw== js-cookie@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" + resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz" integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== -js-sha3@0.8.0, js-sha3@^0.8.0: +js-sha3@^0.8.0, js-sha3@0.8.0: version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + js-yaml@3.x: version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@4.1.0, js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - json-buffer@3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== json-parse-even-better-errors@^2.3.0: version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema-traverse@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json5@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" jsonfile@^2.1.0: version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz" integrity sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw== optionalDependencies: graceful-fs "^4.1.6" jsonfile@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" @@ -4237,12 +4251,12 @@ jsonfile@^6.0.1: jsonschema@^1.2.4: version "1.4.1" - resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" + resolved "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz" integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== keccak@^3.0.0, keccak@^3.0.2: version "3.0.4" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d" + resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz" integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== dependencies: node-addon-api "^2.0.0" @@ -4251,33 +4265,33 @@ keccak@^3.0.0, keccak@^3.0.2: keyv@^4.5.3: version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" kind-of@^6.0.2: version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== klaw@^1.0.0: version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + resolved "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz" integrity sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw== optionalDependencies: graceful-fs "^4.1.9" latest-version@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" + resolved "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz" integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== dependencies: package-json "^8.1.0" levn@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -4285,7 +4299,7 @@ levn@^0.4.1: levn@~0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== dependencies: prelude-ls "~1.1.2" @@ -4293,12 +4307,12 @@ levn@~0.3.0: lines-and-columns@^1.1.6: version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== locate-path@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== dependencies: p-locate "^2.0.0" @@ -4306,44 +4320,44 @@ locate-path@^2.0.0: locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" lodash.camelcase@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== lodash.clonedeep@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== lodash.isequal@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + resolved "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz" integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash.truncate@^4.4.2: version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@~>=4.17.21: +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21, lodash@~>=4.17.21: version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@4.1.0: +log-symbols@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== dependencies: chalk "^4.1.0" @@ -4351,51 +4365,44 @@ log-symbols@4.1.0: long@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== long@^5.0.0: version "5.2.3" - resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" + resolved "https://registry.npmjs.org/long/-/long-5.2.3.tgz" integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== loupe@^2.3.6: version "2.3.7" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" + resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz" integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== dependencies: get-func-name "^2.0.1" lowercase-keys@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -"lru-cache@^9.1.1 || ^10.0.0": - version "10.2.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" - integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== - lru_map@^0.3.3: version "0.3.3" - resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" + resolved "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz" integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== +lru-cache@^10.2.0: + version "10.4.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.0.tgz" + integrity sha512-bfJaPTuEiTYBu+ulDaeQ0F+uLmlfFkMgXj4cbwfuMSjgObGMzb55FMMbDvbRU0fAHZ4sLGkz2mKwcMg8Dvm8Ww== + make-error@^1.1.1: version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== map-canvas@>=0.1.5: version "0.1.5" - resolved "https://registry.yarnpkg.com/map-canvas/-/map-canvas-0.1.5.tgz#8be6bade0bf3e9f9a8b56e8836a1d1d133cab186" + resolved "https://registry.npmjs.org/map-canvas/-/map-canvas-0.1.5.tgz" integrity sha512-f7M3sOuL9+up0NCOZbb1rQpWDLZwR/ftCiNbyscjl9LUUEwrRaoumH4sz6swgs58lF21DQ0hsYOCw5C6Zz7hbg== dependencies: drawille-canvas-blessed-contrib ">=0.0.1" @@ -4403,12 +4410,12 @@ map-canvas@>=0.1.5: markdown-table@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" + resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz" integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== marked-terminal@^5.1.1: version "5.2.0" - resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-5.2.0.tgz#c5370ec2bae24fb2b34e147b731c94fa933559d3" + resolved "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.2.0.tgz" integrity sha512-Piv6yNwAQXGFjZSaiNljyNFw7jKDdGrw70FSbtxEyldLsyeuV5ZHm/1wW++kWbrOF1VPnUgYOhB2oLL0ZpnekA== dependencies: ansi-escapes "^6.2.0" @@ -4418,14 +4425,14 @@ marked-terminal@^5.1.1: node-emoji "^1.11.0" supports-hyperlinks "^2.3.0" -marked@^4.0.12: +"marked@^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", marked@^4.0.12: version "4.3.0" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" + resolved "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz" integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== md5.js@^1.3.4: version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" @@ -4434,29 +4441,29 @@ md5.js@^1.3.4: memory-streams@^0.1.0: version "0.1.3" - resolved "https://registry.yarnpkg.com/memory-streams/-/memory-streams-0.1.3.tgz#d9b0017b4b87f1d92f55f2745c9caacb1dc93ceb" + resolved "https://registry.npmjs.org/memory-streams/-/memory-streams-0.1.3.tgz" integrity sha512-qVQ/CjkMyMInPaaRMrwWNDvf6boRZXaT/DbQeMYcCWuXPEBf1v8qChOc9OlEVQp2uOvRXa1Qu30fLmKhY6NipA== dependencies: readable-stream "~1.0.2" memorystream@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz" integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micro-ftch@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f" + resolved "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz" integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== micromatch@^4.0.4: version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: braces "^3.0.2" @@ -4464,210 +4471,231 @@ micromatch@^4.0.4: mime-db@1.52.0: version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== mime-types@^2.1.12: version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" mimic-response@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== mimic-response@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz" integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimalistic-crypto-utils@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -"minimatch@2 || 3", minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4: version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== +minimatch@^3.0.5: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: - brace-expansion "^2.0.1" + brace-expansion "^1.1.7" -minimatch@9.0.3, minimatch@^9.0.1: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== +minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: - brace-expansion "^2.0.1" + brace-expansion "^1.1.7" -minimatch@^5.0.1: +minimatch@^5.0.1, minimatch@^5.1.6: version "5.1.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +"minimatch@2 || 3": + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@9.0.3: + version "9.0.3" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.7: version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "7.0.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" - integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== mkdirp-classic@^0.5.2: version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp@0.5.x, mkdirp@^0.5.1: +mkdirp@^0.5.1, mkdirp@0.5.x: version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: minimist "^1.2.6" mkdirp@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== mnemonist@^0.38.0: version "0.38.5" - resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.38.5.tgz#4adc7f4200491237fe0fa689ac0b86539685cade" + resolved "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz" integrity sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg== dependencies: obliterator "^2.0.0" -mocha@^10.0.0, mocha@^10.2.0: - version "10.3.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.3.0.tgz#0e185c49e6dccf582035c05fa91084a4ff6e3fe9" - integrity sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg== - dependencies: - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.3" - debug "4.3.4" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "8.1.0" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "5.0.1" - ms "2.1.3" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - workerpool "6.2.1" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - -ms@2.1.2: +mocha@^10.0.0, mocha@^10.2.0, "mocha@^3.X.X || ^4.X.X || ^5.X.X || ^6.X.X || ^7.X.X || ^8.X.X || ^9.X.X || ^10.X.X": + version "10.6.0" + resolved "https://registry.npmjs.org/mocha/-/mocha-10.6.0.tgz" + integrity sha512-hxjt4+EEB0SA0ZDygSS015t65lJw/I2yRCS3Ae+SJ5FrbzrXgfYwJr96f0OvIXdj7h4lv/vLCrH3rkiuizFSvw== + dependencies: + ansi-colors "^4.1.3" + browser-stdout "^1.3.1" + chokidar "^3.5.3" + debug "^4.3.5" + diff "^5.2.0" + escape-string-regexp "^4.0.0" + find-up "^5.0.0" + glob "^8.1.0" + he "^1.2.0" + js-yaml "^4.1.0" + log-symbols "^4.1.0" + minimatch "^5.1.6" + ms "^2.1.3" + serialize-javascript "^6.0.2" + strip-json-comments "^3.1.1" + supports-color "^8.1.1" + workerpool "^6.5.1" + yargs "^16.2.0" + yargs-parser "^20.2.9" + yargs-unparser "^2.0.0" + +ms@^2.1.1, ms@2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.1.1: +ms@^2.1.3: version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -nan@^2.17.0, nan@^2.18.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0" - integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw== +nan@^2.18.0, nan@^2.19.0: + version "2.20.0" + resolved "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz" + integrity sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== neo-async@^2.6.2: version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== node-addon-api@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== node-emoji@^1.10.0, node-emoji@^1.11.0: version "1.11.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" + resolved "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz" integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== dependencies: lodash "^4.17.21" -node-fetch@^2.6.0, node-fetch@^2.6.1: +node-fetch@^2.6.1: version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" node-forge@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== node-gyp-build@^4.2.0: version "4.8.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz" integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== nofilter@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.1.0.tgz#c757ba68801d41ff930ba2ec55bab52ca184aa66" + resolved "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz" integrity sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g== -nopt@3.x: - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - integrity sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg== - dependencies: - abbrev "1" - nopt@~2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-2.1.2.tgz#6cccd977b80132a07731d6e8ce58c2c8303cf9af" + resolved "https://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz" integrity sha512-x8vXm7BZ2jE1Txrxh/hO74HTuYZQEbo8edoRcANgdZ4+PCV+pbjd/xdummkmjjC7LU5EjPzlu8zEq/oxWylnKA== dependencies: abbrev "1" +nopt@3.x: + version "3.0.6" + resolved "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz" + integrity sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg== + dependencies: + abbrev "1" + normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-url@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.0.tgz#593dbd284f743e8dcf6a5ddf8fadff149c82701a" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz" integrity sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw== number-to-bn@1.7.0: version "1.7.0" - resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" + resolved "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz" integrity sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig== dependencies: bn.js "4.11.6" @@ -4675,22 +4703,22 @@ number-to-bn@1.7.0: object-assign@^4.1.0: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-inspect@^1.13.1: version "1.13.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object.assign@^4.1.5: version "4.1.5" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz" integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== dependencies: call-bind "^1.0.5" @@ -4700,7 +4728,7 @@ object.assign@^4.1.5: object.fromentries@^2.0.7: version "2.0.7" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz" integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== dependencies: call-bind "^1.0.2" @@ -4709,7 +4737,7 @@ object.fromentries@^2.0.7: object.groupby@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.2.tgz#494800ff5bab78fd0eff2835ec859066e00192ec" + resolved "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz" integrity sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw== dependencies: array.prototype.filter "^1.0.3" @@ -4720,7 +4748,7 @@ object.groupby@^1.0.1: object.values@^1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz" integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== dependencies: call-bind "^1.0.2" @@ -4729,38 +4757,38 @@ object.values@^1.1.7: obliterator@^2.0.0: version "2.0.4" - resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816" + resolved "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz" integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== on-exit-leak-free@^2.1.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz#fed195c9ebddb7d9e4c3842f93f281ac8dadd3b8" + resolved "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz" integrity sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA== -once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0, once@1.x: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" -optimist@0.2: - version "0.2.8" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.2.8.tgz#e981ab7e268b457948593b55674c099a815cac31" - integrity sha512-Wy7E3cQDpqsTIFyW7m22hSevyTLxw850ahYv7FWsw4G6MIKVTZ8NSA95KBrQ95a4SMsMr1UGUUnwEFKhVaSzIg== - dependencies: - wordwrap ">=0.0.1 <0.1.0" - optimist@~0.3.4: version "0.3.7" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.3.7.tgz#c90941ad59e4273328923074d2cf2e7cbc6ec0d9" + resolved "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz" integrity sha512-TCx0dXQzVtSCg2OgY/bO9hjM9cV4XYx09TVK+s3+FhkjT6LovsLe+pPMzpWf+6yXK/hUizs2gUoTw3jHM0VaTQ== dependencies: wordwrap "~0.0.2" +optimist@0.2: + version "0.2.8" + resolved "https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz" + integrity sha512-Wy7E3cQDpqsTIFyW7m22hSevyTLxw850ahYv7FWsw4G6MIKVTZ8NSA95KBrQ95a4SMsMr1UGUUnwEFKhVaSzIg== + dependencies: + wordwrap ">=0.0.1 <0.1.0" + optionator@^0.8.1: version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: deep-is "~0.1.3" @@ -4772,7 +4800,7 @@ optionator@^0.8.1: optionator@^0.9.3: version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: "@aashutoshrathi/word-wrap" "^1.2.3" @@ -4784,62 +4812,67 @@ optionator@^0.9.3: ordinal@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/ordinal/-/ordinal-1.0.3.tgz#1a3c7726a61728112f50944ad7c35c06ae3a0d4d" + resolved "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz" integrity sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ== os-tmpdir@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== p-cancelable@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz" integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== p-limit@^1.1.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== dependencies: p-try "^1.0.0" p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== dependencies: p-limit "^1.1.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" p-map@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" p-try@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== +package-json-from-dist@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz" + integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== + package-json@^8.1.0: version "8.1.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.1.tgz#3e9948e43df40d1e8e78a85485f1070bf8f03dc8" + resolved "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz" integrity sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA== dependencies: got "^12.1.0" @@ -4849,19 +4882,19 @@ package-json@^8.1.0: parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-cache-control@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz#8eeab3e54fa56920fe16ba38f77fa21aacc2d74e" + resolved "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz" integrity sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg== parse-json@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" @@ -4871,50 +4904,50 @@ parse-json@^5.2.0: path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.10.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== dependencies: - lru-cache "^9.1.1 || ^10.0.0" + lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-type@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pathval@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== pbkdf2@^3.0.17: version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== dependencies: create-hash "^1.1.2" @@ -4925,12 +4958,12 @@ pbkdf2@^3.0.17: picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== picture-tuber@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/picture-tuber/-/picture-tuber-1.0.2.tgz#2f6f024a882fbd28869d0b78a8d1ab45950e6cbf" + resolved "https://registry.npmjs.org/picture-tuber/-/picture-tuber-1.0.2.tgz" integrity sha512-49/xq+wzbwDeI32aPvwQJldM8pr7dKDRuR76IjztrkmiCkAQDaWFJzkmfVqCHmt/iFoPFhHmI9L0oKhthrTOQw== dependencies: buffers "~0.1.1" @@ -4942,20 +4975,20 @@ picture-tuber@^1.0.1: pify@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -pino-abstract-transport@^1.0.0, pino-abstract-transport@v1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz#083d98f966262164504afb989bccd05f665937a8" - integrity sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA== +pino-abstract-transport@^1.0.0, pino-abstract-transport@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz" + integrity sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q== dependencies: readable-stream "^4.0.0" split2 "^4.0.0" pino-pretty@^10.0.0: version "10.3.1" - resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-10.3.1.tgz#e3285a5265211ac6c7cd5988f9e65bf3371a0ca9" + resolved "https://registry.npmjs.org/pino-pretty/-/pino-pretty-10.3.1.tgz" integrity sha512-az8JbIYeN/1iLj2t0jR9DV48/LQ3RC6hZPpapKPkb84Q+yTidMCpgWxIT3N0flnBDilyBQ1luWNpOeJptjdp/g== dependencies: colorette "^2.0.7" @@ -4975,88 +5008,107 @@ pino-pretty@^10.0.0: pino-std-serializers@^6.0.0: version "6.2.2" - resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz#d9a9b5f2b9a402486a5fc4db0a737570a860aab3" + resolved "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz" integrity sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA== pino@^8.14.1: - version "8.19.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-8.19.0.tgz#ccc15ef736f103ec02cfbead0912bc436dc92ce4" - integrity sha512-oswmokxkav9bADfJ2ifrvfHUwad6MLp73Uat0IkQWY3iAw5xTRoznXbXksZs8oaOUMpmhVWD+PZogNzllWpJaA== + version "8.21.0" + resolved "https://registry.npmjs.org/pino/-/pino-8.21.0.tgz" + integrity sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q== dependencies: atomic-sleep "^1.0.0" fast-redact "^3.1.1" on-exit-leak-free "^2.1.0" - pino-abstract-transport v1.1.0 + pino-abstract-transport "^1.2.0" pino-std-serializers "^6.0.0" process-warning "^3.0.0" quick-format-unescaped "^4.0.3" real-require "^0.2.0" safe-stable-stringify "^2.3.1" sonic-boom "^3.7.0" - thread-stream "^2.0.0" + thread-stream "^2.6.0" pluralize@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + resolved "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== png-js@~0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/png-js/-/png-js-0.1.1.tgz#1cc7c212303acabe74263ec3ac78009580242d93" + resolved "https://registry.npmjs.org/png-js/-/png-js-0.1.1.tgz" integrity sha512-NTtk2SyfjBm+xYl2/VZJBhFnTQ4kU5qWC7VC4/iGbrgiU4FuB4xC+74erxADYJIqZICOR1HCvRA7EBHkpjTg9g== possible-typed-array-names@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz" integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prelude-ls@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== prettier-linter-helpers@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== dependencies: fast-diff "^1.1.2" -prettier@^2.3.1, prettier@^2.8.3: +prettier-plugin-solidity@^1.0.0: + version "1.3.1" + resolved "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.3.1.tgz" + integrity sha512-MN4OP5I2gHAzHZG1wcuJl0FsLS3c4Cc5494bbg+6oQWBPuEamjwDvmGfFMZ6NFzsh3Efd9UUxeT7ImgjNH4ozA== + dependencies: + "@solidity-parser/parser" "^0.17.0" + semver "^7.5.4" + solidity-comments-extractor "^0.0.8" + +prettier@^2.3.1: version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== +prettier@^2.8.3: + version "2.8.8" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + +prettier@^3.0.0, prettier@>=2.3.0: + version "3.3.2" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz" + integrity sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA== + process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process-warning@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-3.0.0.tgz#96e5b88884187a1dce6f5c3166d611132058710b" + resolved "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz" integrity sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ== process@^0.11.10: version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== promise@^8.0.0: version "8.3.0" - resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" + resolved "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz" integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== dependencies: asap "~2.0.6" proper-lockfile@^4.1.1: version "4.1.2" - resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f" + resolved "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz" integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== dependencies: graceful-fs "^4.2.4" @@ -5065,13 +5117,13 @@ proper-lockfile@^4.1.1: proto-list@~1.2.1: version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== -protobufjs@^7.2.4, protobufjs@^7.2.5: - version "7.2.6" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.6.tgz#4a0ccd79eb292717aacf07530a07e0ed20278215" - integrity sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw== +protobufjs@^7.2.5: + version "7.3.2" + resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.2.tgz" + integrity sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg== dependencies: "@protobufjs/aspromise" "^1.1.2" "@protobufjs/base64" "^1.1.2" @@ -5088,12 +5140,12 @@ protobufjs@^7.2.4, protobufjs@^7.2.5: proxy-from-env@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== pump@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" @@ -5101,53 +5153,53 @@ pump@^3.0.0: punycode@^2.1.0: version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== pvtsutils@^1.3.2: version "1.3.5" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.5.tgz#b8705b437b7b134cd7fd858f025a23456f1ce910" + resolved "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz" integrity sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA== dependencies: tslib "^2.6.1" pvutils@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" + resolved "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz" integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== qs@^6.4.0: version "6.12.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.0.tgz#edd40c3b823995946a8a0b1f208669c7a200db77" + resolved "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz" integrity sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg== dependencies: side-channel "^1.0.6" queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== quick-format-unescaped@^4.0.3: version "4.0.4" - resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" + resolved "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz" integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== quick-lru@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" raw-body@^2.4.1: version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz" integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" @@ -5157,7 +5209,7 @@ raw-body@^2.4.1: rc@1.2.8: version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" @@ -5167,7 +5219,7 @@ rc@1.2.8: readable-stream@^2.2.2: version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: core-util-is "~1.0.0" @@ -5180,7 +5232,7 @@ readable-stream@^2.2.2: readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" @@ -5189,7 +5241,7 @@ readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable readable-stream@^4.0.0: version "4.5.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.5.2.tgz#9e7fc4c45099baeed934bff6eb97ba6cf2729e09" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz" integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g== dependencies: abort-controller "^3.0.0" @@ -5200,7 +5252,7 @@ readable-stream@^4.0.0: readable-stream@~1.0.2: version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== dependencies: core-util-is "~1.0.0" @@ -5210,45 +5262,45 @@ readable-stream@~1.0.2: readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" real-require@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78" + resolved "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz" integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== rechoir@^0.6.2: version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== dependencies: resolve "^1.1.6" recursive-readdir@^2.2.2: version "2.2.3" - resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" + resolved "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz" integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== dependencies: minimatch "^3.0.5" redeyed@~2.1.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b" + resolved "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz" integrity sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ== dependencies: esprima "~4.0.0" reduce-flatten@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" + resolved "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz" integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== regexp.prototype.flags@^1.5.2: version "1.5.2" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz" integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== dependencies: call-bind "^1.0.6" @@ -5258,134 +5310,134 @@ regexp.prototype.flags@^1.5.2: registry-auth-token@^5.0.1: version "5.0.2" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" + resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz" integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== dependencies: "@pnpm/npm-conf" "^2.1.0" registry-url@^6.0.0: version "6.0.1" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" + resolved "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz" integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== dependencies: rc "1.2.8" req-cwd@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/req-cwd/-/req-cwd-2.0.0.tgz#d4082b4d44598036640fb73ddea01ed53db49ebc" + resolved "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz" integrity sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ== dependencies: req-from "^2.0.0" req-from@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/req-from/-/req-from-2.0.0.tgz#d74188e47f93796f4aa71df6ee35ae689f3e0e70" + resolved "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz" integrity sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA== dependencies: resolve-from "^3.0.0" require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^2.0.0, require-from-string@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== resolve-alpn@^1.2.0: version "1.2.1" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== resolve-from@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-pkg-maps@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + resolved "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== +resolve@^1.1.6, resolve@^1.22.2, resolve@^1.22.4: + version "1.22.8" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@1.1.x: version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz" integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== resolve@1.17.0: version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== dependencies: path-parse "^1.0.6" -resolve@^1.1.6, resolve@^1.22.2, resolve@^1.22.4: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - responselike@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" + resolved "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz" integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== dependencies: lowercase-keys "^3.0.0" -retry@0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - retry@^0.12.0: version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== +retry@0.13.1: + version "0.13.1" + resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + reusify@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rfc4648@^1.5.3: version "1.5.3" - resolved "https://registry.yarnpkg.com/rfc4648/-/rfc4648-1.5.3.tgz#e62b81736c10361ca614efe618a566e93d0b41c0" + resolved "https://registry.npmjs.org/rfc4648/-/rfc4648-1.5.3.tgz" integrity sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ== rimraf@^2.2.8: version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" -rimraf@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.5.tgz#9be65d2d6e683447d2e9013da2bf451139a61ccf" - integrity sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A== +rimraf@^5.0.7: + version "5.0.8" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-5.0.8.tgz" + integrity sha512-XSh0V2/yNhDEi8HwdIefD8MLgs4LQXPag/nEJWs3YUc3Upn+UHa1GyIkEg9xSSNt7HnkO5FjTvmcRzgf+8UZuw== dependencies: glob "^10.3.7" ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" @@ -5393,21 +5445,21 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: rlp@^2.2.3, rlp@^2.2.4: version "2.2.7" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" + resolved "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz" integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== dependencies: bn.js "^5.2.0" run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" safe-array-concat@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692" + resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz" integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg== dependencies: call-bind "^1.0.5" @@ -5417,17 +5469,17 @@ safe-array-concat@^1.1.0: safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-regex-test@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz" integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== dependencies: call-bind "^1.0.6" @@ -5436,22 +5488,22 @@ safe-regex-test@^1.0.3: safe-stable-stringify@^2.3.1: version "2.4.3" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" + resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz" integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== "safer-buffer@>= 2.1.2 < 3", safer-buffer@~2.1.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sax@>=0.6.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0" + resolved "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz" integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== sc-istanbul@^0.4.5: version "0.4.6" - resolved "https://registry.yarnpkg.com/sc-istanbul/-/sc-istanbul-0.4.6.tgz#cf6784355ff2076f92d70d59047d71c13703e839" + resolved "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz" integrity sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g== dependencies: abbrev "1.0.x" @@ -5469,14 +5521,14 @@ sc-istanbul@^0.4.5: which "^1.1.1" wordwrap "^1.0.0" -scrypt-js@3.0.1, scrypt-js@^3.0.0: +scrypt-js@^3.0.0, scrypt-js@3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" + resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== secp256k1@^4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" + resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz" integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== dependencies: elliptic "^6.5.4" @@ -5485,36 +5537,39 @@ secp256k1@^4.0.1: secure-json-parse@^2.4.0: version "2.7.0" - resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz#5a5f9cd6ae47df23dba3151edd06855d47e09862" + resolved "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz" integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== semver@^5.5.0: version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^6.3.0, semver@^6.3.1: +semver@^6.3.0: version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.3.4, semver@^7.3.7, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: - version "7.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" - integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== - dependencies: - lru-cache "^6.0.0" +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== +semver@^7.0.0, semver@^7.3.4, semver@^7.3.7, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.2: + version "7.6.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + +serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" set-function-length@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz" integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== dependencies: define-data-property "^1.1.2" @@ -5526,7 +5581,7 @@ set-function-length@^1.2.1: set-function-name@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz" integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== dependencies: define-data-property "^1.1.4" @@ -5536,17 +5591,17 @@ set-function-name@^2.0.1: setimmediate@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== setprototypeof@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" @@ -5554,7 +5609,7 @@ sha.js@^2.4.0, sha.js@^2.4.8: sha1@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/sha1/-/sha1-1.1.1.tgz#addaa7a93168f393f19eb2b15091618e2700f848" + resolved "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz" integrity sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA== dependencies: charenc ">= 0.0.1" @@ -5562,19 +5617,19 @@ sha1@^1.1.1: shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shelljs@^0.8.3, shelljs@^0.8.5: version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz" integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== dependencies: glob "^7.0.0" @@ -5583,7 +5638,7 @@ shelljs@^0.8.3, shelljs@^0.8.5: side-channel@^1.0.4, side-channel@^1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz" integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== dependencies: call-bind "^1.0.7" @@ -5593,22 +5648,22 @@ side-channel@^1.0.4, side-channel@^1.0.6: signal-exit@^3.0.2: version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== signal-exit@^4.0.1: version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== slash@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== slice-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== dependencies: ansi-styles "^4.0.0" @@ -5617,7 +5672,7 @@ slice-ansi@^4.0.0: solc@0.7.3: version "0.7.3" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.7.3.tgz#04646961bd867a744f63d2b4e3c0701ffdc7d78a" + resolved "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz" integrity sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA== dependencies: command-exists "^1.2.8" @@ -5632,7 +5687,7 @@ solc@0.7.3: solhint-plugin-prettier@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/solhint-plugin-prettier/-/solhint-plugin-prettier-0.1.0.tgz#2f46999e26d6c6bc80281c22a7a21e381175bef7" + resolved "https://registry.npmjs.org/solhint-plugin-prettier/-/solhint-plugin-prettier-0.1.0.tgz" integrity sha512-SDOTSM6tZxZ6hamrzl3GUgzF77FM6jZplgL2plFBclj/OjKP8Z3eIPojKU73gRr0MvOS8ACZILn8a5g0VTz/Gw== dependencies: "@prettier/sync" "^0.3.0" @@ -5640,7 +5695,7 @@ solhint-plugin-prettier@^0.1.0: solhint@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/solhint/-/solhint-4.1.1.tgz#137c935ef028f01ba13687a1f237288d94dae1bf" + resolved "https://registry.npmjs.org/solhint/-/solhint-4.1.1.tgz" integrity sha512-7G4iF8H5hKHc0tR+/uyZesSKtfppFIMvPSW+Ku6MSL25oVRuyFeqNhOsXHfkex64wYJyXs4fe+pvhB069I19Tw== dependencies: "@solidity-parser/parser" "^0.16.0" @@ -5666,14 +5721,19 @@ solhint@^4.1.1: solidity-ast@^0.4.51: version "0.4.55" - resolved "https://registry.yarnpkg.com/solidity-ast/-/solidity-ast-0.4.55.tgz#00b685e6eefb2e8dfb67df1fe0afbe3b3bfb4b28" + resolved "https://registry.npmjs.org/solidity-ast/-/solidity-ast-0.4.55.tgz" integrity sha512-qeEU/r/K+V5lrAw8iswf2/yfWAnSGs3WKPHI+zAFKFjX0dIBVXEU/swQ8eJQYHf6PJWUZFO2uWV4V1wEOkeQbA== dependencies: array.prototype.findlast "^1.2.2" -solidity-coverage@^0.8.0: +solidity-comments-extractor@^0.0.8: + version "0.0.8" + resolved "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.8.tgz" + integrity sha512-htM7Vn6LhHreR+EglVMd2s+sZhcXAirB1Zlyrv5zBuTxieCvjfnRpd7iZk75m/u6NOlEyQ94C6TWbBn2cY7w8g== + +solidity-coverage@^0.8.0, solidity-coverage@^0.8.1: version "0.8.11" - resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.8.11.tgz#c95798f2c3e885c49dcfc9c43ee570d112214785" + resolved "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.11.tgz" integrity sha512-yy0Yk+olovBbXn0Me8BWULmmv7A69ZKkP5aTOJGOO8u61Tu2zS989erfjtFlUjDnfWtxRAVkd8BsQD704yLWHw== dependencies: "@ethersproject/abi" "^5.0.9" @@ -5697,40 +5757,45 @@ solidity-coverage@^0.8.0: web3-utils "^1.3.6" sonic-boom@^3.0.0, sonic-boom@^3.7.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.8.0.tgz#e442c5c23165df897d77c3c14ef3ca40dec66a66" - integrity sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA== + version "3.8.1" + resolved "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz" + integrity sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg== dependencies: atomic-sleep "^1.0.0" source-map-support@^0.5.13, source-map-support@^0.5.17, source-map-support@^0.5.6: version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.6.0, source-map@^0.6.1: +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@~0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz" integrity sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA== dependencies: amdefine ">=0.0.4" spark-md5@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-3.0.2.tgz#7952c4a30784347abcee73268e473b9c0167e3fc" + resolved "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz" integrity sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw== sparkline@^0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/sparkline/-/sparkline-0.1.2.tgz#c3bde46252b1354e710c4b200d54816bd9f07a32" + resolved "https://registry.npmjs.org/sparkline/-/sparkline-0.1.2.tgz" integrity sha512-t//aVOiWt9fi/e22ea1vXVWBDX+gp18y+Ch9sKqmHl828bRfvP2VtfTJVEcgWFBQHd0yDPNQRiHdqzCvbcYSDA== dependencies: here "0.0.2" @@ -5738,22 +5803,22 @@ sparkline@^0.1.1: split-ca@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/split-ca/-/split-ca-1.0.1.tgz#6c83aff3692fa61256e0cd197e05e9de157691a6" + resolved "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz" integrity sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ== split2@^4.0.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + resolved "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz" integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== ssh2@^1.15.0: version "1.15.0" - resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.15.0.tgz#2f998455036a7f89e0df5847efb5421748d9871b" + resolved "https://registry.npmjs.org/ssh2/-/ssh2-1.15.0.tgz" integrity sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw== dependencies: asn1 "^0.2.6" @@ -5764,24 +5829,43 @@ ssh2@^1.15.0: stacktrace-parser@^0.1.10: version "0.1.10" - resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" + resolved "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz" integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== dependencies: type-fest "^0.7.1" statuses@2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== +string_decoder@^1.1.1, string_decoder@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + string-format@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b" + resolved "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz" integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA== -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -5790,15 +5874,24 @@ string-format@^2.0.0: string-width@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: eastasianwidth "^0.2.0" @@ -5807,7 +5900,7 @@ string-width@^5.0.1, string-width@^5.1.2: string.prototype.trim@^1.2.8: version "1.2.8" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz" integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== dependencies: call-bind "^1.0.2" @@ -5816,7 +5909,7 @@ string.prototype.trim@^1.2.8: string.prototype.trimend@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz" integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== dependencies: call-bind "^1.0.2" @@ -5825,106 +5918,101 @@ string.prototype.trimend@^1.0.7: string.prototype.trimstart@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz" integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" es-abstract "^1.22.1" -string_decoder@^1.1.1, string_decoder@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== dependencies: ansi-regex "^3.0.0" +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^7.0.1: version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: ansi-regex "^6.0.1" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-hex-prefix@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" + resolved "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz" integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== dependencies: is-hex-prefixed "1.0.0" -strip-json-comments@3.1.1, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== strip-json-comments@~2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-color@^3.1.0: version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz" integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== dependencies: has-flag "^1.0.0" supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.0.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" +supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-hyperlinks@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" + resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz" integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== dependencies: has-flag "^4.0.0" @@ -5932,12 +6020,12 @@ supports-hyperlinks@^2.3.0: supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== sync-request@^6.0.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/sync-request/-/sync-request-6.1.0.tgz#e96217565b5e50bbffe179868ba75532fb597e68" + resolved "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz" integrity sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw== dependencies: http-response-object "^3.0.1" @@ -5946,14 +6034,14 @@ sync-request@^6.0.0: sync-rpc@^1.2.1: version "1.3.6" - resolved "https://registry.yarnpkg.com/sync-rpc/-/sync-rpc-1.3.6.tgz#b2e8b2550a12ccbc71df8644810529deb68665a7" + resolved "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz" integrity sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw== dependencies: get-port "^3.1.0" table-layout@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" + resolved "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz" integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A== dependencies: array-back "^4.0.1" @@ -5963,7 +6051,7 @@ table-layout@^1.0.2: table@^6.8.0, table@^6.8.1: version "6.8.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" + resolved "https://registry.npmjs.org/table/-/table-6.8.1.tgz" integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== dependencies: ajv "^8.0.1" @@ -5974,7 +6062,7 @@ table@^6.8.0, table@^6.8.1: tar-fs@~2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.1.tgz#e44086c1c60d31a4f0cf893b1c4e155dabfae9e2" + resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz" integrity sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA== dependencies: chownr "^1.1.1" @@ -5984,7 +6072,7 @@ tar-fs@~2.0.1: tar-stream@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz" integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== dependencies: bl "^4.0.3" @@ -5995,17 +6083,17 @@ tar-stream@^2.0.0: term-canvas@0.0.5: version "0.0.5" - resolved "https://registry.yarnpkg.com/term-canvas/-/term-canvas-0.0.5.tgz#597afac2fa6369a6f17860bce9c5f66d6ea0ca96" + resolved "https://registry.npmjs.org/term-canvas/-/term-canvas-0.0.5.tgz" integrity sha512-eZ3rIWi5yLnKiUcsW8P79fKyooaLmyLWAGqBhFspqMxRNUiB4GmHHk5AzQ4LxvFbJILaXqQZLwbbATLOhCFwkw== text-table@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== then-request@^6.0.0: version "6.0.2" - resolved "https://registry.yarnpkg.com/then-request/-/then-request-6.0.2.tgz#ec18dd8b5ca43aaee5cb92f7e4c1630e950d4f0c" + resolved "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz" integrity sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA== dependencies: "@types/concat-stream" "^1.6.0" @@ -6020,45 +6108,45 @@ then-request@^6.0.0: promise "^8.0.0" qs "^6.4.0" -thread-stream@^2.0.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.4.1.tgz#6d588b14f0546e59d3f306614f044bc01ce43351" - integrity sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg== +thread-stream@^2.6.0: + version "2.7.0" + resolved "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz" + integrity sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw== dependencies: real-require "^0.2.0" tmp@0.0.33: version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" toidentifier@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== tr46@~0.0.3: version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== ts-api-utils@^1.0.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.2.1.tgz#f716c7e027494629485b21c0df6180f4d08f5e8b" + resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz" integrity sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA== ts-command-line-args@^2.2.0: version "2.5.1" - resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz#e64456b580d1d4f6d948824c274cf6fa5f45f7f0" + resolved "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz" integrity sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw== dependencies: chalk "^4.1.0" @@ -6068,21 +6156,32 @@ ts-command-line-args@^2.2.0: ts-essentials@^7.0.1: version "7.0.3" - resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38" + resolved "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz" integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== -ts-mocha@^9.0.0: - version "9.0.2" - resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-9.0.2.tgz#c1ef0248874d04a0f26dd9bd8d88e617a8d82ab1" - integrity sha512-WyQjvnzwrrubl0JT7EC1yWmNpcsU3fOuBFfdps30zbmFBgKniSaSOyZMZx+Wq7kytUs5CY+pEbSYEbGfIKnXTw== +ts-mocha@^10.0.0: + version "10.0.0" + resolved "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.0.0.tgz" + integrity sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw== dependencies: ts-node "7.0.1" optionalDependencies: tsconfig-paths "^3.5.0" +ts-node@*, ts-node@^8.0.0, ts-node@>=8.0.0: + version "8.10.2" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz" + integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA== + dependencies: + arg "^4.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" + ts-node@7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz" integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw== dependencies: arrify "^1.0.0" @@ -6094,20 +6193,9 @@ ts-node@7.0.1: source-map-support "^0.5.6" yn "^2.0.0" -ts-node@^8.0.0: - version "8.10.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d" - integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA== - dependencies: - arg "^4.1.0" - diff "^4.0.1" - make-error "^1.1.1" - source-map-support "^0.5.17" - yn "3.1.1" - tsconfig-paths@^3.15.0, tsconfig-paths@^3.5.0: version "3.15.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz" integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== dependencies: "@types/json5" "^0.0.29" @@ -6115,83 +6203,98 @@ tsconfig-paths@^3.15.0, tsconfig-paths@^3.5.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - tslib@^1.11.1, tslib@^1.9.3: version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.1: +tslib@^2.3.1: + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tslib@^2.4.0: + version "2.6.3" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== + +tslib@^2.5.0: version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== +tslib@^2.6.1: + version "2.6.3" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== + +tslib@2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + tsort@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" + resolved "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz" integrity sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw== tweetnacl-util@^0.15.1: version "0.15.1" - resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b" + resolved "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz" integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== tweetnacl@^0.14.3: version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== tweetnacl@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" type-check@~0.3.2: version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== dependencies: prelude-ls "~1.1.2" type-detect@^4.0.0, type-detect@^4.0.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== type-fest@^0.21.3: version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== type-fest@^0.7.1: version "0.7.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz" integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== type-fest@^3.0.0: version "3.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz" integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== -typechain@^8.3.0: +typechain@^8.3.0, typechain@^8.3.2: version "8.3.2" - resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.3.2.tgz#1090dd8d9c57b6ef2aed3640a516bdbf01b00d73" + resolved "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz" integrity sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q== dependencies: "@types/prettier" "^2.1.1" @@ -6207,7 +6310,7 @@ typechain@^8.3.0: typed-array-buffer@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz" integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== dependencies: call-bind "^1.0.7" @@ -6216,7 +6319,7 @@ typed-array-buffer@^1.0.2: typed-array-byte-length@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz" integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== dependencies: call-bind "^1.0.7" @@ -6227,7 +6330,7 @@ typed-array-byte-length@^1.0.1: typed-array-byte-offset@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz" integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== dependencies: available-typed-arrays "^1.0.7" @@ -6239,7 +6342,7 @@ typed-array-byte-offset@^1.0.2: typed-array-length@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.5.tgz#57d44da160296d8663fd63180a1802ebf25905d5" + resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz" integrity sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA== dependencies: call-bind "^1.0.7" @@ -6251,32 +6354,32 @@ typed-array-length@^1.0.5: typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@^4.5.0: +typescript@*, typescript@^4.5.0, typescript@>=2.7, typescript@>=3.7.0, typescript@>=4.2.0, typescript@>=4.3.0, typescript@>=4.5.0, typescript@>=4.7.0, typescript@>=4.9.5: version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== typical@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" + resolved "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz" integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== typical@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" + resolved "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz" integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== uglify-js@^3.1.4: version "3.17.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz" integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== unbox-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: call-bind "^1.0.2" @@ -6286,61 +6389,66 @@ unbox-primitive@^1.0.2: undici-types@~5.26.4: version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -undici@^5.14.0, undici@^5.28.2: - version "5.28.3" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.3.tgz#a731e0eff2c3fcfd41c1169a869062be222d1e5b" - integrity sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA== +undici@^5.14.0: + version "5.28.4" + resolved "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz" + integrity sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g== dependencies: "@fastify/busboy" "^2.0.0" +undici@^6.11.1: + version "6.19.2" + resolved "https://registry.npmjs.org/undici/-/undici-6.19.2.tgz" + integrity sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA== + unfetch@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be" + resolved "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz" integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== universalify@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== universalify@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== unpipe@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" -utf8@3.0.0, utf8@^3.0.0: +utf8@^3.0.0, utf8@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" + resolved "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz" integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== uuid@^8.3.2: version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== web3-utils@^1.3.6: version "1.10.4" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.4.tgz#0daee7d6841641655d8b3726baf33b08eda1cbec" + resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.4.tgz" integrity sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A== dependencies: "@ethereumjs/util" "^8.1.0" @@ -6354,12 +6462,12 @@ web3-utils@^1.3.6: webidl-conversions@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== whatwg-url@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" @@ -6367,7 +6475,7 @@ whatwg-url@^5.0.0: which-boxed-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== dependencies: is-bigint "^1.0.1" @@ -6378,7 +6486,7 @@ which-boxed-primitive@^1.0.2: which-typed-array@^1.1.14: version "1.1.14" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz" integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== dependencies: available-typed-arrays "^1.0.6" @@ -6387,58 +6495,74 @@ which-typed-array@^1.1.14: gopd "^1.0.1" has-tostringtag "^1.0.1" -which@^1.1.1, which@^1.3.1: +which@^1.1.1: + version "1.3.1" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" which@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" widest-line@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + resolved "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== dependencies: string-width "^4.0.0" word-wrap@~1.2.3: version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== -"wordwrap@>=0.0.1 <0.1.0", wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw== - wordwrap@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== +"wordwrap@>=0.0.1 <0.1.0", wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" + integrity sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw== + wordwrapjs@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f" + resolved "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz" integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA== dependencies: reduce-flatten "^2.0.0" typical "^5.2.0" -workerpool@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" - integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== +workerpool@^6.5.1: + version "6.5.1" + resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz" + integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -6447,7 +6571,7 @@ workerpool@6.2.1: wrap-ansi@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: ansi-styles "^6.1.0" @@ -6456,32 +6580,37 @@ wrap-ansi@^8.1.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +ws@^7.4.6: + version "7.5.10" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== + ws@7.4.6: version "7.4.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== +ws@8.17.1: + version "8.17.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== + ws@8.5.0: version "8.5.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" + resolved "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz" integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== -ws@^7.4.6: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - x256@>=0.0.1, x256@~0.0.1: version "0.0.2" - resolved "https://registry.yarnpkg.com/x256/-/x256-0.0.2.tgz#c9af18876f7a175801d564fe70ad9e8317784934" + resolved "https://registry.npmjs.org/x256/-/x256-0.0.2.tgz" integrity sha512-ZsIH+sheoF8YG9YG+QKEEIdtqpHRA9FYuD7MqhfyB1kayXU43RUNBFSxBEnF8ywSUxdg+8no4+bPr5qLbyxKgA== xml2js@^0.4.5: version "0.4.23" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" + resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz" integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== dependencies: sax ">=0.6.0" @@ -6489,37 +6618,27 @@ xml2js@^0.4.5: xmlbuilder@~11.0.0: version "11.0.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz" integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== y18n@^5.0.5: version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@^20.2.2: +yargs-parser@^20.2.2, yargs-parser@^20.2.9: version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== yargs-parser@^21.1.1: version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs-unparser@2.0.0: +yargs-unparser@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== dependencies: camelcase "^6.0.0" @@ -6527,9 +6646,9 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@16.2.0: +yargs@^16.2.0: version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: cliui "^7.0.2" @@ -6542,7 +6661,7 @@ yargs@16.2.0: yargs@^17.7.2: version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" @@ -6553,17 +6672,17 @@ yargs@^17.7.2: y18n "^5.0.5" yargs-parser "^21.1.1" -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - yn@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" + resolved "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz" integrity sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ== +yn@3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==